'numpy>=1.26.0,<2.0.0'  # 1.26 is first to support 3.12; cannod support numpy2 due to spacy
'pandas>=1.4.2' # first to support 3.11
'gensim>=4.3.0,<5.0.0'  # 5.3.0 is first to support 3.11; avoid major version bump
'spacy>=3.6.0,<4.0.0'  # avoid major bump
'scipy>=1.9.2,<1.14.0'  # 1.9.2 is first to support 3.11; 1.14.0 does not support 3.9
'transformers>=4.48.1,<5.0.0'  # avoid major version bump
'accelerate>=0.23.0' # required by Trainer class in de-id
'torch>=2.4.0,<3.0.0' # 2.4.0 is first to support 3.12; avoid major 3.0.0 for now
'tqdm>=4.27'
'scikit-learn>=1.1.3,<2.0.0'  # 1.1.3 is first to supporrt 3.11; avoid major version bump
'dill>=0.3.6,<1.0.0' # stuff saved in 0.3.6/0.3.7 is not always compatible with 0.3.4/0.3.5; avoid major bump
'datasets>=2.2.2,<3.0.0' # avoid major bump
'jsonpickle>=2.0.0' # allow later versions, tested with 3.0.0
'psutil>=5.8.0'
# 0.70.12 uses older version of dill (i.e less than 0.3.5) which is required for datasets
'multiprocess~=0.70.12'  # 0.70.14 seemed to work just fine
'aiofiles>=0.8.0' # allow later versions, tested with 22.1.0
'ipywidgets>=7.6.5' # allow later versions, tested with 0.8.0
'xxhash>=3.0.0' # allow later versions, tested with 3.1.0
'blis>=0.7.5,<1.0.0' # allow later versions, tested with 0.7.9, avoid 1.0.0 (depends on numpy 2)
'click>=8.0.4' # allow later versions, tested with 8.1.3
'pydantic>=2.0.0,<3.0' # avoid next major release
"humanfriendly~=10.0"  # for human readable file / RAM sizes
"peft>=0.8.2"
"setuptools-scm<9"  # NOTE: 9.1 has some compatibility issues due to our old setup.py based install
