From e7fee8c2975529089a587b8ea7b29efd9ffbb41f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=CC=81=20Arturo=20Garci=CC=81a?= Date: Wed, 30 Sep 2026 18:46:02 -0400 Subject: [PATCH] Use setuptools packaging for Tryton 7.0 --- .gitea/workflows/publish.yml | 4 +-- doc/conf.py | 6 +--- pyproject.toml | 57 ----------------------------- setup.py | 69 ++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+), 65 deletions(-) delete mode 100644 pyproject.toml create mode 100644 setup.py diff --git a/.gitea/workflows/publish.yml b/.gitea/workflows/publish.yml index 2ba70a5..e9be9b1 100644 --- a/.gitea/workflows/publish.yml +++ b/.gitea/workflows/publish.yml @@ -81,7 +81,6 @@ jobs: import json import os import re - import tomllib OWNER = 'tryton-do' PACKAGE_TYPE = 'pypi' @@ -98,8 +97,7 @@ jobs: series = os.environ['PACKAGE_SERIES'] major, minor = map(int, series.split('.')) - pyproject = tomllib.loads(Path('pyproject.toml').read_text()) - package_name = pyproject['project']['name'] + package_name = 'unpaismejor_account_credit_note' normalized_name = normalize(package_name) username = os.environ['TWINE_USERNAME'] diff --git a/doc/conf.py b/doc/conf.py index 23414e2..4819463 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -8,17 +8,13 @@ trytond_url = 'https://docs.tryton.org/projects/server/en/{series}/' def get_info(): import configparser import os - import tomllib module_dir = os.path.dirname(os.path.dirname(__file__)) config = configparser.ConfigParser() config.read_file(open(os.path.join(module_dir, 'tryton.cfg'))) info = dict(config.items('tryton')) - - with open(os.path.join(module_dir, 'pyproject.toml'), 'rb') as stream: - project = tomllib.load(stream)['project'] - info['name'] = project['name'] + info['name'] = 'unpaismejor_account_credit_note' version = info['version'] if 'dev' in version: diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index 39ebaa9..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,57 +0,0 @@ -[build-system] -requires = ['hatchling >= 1', 'hatch-tryton'] -build-backend = 'hatchling.build' - -[project] -name = 'unpaismejor_account_credit_note' -dynamic = ['version', 'dependencies', 'optional-dependencies', 'authors', 'readme'] -requires-python = '>=3.8' -maintainers = [ - {name = "Fundación Un País Mejor"}, - ] -description = "Partial credit notes for Tryton invoices" -license = 'GPL-3.0-or-later' -license-files = ["LICENSE", "COPYRIGHT"] -keywords = ["tryton", "accounting", "invoice", "credit-note"] -classifiers = [ - "Development Status :: 5 - Production/Stable", - "Environment :: Plugins", - "Framework :: Tryton", - "Topic :: Office/Business", - "Topic :: Office/Business :: Financial :: Accounting", - "Topic :: Software Development :: Libraries :: Python Modules", - ] - -[project.entry-points.'trytond.modules'] -account_credit_note = 'trytond.modules.account_credit_note' - -[project.urls] -homepage = "https://www.unpaismejor.org.do" -repository = "https://code.unpaismejor.org.do/tryton-do/account_credit_note" - -[tool.hatch.build] -include = [ - 'CHANGELOG', - 'COPYRIGHT', - 'LICENSE', - 'README.rst', - '**/tryton.cfg', - '**/*.py', - '**/*.xml', - 'view/**/*.xml', - 'locale/**/*.po', - 'doc/**/*.rst', - 'icons/**', - 'tests/**/*.rst', - 'tests/**/*.json', - ] - -[tool.hatch.build.targets.wheel.sources] -"" = "trytond/modules/account_credit_note" - -[tool.hatch.metadata.hooks.tryton] -copyright = 'COPYRIGHT' -readme = 'README.rst' - -[tool.hatch.metadata.hooks.tryton.tryton-optional-dependencies] -test = ['proteus'] diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..9055ae9 --- /dev/null +++ b/setup.py @@ -0,0 +1,69 @@ +from configparser import ConfigParser +from pathlib import Path + +from setuptools import setup + + +MODULE = 'account_credit_note' +PREFIX = 'trytond.modules' +PACKAGE = f'{PREFIX}.{MODULE}' + + +def read(path): + return Path(path).read_text(encoding='utf-8') + + +config = ConfigParser() +config.read('tryton.cfg') +version = config.get('tryton', 'version') +major, minor, _ = version.split('.', 2) +series = f'{major}.{minor}' +next_major = f'{major}.{int(minor) + 1}' + + +setup( + name='unpaismejor_account_credit_note', + version=version, + description='Partial credit notes for Tryton invoices', + long_description=read('README.rst'), + long_description_content_type='text/x-rst', + author='Solutema SRL, Fundación Un País Mejor', + maintainer='Fundación Un País Mejor', + url='https://code.unpaismejor.org.do/tryton-do/account_credit_note', + keywords='tryton accounting invoice credit-note', + license='GPL-3.0-or-later', + python_requires='>=3.8', + packages=[PACKAGE], + package_dir={PACKAGE: '.'}, + package_data={ + PACKAGE: [ + 'tryton.cfg', + '*.xml', + 'view/*.xml', + 'locale/*.po', + 'doc/*.rst', + 'icons/*', + ], + }, + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Environment :: Plugins', + 'Framework :: Tryton', + 'Topic :: Office/Business', + 'Topic :: Office/Business :: Financial :: Accounting', + 'Topic :: Software Development :: Libraries :: Python Modules', + ], + install_requires=[ + f'trytond >= {series}, < {next_major}', + f'trytond_account_invoice >= {series}, < {next_major}', + ], + extras_require={ + 'test': [f'proteus >= {series}, < {next_major}'], + }, + entry_points={ + 'trytond.modules': [ + f'{MODULE} = {PACKAGE}', + ], + }, + zip_safe=False, +)