| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- #!/usr/bin/env python
- # coding: utf-8
- import os
- from setuptools import setup
- import compiler
- with open('requirements.txt') as requirements:
- requires = [line.strip() for line in requirements if line.strip()]
- path = os.path.dirname(__file__)
- desc_fd = os.path.join(path, 'README.rst')
- hist_fd = os.path.join(path, 'HISTORY.rst')
- long_desc = ''
- short_desc = 'A Kerberos authentication handler for python-requests'
- if os.path.isfile(desc_fd):
- long_desc = open(desc_fd).read()
- if os.path.isfile(hist_fd):
- long_desc = '\n\n'.join([long_desc, open(hist_fd).read()])
- # It seems like per the requests module, we'd like to get the version
- # from __init__.py however, __init__.py will import the kerberos
- # module. The kerberos module may not be installed - and when it's
- # not, it's pulled in by the requirements.txt. When it's being
- # installed, however, this setup.py is evaluated before the
- # kerberos.so module is built and installed, and this bombs.
- #
- # To fix this, we can use the compiler module to parse __init__.py,
- # and as long as __version__ is defined as a constant so that we
- # don't have to evaluate it to get the value, we can do some dubious
- # groping arond the AST and get the version from that
- parsed = compiler.parseFile('requests_kerberos/__init__.py')
- for n in parsed.getChildNodes()[0]:
- if 'nodes' in dir(n):
- if n.nodes[0].name == '__version__':
- my_version = n.expr.value
-
- setup(
- name='requests-kerberos',
- description=short_desc,
- long_description=long_desc,
- url='https://github.com/requests/requests-kerberos',
- packages=['requests_kerberos'],
- package_data={'': ['LICENSE', 'AUTHORS']},
- include_package_data=True,
- version = my_version,
- install_requires=requires,
- )
|