setup.py 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # setup.py
  2. # Install script for ConfigObj
  3. # Copyright (C) 2005-2014:
  4. # (name) : (email)
  5. # Michael Foord: fuzzyman AT voidspace DOT org DOT uk
  6. # Mark Andrews: mark AT la-la DOT com
  7. # Nicola Larosa: nico AT tekNico DOT net
  8. # Rob Dennis: rdennis AT gmail DOT com
  9. # Eli Courtwright: eli AT courtwright DOT org
  10. # This software is licensed under the terms of the BSD license.
  11. # http://opensource.org/licenses/BSD-3-Clause
  12. import os
  13. import sys
  14. from distutils.core import setup
  15. # a simple import wouldn't work if we moved towards a package with __init__
  16. from _version import __version__
  17. if sys.version_info < (2, 6):
  18. print('for python versions < 2.6 use configobj '
  19. 'version 4.7.2')
  20. sys.exit(1)
  21. __here__ = os.path.abspath(os.path.dirname(__file__))
  22. VERSION = __version__
  23. NAME = 'configobj'
  24. MODULES = 'configobj', 'validate', '_version'
  25. DESCRIPTION = 'Config file reading, writing and validation.'
  26. URL = 'https://github.com/DiffSK/configobj'
  27. LONG_DESCRIPTION = """**ConfigObj** is a simple but powerful config file reader and writer: an *ini
  28. file round tripper*. Its main feature is that it is very easy to use, with a
  29. straightforward programmer's interface and a simple syntax for config files.
  30. It has lots of other features though :
  31. * Nested sections (subsections), to any level
  32. * List values
  33. * Multiple line values
  34. * Full Unicode support
  35. * String interpolation (substitution)
  36. * Integrated with a powerful validation system
  37. - including automatic type checking/conversion
  38. - and allowing default values
  39. - repeated sections
  40. * All comments in the file are preserved
  41. * The order of keys/sections is preserved
  42. * Powerful ``unrepr`` mode for storing/retrieving Python data-types
  43. | Release 5.0.6 improves error messages in certain edge cases
  44. | Release 5.0.5 corrects a unicode-bug that still existed in writing files
  45. | Release 5.0.4 corrects a unicode-bug that still existed in reading files after
  46. | fixing lists of string in 5.0.3
  47. | Release 5.0.3 corrects errors related to the incorrectly handling unicode
  48. | encoding and writing out files
  49. | Release 5.0.2 adds a specific error message when trying to install on
  50. | Python versions older than 2.5
  51. | Release 5.0.1 fixes a regression with unicode conversion not happening
  52. | in certain cases PY2
  53. | Release 5.0.0 updates the supported Python versions to 2.6, 2.7, 3.2, 3.3
  54. | and is otherwise unchanged
  55. | Release 4.7.2 fixes several bugs in 4.7.1
  56. | Release 4.7.1 fixes a bug with the deprecated options keyword in
  57. | 4.7.0.
  58. | Release 4.7.0 improves performance adds features for validation and
  59. | fixes some bugs."""
  60. CLASSIFIERS = [
  61. 'Development Status :: 6 - Mature',
  62. 'Intended Audience :: Developers',
  63. 'License :: OSI Approved :: BSD License',
  64. 'Programming Language :: Python',
  65. 'Programming Language :: Python :: 2',
  66. 'Programming Language :: Python :: 2.6',
  67. 'Programming Language :: Python :: 2.7',
  68. 'Programming Language :: Python :: 3',
  69. 'Programming Language :: Python :: 3.2',
  70. 'Programming Language :: Python :: 3.3',
  71. 'Operating System :: OS Independent',
  72. 'Topic :: Software Development :: Libraries',
  73. 'Topic :: Software Development :: Libraries :: Python Modules',
  74. ]
  75. AUTHOR = 'Rob Dennis, Eli Courtwright (Michael Foord & Nicola Larosa original maintainers)'
  76. AUTHOR_EMAIL = 'rdennis+configobj@gmail.com, eli@courtwright.org, fuzzyman@voidspace.co.uk, nico@tekNico.net'
  77. KEYWORDS = "config, ini, dictionary, application, admin, sysadmin, configuration, validation".split(', ')
  78. setup(name=NAME,
  79. version=VERSION,
  80. install_requires=['six'],
  81. description=DESCRIPTION,
  82. long_description=LONG_DESCRIPTION,
  83. author=AUTHOR,
  84. author_email=AUTHOR_EMAIL,
  85. url=URL,
  86. py_modules=MODULES,
  87. classifiers=CLASSIFIERS,
  88. keywords=KEYWORDS
  89. )