Skip to content

Remove dependency on Tornado? #113

@obi1kenobi

Description

@obi1kenobi

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions