Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. #!/usr/bin/env python
  2. """
  3. Installation script:
  4. To release a new version to PyPi:
  5. - Ensure the version is correctly set in oscar.__init__.py
  6. - Run: make release
  7. """
  8. import os
  9. import re
  10. import sys
  11. from setuptools import find_packages, setup
  12. PROJECT_DIR = os.path.dirname(__file__)
  13. PY3 = sys.version_info >= (3, 0)
  14. sys.path.append(os.path.join(PROJECT_DIR, 'src'))
  15. from oscar import get_version # noqa isort:skip
  16. install_requires = [
  17. 'django>=1.8.8,<1.12',
  18. # PIL is required for image fields, Pillow is the "friendly" PIL fork
  19. 'pillow>=3.4.2',
  20. # We use the ModelFormSetView from django-extra-views for the basket
  21. # page. > 0.6.5 has a bug which causes issues with Django > 1.6,
  22. # https://github.com/AndrewIngram/django-extra-views/issues/114
  23. 'django-extra-views>=0.2,<0.6.5',
  24. # Search support
  25. 'django-haystack>=2.5.0,<2.6.0',
  26. # Treebeard is used for categories
  27. 'django-treebeard>=4.1.0',
  28. # Sorl is used as the default thumbnailer
  29. 'sorl-thumbnail>=12.4a1',
  30. # Babel is used for currency formatting
  31. 'Babel>=1.0,<3.0',
  32. # For converting non-ASCII to ASCII when creating slugs
  33. 'Unidecode>=0.04.12,<0.05',
  34. # For manipulating search URLs
  35. 'purl>=0.7',
  36. # For phone number field
  37. 'django-phonenumber-field>=1.0.0,<2.0.0',
  38. # Used for oscar.test.contextmanagers.mock_signal_receiver
  39. 'mock>=1.0.1,<3.0',
  40. # Used for oscar.test.newfactories
  41. 'factory-boy>=2.4.1,<3.0',
  42. # Used for automatically building larger HTML tables
  43. 'django-tables2>=1.2,<2.0',
  44. # Used for manipulating form field attributes in templates (eg: add
  45. # a css class)
  46. 'django-widget-tweaks>=1.4.1',
  47. ]
  48. docs_requires = [
  49. 'Sphinx==1.5.2',
  50. 'sphinxcontrib-napoleon==0.6.0',
  51. 'sphinx_rtd_theme==0.1.9',
  52. 'sphinx-issues==0.3.1',
  53. ]
  54. test_requires = [
  55. 'WebTest==2.0.25',
  56. 'coverage==4.3.4',
  57. 'django-webtest==1.9.1',
  58. 'py>=1.4.31',
  59. 'pytest==3.0.6',
  60. 'pytest-cov==2.4.0',
  61. 'pytest-django==3.1.2',
  62. 'pytest-xdist==1.15.0',
  63. 'pytest-warnings==0.2.0',
  64. 'tox==2.3.1',
  65. ]
  66. with open(os.path.join(PROJECT_DIR, 'README.rst')) as fh:
  67. long_description = re.sub(
  68. '^.. start-no-pypi.*^.. end-no-pypi', '', fh.read(), flags=re.M | re.S)
  69. setup(
  70. name='django-oscar',
  71. version=get_version().replace(' ', '-'),
  72. url='https://github.com/django-oscar/django-oscar',
  73. author="David Winterbottom",
  74. author_email="david.winterbottom@gmail.com",
  75. description="A domain-driven e-commerce framework for Django",
  76. long_description=long_description,
  77. keywords="E-commerce, Django, domain-driven",
  78. license='BSD',
  79. platforms=['linux'],
  80. package_dir={'': 'src'},
  81. packages=find_packages('src'),
  82. include_package_data=True,
  83. install_requires=install_requires,
  84. extras_require={
  85. 'docs': docs_requires,
  86. 'test': test_requires,
  87. },
  88. classifiers=[
  89. 'Development Status :: 5 - Production/Stable',
  90. 'Environment :: Web Environment',
  91. 'Framework :: Django',
  92. 'Framework :: Django :: 1.8',
  93. 'Framework :: Django :: 1.10',
  94. 'Framework :: Django :: 1.11',
  95. 'Intended Audience :: Developers',
  96. 'License :: OSI Approved :: BSD License',
  97. 'Operating System :: Unix',
  98. 'Programming Language :: Python',
  99. 'Programming Language :: Python :: 2',
  100. 'Programming Language :: Python :: 2.7',
  101. 'Programming Language :: Python :: 3',
  102. 'Programming Language :: Python :: 3.3',
  103. 'Programming Language :: Python :: 3.4',
  104. 'Programming Language :: Python :: 3.5',
  105. 'Programming Language :: Python :: 3.6',
  106. 'Topic :: Software Development :: Libraries :: Application Frameworks']
  107. )
  108. # Show contributing instructions if being installed in 'develop' mode
  109. if len(sys.argv) > 1 and sys.argv[1] == 'develop':
  110. docs_url = 'https://django-oscar.readthedocs.io/en/latest/internals/contributing/index.html'
  111. mailing_list = 'django-oscar@googlegroups.com'
  112. mailing_list_url = 'https://groups.google.com/forum/?fromgroups#!forum/django-oscar'
  113. twitter_url = 'https://twitter.com/django_oscar'
  114. msg = (
  115. "You're installing Oscar in 'develop' mode so I presume you're thinking\n"
  116. "of contributing:\n\n"
  117. "(a) That's brilliant - thank you for your time\n"
  118. "(b) If you have any questions, please use the mailing list:\n %s\n"
  119. " %s\n"
  120. "(c) There are more detailed contributing guidelines that you should "
  121. "have a look at:\n %s\n"
  122. "(d) Consider following @django_oscar on Twitter to stay up-to-date\n"
  123. " %s\n\nHappy hacking!") % (mailing_list, mailing_list_url,
  124. docs_url, twitter_url)
  125. line = '=' * 82
  126. print(("\n%s\n%s\n%s" % (line, msg, line)))