django-select2/setup.py
2015-03-29 22:32:19 +02:00

127 lines
3.3 KiB
Python
Executable file

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import codecs
import os
import sys
from setuptools import setup, find_packages, Command
def read(fname):
f = codecs.open(os.path.join(os.path.dirname(__file__), fname), 'rb')
return f.read()
PACKAGE = "django_select2"
NAME = "Django-Select2"
DESCRIPTION = "Select2 option fields for Django"
AUTHOR = "Nirupam Biswas"
AUTHOR_EMAIL = "admin@applegrew.com"
URL = "https://github.com/applegrew/django-select2"
VERSION = __import__(PACKAGE).__version__
def getPkgPath():
return __import__(PACKAGE).__path__[0] + '/'
def minify(files, outfile, ftype):
import urllib
import json
content = u''
for filename in files:
with open(getPkgPath() + filename) as f:
for line in f.xreadlines():
if isinstance(line, str):
line = line.decode('utf-8')
content = content + line
data = urllib.urlencode([
('code', content.encode('utf-8')),
('type', ftype),
])
f = urllib.urlopen('http://api.applegrew.com/minify', data)
data = u''
while 1:
line = f.readline()
if line:
if isinstance(line, str):
line = line.decode('utf-8')
data = data + line
else:
break
f.close()
data = json.loads(data)
if data['success']:
with open(getPkgPath() + outfile, 'w') as f:
f.write(data['compiled_code'].encode('utf8'))
else:
print data['error_code']
print data['error']
raise Exception('Could not minify.')
if len(sys.argv) > 1 and 'sdist' == sys.argv[1]:
minify(['static/js/select2.js'], 'static/js/select2.min.js', 'js')
minify(['static/js/heavy_data.js'], 'static/js/heavy_data.min.js', 'js')
minify(['static/css/select2.css'], 'static/css/select2.min.css', 'css')
minify(['static/css/select2.css', 'static/css/extra.css'],
'static/css/all.min.css', 'css')
minify(['static/css/select2.css', 'static/css/select2-bootstrap.css'],
'static/css/select2-bootstrapped.min.css', 'css')
minify(
[
'static/css/select2.css',
'static/css/extra.css',
'static/css/select2-bootstrap.css'
], 'static/css/all-bootstrapped.min.css', 'css')
class PyTest(Command):
user_options = []
def initialize_options(self):
pass
def finalize_options(self):
pass
def run(self):
import sys
import subprocess
errno = subprocess.call([sys.executable, 'runtests.py'])
raise SystemExit(errno)
setup(
name=NAME,
version=VERSION,
description=DESCRIPTION,
long_description=read("README.md"),
author=AUTHOR,
author_email=AUTHOR_EMAIL,
license="LICENSE.txt",
url=URL,
packages=find_packages(exclude=['tests']),
include_package_data=True,
classifiers=[
"Development Status :: 5 - Production/Stable",
"Environment :: Web Environment",
"Intended Audience :: Developers",
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Framework :: Django",
],
install_requires=[
"Django>=1.4",
],
zip_safe=False,
cmdclass={'test': PyTest},
)