forked from mirrors/gecko-dev
		
	Using ./mach vendor python glean_parser==1.28.0 (this is the latest version) Differential Revision: https://phabricator.services.mozilla.com/D84746
		
			
				
	
	
		
			81 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			81 lines
		
	
	
	
		
			2.8 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
import os
 | 
						|
from setuptools import setup, Extension
 | 
						|
import sys
 | 
						|
import platform
 | 
						|
import warnings
 | 
						|
import codecs
 | 
						|
from distutils.command.build_ext import build_ext
 | 
						|
from distutils.errors import CCompilerError
 | 
						|
from distutils.errors import DistutilsPlatformError, DistutilsExecError
 | 
						|
from _pyrsistent_version import __version__
 | 
						|
 | 
						|
readme_path = os.path.join(os.path.dirname(__file__), 'README.rst')
 | 
						|
with codecs.open(readme_path, encoding='utf8') as f:
 | 
						|
    readme = f.read()
 | 
						|
 | 
						|
extensions = []
 | 
						|
if platform.python_implementation() == 'CPython':
 | 
						|
    extensions = [Extension('pvectorc', sources=['pvectorcmodule.c'])]
 | 
						|
 | 
						|
needs_pytest = {'pytest', 'test', 'ptr'}.intersection(sys.argv)
 | 
						|
pytest_runner = ['pytest-runner'] if needs_pytest else []
 | 
						|
 | 
						|
 | 
						|
class custom_build_ext(build_ext):
 | 
						|
    """Allow C extension building to fail."""
 | 
						|
 | 
						|
    warning_message = """
 | 
						|
********************************************************************************
 | 
						|
WARNING: Could not build the %s.
 | 
						|
         Pyrsistent will still work but performance may be degraded.
 | 
						|
         %s
 | 
						|
********************************************************************************
 | 
						|
"""
 | 
						|
 | 
						|
    def run(self):
 | 
						|
        try:
 | 
						|
            build_ext.run(self)
 | 
						|
        except Exception:
 | 
						|
            e = sys.exc_info()[1]
 | 
						|
            sys.stderr.write('%s\n' % str(e))
 | 
						|
            sys.stderr.write(self.warning_message % ("extension modules", "There was an issue with your platform configuration - see above."))
 | 
						|
 | 
						|
    def build_extension(self, ext):
 | 
						|
        name = ext.name
 | 
						|
        try:
 | 
						|
            build_ext.build_extension(self, ext)
 | 
						|
        except Exception:
 | 
						|
            e = sys.exc_info()[1]
 | 
						|
            sys.stderr.write('%s\n' % str(e))
 | 
						|
            sys.stderr.write(self.warning_message % ("%s extension module" % name, "The output above this warning shows how the compilation failed."))
 | 
						|
 | 
						|
setup(
 | 
						|
    name='pyrsistent',
 | 
						|
    version=__version__,
 | 
						|
    description='Persistent/Functional/Immutable data structures',
 | 
						|
    long_description=readme,
 | 
						|
    author='Tobias Gustafsson',
 | 
						|
    author_email='tobias.l.gustafsson@gmail.com',
 | 
						|
    url='http://github.com/tobgu/pyrsistent/',
 | 
						|
    license='MIT',
 | 
						|
    license_files=['LICENCE.mit'],
 | 
						|
    py_modules=['_pyrsistent_version'],
 | 
						|
    classifiers=[
 | 
						|
        'Intended Audience :: Developers',
 | 
						|
        'License :: OSI Approved :: MIT License',
 | 
						|
        'Operating System :: OS Independent',
 | 
						|
        'Programming Language :: Python :: 3.5',
 | 
						|
        'Programming Language :: Python :: 3.6',
 | 
						|
        'Programming Language :: Python :: 3.7',
 | 
						|
        'Programming Language :: Python :: Implementation :: PyPy',
 | 
						|
    ],
 | 
						|
    test_suite='tests',
 | 
						|
    tests_require=['pytest<5', 'hypothesis<5'],
 | 
						|
    scripts=[],
 | 
						|
    setup_requires=pytest_runner,
 | 
						|
    ext_modules=extensions,
 | 
						|
    cmdclass={'build_ext': custom_build_ext},
 | 
						|
    install_requires=['six'],
 | 
						|
    packages=['pyrsistent'],
 | 
						|
    package_data={'pyrsistent': ['py.typed', '__init__.pyi', 'typing.pyi']},
 | 
						|
)
 |