django-fobi/setup.py

385 lines
12 KiB
Python
Raw Normal View History

2014-10-11 03:54:24 +00:00
import os
2016-09-21 12:58:11 +00:00
import sys
from distutils.version import LooseVersion
2014-10-11 03:54:24 +00:00
from setuptools import setup, find_packages
2017-05-29 19:27:26 +00:00
version = '0.11.11'
2017-02-05 23:07:47 +00:00
# ***************************************************************************
# ************************** Python version *********************************
# ***************************************************************************
PY2 = sys.version_info[0] == 2
PY3 = sys.version_info[0] == 3
LTE_PY26 = PY2 and (7 > sys.version_info[1])
PYPY = hasattr(sys, 'pypy_translation_info')
# ***************************************************************************
# ************************** Django version *********************************
# ***************************************************************************
DJANGO_INSTALLED = False
try:
import django
DJANGO_INSTALLED = True
LOOSE_DJANGO_VERSION = LooseVersion(django.get_version())
LOOSE_DJANGO_MINOR_VERSION = LooseVersion(
'.'.join([str(i) for i in LOOSE_DJANGO_VERSION.version[0:2]])
)
# Loose versions
LOOSE_VERSIONS = (
'1.4', '1.5', '1.6', '1.7', '1.8', '1.9', '1.10', '1.11', '2.0', '2.1',
'2.2', '3.0'
)
for v in LOOSE_VERSIONS:
var_name = 'LOOSE_VERSION_{0}'.format(v.replace('.', '_'))
globals()[var_name] = LooseVersion(v)
# Exact versions
EXACT_VERSIONS = LOOSE_VERSIONS[:-1]
for i, v in enumerate(EXACT_VERSIONS):
l_cur = globals()['LOOSE_VERSION_{0}' \
''.format(LOOSE_VERSIONS[i].replace('.', '_'))]
l_nxt = globals()['LOOSE_VERSION_{0}' \
''.format(LOOSE_VERSIONS[i + 1].replace('.', '_'))]
var_name = 'DJANGO_{0}'.format(v.replace('.', '_'))
globals()[var_name] = (l_cur <= LOOSE_DJANGO_VERSION < l_nxt)
# LTE list
LTE_VERSIONS = LOOSE_VERSIONS[:-1]
for i, v in enumerate(EXACT_VERSIONS):
l_cur = globals()['LOOSE_VERSION_{0}' \
''.format(LOOSE_VERSIONS[i].replace('.', '_'))]
var_name = 'DJANGO_LTE_{0}'.format(v.replace('.', '_'))
globals()[var_name] = (LOOSE_DJANGO_MINOR_VERSION <= l_cur)
# GTE list
GTE_VERSIONS = LOOSE_VERSIONS[:-1]
for i, v in enumerate(EXACT_VERSIONS):
l_cur = globals()['LOOSE_VERSION_{0}' \
''.format(LOOSE_VERSIONS[i].replace('.', '_'))]
var_name = 'DJANGO_GTE_{0}'.format(v.replace('.', '_'))
globals()[var_name] = (
LOOSE_DJANGO_MINOR_VERSION >= l_cur
)
except Exception as err:
pass
# ***************************************************************************
# ***************************************************************************
# ***************************************************************************
2014-10-11 03:54:24 +00:00
try:
readme = open(os.path.join(os.path.dirname(__file__), 'README.rst')).read()
2016-09-21 12:58:11 +00:00
screenshots = open(
2017-03-13 23:18:09 +00:00
os.path.join(os.path.dirname(__file__), 'docs/screenshots.rst.distrib')
2016-09-21 12:58:11 +00:00
).read()
screenshots = screenshots.replace(
'.. image:: _static',
2016-10-17 01:30:09 +00:00
'.. figure:: https://github.com/barseghyanartur/django-fobi/raw/'
'master/docs/_static'
2016-09-21 12:58:11 +00:00
)
2014-10-11 03:54:24 +00:00
except:
readme = ''
screenshots = ''
template_dirs = [
2016-10-17 01:30:09 +00:00
# Core templates
"src/fobi/templates/fobi",
2014-10-11 03:54:24 +00:00
2016-09-21 12:58:11 +00:00
# Bootstrap 3
"src/fobi/contrib/themes/bootstrap3/templates/bootstrap3",
2016-10-17 01:30:09 +00:00
2016-09-21 12:58:11 +00:00
# Foundation 5
"src/fobi/contrib/themes/foundation5/templates/foundation5",
2016-10-17 01:30:09 +00:00
2016-09-21 12:58:11 +00:00
# DB Store widget for Foundation 5
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/themes/foundation5/widgets/form_handlers/"
"db_store_foundation5_widget",
2016-09-21 12:58:11 +00:00
# Simple
"src/fobi/contrib/themes/simple/templates/simple",
2016-10-17 01:30:09 +00:00
2016-09-21 12:58:11 +00:00
# djangocms_admin_style_theme
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/themes/djangocms_admin_style_theme/templates/"
"djangocms_admin_style_theme",
2016-09-21 12:58:11 +00:00
# DjangoCMS integration
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/apps/djangocms_integration/templates/"
"djangocms_integration",
2016-09-21 12:58:11 +00:00
# FeinCMS integration
2016-10-17 01:30:09 +00:00
# "src/fobi/contrib/apps/feincms_integration/templates/"
# "feincms_integration",
2016-09-21 12:58:11 +00:00
# Mezzanine integration
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/apps/mezzanine_integration/templates/"
"mezzanine_integration",
2016-09-21 12:58:11 +00:00
# Content image
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/plugins/form_elements/content/content_image/"
"templates/content_image",
2017-05-17 18:29:02 +00:00
# Content image URL
"src/fobi/contrib/plugins/form_elements/content/content_image_url/"
"templates/content_image_url",
2016-09-21 12:58:11 +00:00
# DB Store
"src/fobi/contrib/plugins/form_handlers/db_store/templates/db_store",
2016-10-17 01:30:09 +00:00
2016-09-21 12:58:11 +00:00
# Mail
"src/fobi/contrib/plugins/form_handlers/mail/templates/mail",
2016-10-17 01:30:09 +00:00
# Http re-post
"src/fobi/contrib/plugins/form_handlers/http_repost/templates/"
"http_repost",
2016-09-21 12:58:11 +00:00
# MailChimp importer
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/plugins/form_importers/mailchimp_importer/templates/"
"mailchimp_importer",
2014-10-11 03:54:24 +00:00
]
2016-10-17 01:30:09 +00:00
2014-10-11 03:54:24 +00:00
static_dirs = [
2016-10-17 01:30:09 +00:00
# Core static
"src/fobi/static",
2016-09-21 12:58:11 +00:00
# Bootstrap3
"src/fobi/contrib/themes/bootstrap3/static",
2016-10-17 01:30:09 +00:00
2016-09-21 12:58:11 +00:00
# Bootstrap3 datetime widget
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/themes/bootstrap3/widgets/form_elements/"
"datetime_bootstrap3_widget/static",
2016-09-21 12:58:11 +00:00
# Bootstrap3 date widget
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/themes/bootstrap3/widgets/form_elements/"
"date_bootstrap3_widget/static",
# Bootstrap3 slider widget
"src/fobi/contrib/themes/bootstrap3/widgets/form_elements/"
"slider_bootstrap3_widget/static",
2016-09-21 12:58:11 +00:00
# Foundation5
"src/fobi/contrib/themes/foundation5/static",
2016-10-17 01:30:09 +00:00
2016-09-21 12:58:11 +00:00
# Foundation5 datetime widget
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/themes/foundation5/widgets/form_elements/"
"datetime_foundation5_widget/static",
2016-09-21 12:58:11 +00:00
# Foundation5 date widget
2016-10-17 01:30:09 +00:00
"src/fobi/contrib/themes/foundation5/widgets/form_elements/"
"date_foundation5_widget/static",
2016-09-21 12:58:11 +00:00
# Simple
"src/fobi/contrib/themes/simple/static",
2016-10-17 01:30:09 +00:00
2016-09-21 12:58:11 +00:00
# djangocms_admin_style_theme
"src/fobi/contrib/themes/djangocms_admin_style_theme/static",
2016-10-17 01:30:09 +00:00
2016-09-21 12:58:11 +00:00
# DB Store
"src/fobi/contrib/plugins/form_handlers/db_store/static",
2016-10-17 01:30:09 +00:00
2016-09-21 12:58:11 +00:00
# Dummy
"src/fobi/contrib/plugins/form_elements/test/dummy/static",
2014-10-11 03:54:24 +00:00
]
locale_dirs = [
"src/fobi/locale/nl",
"src/fobi/locale/ru",
"src/fobi/locale/de",
2014-10-11 03:54:24 +00:00
]
templates = []
static_files = []
locale_files = []
for template_dir in template_dirs:
2016-09-21 12:58:11 +00:00
templates += [os.path.join(template_dir, f)
for f
in os.listdir(template_dir)]
2014-10-11 03:54:24 +00:00
for static_dir in static_dirs:
2016-09-21 12:58:11 +00:00
static_files += [os.path.join(static_dir, f)
for f
in os.listdir(static_dir)]
2014-10-11 03:54:24 +00:00
for locale_dir in locale_dirs:
2016-09-21 12:58:11 +00:00
locale_files += [os.path.join(locale_dir, f)
for f
in os.listdir(locale_dir)]
2014-10-11 03:54:24 +00:00
dependency_links = []
install_requires = []
# If certain version of Django is already installed, choose version agnostic
# dependencies.
if DJANGO_INSTALLED:
if DJANGO_1_5 or DJANGO_1_6 or DJANGO_1_7:
install_requires = [
'django-autoslug==1.7.1',
# 'django-formtools>=1.0',
2017-05-16 21:20:11 +00:00
'django-nine>=0.1.13',
'django-nonefield>=0.1',
2017-02-05 23:07:47 +00:00
# 'ordereddict>=1.1',
'Pillow>=2.0.0',
'requests>=1.0.0',
'six>=1.9',
'Unidecode>=0.04.1',
'vishap>=0.1.5,<2.0',
]
2017-02-05 23:07:47 +00:00
elif DJANGO_1_8:
install_requires = [
'django-autoslug==1.7.1',
'django-formtools>=1.0',
2017-05-16 21:20:11 +00:00
'django-nine>=0.1.13',
'django-nonefield>=0.1',
2017-02-05 23:07:47 +00:00
# 'ordereddict>=1.1',
'Pillow>=2.0.0',
'requests>=1.0.0',
'six>=1.9',
'Unidecode>=0.04.1',
'vishap>=0.1.5,<2.0',
]
elif DJANGO_1_9:
install_requires = [
'django-autoslug==1.9.3',
'django-formtools>=1.0',
2017-05-16 21:20:11 +00:00
'django-nine>=0.1.13',
'django-nonefield>=0.1',
2017-02-05 23:07:47 +00:00
# 'ordereddict>=1.1',
'Pillow>=2.0.0',
'requests>=1.0.0',
'six>=1.9',
'Unidecode>=0.04.1',
'vishap>=0.1.5,<2.0',
]
elif DJANGO_1_10:
install_requires = [
'django-autoslug==1.9.3',
'django-formtools>=1.0',
2017-05-16 21:20:11 +00:00
'django-nine>=0.1.13',
'django-nonefield>=0.1',
2017-02-05 23:07:47 +00:00
# 'ordereddict>=1.1',
'Pillow>=2.0.0',
'requests>=1.0.0',
'six>=1.9',
'Unidecode>=0.04.1',
'vishap>=0.1.5,<2.0',
]
elif DJANGO_1_11:
install_requires = [
'django-autoslug==1.9.3',
'django-formtools',
2017-05-16 21:20:11 +00:00
'django-nine>=0.1.13',
'django-nonefield>=0.1',
# 'ordereddict>=1.1',
'Pillow>=2.0.0',
'requests>=1.0.0',
'six>=1.9',
'Unidecode>=0.04.1',
'vishap>=0.1.5,<2.0',
]
dependency_links.append(
'https://github.com/django/django-formtools/archive/master.tar.gz'
'#egg=django-formtools'
)
# Fall back to the latest dependencies
if not install_requires:
install_requires = [
'django-autoslug>=1.9.3',
'django-formtools>=1.0',
2017-05-16 21:20:11 +00:00
'django-nine>=0.1.13',
'django-nonefield>=0.1',
2017-02-05 23:07:47 +00:00
# 'ordereddict>=1.1',
'Pillow>=2.0.0',
'requests>=1.0.0',
'six>=1.9',
'Unidecode>=0.04.1',
'vishap>=0.1.5,<2.0',
]
2016-10-17 01:30:09 +00:00
# There are also conditional PY3/PY2 requirements. Scroll down to see them.
2014-10-11 03:54:24 +00:00
tests_require = [
'selenium',
'Faker',
2016-12-28 21:12:58 +00:00
# 'factory_boy',
# 'fake-factory',
# 'Pillow',
# 'pytest',
# 'pytest-django',
# 'pytest-cov',
# 'tox',
]
2017-02-05 23:07:47 +00:00
if PY3:
install_requires.append('simplejson>=3.0.0') # When using Python 3
2017-05-14 22:33:08 +00:00
if DJANGO_INSTALLED and not DJANGO_1_11:
install_requires.append('easy-thumbnails>=2.3')
else:
install_requires.append('easy-thumbnails>=2.4.1')
# dependency_links.append(
# 'https://github.com/SmileyChris/easy-thumbnails/archive/'
# 'master.tar.gz'
# '#egg=easy-thumbnails'
# )
2017-02-05 23:07:47 +00:00
else:
install_requires.append('simplejson>=2.1.0') # When using Python 2.*
install_requires.append('ordereddict>=1.1')
2017-05-14 22:33:08 +00:00
if DJANGO_INSTALLED and not DJANGO_1_11:
install_requires.append('easy-thumbnails>=1.4')
else:
install_requires.append('easy-thumbnails>=2.4.1')
# dependency_links.append(
# 'https://github.com/SmileyChris/easy-thumbnails/archive/'
# 'master.tar.gz'
# '#egg=easy-thumbnails'
# )
2014-10-11 03:54:24 +00:00
setup(
name='django-fobi',
version=version,
2017-02-25 01:01:51 +00:00
description="Form generator/builder application for Django done right: "
"customisable, modular, user- and developer- friendly.",
long_description="{0}{1}".format(readme, screenshots),
classifiers=[
2017-01-12 20:13:52 +00:00
# "Programming Language :: Python :: 2.6",
2014-10-11 03:54:24 +00:00
"Programming Language :: Python :: 2.7",
"Programming Language :: Python :: 3",
2017-01-12 20:13:52 +00:00
# "Programming Language :: Python :: 3.3",
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
2017-02-05 23:07:47 +00:00
"Programming Language :: Python :: 3.6",
2014-10-11 03:54:24 +00:00
"Environment :: Web Environment",
"License :: OSI Approved :: GNU General Public License v2 (GPLv2)",
"License :: OSI Approved :: GNU Lesser General Public License v2 or "
"later (LGPLv2+)",
2014-10-11 03:54:24 +00:00
"Framework :: Django",
"Intended Audience :: Developers",
"Operating System :: OS Independent",
"Development Status :: 4 - Beta",
],
keywords="django, form generator, form builder, visual form designer, "
"user generated forms",
author='Artur Barseghyan',
author_email='artur.barseghyan@gmail.com',
url='https://github.com/barseghyanartur/django-fobi/',
package_dir={'': 'src'},
packages=find_packages(where='./src'),
license='GPL 2.0/LGPL 2.1',
install_requires=install_requires,
tests_require=tests_require,
dependency_links=dependency_links,
package_data={
2014-10-11 03:54:24 +00:00
'fobi': templates + static_files + locale_files
},
include_package_data=True,
2014-10-11 03:54:24 +00:00
)