#!/usr/bin/env python3 # The COPYRIGHT file at the top level of this repository contains # the full copyright notices and license terms. from setuptools import setup import re import os import io from configparser import ConfigParser MODULE2PREFIX = { 'incoterm': 'datalife', 'stock_unit_load': 'datalife', 'product_ean': 'datalife', 'product_cross_reference': 'datalife', 'party_edi': 'nantic' } def read(fname): return io.open( os.path.join(os.path.dirname(__file__), fname), 'r', encoding='utf-8').read() def get_require_version(name): if minor_version % 2: require = '%s >= %s.%s.dev0, < %s.%s' else: require = '%s >= %s.%s, < %s.%s' require %= (name, major_version, minor_version, major_version, minor_version + 1) return require config = ConfigParser() config.read_file(open('tryton.cfg')) info = dict(config.items('tryton')) for key in ('depends', 'extras_depend', 'xml'): if key in info: info[key] = info[key].strip().splitlines() version = info.get('version', '0.0.1') major_version, minor_version, _ = version.split('.', 2) major_version = int(major_version) minor_version = int(minor_version) name = 'datalife_edocument_edifact' download_url = 'https://gitlab.com/datalifeit/trytond-edocument_edifact' series = '%s.%s' % (major_version, minor_version) if minor_version % 2: branch = 'default' else: branch = series dependency_links = { 'incoterm': 'git+https://gitlab.com/datalifeit/' 'trytond-incoterm@%(branch)s' '#egg=datalife_incoterm' % { 'branch': branch, }, 'stock_unit_load': 'git+https://gitlab.com/datalifeit/' 'trytond-stock_unit_load@%(branch)s' '#egg=datalife_stock_unit_load' % { 'branch': branch, }, 'product_ean': 'git+https://gitlab.com/datalifeit/' 'trytond-product_ean@%(branch)s' '#egg=datalife_product_ean' % { 'branch': branch, }, 'product_cross_reference': 'git+https://gitlab.com/datalifeit/' 'trytond-product_cross_reference@%(branch)s' '#egg=datalife_product_cross_reference' % { 'branch': branch, }, 'party_edi': 'git+https://gitlab.com/datalifeit/' 'trytond-party_edi@%(branch)s' '#egg=nantic_party_edi' % { 'branch': branch, }, } requires = ['oyaml', 'pyyaml>=6.0'] for dep in info.get('depends', []): if not re.match(r'(ir|res)(\W|$)', dep): prefix = MODULE2PREFIX.get(dep, 'trytond') req = get_require_version('%s_%s' % (prefix, dep)) if dep in dependency_links: req = '%s_%s @ %s' % (prefix, dep, dependency_links[dep]) requires.append(req) requires.append(get_require_version('trytond')) tests_require = [get_require_version('proteus')] dependency_links = list(dependency_links.values()) if minor_version % 2: # Add development index for testing with proteus dependency_links.append('https://trydevpi.tryton.org/') setup(name=name, version=version, description='Tryton edocument edifact Module', long_description=read('README.md'), author='Datalife', author_email='info@datalifeit.es', url='https://gitlab.com/datalifeit/', download_url=download_url, keywords='', package_dir={'trytond.modules.edocument_edifact': '.'}, packages=[ 'trytond.modules.edocument_edifact', 'trytond.modules.edocument_edifact.tests', ], package_data={ 'trytond.modules.edocument_edifact': (info.get('xml', []) + ['tryton.cfg', 'view/*.xml', 'locale/*.po', '*.fodt', 'icons/*.svg', 'tests/*.rst']), }, classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Plugins', 'Framework :: Tryton', 'Intended Audience :: Developers', 'Intended Audience :: Financial and Insurance Industry', 'Intended Audience :: Legal Industry', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Natural Language :: Bulgarian', 'Natural Language :: Catalan', 'Natural Language :: Czech', 'Natural Language :: Dutch', 'Natural Language :: English', 'Natural Language :: French', 'Natural Language :: German', 'Natural Language :: Hungarian', 'Natural Language :: Italian', 'Natural Language :: Portuguese (Brazilian)', 'Natural Language :: Russian', 'Natural Language :: Slovenian', 'Natural Language :: Spanish', 'Operating System :: OS Independent', 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Topic :: Office/Business', ], license='GPL-3', python_requires='>=3.4', install_requires=requires, dependency_links=dependency_links, zip_safe=False, entry_points=""" [trytond.modules] edocument_edifact = trytond.modules.edocument_edifact """, test_suite='tests', test_loader='trytond.test_loader:Loader', tests_require=tests_require, )