#!/usr/bin/env python # -*- coding: utf-8 -*- """ ISO Standards Setup Standard setup.py file which is used to package and distribute a Python package with Distutils so that it can be published to a PyPI server. This file belongs in the root directory of a project repository. This is an example that uses some basic options which are available for the setup of a PyPI package. It also reads and gathers example dependencies for a package. See: https://pythonhosted.org/setuptools/setuptools.html for more details. """ import sys from setuptools import find_packages from setuptools import setup from abacus_common_data import __version__ def read_requirements(path): """Read requirements from file based on file path provided. Lines beginning with a dash are excluded, e.g. references to an internal PyPI server url (-i). Args: path (str): File path for requirements text file. Returns: Array of requirements libraries. """ with open(path, 'r') as fd: requirements = [ req.strip() for req in fd.readlines() if not req.startswith('-')] return requirements def update_csv_data(): """Read data from s3 and update transaction_types and stores list.""" import boto3 s3 = boto3.resource('s3') s3.Object( 'qa-abacus-static-data', 'transaction_types/transaction_types.csv' ).download_file('abacus_common_data/data/csv/transaction_types.csv') s3.Object( 'qa-abacus-static-data', 'stores/stores.csv' ).download_file('abacus_common_data/data/csv/stores.csv') install_requires = list(read_requirements('requirements.txt')) tests_require = list(set( install_requires + read_requirements('requirements-dev.txt'))) if '--refresh' in sys.argv: update_csv_data() sys.argv.remove('--refresh') setup( name='abacus-common-data', version=__version__, description='Shareable static data for abacus applications.', author='The Orchard', author_email='webdev@theorchard.com', url='https://github.com/theorchard/python-abacus-common-data', packages=find_packages(), data_files=[ ('xml', [ 'abacus_common_data/data/xml/current_iso_currencies.xml', 'abacus_common_data/data/xml/historical_iso_currencies.xml' ]), ('json', [ 'abacus_common_data/data/json/countries_and_regions.json', ]), ('csv', [ 'abacus_common_data/data/csv/orchard_country_ids.csv', 'abacus_common_data/data/csv/stores.csv', 'abacus_common_data/data/csv/transaction_types.csv', ]) ], include_package_data=True, test_suite='tests', zip_safe=False, install_requires=install_requires, tests_require=tests_require )