I'm trying to load Salesforce training data into a Python dataframe, so we can do all of our manipulations there. simple_salesforce worked with the caveat that we reached the 2,000 limit:

from simple_salesforce import Salesforce as s
eatpies = sf.query('Select Id from Case')
attrs = ['Id']
records = eatpies['records']

data = {}

for rec in records:
for k in attrs:
data.setdefault(k, []).append(rec[k])

dframe = pd.DataFrame(data)

print(dframe)

Supposedly, salesforce-bulk (https://pypi.python.org/pypi/salesforce-bulk/1.0.7) is able to bypass this limit, but I can't get further than this:

job = bulk.create_query_job("Case", contentType='CSV')
batch = bulk.query('select Id, type from Case')

TypeError Traceback (most recent call last)
<ipython-input-13-076e14bf245d> in <module>()
----> 1 batch = bulk.query('select Id, type from Case')

TypeError: query() missing 1 required positional argument: 'soql'
Please help, thanks! If the solution can be done in simple-Salesforce to over-come the Salesforce limit, that would be great, but I couldn't find any solutions via Google.