-
Notifications
You must be signed in to change notification settings - Fork 56
Description
I'd like to propose that the tornado dependency is removed from install_requires and moved to the extras_require to make it conditional, even if #83 is being worked on in parallel.
I am working on a project that uses opentracing_instrumentation and jaeger_client, but does not use tornado. However, due to the dependencies on tornado in these two packages, I am forced to install tornado and specifically tornado>=4.1,<6 due to this package's dependency on it, since jaeger_client depends on tornado>=4.3 with no upper bound.
This causes an unfortunate problem, where even though my package doesn't rely on tornado, I still get DeprecationWarning telling me that my package will stop working in Python 3.9. To reproduce:
requirements.txt
opentracing==2.3.0
opentracing-instrumentation==3.3.1
jaeger-client==4.3.0
repro.py
try:
import jaeger_client.config
except DeprecationWarning as e:
print(e)
else:
raise AssertionError(
"Deprecation warning not raised, are you sure you ran this with the '-Werror' flag? "
"Expected command: python -Werror repro.py"
)
Executing in the environment created from that requirements.txt file:
$ python --version
Python 3.7.7
$ python -Werror repro.py
Using or importing the ABCs from 'collections' instead of from 'collections.abc' is deprecated since Python 3.3,and in 3.9 it will stop working
While I import jaeger_client and not opentracing_instrumentation here, the bound on tornado<6 comes from opentracing_instrumentation and not jaeger_client, and that bound is the immediate cause of the DeprecationWarning.
This is related to, but not fully encompassed by, jaegertracing/jaeger-client-python#235.
Thank you for considering this, and for working on this project in general.