We are currently solving the following issue within our repository. Here is the issue text:
--- BEGIN ISSUE ---
pypi release 1.2.0 is missing built proto files in openhtf/output/proto
pypi release 1.2.0 is missing built proto files in openhtf/output/proto.  They are present in release 1.1.0.   This is observed by downloading the tarball from pypi.  Can this be corrected?  Thanks

--- 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 # Copyright 2014 Google Inc. All Rights Reserved.
2 
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
6 
7 #     http://www.apache.org/licenses/LICENSE-2.0
8 
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
14 """Setup script for OpenHTF."""
15 
16 import errno
17 import glob
18 import os
19 import platform
20 import subprocess
21 import sys
22 
23 from distutils.command.build import build
24 from distutils.command.clean import clean
25 from distutils.cmd import Command
26 from setuptools import find_packages
27 from setuptools import setup
28 from setuptools.command.test import test
29 
30 
31 class CleanCommand(clean):
32   """Custom logic for the clean command."""
33 
34   def run(self):
35     clean.run(self)
36     targets = [
37         './dist',
38         './*.egg-info',
39         './openhtf/output/proto/*_pb2.py',
40         './openhtf/**/*.pyc',
41     ]
42     os.system('shopt -s globstar; rm -vrf %s' % ' '.join(targets))
43 
44 
45 class BuildProtoCommand(Command):
46   """Custom setup command to build protocol buffers."""
47   description = 'Builds the proto files into python files.'
48   user_options = [('protoc=', None, 'Path to the protoc compiler.'),
49                   ('protodir=', None, 'Path to protobuf install.'),
50                   ('indir=', 'i', 'Directory containing input .proto files.'),
51                   ('outdir=', 'o', 'Where to output .py files.')]
52 
53   def initialize_options(self):
54     self.skip_proto = False
55     try:
56       prefix = subprocess.check_output(
57           'pkg-config --variable prefix protobuf'.split()).strip().decode('utf-8')
58     except (subprocess.CalledProcessError, OSError):
59       if platform.system() == 'Linux':
60         # Default to /usr?
61         prefix = '/usr'
62       elif platform.system() in ['Mac', 'Darwin']:
63         # Default to /usr/local for Homebrew
64         prefix = '/usr/local'
65       else:
66         print('Warning: mfg-inspector output is not fully implemented for '
67               'Windows. OpenHTF will be installed without it.')
68         self.skip_proto = True
69 
70     maybe_protoc = os.path.join(prefix, 'bin', 'protoc')
71     if os.path.isfile(maybe_protoc) and os.access(maybe_protoc, os.X_OK):
72         self.protoc = maybe_protoc
73     else:
74         print('Warning: protoc not found at %s' % maybe_protoc)
75         print('setup will attempt to run protoc with no prefix.')
76         self.protoc = 'protoc'
77 
78     self.protodir = os.path.join(prefix, 'include')
79     self.indir = os.getcwd()
80     self.outdir = os.getcwd()
81 
82   def finalize_options(self):
83     pass
84 
85   def run(self):
86     if self.skip_proto:
87       print('Skipping building protocol buffers.')
88       return
89 
90     # Build regular proto files.
91     protos = glob.glob(
92         os.path.join(self.indir, 'openhtf', 'output', 'proto', '*.proto'))
93 
94     if protos:
95       print('Attempting to build proto files:\n%s' % '\n'.join(protos))
96       cmd = [
97           self.protoc,
98           '--proto_path', self.indir,
99           '--proto_path', self.protodir,
100           '--python_out', self.outdir,
101       ] + protos
102       try:
103         subprocess.check_call(cmd)
104       except OSError as e:
105         if e.errno == errno.ENOENT:
106           print('Could not find the protobuf compiler at \'%s\'' % self.protoc)
107           if sys.platform.startswith('linux'):
108             print('On many Linux systems, this is fixed by installing the '
109                   '"protobuf-compiler" and "libprotobuf-dev" packages.')
110           elif sys.platform == 'darwin':
111             print('On Mac, protobuf is often installed via homebrew.')
112         raise
113       except subprocess.CalledProcessError:
114         print('Could not build proto files.')
115         print('This could be due to missing helper files. On many Linux '
116               'systems, this is fixed by installing the '
117               '"libprotobuf-dev" package.')
118         raise
119     else:
120       print('Found no proto files to build.')
121 
122 
123 # Make building protos part of building overall.
124 build.sub_commands.insert(0, ('build_proto', None))
125 
126 
127 INSTALL_REQUIRES = [
128     'contextlib2>=0.5.1,<1.0',
129     'enum34>=1.1.2,<2.0;python_version<"3.4"',
130     'future>=0.16.0',
131     'mutablerecords>=0.4.1,<2.0',
132     'oauth2client>=1.5.2,<2.0',
133     'protobuf>=3.0.0,<4.0',
134     'pyaml>=15.3.1,<16.0',
135     'pyOpenSSL>=17.1.0,<18.0',
136     'sockjs-tornado>=1.0.3,<2.0',
137     'tornado>=4.3,<5.0',
138 ]
139 
140 
141 class PyTestCommand(test):
142   # Derived from
143   # https://github.com/chainreactionmfg/cara/blob/master/setup.py
144   user_options = [
145       ('pytest-args=', None, 'Arguments to pass to py.test'),
146       ('pytest-cov=', None, 'Enable coverage. Choose output type: '
147        'term, html, xml, annotate, or multiple with comma separation'),
148   ]
149 
150   def initialize_options(self):
151     test.initialize_options(self)
152     self.pytest_args = 'test'
153     self.pytest_cov = None
154 
155   def finalize_options(self):
156     test.finalize_options(self)
157     self.test_args = []
158     self.test_suite = True
159 
160   def run_tests(self):
161     self.run_command('build_proto')
162 
163     import pytest
164     cov = ''
165     if self.pytest_cov is not None:
166       outputs = ' '.join('--cov-report %s' % output
167                          for output in self.pytest_cov.split(','))
168       cov = ' --cov openhtf ' + outputs
169 
170     sys.argv = [sys.argv[0]]
171     print('invoking pytest.main with %s' % (self.pytest_args + cov))
172     sys.exit(pytest.main(self.pytest_args + cov))
173 
174 
175 setup(
176     name='openhtf',
177     version='1.2.0',
178     description='OpenHTF, the open hardware testing framework.',
179     author='John Hawley',
180     author_email='madsci@google.com',
181     maintainer='Joe Ethier',
182     maintainer_email='jethier@google.com',
183     packages=find_packages(exclude='examples'),
184     package_data={'openhtf': ['output/web_gui/prebuilt/**/*.*',
185                               'output/web_gui/prebuilt/*.*']},
186     cmdclass={
187         'build_proto': BuildProtoCommand,
188         'clean': CleanCommand,
189         'test': PyTestCommand,
190     },
191     install_requires=INSTALL_REQUIRES,
192     extras_require={
193         'usb_plugs': [
194             'libusb1>=1.3.0,<2.0',
195             'M2Crypto>=0.22.3,<1.0',
196         ],
197         'update_units': [
198             'xlrd>=1.0.0,<2.0',
199         ],
200     },
201     setup_requires=[
202         'wheel>=0.29.0,<1.0',
203     ],
204     tests_require=[
205         'mock>=2.0.0',
206         'pytest>=2.9.2',
207         'pytest-cov>=2.2.1',
208     ],
209 )
210
```
--- 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
@@ -126,7 +126,6 @@
 
 INSTALL_REQUIRES = [
     'contextlib2>=0.5.1,<1.0',
-    'enum34>=1.1.2,<2.0;python_version<"3.4"',
     'future>=0.16.0',
     'mutablerecords>=0.4.1,<2.0',
     'oauth2client>=1.5.2,<2.0',
@@ -136,6 +135,11 @@
     'sockjs-tornado>=1.0.3,<2.0',
     'tornado>=4.3,<5.0',
 ]
+# Not all versions of setuptools support semicolon syntax for specifying
+# platform-specific dependencies, so we do it the old school way.
+if sys.version_info < (3,4):
+  INSTALL_REQUIRES.append('enum34>=1.1.2,<2.0')
+
 
 
 class PyTestCommand(test):
@@ -174,7 +178,7 @@
 
 setup(
     name='openhtf',
-    version='1.2.0',
+    version='1.2.1',
     description='OpenHTF, the open hardware testing framework.',
     author='John Hawley',
     author_email='madsci@google.com',

{"golden_diff": "diff --git a/setup.py b/setup.py\n--- a/setup.py\n+++ b/setup.py\n@@ -126,7 +126,6 @@\n \n INSTALL_REQUIRES = [\n     'contextlib2>=0.5.1,<1.0',\n-    'enum34>=1.1.2,<2.0;python_version<\"3.4\"',\n     'future>=0.16.0',\n     'mutablerecords>=0.4.1,<2.0',\n     'oauth2client>=1.5.2,<2.0',\n@@ -136,6 +135,11 @@\n     'sockjs-tornado>=1.0.3,<2.0',\n     'tornado>=4.3,<5.0',\n ]\n+# Not all versions of setuptools support semicolon syntax for specifying\n+# platform-specific dependencies, so we do it the old school way.\n+if sys.version_info < (3,4):\n+  INSTALL_REQUIRES.append('enum34>=1.1.2,<2.0')\n+\n \n \n class PyTestCommand(test):\n@@ -174,7 +178,7 @@\n \n setup(\n     name='openhtf',\n-    version='1.2.0',\n+    version='1.2.1',\n     description='OpenHTF, the open hardware testing framework.',\n     author='John Hawley',\n     author_email='madsci@google.com',\n", "issue": "pypi release 1.2.0 is missing built proto files in openhtf/output/proto\npypi release 1.2.0 is missing built proto files in openhtf/output/proto.  They are present in release 1.1.0.   This is observed by downloading the tarball from pypi.  Can this be corrected?  Thanks\n", "before_files": [{"content": "# Copyright 2014 Google Inc. All Rights Reserved.\n\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n\n#     http://www.apache.org/licenses/LICENSE-2.0\n\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\"Setup script for OpenHTF.\"\"\"\n\nimport errno\nimport glob\nimport os\nimport platform\nimport subprocess\nimport sys\n\nfrom distutils.command.build import build\nfrom distutils.command.clean import clean\nfrom distutils.cmd import Command\nfrom setuptools import find_packages\nfrom setuptools import setup\nfrom setuptools.command.test import test\n\n\nclass CleanCommand(clean):\n  \"\"\"Custom logic for the clean command.\"\"\"\n\n  def run(self):\n    clean.run(self)\n    targets = [\n        './dist',\n        './*.egg-info',\n        './openhtf/output/proto/*_pb2.py',\n        './openhtf/**/*.pyc',\n    ]\n    os.system('shopt -s globstar; rm -vrf %s' % ' '.join(targets))\n\n\nclass BuildProtoCommand(Command):\n  \"\"\"Custom setup command to build protocol buffers.\"\"\"\n  description = 'Builds the proto files into python files.'\n  user_options = [('protoc=', None, 'Path to the protoc compiler.'),\n                  ('protodir=', None, 'Path to protobuf install.'),\n                  ('indir=', 'i', 'Directory containing input .proto files.'),\n                  ('outdir=', 'o', 'Where to output .py files.')]\n\n  def initialize_options(self):\n    self.skip_proto = False\n    try:\n      prefix = subprocess.check_output(\n          'pkg-config --variable prefix protobuf'.split()).strip().decode('utf-8')\n    except (subprocess.CalledProcessError, OSError):\n      if platform.system() == 'Linux':\n        # Default to /usr?\n        prefix = '/usr'\n      elif platform.system() in ['Mac', 'Darwin']:\n        # Default to /usr/local for Homebrew\n        prefix = '/usr/local'\n      else:\n        print('Warning: mfg-inspector output is not fully implemented for '\n              'Windows. OpenHTF will be installed without it.')\n        self.skip_proto = True\n\n    maybe_protoc = os.path.join(prefix, 'bin', 'protoc')\n    if os.path.isfile(maybe_protoc) and os.access(maybe_protoc, os.X_OK):\n        self.protoc = maybe_protoc\n    else:\n        print('Warning: protoc not found at %s' % maybe_protoc)\n        print('setup will attempt to run protoc with no prefix.')\n        self.protoc = 'protoc'\n\n    self.protodir = os.path.join(prefix, 'include')\n    self.indir = os.getcwd()\n    self.outdir = os.getcwd()\n\n  def finalize_options(self):\n    pass\n\n  def run(self):\n    if self.skip_proto:\n      print('Skipping building protocol buffers.')\n      return\n\n    # Build regular proto files.\n    protos = glob.glob(\n        os.path.join(self.indir, 'openhtf', 'output', 'proto', '*.proto'))\n\n    if protos:\n      print('Attempting to build proto files:\\n%s' % '\\n'.join(protos))\n      cmd = [\n          self.protoc,\n          '--proto_path', self.indir,\n          '--proto_path', self.protodir,\n          '--python_out', self.outdir,\n      ] + protos\n      try:\n        subprocess.check_call(cmd)\n      except OSError as e:\n        if e.errno == errno.ENOENT:\n          print('Could not find the protobuf compiler at \\'%s\\'' % self.protoc)\n          if sys.platform.startswith('linux'):\n            print('On many Linux systems, this is fixed by installing the '\n                  '\"protobuf-compiler\" and \"libprotobuf-dev\" packages.')\n          elif sys.platform == 'darwin':\n            print('On Mac, protobuf is often installed via homebrew.')\n        raise\n      except subprocess.CalledProcessError:\n        print('Could not build proto files.')\n        print('This could be due to missing helper files. On many Linux '\n              'systems, this is fixed by installing the '\n              '\"libprotobuf-dev\" package.')\n        raise\n    else:\n      print('Found no proto files to build.')\n\n\n# Make building protos part of building overall.\nbuild.sub_commands.insert(0, ('build_proto', None))\n\n\nINSTALL_REQUIRES = [\n    'contextlib2>=0.5.1,<1.0',\n    'enum34>=1.1.2,<2.0;python_version<\"3.4\"',\n    'future>=0.16.0',\n    'mutablerecords>=0.4.1,<2.0',\n    'oauth2client>=1.5.2,<2.0',\n    'protobuf>=3.0.0,<4.0',\n    'pyaml>=15.3.1,<16.0',\n    'pyOpenSSL>=17.1.0,<18.0',\n    'sockjs-tornado>=1.0.3,<2.0',\n    'tornado>=4.3,<5.0',\n]\n\n\nclass PyTestCommand(test):\n  # Derived from\n  # https://github.com/chainreactionmfg/cara/blob/master/setup.py\n  user_options = [\n      ('pytest-args=', None, 'Arguments to pass to py.test'),\n      ('pytest-cov=', None, 'Enable coverage. Choose output type: '\n       'term, html, xml, annotate, or multiple with comma separation'),\n  ]\n\n  def initialize_options(self):\n    test.initialize_options(self)\n    self.pytest_args = 'test'\n    self.pytest_cov = None\n\n  def finalize_options(self):\n    test.finalize_options(self)\n    self.test_args = []\n    self.test_suite = True\n\n  def run_tests(self):\n    self.run_command('build_proto')\n\n    import pytest\n    cov = ''\n    if self.pytest_cov is not None:\n      outputs = ' '.join('--cov-report %s' % output\n                         for output in self.pytest_cov.split(','))\n      cov = ' --cov openhtf ' + outputs\n\n    sys.argv = [sys.argv[0]]\n    print('invoking pytest.main with %s' % (self.pytest_args + cov))\n    sys.exit(pytest.main(self.pytest_args + cov))\n\n\nsetup(\n    name='openhtf',\n    version='1.2.0',\n    description='OpenHTF, the open hardware testing framework.',\n    author='John Hawley',\n    author_email='madsci@google.com',\n    maintainer='Joe Ethier',\n    maintainer_email='jethier@google.com',\n    packages=find_packages(exclude='examples'),\n    package_data={'openhtf': ['output/web_gui/prebuilt/**/*.*',\n                              'output/web_gui/prebuilt/*.*']},\n    cmdclass={\n        'build_proto': BuildProtoCommand,\n        'clean': CleanCommand,\n        'test': PyTestCommand,\n    },\n    install_requires=INSTALL_REQUIRES,\n    extras_require={\n        'usb_plugs': [\n            'libusb1>=1.3.0,<2.0',\n            'M2Crypto>=0.22.3,<1.0',\n        ],\n        'update_units': [\n            'xlrd>=1.0.0,<2.0',\n        ],\n    },\n    setup_requires=[\n        'wheel>=0.29.0,<1.0',\n    ],\n    tests_require=[\n        'mock>=2.0.0',\n        'pytest>=2.9.2',\n        'pytest-cov>=2.2.1',\n    ],\n)\n", "path": "setup.py"}], "after_files": [{"content": "# Copyright 2014 Google Inc. All Rights Reserved.\n\n# Licensed under the Apache License, Version 2.0 (the \"License\");\n# you may not use this file except in compliance with the License.\n# You may obtain a copy of the License at\n\n#     http://www.apache.org/licenses/LICENSE-2.0\n\n# Unless required by applicable law or agreed to in writing, software\n# distributed under the License is distributed on an \"AS IS\" BASIS,\n# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n# See the License for the specific language governing permissions and\n# limitations under the License.\n\"\"\"Setup script for OpenHTF.\"\"\"\n\nimport errno\nimport glob\nimport os\nimport platform\nimport subprocess\nimport sys\n\nfrom distutils.command.build import build\nfrom distutils.command.clean import clean\nfrom distutils.cmd import Command\nfrom setuptools import find_packages\nfrom setuptools import setup\nfrom setuptools.command.test import test\n\n\nclass CleanCommand(clean):\n  \"\"\"Custom logic for the clean command.\"\"\"\n\n  def run(self):\n    clean.run(self)\n    targets = [\n        './dist',\n        './*.egg-info',\n        './openhtf/output/proto/*_pb2.py',\n        './openhtf/**/*.pyc',\n    ]\n    os.system('shopt -s globstar; rm -vrf %s' % ' '.join(targets))\n\n\nclass BuildProtoCommand(Command):\n  \"\"\"Custom setup command to build protocol buffers.\"\"\"\n  description = 'Builds the proto files into python files.'\n  user_options = [('protoc=', None, 'Path to the protoc compiler.'),\n                  ('protodir=', None, 'Path to protobuf install.'),\n                  ('indir=', 'i', 'Directory containing input .proto files.'),\n                  ('outdir=', 'o', 'Where to output .py files.')]\n\n  def initialize_options(self):\n    self.skip_proto = False\n    try:\n      prefix = subprocess.check_output(\n          'pkg-config --variable prefix protobuf'.split()).strip().decode('utf-8')\n    except (subprocess.CalledProcessError, OSError):\n      if platform.system() == 'Linux':\n        # Default to /usr?\n        prefix = '/usr'\n      elif platform.system() in ['Mac', 'Darwin']:\n        # Default to /usr/local for Homebrew\n        prefix = '/usr/local'\n      else:\n        print('Warning: mfg-inspector output is not fully implemented for '\n              'Windows. OpenHTF will be installed without it.')\n        self.skip_proto = True\n\n    maybe_protoc = os.path.join(prefix, 'bin', 'protoc')\n    if os.path.isfile(maybe_protoc) and os.access(maybe_protoc, os.X_OK):\n        self.protoc = maybe_protoc\n    else:\n        print('Warning: protoc not found at %s' % maybe_protoc)\n        print('setup will attempt to run protoc with no prefix.')\n        self.protoc = 'protoc'\n\n    self.protodir = os.path.join(prefix, 'include')\n    self.indir = os.getcwd()\n    self.outdir = os.getcwd()\n\n  def finalize_options(self):\n    pass\n\n  def run(self):\n    if self.skip_proto:\n      print('Skipping building protocol buffers.')\n      return\n\n    # Build regular proto files.\n    protos = glob.glob(\n        os.path.join(self.indir, 'openhtf', 'output', 'proto', '*.proto'))\n\n    if protos:\n      print('Attempting to build proto files:\\n%s' % '\\n'.join(protos))\n      cmd = [\n          self.protoc,\n          '--proto_path', self.indir,\n          '--proto_path', self.protodir,\n          '--python_out', self.outdir,\n      ] + protos\n      try:\n        subprocess.check_call(cmd)\n      except OSError as e:\n        if e.errno == errno.ENOENT:\n          print('Could not find the protobuf compiler at \\'%s\\'' % self.protoc)\n          if sys.platform.startswith('linux'):\n            print('On many Linux systems, this is fixed by installing the '\n                  '\"protobuf-compiler\" and \"libprotobuf-dev\" packages.')\n          elif sys.platform == 'darwin':\n            print('On Mac, protobuf is often installed via homebrew.')\n        raise\n      except subprocess.CalledProcessError:\n        print('Could not build proto files.')\n        print('This could be due to missing helper files. On many Linux '\n              'systems, this is fixed by installing the '\n              '\"libprotobuf-dev\" package.')\n        raise\n    else:\n      print('Found no proto files to build.')\n\n\n# Make building protos part of building overall.\nbuild.sub_commands.insert(0, ('build_proto', None))\n\n\nINSTALL_REQUIRES = [\n    'contextlib2>=0.5.1,<1.0',\n    'future>=0.16.0',\n    'mutablerecords>=0.4.1,<2.0',\n    'oauth2client>=1.5.2,<2.0',\n    'protobuf>=3.0.0,<4.0',\n    'pyaml>=15.3.1,<16.0',\n    'pyOpenSSL>=17.1.0,<18.0',\n    'sockjs-tornado>=1.0.3,<2.0',\n    'tornado>=4.3,<5.0',\n]\n# Not all versions of setuptools support semicolon syntax for specifying\n# platform-specific dependencies, so we do it the old school way.\nif sys.version_info < (3,4):\n  INSTALL_REQUIRES.append('enum34>=1.1.2,<2.0')\n\n\n\nclass PyTestCommand(test):\n  # Derived from\n  # https://github.com/chainreactionmfg/cara/blob/master/setup.py\n  user_options = [\n      ('pytest-args=', None, 'Arguments to pass to py.test'),\n      ('pytest-cov=', None, 'Enable coverage. Choose output type: '\n       'term, html, xml, annotate, or multiple with comma separation'),\n  ]\n\n  def initialize_options(self):\n    test.initialize_options(self)\n    self.pytest_args = 'test'\n    self.pytest_cov = None\n\n  def finalize_options(self):\n    test.finalize_options(self)\n    self.test_args = []\n    self.test_suite = True\n\n  def run_tests(self):\n    self.run_command('build_proto')\n\n    import pytest\n    cov = ''\n    if self.pytest_cov is not None:\n      outputs = ' '.join('--cov-report %s' % output\n                         for output in self.pytest_cov.split(','))\n      cov = ' --cov openhtf ' + outputs\n\n    sys.argv = [sys.argv[0]]\n    print('invoking pytest.main with %s' % (self.pytest_args + cov))\n    sys.exit(pytest.main(self.pytest_args + cov))\n\n\nsetup(\n    name='openhtf',\n    version='1.2.1',\n    description='OpenHTF, the open hardware testing framework.',\n    author='John Hawley',\n    author_email='madsci@google.com',\n    maintainer='Joe Ethier',\n    maintainer_email='jethier@google.com',\n    packages=find_packages(exclude='examples'),\n    package_data={'openhtf': ['output/web_gui/prebuilt/**/*.*',\n                              'output/web_gui/prebuilt/*.*']},\n    cmdclass={\n        'build_proto': BuildProtoCommand,\n        'clean': CleanCommand,\n        'test': PyTestCommand,\n    },\n    install_requires=INSTALL_REQUIRES,\n    extras_require={\n        'usb_plugs': [\n            'libusb1>=1.3.0,<2.0',\n            'M2Crypto>=0.22.3,<1.0',\n        ],\n        'update_units': [\n            'xlrd>=1.0.0,<2.0',\n        ],\n    },\n    setup_requires=[\n        'wheel>=0.29.0,<1.0',\n    ],\n    tests_require=[\n        'mock>=2.0.0',\n        'pytest>=2.9.2',\n        'pytest-cov>=2.2.1',\n    ],\n)\n", "path": "setup.py"}]}