Skip to content

Commit 3e7b489

Browse files
committed
allow wide range of compatible dependency versions
1 parent 96b48c2 commit 3e7b489

File tree

3 files changed

+88
-56
lines changed

3 files changed

+88
-56
lines changed

requirements-dev.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ requests-mock==1.12.1
1111
ruff==0.11.7
1212
testfixtures==8.3.0
1313

14+
# Unpinned transient dependencies
15+
future>=0.18
16+
iniconfig>=2
17+
rich>=13
18+
19+
# Additional minimum versions for compatibility
20+
nodeenv>=1.4 # pre-commit depends on nodeenv>=0.11.1, but nodeenv requires pipes until 1.4
21+
1422
# Docs Requirements
1523
Sphinx==8.1.3;python_version>='3.10'
1624
Sphinx==7.4.7;python_version<'3.10'

requirements.txt

Lines changed: 75 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,78 @@
1-
pyairtable==3.0.2
2-
azure-storage-blob==12.25.1
3-
boto3>=1.17.98
4-
boxsdk==3.13.0
5-
braintree==4.31.0
6-
bs4==0.0.2
7-
censusgeocode==0.5.2
8-
civis==1.16.1;python_version<"3.10" # later Civis versions do not support Python 3.9
9-
civis==2.4.3;python_version>="3.10"
10-
curlify==2.2.1
11-
dbt_core>=1.5.0
12-
defusedxml>=0.7.1, <=0.8.0
13-
facebook-business==22.0.2
14-
google-api-core==2.24.2
15-
google-api-python-client==2.163.0
16-
google-auth==2.38.0
17-
google-cloud-bigquery==3.31.0
18-
google-cloud-storage-transfer==1.16.0
19-
google-cloud-storage==3.1.0
20-
grpcio==1.68.1
21-
gspread==6.1.4
22-
httplib2==0.22.0
23-
joblib==1.2.0;python_version<"3.10" # Civis 1.16.1, which runs on Python 3.9, requires an older joblib version
24-
joblib==1.4.2;python_version>="3.10"
25-
mysql-connector-python==9.2.0
26-
newmode==0.1.6
27-
oauth2client==4.1.3
28-
paramiko==3.5.1
29-
petl==1.7.15
30-
psycopg2-binary==2.9.9;python_version<"3.13"
31-
psycopg2-binary==2.9.10;python_version>="3.13"
32-
PyGitHub==2.6.0
33-
python-dateutil==2.9.0.post0
34-
requests==2.32.3
35-
requests_oauthlib==2.0.0
36-
setuptools==78.1.0
37-
simple-salesforce==1.12.6
38-
simplejson==3.20.1
39-
slackclient==1.3.1
40-
sqlalchemy >= 1.4.22, != 1.4.33, < 3.0.0 # Prefect does not work with 1.4.33 and >=2.0.0 has breaking changes
41-
suds-py3==1.4.5.0
42-
surveygizmo==1.2.3
43-
twilio==9.6.0
44-
urllib3==1.26.19
45-
validate-email==1.3
46-
xmltodict==0.14.2
1+
# Parsons Requirements
2+
azure-storage-blob>=12.25,<13
3+
beautifulsoup4>=4.10,<5
4+
boto3>=1.34,<2
5+
boxsdk>=3.13,<4
6+
braintree>=4.31,<5
7+
censusgeocode>=0.5,<1
8+
civis>=1.16,<2;python_version<"3.10" # later Civis versions do not support Python 3.9
9+
civis>=2;python_version>="3.10"
10+
curlify>=2.2.1,<3
11+
dbt_core>=1.5,<2
12+
defusedxml>=0.7,<1
13+
facebook-business>=22.0,<23
14+
google-api-core>=2.24,<3
15+
google-api-python-client>=2.163,<3
16+
google-auth>=2.38,<3
17+
google-cloud-bigquery>=3.31,<4
18+
google-cloud-storage-transfer>=1.16,<2
19+
google-cloud-storage>=3.1,<4
20+
grpcio>=1.68,<2
21+
gspread>=6.1,<7
22+
httplib2>=0.22,<1
23+
jellyfish>=1.1.1,<2
24+
joblib>=1.2,<2
25+
mysql-connector-python>=9.2,<10
26+
newmode>=0.1.6,<2
27+
oauth2client>=4.1,<5
28+
paramiko>=3.5,<4
29+
petl>=1.7.10,<2;python_version<"3.11"
30+
petl>=1.7.15,<2;python_version>="3.11"
31+
psycopg2-binary>=2.9.7,<2.9.10;python_version<"3.12"
32+
psycopg2-binary>=2.9.10,<3;python_version>="3.12"
33+
pyairtable>=3.0,<4
34+
PyGitHub>=2.6,<3
35+
python-dateutil>=2.9,<3
36+
requests>=2.32,<3
37+
requests_oauthlib>=2,<3
38+
setuptools>=78.1, <79
39+
simple-salesforce>=1.12.4,<2
40+
simplejson>=3.20,<4
41+
slackclient>=1.3,<2
42+
sqlalchemy>=1.4,<3 # Prefect does not work with 1.4.33
43+
sshtunnel>=0.4,<1
44+
suds-py3>=1.4,<2
45+
surveygizmo>=1.2,<2
46+
twilio>=9.5,<10
47+
urllib3>=1.26.10,<2
48+
validate-email>=1.3,<2
49+
xmltodict>=0.14,<1
50+
51+
# Unpinned transient dependencies
52+
deprecated>=1.2
53+
greenlet>=3.1
54+
inflection>=0.4
55+
pycparser>=2.20
56+
zeep>=4
57+
58+
# Additional minimum versions for compatibility
59+
aiohttp>=3.11 # facebook-business depends on aiohttp and there were c++ errors until 3.11
60+
cachetools>=4 # needed to resolve AttributeError: module 'collections' has no attribute 'MutableMapping'
61+
cloudpickle>2 # needed to resolve ModuleNotFoundError: No module named 'imp'
62+
cryptography>37 # needed to resolve error: 'openssl/opensslv.h' file not found
63+
cffi>=1.17 # dbt-core depends on cffi and there were c++ errors until 1.17
64+
frozenlist>=1.5 # aiohttp depends on frozenlist and there were c++ errors until 1.5
65+
lxml>=5.3 # zeep depends on lxml and there were c++ errors until 5.3
66+
pydantic-core>=2.19 # pyairtable depends on pydantic-core aqqnd there was a missing file error until 2.19
67+
pytz>=2021 # needed to resolve AttributeError: module 'collections' has no attribute 'MutableMapping'
68+
pyyaml>=6.0.1 # civis depends on pyyaml and there was an AttributeError until 6.0.2
69+
requests-toolbelt>=0.10 # needed to resolve ImportError: cannot import name 'Mapping' from 'collections'
70+
six>=1.16 # needed to resolve ModuleNotFoundError: No module named 'six.moves'
71+
wrapt>=1.14 # need to resolve ImportError: cannot import name 'formatargspec' from 'inspect'
72+
zeep>=4.3;python_version>="3.13" # python cgi package was deprecated in Python 3.11 and removed in 3.13
4773

4874
# Stuff for TMC scripts
4975
# TODO Remove when we have a TMC-specific Docker image
50-
jinja2>=3.0.2
51-
selenium==3.141.0
52-
us==3.2.0
53-
sshtunnel==0.4.0
54-
76+
jinja2>=3.0,<4
77+
selenium>=3.141,<4
78+
us>=3.2,<4

setup.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def main():
2828
"dbt-postgres": ["dbt-postgres>=1.5.0"],
2929
"dbt-snowflake": ["dbt-snowflake>=1.5.0"],
3030
"facebook": ["joblib", "facebook-business"],
31-
"geocode": ["censusgeocode", "urllib3==1.26.19"],
31+
"geocode": ["censusgeocode", "urllib3>=1.26.10,<2"],
3232
"github": ["PyGitHub"],
3333
"google": [
3434
"apiclient",
@@ -43,21 +43,21 @@ def main():
4343
],
4444
"mysql": [
4545
"mysql-connector-python",
46-
"sqlalchemy >= 1.4.22, != 1.4.33, < 3.0.0",
46+
"sqlalchemy>=1.4.22,!=1.4.33,<3.0.0",
4747
],
4848
"newmode": ["newmode"],
4949
"ngpvan": ["suds-py3"],
5050
"mobilecommons": ["bs4"],
5151
"postgres": [
5252
"psycopg2-binary<=2.9.9;python_version<'3.13'",
5353
"psycopg2-binary>=2.9.10;python_version>='3.13'",
54-
"sqlalchemy >= 1.4.22, != 1.4.33, < 3.0.0",
54+
"sqlalchemy>=1.4.22,!=1.4.33,<3.0.0",
5555
],
5656
"redshift": [
5757
"boto3",
5858
"psycopg2-binary<=2.9.9;python_version<'3.13'",
5959
"psycopg2-binary>=2.9.10;python_version>='3.13'",
60-
"sqlalchemy >= 1.4.22, != 1.4.33, < 3.0.0",
60+
"sqlalchemy>=1.4.22,!=1.4.33,<3.0.0",
6161
],
6262
"s3": ["boto3"],
6363
"salesforce": ["simple-salesforce"],
@@ -71,7 +71,7 @@ def main():
7171
"sshtunnel",
7272
"psycopg2-binary<=2.9.9;python_version<'3.13'",
7373
"psycopg2-binary>=2.9.10;python_version>='3.13'",
74-
"sqlalchemy >= 1.4.22, != 1.4.33, < 3.0.0",
74+
"sqlalchemy>=1.4.22,!=1.4.33,<3.0.0",
7575
],
7676
}
7777
extras_require["all"] = sorted({lib for libs in extras_require.values() for lib in libs})

0 commit comments

Comments
 (0)