You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

setup.py 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. #!/usr/bin/env python
  2. # Copyright (C) 2018 Carlos Reding <rc_reding@teknik.io>
  3. #
  4. # Permission is hereby granted, free of charge, to any person obtaining
  5. # a copy of this software and associated documentation files (the
  6. # "Software"), to deal in the Software without restriction, including
  7. # without limitation the rights to use, copy, modify, merge, publish,
  8. # distribute, sublicense, and/or sell copies of the Software, and to
  9. # permit persons to whom the Software is furnished to do so, subject to
  10. # the following conditions:
  11. #
  12. # The above copyright notice and this permission notice shall be
  13. # included in all copies or substantial portions of the Software.
  14. #
  15. # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
  16. # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
  17. # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
  18. # NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSORTIUM BE LIABLE FOR ANY
  19. # CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
  20. # TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
  21. # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
  22. #
  23. # Except as contained in this notice, the name(s) of the above copyright
  24. # holders shall not be used in advertising or otherwise to promote the sale,
  25. # use or other dealings in this Software without prior written authorization.
  26. """Library to control a light modulator (LiMO) instrument."""
  27. import os
  28. import sys
  29. from setuptools import setup, find_packages
  30. if sys.version_info[0] == 2:
  31. raise ValueError('This package requires Python 3.4 or above')
  32. elif sys.version_info[0] == 3:
  33. if not sys.version_info >= (3, 4):
  34. raise ValueError('This package requires Python 3.4 or above')
  35. else:
  36. raise ValueError('Unrecognized major version of Python')
  37. HERE = os.path.abspath(os.path.dirname(__file__))
  38. # Workaround <http://www.eby-sarna.com/pipermail/peak/2010-May/003357.html>
  39. try:
  40. import multiprocessing
  41. except ImportError:
  42. pass
  43. __project__ = 'limoControl'
  44. __version__ = '1.0rc1'
  45. __author__ = 'Carlos Reding'
  46. __author_email__ = 'rc_reding@teknik.io'
  47. __url__ = 'https://git.teknik.io/rc_reding/limo-dev'
  48. __platform__ = 'Linux'
  49. __description__ = ''
  50. __classifiers__ = [
  51. "Development Status :: 5 - Production/Stable",
  52. "Environment :: Console",
  53. "Intended Audience :: Education",
  54. "Intended Audience :: Science/Research",
  55. "License :: OSI Approved :: GNU Lesser General Public License v2 (LGPLv2)",
  56. "Programming Language :: Python :: 3",
  57. 'Topic :: Adaptive Technologies',
  58. ]
  59. __keywords__ = [
  60. # 'raspberrypi',
  61. # 'camera',
  62. ]
  63. __requires__ = [
  64. 'netifaces',
  65. 'numpy',
  66. 'scipy',
  67. 'pigpio',
  68. 'w1thermsensor',
  69. 'picamera',
  70. # 'opencv-python>=3.1', # FIXME: Issues in RPi as opencv is self-compiled.
  71. ]
  72. __extra_requires__ = {
  73. }
  74. __entry_points__ = {
  75. 'console_scripts': [ 'srv_controller=limoControl._controller:main'],
  76. }
  77. def main():
  78. import io
  79. with io.open(os.path.join(HERE, 'README.md'), 'r') as readme:
  80. setup(
  81. name = __project__,
  82. version = __version__,
  83. description = __doc__,
  84. long_description = readme.read(),
  85. long_description_content_type = 'text/Markdown',
  86. classifiers = __classifiers__,
  87. author = __author__,
  88. author_email = __author_email__,
  89. url = __url__,
  90. platforms = __platform__,
  91. license = [
  92. c.rsplit('::', 1)[1].strip()
  93. for c in __classifiers__
  94. if c.startswith('License ::')
  95. ][0],
  96. keywords = __keywords__,
  97. packages = find_packages(),
  98. install_requires = __requires__,
  99. extras_require = __extra_requires__,
  100. entry_points = __entry_points__,
  101. )
  102. if __name__ == '__main__':
  103. main()