stefan-jansen / zipline-reloaded

Zipline, a Pythonic Algorithmic Trading Library
https://zipline.ml4trading.io
Apache License 2.0
1.12k stars 208 forks source link

AttributeError: 'Connection' object has no attribute 'connect' #140

Closed ari62 closed 1 year ago

ari62 commented 1 year ago

Dear Zipline Maintainers,

Before I tell you about my issue, let me describe my environment:

Environment

* Operating System: mac * Python Version: `Python 3.8.9` * How did you install Zipline: pip install zipline-reloaded * Python packages: ``` pip freeze alembic==1.8.1 alpaca-py==0.6.1 alphalens-reloaded==0.4.2 appdirs==1.4.4 appnope==0.1.3 asttokens==2.0.8 backcall==0.2.0 bcolz-zipline==1.2.4 Bottleneck==1.3.5 certifi==2022.9.24 charset-normalizer==2.1.1 ci-info==0.3.0 click==8.1.3 configobj==5.0.6 configparser==5.3.0 contourpy==1.0.5 cycler==0.11.0 decorator==5.1.1 empyrical-reloaded==0.5.8 etelemetry==0.3.0 exchange-calendars==3.3 executing==1.1.1 filelock==3.8.0 fitz==0.0.1.dev2 fonttools==4.37.4 future==0.18.2 h5py==3.7.0 httplib2==0.20.4 idna==3.4 importlib-metadata==5.0.0 importlib-resources==5.10.0 intervaltree==3.1.0 ipython==8.5.0 iso3166==2.0.2 iso4217==1.11.20220401 isodate==0.6.1 jedi==0.18.1 joblib==1.2.0 kiwisolver==1.4.4 korean-lunar-calendar==0.3.1 Logbook==1.5.3 looseversion==1.0.2 lru-dict==1.1.8 lxml==4.9.1 Mako==1.2.3 MarkupSafe==2.1.1 matplotlib==3.6.0 matplotlib-inline==0.1.6 msgpack==1.0.4 multipledispatch==0.6.0 multitasking==0.0.11 networkx==2.8.7 nibabel==4.0.2 nipype==1.8.5 numexpr==2.8.3 numpy==1.23.4 packaging==21.3 pandas==1.5.1 pandas-datareader==0.10.0 parso==0.8.3 pathlib==1.0.1 patsy==0.5.3 pexpect==4.8.0 pickleshare==0.7.5 Pillow==9.2.0 prompt-toolkit==3.0.31 prov==2.0.0 ptyprocess==0.7.0 pure-eval==0.2.2 pydantic==1.10.2 pydot==1.4.2 pyfolio-reloaded==0.9.4 Pygments==2.13.0 pyluach==2.0.1 pyparsing==3.0.9 python-dateutil==2.8.2 python-interface==1.6.1 pytz==2022.5 pyxnat==1.5 rdflib==6.2.0 requests==2.28.1 scikit-learn==1.1.2 scipy==1.9.3 seaborn==0.12.1 simplejson==3.17.6 six==1.16.0 sortedcontainers==2.4.0 SQLAlchemy==2.0.0b2 sseclient-py==1.7.2 stack-data==0.5.1 statsmodels==0.13.2 TA-Lib==0.4.25 tables==3.7.0 threadpoolctl==3.1.0 toolz==0.12.0 trading-calendars==2.1.1 traitlets==5.5.0 traits==6.3.2 typing_extensions==4.4.0 urllib3==1.26.12 wcwidth==0.2.5 websockets==10.3 yfinance==0.1.79 zipline-reloaded==2.2.0 zipp==3.9.0 ```

Now that you know a little about me, let me tell you about the issue I am having:

Getting this error when running : zipline ingest -b quandl


[2022-10-21 02:10:50.755561] INFO: zipline.data.bundles.core: Ingesting quandl.
[2022-10-21 02:10:50.755642] INFO: zipline.data.bundles.quandl: Downloading WIKI metadata.
Downloading WIKI Prices table from Quandl  [####################################]  100%          
[2022-10-21 02:11:29.944910] INFO: zipline.data.bundles.quandl: Parsing raw data.
[2022-10-21 02:11:42.665640] INFO: zipline.data.bundles.quandl: Generating asset metadata.
Traceback (most recent call last):
  File "/Users/a/PycharmProjects/a/venv/bin/zipline", line 8, in <module>
    sys.exit(main())
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/click/core.py", line 1130, in __call__
    return self.main(*args, **kwargs)
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/click/core.py", line 1055, in main
    rv = self.invoke(ctx)
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/click/core.py", line 1657, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/click/core.py", line 1404, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/click/core.py", line 760, in invoke
    return __callback(*args, **kwargs)
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/zipline/__main__.py", line 389, in ingest
    bundles_module.ingest(
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/zipline/data/bundles/core.py", line 445, in ingest
    bundle.ingest(
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/zipline/data/bundles/quandl.py", line 193, in quandl_bundle
    asset_db_writer.write(equities=asset_metadata, exchanges=exchanges)
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/zipline/assets/asset_writer.py", line 811, in write
    self._real_write(
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/zipline/assets/asset_writer.py", line 487, in _real_write
    self.init_db(conn)
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/zipline/assets/asset_writer.py", line 912, in init_db
    tables_already_exist = self._all_tables_present(txn)
  File "/Users/a/PycharmProjects/a/venv/lib/python3.8/site-packages/zipline/assets/asset_writer.py", line 888, in _all_tables_present
    conn = txn.connect()
AttributeError: 'Connection' object has no attribute 'connect'

Here is how you can reproduce this issue on your machine:

Reproduction Steps

  1. zipline ingest -b quandl

What steps have you taken to resolve this already?

...

Anything else?

...

Sincerely, $ whoami

ari62 commented 1 year ago

I dont know if this is related, but its the same error: https://github.com/celery/celery/issues/3495

stefan-jansen commented 1 year ago

This is probably due to the changes in SQLAlchemy version 2.0 which just came out in beta. I'll put a new release that caps the version to below 2.0 until we have made the changes to accommodate the upgrade, assuming it's worth it.

For no, just run pip install "sqlalchemy<2".