forked from gpiozero/gpiozero
-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup.py
143 lines (127 loc) · 4.67 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
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
"A simple interface to GPIO devices with Raspberry Pi."
import io
import os
import sys
import errno
from setuptools import setup, find_packages
if sys.version_info[0] == 2:
if not sys.version_info >= (2, 7):
raise ValueError('This package requires Python 2.7 or above')
elif sys.version_info[0] == 3:
if not sys.version_info >= (3, 2):
raise ValueError('This package requires Python 3.2 or above')
else:
raise ValueError('Unrecognized major version of Python')
HERE = os.path.abspath(os.path.dirname(__file__))
# Workaround <http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html>
try:
import multiprocessing
except ImportError:
pass
__project__ = 'gpiozero'
__version__ = '1.5.1'
__author__ = 'Ben Nuttall'
__author_email__ = '[email protected]'
__url__ = 'https://github.com/gpiozero/gpiozero'
__platforms__ = 'ALL'
__classifiers__ = [
"Development Status :: 5 - Production/Stable",
"Intended Audience :: Education",
"Intended Audience :: Developers",
"Topic :: Education",
"Topic :: System :: Hardware",
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 2",
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.2",
"Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: Implementation :: PyPy",
]
__keywords__ = [
'raspberrypi',
'gpio',
]
__requires__ = [
'colorzero',
]
__extra_requires__ = {
'doc': ['sphinx'],
'test': ['pytest', 'coverage', 'mock'],
}
if sys.version_info[:2] == (3, 2):
# Particular versions are required for Python 3.2 compatibility
__extra_requires__['doc'].extend([
'Jinja2<2.7',
'MarkupSafe<0.16',
])
__extra_requires__['test'][0] = 'pytest<3.0dev'
__extra_requires__['test'][1] = 'coverage<4.0dev'
elif sys.version_info[:2] == (3, 3):
__extra_requires__['test'][0] = 'pytest<3.3dev'
elif sys.version_info[:2] == (3, 4):
__extra_requires__['test'][0] = 'pytest<5.0dev'
try:
# If we're executing on a Raspberry Pi, install all GPIO libraries for
# testing (except RPIO which doesn't work on the multi-core models yet)
with io.open('/proc/device-tree/model', 'r') as f:
if f.read().startswith('Raspberry Pi'):
__extra_requires__['test'].append('RPi.GPIO')
__extra_requires__['test'].append('pigpio')
except IOError as e:
if e.errno != errno.ENOENT:
raise
__entry_points__ = {
'gpiozero_pin_factories': [
'pigpio = gpiozero.pins.pigpio:PiGPIOFactory',
'rpigpio = gpiozero.pins.rpigpio:RPiGPIOFactory',
'rpio = gpiozero.pins.rpio:RPIOFactory',
'native = gpiozero.pins.native:NativeFactory',
'mock = gpiozero.pins.mock:MockFactory',
# Backwards compatible names
'PiGPIOPin = gpiozero.pins.pigpio:PiGPIOFactory',
'RPiGPIOPin = gpiozero.pins.rpigpio:RPiGPIOFactory',
'RPIOPin = gpiozero.pins.rpio:RPIOFactory',
'NativePin = gpiozero.pins.native:NativeFactory',
],
'gpiozero_mock_pin_classes': [
'mockpin = gpiozero.pins.mock:MockPin',
'mockpwmpin = gpiozero.pins.mock:MockPWMPin',
'mockchargingpin = gpiozero.pins.mock:MockChargingPin',
'mocktriggerpin = gpiozero.pins.mock:MockTriggerPin',
],
'console_scripts': [
'pinout = gpiozerocli.pinout:main',
]
}
def main():
import io
with io.open(os.path.join(HERE, 'README.rst'), 'r') as readme:
setup(
name = __project__,
version = __version__,
description = __doc__,
long_description = readme.read(),
classifiers = __classifiers__,
author = __author__,
author_email = __author_email__,
url = __url__,
license = [
c.rsplit('::', 1)[1].strip()
for c in __classifiers__
if c.startswith('License ::')
][0],
keywords = __keywords__,
packages = find_packages(),
include_package_data = True,
platforms = __platforms__,
install_requires = __requires__,
extras_require = __extra_requires__,
entry_points = __entry_points__,
)
if __name__ == '__main__':
main()