No Description

setup.py 8.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. #!/usr/bin/env python3
  2. # setup.py
  3. #
  4. # Copyright 2018 Jonathan Golder <jonathan@golderweb.de>
  5. #
  6. # This program is free software; you can redistribute it and/or modify
  7. # it under the terms of the GNU General Public License as published by
  8. # the Free Software Foundation; either version 2 of the License, or
  9. # (at your option) any later version.
  10. #
  11. # This program is distributed in the hope that it will be useful,
  12. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  13. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  14. # GNU General Public License for more details.
  15. #
  16. # You should have received a copy of the GNU General Public License
  17. # along with this program; if not, write to the Free Software
  18. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
  19. # MA 02110-1301, USA.
  20. #
  21. #
  22. """
  23. JogoBot
  24. This python module contains code shared between several [Pywikibot](https://www.mediawiki.org/wiki/Manual:Pywikibot)
  25. based projects of [User:JogoBot](https://de.wikipedia.org/wiki/Benutzer:JogoBot) on the
  26. [German Wikipedia](https://de.wikipedia.org/wiki/Wikipedia:Hauptseite).
  27. """
  28. # Always prefer setuptools over distutils
  29. from setuptools import setup, find_packages
  30. from os import path
  31. # io.open is needed for projects that support Python 2.7
  32. # It ensures open() defaults to text mode with universal newlines,
  33. # and accepts an argument to specify the text encoding
  34. # Python 3 only projects can skip this import
  35. from io import open
  36. here = path.abspath(path.dirname(__file__))
  37. # Get the long description from the README file
  38. with open(path.join(here, 'README.md'), encoding='utf-8') as f:
  39. long_description = f.read()
  40. # Arguments marked as "Required" below must be included for upload to PyPI.
  41. # Fields marked as "Optional" may be commented out.
  42. setup(
  43. # This is the name of your project. The first time you publish this
  44. # package, this name will be registered for you. It will determine how
  45. # users can install this project, e.g.:
  46. #
  47. # $ pip install sampleproject
  48. #
  49. # And where it will live on PyPI: https://pypi.org/project/sampleproject/
  50. #
  51. # There are some restrictions on what makes a valid project name
  52. # specification here:
  53. # https://packaging.python.org/specifications/core-metadata/#name
  54. name='jogobot', # Required
  55. # Versions should comply with PEP 440:
  56. # https://www.python.org/dev/peps/pep-0440/
  57. #
  58. # For a discussion on single-sourcing the version across setup.py and the
  59. # project code, see
  60. # https://packaging.python.org/en/latest/single_source_version.html
  61. version='0.2', # Required
  62. # This is a one-line description or tagline of what your project does. This
  63. # corresponds to the "Summary" metadata field:
  64. # https://packaging.python.org/specifications/core-metadata/#summary
  65. description='Shared code for jogobot', # Optional
  66. # This is an optional longer description of your project that represents
  67. # the body of text which users will see when they visit PyPI.
  68. #
  69. # Often, this is the same as your README, so you can just read it in from
  70. # that file directly (as we have already done above)
  71. #
  72. # This field corresponds to the "Description" metadata field:
  73. # https://packaging.python.org/specifications/core-metadata/#description-optional
  74. long_description=long_description, # Optional
  75. # Denotes that our long_description is in Markdown; valid values are
  76. # text/plain, text/x-rst, and text/markdown
  77. #
  78. # Optional if long_description is written in reStructuredText (rst) but
  79. # required for plain-text or Markdown; if unspecified, "applications should
  80. # attempt to render [the long_description] as text/x-rst; charset=UTF-8 and
  81. # fall back to text/plain if it is not valid rst" (see link below)
  82. #
  83. # This field corresponds to the "Description-Content-Type" metadata field:
  84. # https://packaging.python.org/specifications/core-metadata/#description-content-type-optional
  85. long_description_content_type='text/markdown', # Optional (see note above)
  86. # This should be a valid link to your project's main homepage.
  87. #
  88. # This field corresponds to the "Home-Page" metadata field:
  89. # https://packaging.python.org/specifications/core-metadata/#home-page-optional
  90. url='https://git.golderweb.de/wiki/jogobot', # Optional
  91. # This should be your name or the name of the organization which owns the
  92. # project.
  93. author='Jonathan Golder', # Optional
  94. # This should be a valid email address corresponding to the author listed
  95. # above.
  96. author_email='jonathan@golderweb.de', # Optional
  97. # Classifiers help users find your project by categorizing it.
  98. #
  99. # For a list of valid classifiers, see https://pypi.org/classifiers/
  100. classifiers=[ # Optional
  101. # How mature is this project? Common values are
  102. # 3 - Alpha
  103. # 4 - Beta
  104. # 5 - Production/Stable
  105. 'Development Status :: 4 - Beta',
  106. # Indicate who your project is intended for
  107. 'Intended Audience :: Developers',
  108. 'Topic :: Software Development :: Libraries :: Python Module',
  109. # Pick your license as you wish
  110. 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)',
  111. # Specify the Python versions you support here. In particular, ensure
  112. # that you indicate whether you support Python 2, Python 3 or both.
  113. 'Programming Language :: Python :: 3',
  114. 'Programming Language :: Python :: 3.4',
  115. 'Programming Language :: Python :: 3.5',
  116. 'Programming Language :: Python :: 3.6',
  117. 'Programming Language :: Python :: 3.7'
  118. ],
  119. # This field adds keywords for your project which will appear on the
  120. # project page. What does your project relate to?
  121. #
  122. # Note that this is a string of words separated by whitespace, not a list.
  123. keywords='jogobot pywikibot wikimedia', # Optional
  124. # You can just specify package directories manually here if your project is
  125. # simple. Or you can use find_packages().
  126. #
  127. # Alternatively, if you just want to distribute a single Python file, use
  128. # the `py_modules` argument instead as follows, which will expect a file
  129. # called `my_module.py` to exist:
  130. #
  131. # py_modules=["my_module"],
  132. #
  133. packages=find_packages(exclude=['contrib', 'docs', 'tests']), # Required
  134. # This field lists other packages that your project depends on to run.
  135. # Any package you put here will be installed by pip when your project is
  136. # installed, so they must be valid existing projects.
  137. #
  138. # For an analysis of "install_requires" vs pip's requirements files see:
  139. # https://packaging.python.org/en/latest/requirements.html
  140. install_requires=[], # Optional
  141. # List additional groups of dependencies here (e.g. development
  142. # dependencies). Users will be able to install these using the "extras"
  143. # syntax, for example:
  144. #
  145. # $ pip install sampleproject[dev]
  146. #
  147. # Similar to `install_requires` above, these must be valid existing
  148. # projects.
  149. extras_require={ # Optional
  150. 'dev': [],
  151. 'test': [],
  152. },
  153. # Set required python version
  154. python_requires='>=3',
  155. # If there are data files included in your packages that need to be
  156. # installed, specify them here.
  157. #
  158. # If using Python 2.6 or earlier, then these have to be included in
  159. # MANIFEST.in as well.
  160. package_data={ # Optional
  161. },
  162. # Although 'package_data' is the preferred approach, in some case you may
  163. # need to place data files outside of your packages. See:
  164. # http://docs.python.org/3.4/distutils/setupscript.html#installing-additional-files
  165. #
  166. # In this case, 'data_file' will be installed into '<sys.prefix>/my_data'
  167. data_files=[], # Optional
  168. # To provide executable scripts, use entry points in preference to the
  169. # "scripts" keyword. Entry points provide cross-platform support and allow
  170. # `pip` to create the appropriate form of executable for the target
  171. # platform.
  172. #
  173. # For example, the following would provide a command called `sample` which
  174. # executes the function `main` from this package when invoked:
  175. entry_points={ # Optional
  176. },
  177. # List additional URLs that are relevant to your project as a dict.
  178. #
  179. # This field corresponds to the "Project-URL" metadata fields:
  180. # https://packaging.python.org/specifications/core-metadata/#project-url-multiple-use
  181. #
  182. # Examples listed include a pattern for specifying where the package tracks
  183. # issues, where the source is hosted, where to say thanks to the package
  184. # maintainers, and where to support the project financially. The key is
  185. # what's used to render the link text on PyPI.
  186. project_urls={ # Optional
  187. 'Bug Reports': 'https://git.golderweb.de/wiki/jogobot/issues',
  188. 'Source': 'https://git.golderweb.de/wiki/jogobot',
  189. },
  190. )