Repository: rucio/rucio

Issue:
Dependency upgrade for 1.20.0
Motivation
----------

# pip-requires-client

- `setuptools>=36.8.0,<37.0.0` --> `setuptools>=36.8.0,<41.0.0`
- `argparse>=1.4.0; python_version == '2.6'` --> **REMOVE** 
- `requests>=2.6.0,<2.20.0` --> `requests>=2.20.0,<2.22.0`
- `urllib3>=1.23,<1.24` --> `urllib3>=1.24.2,<1.25`
- `dogpile.cache>=0.6.5,<0.7.0` --> `dogpile.cache >=0.6.5,<0.7.2`
- `boto>=2.48.0; python_version >= '2.7'` --> `boto>=2.49.0,<2.50.0`
- `progressbar2>=3.37.1,<3.39.0` --> `progressbar2>=3.39.0,<3.40.0`
- `six>=1.11.0` --> `six>=1.12.0,<1.13.0`
- `boto3>=1.9.86` --> `boto3>1.9.130,<1.10.0`

# pip-requires

- `SQLAlchemy==1.2.16` --> `SQLAlchemy==1.3.3`
- `alembic==1.0.6` --> `alembic==1.0.9`
- `Mako==1.0.7` --> Remove, it's a dependency from Alembic and should not be specified separately
- `python-editor==1.0.3` --> ❗️ Remove, I am not sure why we even need this
- `flup==1.0.3` --> ❗️ Do we still need this??? Comment says needed for deployment of web.py in lighthttpd, but we don't use this anywhere?
- `jsonschema==2.6.0` --> `jsonschema==3.0.1`
- `python-dateutil==2.7.5` --> `python-dateutil==2.8.0`
- `pysftp==0.2.9` --> ❗️ This is used by sftp protocol. But in that case, it should be part of `pip-requires-client`... Also # forces installation of paramikoi and pycrypto
- `s3cmd==2.0.2` --> ❗️ This only seems to be used to test s3 protocol. In that case it should be part of `pip-requires-test`
- `stomp.py==4.1.21` --> `stomp.py==4.1.22`
- `pygeoip==0.3.2` --> Remove
- `ipaddress==1.0.22` --> Just a dependency of geoip2, should be removed?
- `maxminddb==1.4.1` --> Dependency of geoip2, should be removed too
- `cffi==1.11.5` --> `cffi==1.12.2` ❗️ Do we still need this?
- `pycparser==2.19` --> Dependency of cffi - remove
- `gcloud==0.18.3` --> ❗️ Where do we actually use this in the code?
- `rsa==4.0` --> ❗️ needed???
- `googleapis-common-protos==1.5.6` --> Dependency of gcloud, should be removed
- `httplib2==0.12.0` --> ❗️ Where do we still use this in the code?
- `pyOpenSSL==19.0.0` --> Dependency of MyProxyClient, should be removed
- `cryptography==2.4.2` --> Dependency of PyOpenssl, should be removed
- `protobuf==3.6.1` --> Dependency of gcloud, Remove
- `grpcio==1.18.0` --> ❗️ Do we use this anywhere???
- `enum34==1.1.6` --> Dependency of grpcio, Remove
- `pyasn1==0.4.5` --> Dependency of oauth2client, remove
- `pyasn1-modules==0.2.3` --> Dependency of oauth2client, remove
- `redis==3.0.1` --> `redis==3.2.1`
- `numpy==1.14.2` --> `numpy==1.16.2`
- `idna==2.7` --> Dependency of requests, remove

# pip-requires-test
- `pinocchio==0.4.2` --> Not used, remove
- `Paste==3.0.6` --> `Paste==3.0.8`
- `unittest2==1.1.0` --> Not needed anymore since we drop py26
- `coverage==4.5.2` --> `coverage==4.5.3`
- `Sphinx==1.8.3` --> `Sphinx==1.8.5` (Last py27 compatible version)
- `sphinx-rtd-theme==0.4.2` --> `sphinx-rtd-theme==0.4.3`
- `Jinja2==2.10` --> Remove
- `Pygments==2.2.0` --> `Pygments==2.3.1`
- `virtualenv==16.2.0` --> `virtualenv==16.4.3`
- `tox==3.7.0` --> `tox==3.9.0` (Can possibly be dropped)
- `pytest==4.1.1` --> Only needed by unused script; Remove
- `xmltodict==0.11.0` --> `xmltodict==0.12.0`
- `pytz==2018.9` --> `pytz==2019.1`

`pyflakes`, `flake8`, `pycodestyle` and `pylint` will be upgraded in a separate PR!


Discussion:

Resolving patch:
diff --git a/setup_rucio_client.py b/setup_rucio_client.py
--- a/setup_rucio_client.py
+++ b/setup_rucio_client.py
@@ -198,7 +198,6 @@ def get_file_list(self):
         'Operating System :: POSIX :: Linux',
         'Natural Language :: English',
         'Programming Language :: Python',
-        'Programming Language :: Python :: 2.6',
         'Programming Language :: Python :: 2.7',
         'Programming Language :: Python :: 3',
         'Programming Language :: Python :: 3.4',


Test patch: