diff options
Diffstat (limited to 'python/pyasn1/setup.py')
-rw-r--r-- | python/pyasn1/setup.py | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/python/pyasn1/setup.py b/python/pyasn1/setup.py new file mode 100644 index 000000000..194f0c8ca --- /dev/null +++ b/python/pyasn1/setup.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python +"""ASN.1 types and codecs + + A pure-Python implementation of ASN.1 types and DER/BER/CER codecs (X.208). +""" + +import os +import sys + +classifiers = """\ +Development Status :: 5 - Production/Stable +Environment :: Console +Intended Audience :: Developers +Intended Audience :: Education +Intended Audience :: Information Technology +Intended Audience :: Science/Research +Intended Audience :: System Administrators +Intended Audience :: Telecommunications Industry +License :: OSI Approved :: BSD License +Natural Language :: English +Operating System :: OS Independent +Programming Language :: Python :: 2 +Programming Language :: Python :: 3 +Topic :: Communications +Topic :: Security :: Cryptography +Topic :: Software Development :: Libraries :: Python Modules +""" + +def howto_install_distribute(): + print(""" + Error: You need the distribute Python package! + + It's very easy to install it, just type (as root on Linux): + + wget http://python-distribute.org/distribute_setup.py + python distribute_setup.py + + Then you could make eggs from this package. +""") + +def howto_install_setuptools(): + print(""" + Error: You need setuptools Python package! + + It's very easy to install it, just type (as root on Linux): + + wget http://peak.telecommunity.com/dist/ez_setup.py + python ez_setup.py + + Then you could make eggs from this package. +""") + +try: + from setuptools import setup, Command + params = { + 'zip_safe': True + } +except ImportError: + for arg in sys.argv: + if arg.find('egg') != -1: + if sys.version_info[0] > 2: + howto_install_distribute() + else: + howto_install_setuptools() + sys.exit(1) + from distutils.core import setup, Command + params = {} + +doclines = [ x.strip() for x in __doc__.split('\n') if x ] + +params.update( { + 'name': 'pyasn1', + 'version': open(os.path.join('pyasn1','__init__.py')).read().split('\'')[1], + 'description': doclines[0], + 'long_description': ' '.join(doclines[1:]), + 'maintainer': 'Ilya Etingof <ilya@glas.net>', + 'author': 'Ilya Etingof', + 'author_email': 'ilya@glas.net', + 'url': 'http://sourceforge.net/projects/pyasn1/', + 'platforms': ['any'], + 'classifiers': [ x for x in classifiers.split('\n') if x ], + 'license': 'BSD', + 'packages': [ 'pyasn1', + 'pyasn1.type', + 'pyasn1.compat', + 'pyasn1.codec', + 'pyasn1.codec.ber', + 'pyasn1.codec.cer', + 'pyasn1.codec.der' ] +} ) + +# handle unittest discovery feature +if sys.version_info[0:2] < (2, 7) or \ + sys.version_info[0:2] in ( (3, 0), (3, 1) ): + try: + import unittest2 as unittest + except ImportError: + unittest = None +else: + import unittest + +if unittest: + class PyTest(Command): + user_options = [] + + def initialize_options(self): pass + def finalize_options(self): pass + + def run(self): + suite = unittest.defaultTestLoader.discover('.') + unittest.TextTestRunner(verbosity=2).run(suite) + + params['cmdclass'] = { 'test': PyTest } + +setup(**params) |