-
Notifications
You must be signed in to change notification settings - Fork 27
/
setup.py
90 lines (75 loc) · 2.47 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# -*- coding: utf-8 -*-
"""Setup script for pywinpty."""
# yapf: disable
# Standard library imports
import ast
import os
# Third party imports
from setuptools import Extension, find_packages, setup
# yapf: enable
HERE = os.path.abspath(os.path.dirname(__file__))
def get_version(module='winpty'):
"""Get version from text file and avoids importing the module."""
with open(os.path.join(HERE, module, '__init__.py'), 'r') as f:
data = f.read()
lines = data.split('\n')
for line in lines:
if line.startswith('VERSION_INFO'):
version_tuple = ast.literal_eval(line.split('=')[-1].strip())
version = '.'.join(map(str, version_tuple))
break
return version
try:
include_dirs = [os.environ['LIBRARY_INC']]
except KeyError:
include_dirs = []
try:
library_dirs = [os.environ['LIBRARY_LIB']]
except KeyError:
library_dirs = []
ext_options = {}
cythonize_options = {}
if os.environ.get('CYTHON_COVERAGE'):
cythonize_options['compiler_directives'] = {'linetrace': True}
cythonize_options['annotate'] = True
ext_options['define_macros'] = [
('CYTHON_TRACE', '1'), ('CYTHON_TRACE_NOGIL', '1')
]
try:
from Cython.Build import cythonize
ext_modules = cythonize([
Extension(
"winpty.cywinpty",
sources=["winpty/cywinpty.pyx"],
libraries=["winpty"],
include_dirs=include_dirs,
library_dirs=library_dirs,
**ext_options
)],
**cythonize_options
)
except ImportError:
ext_modules = []
setup(
name='pywinpty',
version=get_version(),
keywords=['winpty', 'pty', 'pseudoterminal', 'pseudotty'],
url='https://github.com/spyder-ide/pywinpty',
license='MIT',
author='Edgar Andrés Margffoy-Tuay',
author_email='[email protected]',
description='Python bindings for the winpty library',
ext_modules=ext_modules,
packages=find_packages(exclude=['contrib', 'docs', 'tests*']),
setup_requires=['Cython'],
package_data=dict(winpty=['*.pyd', '*.dll', '*.exe']),
install_requires=['backports.shutil_which;python_version<"3.0"'],
classifiers=[
'Development Status :: 4 - Beta', 'Intended Audience :: Developers',
'License :: OSI Approved :: MIT License',
'Operating System :: Microsoft :: Windows',
'Programming Language :: Python :: 2.7',
'Programming Language :: Python :: 3.5',
'Programming Language :: Python :: 3.6'
]
)