Coder Social home page Coder Social logo

Comments (11)

yun-wang avatar yun-wang commented on May 25, 2024 2

I believe bulk API is GA now.

from pyairtable.

xoelop avatar xoelop commented on May 25, 2024 2

Yes! It's ready now
https://twitter.com/airtable/status/1174753477211213824

from pyairtable.

walterdefoor avatar walterdefoor commented on May 25, 2024 1

It is not available to everyone yet, but here is the sign-up page for those interested in accessing it:
https://airtable.com/shr2Hk8bNAA6wp1zM?utm_source=newsletter&utm_campaign=may2019&utm_content=batchapibeta

Here is a look at my API documentation. The same "records" wrapper can be applied for updates as well. It still allows uploading single records, so it's backwards compatible.

Screen Shot 2019-06-05 at 10 56 18 AM

from pyairtable.

InfiniteLooper avatar InfiniteLooper commented on May 25, 2024 1

I am interested in this feature as well. Hi, @gtalarico , to @walterdefoor 's point, are you working on this already or should the community get it started?

from pyairtable.

gtalarico avatar gtalarico commented on May 25, 2024

Can you include a link? Is it available to everyone?
I didn't see anything in the main docs.

from pyairtable.

gtalarico avatar gtalarico commented on May 25, 2024

Cool! Thanks for sharing this.
Probably not a good idea to implement this until it's fully rolled out, but we will keep this on our radar

from pyairtable.

gtalarico avatar gtalarico commented on May 25, 2024

Happy to consider it if someone wants to start working on this

from pyairtable.

jws325 avatar jws325 commented on May 25, 2024

I can take a crack at this tomorrow if nobody else is doing it.
The changes would be pretty simple.

For example, right now insert is:

def insert(self, fields, typecast=False):
  return self._post(
    self.url_table, json_data={"fields": fields, "typecast": typecast}
  )

I would make it something like this:

def insert(self, fields_or_records, typecast=False):
  # if fields_or_records is a dict, assume it's the fields for a single record
  if isinstance(fields_or_records, dict):
      # Changed back to fields for backwards compatibility
      return self._post(
        self.url_table, json_data={"fields": fields_or_records, "typecast": typecast}
      )
  # assume an iterable of records was passed in.
  # pass to list constructor to make sure json serializer doesn't choke on it
  records = list(fields_or_records)

  # max records per call is 10. this should be defined as a constant in the Airtable class
  if len(records) > self.MAX_RECORDS_PER_CALL:
     raise RuntimeError(
          'Only {} records can be inserted per call'.format(self.MAX_RECORDS_PER_CALL)
     )

   return self._post(
    self.url_table, json_data={"records": records, "typecast": typecast}
    )

from pyairtable.

InfiniteLooper avatar InfiniteLooper commented on May 25, 2024

insert() has a batch_insert() counterpart that you can utilize so that it simplifies out the conditional detection of the param type.

from pyairtable.

jws325 avatar jws325 commented on May 25, 2024

I feel like the normal insert() call should be able to insert 10 records if that's only one network request.

batch_insert() would now be mostly for inserting more than 10 records.

_batch_request() could break up the iterable into sets of 10 for maximum speed.

Also I noticed that _batch_request() does not accept the typecast param.

So right now typecast does nothing for batch requests.

from pyairtable.

gtalarico avatar gtalarico commented on May 25, 2024

This should all be implemented by now

from pyairtable.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.