setup.py 2.76 KB
import os
import sys
import subprocess
from setuptools import setup, find_packages


here = os.path.abspath(os.path.dirname(__file__))
with open(os.path.join(here, 'README.rst')) as f:
    README = f.read()
with open(os.path.join(here, 'CHANGES.txt')) as f:
    CHANGES = f.read()

line = CHANGES.splitlines()[0]
version = line.split()[0]

requires = [
    'plaster_pastedeploy',
    'pyramid',
    'pyramid_chameleon',
    'pyramid_debugtoolbar',
    'pyramid_tm',
    'waitress',
    'zope.sqlalchemy',
    'psycopg2-binary',
    'pytz',
    'ziggurat-foundations',
    'alembic',
    'colander',
    'deform',
    'pyramid_beaker',
    'pyramid_mailer',
    'requests',
    'pyramid_rpc',
]

customs_require = [
    'http://repo.opensipkd.com/pip/opensipkd-base-0.2.tar.gz',
    'http://repo.opensipkd.com/pip/opensipkd-hitung-0.1.tar.gz',
    'http://repo.opensipkd.com/pip/opensipkd-iso8583-0.1.tar.gz',
    'http://repo.opensipkd.com/pip/opensipkd-jsonrpc-0.1.tar.gz',
    ]

tests_require = [
    'WebTest >= 1.3.1',  # py3 compat
    'pytest',
    'pytest-cov',
]


def pip_install(package, upgrade=False):
    cmd = [pip, 'install']
    if upgrade:
        cmd += ['--upgrade']
    if sys.argv[2:]:
        option = sys.argv[2]  # Bisa untuk proxy
        cmd += [option]
    cmd += [package]
    if subprocess.call(cmd) != 0:
        sys.exit()


if sys.argv[1:] and sys.argv[1] == 'develop-use-pip':
    bin_ = os.path.split(sys.executable)[0]
    pip = os.path.join(bin_, 'pip')
    pip_install('pip', True)
    pip_install('setuptools', True)
    requires_ = requires + customs_require
    for package in requires_:
        if sys.argv[2:]:
            cmd = [pip, 'install', sys.argv[2], package]
        else:
            cmd = [pip, 'install', package]
        if subprocess.call(cmd) != 0:
            sys.exit()
    cmd = [sys.executable, sys.argv[0], 'develop']
    subprocess.call(cmd)
    sys.exit()

setup(
    name='iso8583_web',
    version=version,
    description='Web untuk menampilkan log ISO8583',
    long_description=README + '\n\n' + CHANGES,
    classifiers=[
        'Programming Language :: Python',
        'Framework :: Pyramid',
        'Topic :: Internet :: WWW/HTTP',
        'Topic :: Internet :: WWW/HTTP :: WSGI :: Application',
    ],
    author='',
    author_email='',
    url='',
    keywords='web pyramid pylons',
    packages=find_packages(),
    include_package_data=True,
    zip_safe=False,
    extras_require={
        'testing': tests_require,
    },
    install_requires=requires,
    entry_points={
        'paste.app_factory': [
            'main = iso8583_web:main',
        ],
        'console_scripts': [
            'initialize_iso8583_web_db = iso8583_web.scripts.initialize_db:main',
            'iso8583 = iso8583_web.scripts.forwarder:main',
        ]
    },
)