# All dependencies needed to run rucio client (and server/daemons) should be defined here
requests>=2.25.1,<=2.31.0                                   # Python HTTP for Humans.
urllib3~=1.26.16                                            # HTTP library with thread-safe connection pooling, file post, etc.
dogpile.cache~=1.2.2                                        # Caching API plugins (1.1.2 is the first version to support pymemcache)
tabulate~=0.9.0                                             # Pretty-print tabular data
jsonschema~=4.18.4                                          # For JSON schema validation (Policy modules)

# All dependencies needed in extras for rucio client (and server/daemons) should be defined here
paramiko~=3.4.0                                             # ssh_extras; SSH2 protocol library (also needed in the server)
kerberos~=1.3.1                                             # kerberos_extras for client and server
pykerberos~=1.2.4                                           # kerberos_extras for client and server
requests-kerberos>=0.14.0                                   # kerberos_extras for client and server
python-swiftclient~=4.3.0                                   # swift_extras
argcomplete~=3.1.1                                          # argcomplete_extras; Bash tab completion for argparse
python-magic~=0.4.27                                        # dumper_extras; File type identification using libmagic

# All dependencies needed to run rucio server/daemons should be defined here
SQLAlchemy==2.0.19                                          # DB backend
alembic~=1.11.1                                             # Lightweight database migration tool for SQLAlchemy
pymemcache==4.0.0                                           # A comprehensive, fast, pure-Python memcached client (Used by Dogpile)
python-dateutil==2.8.2                                      # Extensions to the standard datetime module
stomp.py==8.1.0                                             # ActiveMQ Messaging Protocol
statsd==4.0.1                                               # Needed to log into graphite with more than 1 Hz
geoip2==4.7.0                                               # GeoIP2 API (for IPv6 support)
google-auth==2.22.0                                         # Google authentication library for Python
redis==4.6.0                                                # Python client for Redis key-value store
Flask==2.3.2                                                # Python web framework
oic==1.6.1                                                  # for authentication via OpenID Connect protocol
prometheus_client==0.17.1                                   # Python client for the Prometheus monitoring system
boto3==1.28.5                                               # S3 boto protocol (new version)

# All dependencies needed in extras for rucio server/daemons should be defined here
cx_oracle==8.3.0                                            # oracle_extras
psycopg2-binary==2.9.6                                      # postgresql_extras
PyMySQL==1.1.0                                              # mysql_extras
PyYAML==6.0.1                                               # globus_extras and used for reading test configuration files
globus-sdk==3.24.0                                          # globus_extras
python3-saml==1.15.0                                        # saml_extras
pymongo==4.4.1                                              # pymongo (metadata plugin)

# All dependencies needed to develop/test rucio should be defined here
pytest==7.4.0
pytest-xdist~=3.3.1                                         # Used for parallel testing
pyflakes==3.0.1                                             # Passive checker of Python programs
flake8==6.0.0                                               # Wrapper around PyFlakes&pep8; python_version < '3.9'
pycodestyle==2.10.0                                         # New package replacing pep8; python_version < '3.9'
pylint==3.0.0a7
astroid==3.0.0a9
virtualenv==20.24.0                                         # Virtual Python Environment builder
xmltodict==0.13.0                                           # Makes working with XML feel like you are working with JSON
pytz==2023.3                                                # World timezone definitions, modern and historical
pydoc-markdown~=4.8.2                                       # Used for generating Markdown documentation for docusaurus
sh~=2.0.4                                                   # Convenience library for running subprocesses in Python
apispec==6.3.0                                              # Generate OpenApi definition out of pydoc comments
apispec-webframeworks                                       # Integration of apispec in Flask
