# We use compatible release functionality (see PEP 440 here: https://www.python.org/dev/peps/pep-0440/#compatible-release)
# to specify acceptable version ranges of our project dependencies. This gives us the flexibility to keep up with small
# updates/fixes, whilst ensuring we don't install a major update which could introduce backwards incompatible changes.

# Other dependency managers are poetry, fleet, pipenv
# With the other dependency managers the file changes but the principle does not change
# If we don't specify version then pip will install the lastest version which might contain breaking changes

# We are allowing package changes between the versions 1.21.0 and 2.0.0
# The range depends on how much risk we want to take
# numpy>=1.21.0,<2.0.0

# Updated the numpy version range from >=1.21.0,<2.0.0 to >=1.21.0,<1.25.0
numpy>=1.21.0,<1.25.0

pandas>=1.3.5,<2.0.0
pydantic>=1.8.1,<2.0.0
scikit-learn>=1.1.3,<2.0.0
strictyaml>=1.3.2,<2.0.0
ruamel.yaml>=0.16.12,<1.0.0
feature-engine>=1.0.2,<1.6.0  # breaking change in v1.6.0
joblib>=1.0.1,<2.0.0