Files
python-gpiozero/setup.py
Dave Jones 759a6a58e6 Fix #140, fix #69, fix #185
This PR adds a software SPI implementation. Firstly this removes the
absolute necessity for spidev (#140), which also means when it's not
present things still work (effectively fixes #185), and also enables any
four pins to be used for SPI devices (which don't require the hardware
implementation).

The software implementation is simplistic but still supports clock
polarity and phase, select-high, and variable bits per word. However it
doesn't allow precise speeds to be implemented because it just wibbles
the clock as fast as it can (which being pure Python isn't actually that
fast).

Finally, because this PR involves creating a framework for "shared"
devices (like SPI devices with multiple channels), it made sense to bung
Energenie (#69) in as wells as this is a really simple shared device.
2016-04-01 12:57:17 +01:00

96 lines
2.7 KiB
Python

import os
import sys
from setuptools import setup, find_packages
"A simple interface to everyday GPIO components used 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.1.0'
__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 :: 3",
]
__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__ = {
}
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()