# 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.18                                            # 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.20.0                                          # For JSON schema validation (Policy modules)

# All dependencies needed in extras for rucio client (and server/daemons) should be defined here
paramiko~=3.3.1                                             # 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.4.0                                   # swift_extras
argcomplete~=3.1.6                                          # 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.23                                          # DB backend
alembic~=1.12.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.23.4                                         # Google authentication library for Python
redis==5.0.1                                                # Python client for Redis key-value store
Flask==3.0.0                                                # Python web framework
oic==1.6.1                                                  # for authentication via OpenID Connect protocol
prometheus_client==0.19.0                                   # Python client for the Prometheus monitoring system
boto3==1.29.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.9                                      # postgresql_extras
PyMySQL==1.1.0                                              # mysql_extras
PyYAML==6.0.1                                               # globus_extras and used for reading test configuration files
globus-sdk==3.32.0                                          # globus_extras
python3-saml==1.16.0                                        # saml_extras
pymongo==4.6.0                                              # pymongo (metadata plugin)

# All dependencies needed to develop/test rucio should be defined here
pytest==7.4.3
pytest-xdist~=3.5.0                                         # Used for parallel testing
pyflakes==3.1.0                                             # Passive checker of Python programs
flake8==6.1.0                                               # Wrapper around PyFlakes&pep8; python_version < '3.9'
pycodestyle==2.11.0                                         # New package replacing pep8; python_version < '3.9'
pylint==3.0.2
astroid==3.0.1
virtualenv==20.24.7                                         # Virtual Python Environment builder
xmltodict==0.13.0                                           # Makes working with XML feel like you are working with JSON
pytz==2023.3.post1                                          # World timezone definitions, modern and historical
pydoc-markdown~=4.8.2                                       # Used for generating Markdown documentation for docusaurus
sh~=2.0.6                                                   # 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
