mirror of
				https://github.com/KevinMidboe/python-gpiozero.git
				synced 2025-10-29 17:50:37 +00:00 
			
		
		
		
	The real pin tests were broken by the new factory stuff. This commit fixes them up, and fixes up a few other bits besides (like why the pigpio PWM tests were failing, why RPi.GPIO sometimes segfaulted on PWM tests, etc.) It also causes the real pin tests to run against MockPin (thanks to @lurch for the suggestion!). This required some tweaks to MockPin to make it emulate physically pulled up pins itself (which in turn necessitated changing quite a few pin numbers in the main test suite because we were using 2 and 3 everywhere), and to allow one MockPin to drive another. Anyway, everything's working now including all the tests on a Pi (haven't tried RPIO yet, but only because I'm on a Pi3 - everything else works with overall coverage of 88% :).
		
			
				
	
	
		
			118 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| import os
 | |
| import sys
 | |
| from setuptools import setup, find_packages
 | |
| 
 | |
| "A simple interface to GPIO devices with Raspberry Pi."
 | |
| 
 | |
| 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.3.2'
 | |
| __author__       = 'Ben Nuttall'
 | |
| __author_email__ = 'ben@raspberrypi.org'
 | |
| __url__          = 'https://github.com/RPi-Distro/python-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 :: Implementation :: PyPy",
 | |
| ]
 | |
| 
 | |
| __keywords__ = [
 | |
|     'raspberrypi',
 | |
|     'gpio',
 | |
| ]
 | |
| 
 | |
| __requires__ = [
 | |
| ]
 | |
| 
 | |
| __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'][1] = 'coverage<4.0dev'
 | |
| 
 | |
| __entry_points__ = {
 | |
|     'gpiozero_pin_factories': [
 | |
|         'pigpio  = gpiozero.pins.pigpiod:PiGPIOFactory',
 | |
|         'rpigpio = gpiozero.pins.rpigpio:RPiGPIOFactory',
 | |
|         'rpio    = gpiozero.pins.rpio:RPIOFactory',
 | |
|         'native  = gpiozero.pins.native:NativeFactory',
 | |
|         'mock    = gpiozero.pins.mock:MockFactory',
 | |
|     ],
 | |
|     '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 = gpiozero.cli.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()
 |