12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- # Copyright 2017 Google Inc. All Rights Reserved.
- #
- # Licensed under the Apache License, Version 2.0 (the "License");
- # you may not use this file except in compliance with the License.
- # You may obtain a copy of the License at
- #
- # http://www.apache.org/licenses/LICENSE-2.0
- #
- # Unless required by applicable law or agreed to in writing, software
- # distributed under the License is distributed on an "AS IS" BASIS,
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- # See the License for the specific language governing permissions and
- # limitations under the License.
- # ==============================================================================
- """Packaging for SyntaxNet."""
- from __future__ import absolute_import
- from __future__ import division
- from __future__ import print_function
- import os
- import setuptools
- import setuptools.dist
- include_tensorflow = os.path.isdir('tensorflow')
- source_roots = ['dragnn', 'syntaxnet'] + (['tensorflow']
- if include_tensorflow else [])
- def data_files():
- """Return all non-Python files in the source directories."""
- for root in source_roots:
- for path, _, files in os.walk(root):
- for filename in files:
- if not (filename.endswith('.py') or filename.endswith('.pyc')):
- yield os.path.join(path, filename)
- class BinaryDistribution(setuptools.dist.Distribution):
- """Copied from TensorFlow's setup script: sets has_ext_modules=True.
- Distributions of SyntaxNet include shared object files, which are not
- cross-platform.
- """
- def has_ext_modules(self):
- return True
- with open('MANIFEST.in', 'w') as f:
- f.write(''.join('include {}\n'.format(filename) for filename in data_files()))
- setuptools.setup(
- name=('syntaxnet_with_tensorflow' if include_tensorflow else 'syntaxnet'),
- version='0.2',
- description='SyntaxNet: Neural Models of Syntax',
- long_description='',
- url='https://github.com/tensorflow/models/tree/master/syntaxnet',
- author='Google Inc.',
- author_email='opensource@google.com',
- # Contained modules and scripts.
- packages=setuptools.find_packages(),
- install_requires=([] if include_tensorflow else ['tensorflow']) +
- ['pygraphviz'],
- # Add in any packaged data. This uses "MANIFEST.in", which seems to be the
- # more reliable way of packaging wheel data.
- include_package_data=True,
- zip_safe=False,
- distclass=BinaryDistribution,
- # PyPI package information.
- classifiers=[
- 'Intended Audience :: Developers',
- 'Intended Audience :: Education',
- 'Intended Audience :: Science/Research',
- 'License :: OSI Approved :: Apache Software License',
- 'Programming Language :: Python :: 2.7',
- 'Topic :: Scientific/Engineering :: Mathematics',
- ],
- license='Apache 2.0',
- keywords='syntaxnet machine learning',)
|