We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
Unable to install with opentracing extras
I was following the [OpenTracing setup instructions](https://docs.datadoghq.com/tracing/advanced_usage/?tab=python#opentracing) but got a warning about missing extras:

```sh
(blah-YneZd-6L) sam@sam-Q325UAR ~/t/blah> pip list
Package    Version
---------- -------
pip        18.0   
setuptools 40.4.1 
wheel      0.31.1 

(blah-YneZd-6L) sam@sam-Q325UAR ~/t/blah> python --version
Python 2.7.14

(blah-YneZd-6L) sam@sam-Q325UAR ~/t/blah> pip --version
pip 18.0 from /home/sam/.local/share/virtualenvs/blah-YneZd-6L/lib/python2.7/site-packages/pip (python 2.7)


(blah-YneZd-6L) sam@sam-Q325UAR ~/t/blah> pip install 'ddtrace[opentracing] == 0.14.0'
Collecting ddtrace[opentracing]==0.14.0
  ddtrace 0.14.0 does not provide the extra 'opentracing'
Collecting msgpack-python (from ddtrace[opentracing]==0.14.0)
Collecting wrapt (from ddtrace[opentracing]==0.14.0)
Installing collected packages: msgpack-python, wrapt, ddtrace
Successfully installed ddtrace-0.14.0 msgpack-python-0.5.6 wrapt-1.10.11
```

> `ddtrace 0.14.0 does not provide the extra 'opentracing'`

Happens on Python 3.6 as well.

--- END ISSUE ---

Below are some code segments, each from a relevant file. One or more of these files may contain bugs.
--- BEGIN FILES ---
Path: `setup.py`
Content:
```
1 import os
2 import sys
3 import re
4 
5 from setuptools import setup, find_packages
6 from setuptools.command.test import test as TestCommand
7 
8 
9 def get_version(package):
10     """
11     Return package version as listed in `__version__` in `__init__.py`.
12     This method prevents to import packages at setup-time.
13     """
14     init_py = open(os.path.join(package, '__init__.py')).read()
15     return re.search("__version__ = ['\"]([^'\"]+)['\"]", init_py).group(1)
16 
17 
18 class Tox(TestCommand):
19 
20     user_options = [('tox-args=', 'a', "Arguments to pass to tox")]
21 
22     def initialize_options(self):
23         TestCommand.initialize_options(self)
24         self.tox_args = None
25 
26     def finalize_options(self):
27         TestCommand.finalize_options(self)
28         self.test_args = []
29         self.test_suite = True
30 
31     def run_tests(self):
32         # import here, cause outside the eggs aren't loaded
33         import tox
34         import shlex
35         args = self.tox_args
36         if args:
37             args = shlex.split(self.tox_args)
38         errno = tox.cmdline(args=args)
39         sys.exit(errno)
40 
41 
42 version = get_version('ddtrace')
43 # Append a suffix to the version for dev builds
44 if os.environ.get('VERSION_SUFFIX'):
45     version = '{v}+{s}'.format(
46         v=version,
47         s=os.environ.get('VERSION_SUFFIX'),
48     )
49 
50 setup(
51     name='ddtrace',
52     version=version,
53     description='Datadog tracing code',
54     url='https://github.com/DataDog/dd-trace-py',
55     author='Datadog, Inc.',
56     author_email='dev@datadoghq.com',
57     license='BSD',
58     packages=find_packages(exclude=['tests*']),
59     install_requires=[
60         "wrapt",
61         "msgpack-python",
62     ],
63     extra_requires={
64         # users can include opentracing by having:
65         # install_requires=["ddtrace[opentracing]", ...]
66         "opentracing": ["opentracing"],
67     },
68     # plugin tox
69     tests_require=['tox', 'flake8'],
70     cmdclass={'test': Tox},
71     entry_points={
72         'console_scripts': [
73             'ddtrace-run = ddtrace.commands.ddtrace_run:main'
74         ]
75     },
76     classifiers=[
77         'Programming Language :: Python',
78         'Programming Language :: Python :: 2.7',
79         'Programming Language :: Python :: 3.4',
80         'Programming Language :: Python :: 3.5',
81         'Programming Language :: Python :: 3.6',
82     ],
83 )
84
```
--- END FILES ---

Please first localize the bug based on the issue statement, and then generate a patch according to the `git diff` format fenced by three backticks.

Here is an example:

```diff
diff --git a/examples/server_async.py b/examples/server_async.py
--- a/examples/server_async.py
+++ b/examples/server_async.py
@@ -313,4 +313,4 @@
 
 
 if __name__ == "__main__":
-    asyncio.run(run_async_server("."), debug=True)
+    asyncio.run(run_async_server(), debug=True)
diff --git a/examples/server_sync.py b/examples/server_sync.py
--- a/examples/server_sync.py
+++ b/examples/server_sync.py
@@ -313,5 +313,5 @@
 
 
 if __name__ == "__main__":
-    server = run_sync_server(".")
+    server = run_sync_server()
     server.shutdown()

```

diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -60,10 +60,10 @@
         "wrapt",
         "msgpack-python",
     ],
-    extra_requires={
+    extras_require={
         # users can include opentracing by having:
         # install_requires=["ddtrace[opentracing]", ...]
-        "opentracing": ["opentracing"],
+        "opentracing": ["opentracing>=2.0.0"],
     },
     # plugin tox
     tests_require=['tox', 'flake8'],

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -60,10 +60,10 @@\n         \"wrapt\",\n         \"msgpack-python\",\n     ],\n-    extra_requires={\n+    extras_require={\n         # users can include opentracing by having:\n         # install_requires=[\"ddtrace[opentracing]\", ...]\n-        \"opentracing\": [\"opentracing\"],\n+        \"opentracing\": [\"opentracing>=2.0.0\"],\n     },\n     # plugin tox\n     tests_require=['tox', 'flake8'],\n", "issue": "Unable to install with opentracing extras\nI was following the [OpenTracing setup instructions](https://docs.datadoghq.com/tracing/advanced_usage/?tab=python#opentracing) but got a warning about missing extras:\r\n\r\n```sh\r\n(blah-YneZd-6L) sam@sam-Q325UAR ~/t/blah> pip list\r\nPackage    Version\r\n---------- -------\r\npip        18.0   \r\nsetuptools 40.4.1 \r\nwheel      0.31.1 \r\n\r\n(blah-YneZd-6L) sam@sam-Q325UAR ~/t/blah> python --version\r\nPython 2.7.14\r\n\r\n(blah-YneZd-6L) sam@sam-Q325UAR ~/t/blah> pip --version\r\npip 18.0 from /home/sam/.local/share/virtualenvs/blah-YneZd-6L/lib/python2.7/site-packages/pip (python 2.7)\r\n\r\n\r\n(blah-YneZd-6L) sam@sam-Q325UAR ~/t/blah> pip install 'ddtrace[opentracing] == 0.14.0'\r\nCollecting ddtrace[opentracing]==0.14.0\r\n  ddtrace 0.14.0 does not provide the extra 'opentracing'\r\nCollecting msgpack-python (from ddtrace[opentracing]==0.14.0)\r\nCollecting wrapt (from ddtrace[opentracing]==0.14.0)\r\nInstalling collected packages: msgpack-python, wrapt, ddtrace\r\nSuccessfully installed ddtrace-0.14.0 msgpack-python-0.5.6 wrapt-1.10.11\r\n```\r\n\r\n> `ddtrace 0.14.0 does not provide the extra 'opentracing'`\r\n\r\nHappens on Python 3.6 as well.\n", "before_files": [{"content": "import os\nimport sys\nimport re\n\nfrom setuptools import setup, find_packages\nfrom setuptools.command.test import test as TestCommand\n\n\ndef get_version(package):\n    \"\"\"\n    Return package version as listed in `__version__` in `__init__.py`.\n    This method prevents to import packages at setup-time.\n    \"\"\"\n    init_py = open(os.path.join(package, '__init__.py')).read()\n    return re.search(\"__version__ = ['\\\"]([^'\\\"]+)['\\\"]\", init_py).group(1)\n\n\nclass Tox(TestCommand):\n\n    user_options = [('tox-args=', 'a', \"Arguments to pass to tox\")]\n\n    def initialize_options(self):\n        TestCommand.initialize_options(self)\n        self.tox_args = None\n\n    def finalize_options(self):\n        TestCommand.finalize_options(self)\n        self.test_args = []\n        self.test_suite = True\n\n    def run_tests(self):\n        # import here, cause outside the eggs aren't loaded\n        import tox\n        import shlex\n        args = self.tox_args\n        if args:\n            args = shlex.split(self.tox_args)\n        errno = tox.cmdline(args=args)\n        sys.exit(errno)\n\n\nversion = get_version('ddtrace')\n# Append a suffix to the version for dev builds\nif os.environ.get('VERSION_SUFFIX'):\n    version = '{v}+{s}'.format(\n        v=version,\n        s=os.environ.get('VERSION_SUFFIX'),\n    )\n\nsetup(\n    name='ddtrace',\n    version=version,\n    description='Datadog tracing code',\n    url='https://github.com/DataDog/dd-trace-py',\n    author='Datadog, Inc.',\n    author_email='dev@datadoghq.com',\n    license='BSD',\n    packages=find_packages(exclude=['tests*']),\n    install_requires=[\n        \"wrapt\",\n        \"msgpack-python\",\n    ],\n    extra_requires={\n        # users can include opentracing by having:\n        # install_requires=[\"ddtrace[opentracing]\", ...]\n        \"opentracing\": [\"opentracing\"],\n    },\n    # plugin tox\n    tests_require=['tox', 'flake8'],\n    cmdclass={'test': Tox},\n    entry_points={\n        'console_scripts': [\n            'ddtrace-run = ddtrace.commands.ddtrace_run:main'\n        ]\n    },\n    classifiers=[\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 2.7',\n        'Programming Language :: Python :: 3.4',\n        'Programming Language :: Python :: 3.5',\n        'Programming Language :: Python :: 3.6',\n    ],\n)\n", "path": "setup.py"}], "after_files": [{"content": "import os\nimport sys\nimport re\n\nfrom setuptools import setup, find_packages\nfrom setuptools.command.test import test as TestCommand\n\n\ndef get_version(package):\n    \"\"\"\n    Return package version as listed in `__version__` in `__init__.py`.\n    This method prevents to import packages at setup-time.\n    \"\"\"\n    init_py = open(os.path.join(package, '__init__.py')).read()\n    return re.search(\"__version__ = ['\\\"]([^'\\\"]+)['\\\"]\", init_py).group(1)\n\n\nclass Tox(TestCommand):\n\n    user_options = [('tox-args=', 'a', \"Arguments to pass to tox\")]\n\n    def initialize_options(self):\n        TestCommand.initialize_options(self)\n        self.tox_args = None\n\n    def finalize_options(self):\n        TestCommand.finalize_options(self)\n        self.test_args = []\n        self.test_suite = True\n\n    def run_tests(self):\n        # import here, cause outside the eggs aren't loaded\n        import tox\n        import shlex\n        args = self.tox_args\n        if args:\n            args = shlex.split(self.tox_args)\n        errno = tox.cmdline(args=args)\n        sys.exit(errno)\n\n\nversion = get_version('ddtrace')\n# Append a suffix to the version for dev builds\nif os.environ.get('VERSION_SUFFIX'):\n    version = '{v}+{s}'.format(\n        v=version,\n        s=os.environ.get('VERSION_SUFFIX'),\n    )\n\nsetup(\n    name='ddtrace',\n    version=version,\n    description='Datadog tracing code',\n    url='https://github.com/DataDog/dd-trace-py',\n    author='Datadog, Inc.',\n    author_email='dev@datadoghq.com',\n    license='BSD',\n    packages=find_packages(exclude=['tests*']),\n    install_requires=[\n        \"wrapt\",\n        \"msgpack-python\",\n    ],\n    extras_require={\n        # users can include opentracing by having:\n        # install_requires=[\"ddtrace[opentracing]\", ...]\n        \"opentracing\": [\"opentracing>=2.0.0\"],\n    },\n    # plugin tox\n    tests_require=['tox', 'flake8'],\n    cmdclass={'test': Tox},\n    entry_points={\n        'console_scripts': [\n            'ddtrace-run = ddtrace.commands.ddtrace_run:main'\n        ]\n    },\n    classifiers=[\n        'Programming Language :: Python',\n        'Programming Language :: Python :: 2.7',\n        'Programming Language :: Python :: 3.4',\n        'Programming Language :: Python :: 3.5',\n        'Programming Language :: Python :: 3.6',\n    ],\n)\n", "path": "setup.py"}]}