diff --git a/.gitignore b/.gitignore index f3c1ace..7bac158 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1 @@ -*~ -*.pyc -dist/ rattail_wave.egg-info/ diff --git a/CHANGELOG.md b/CHANGELOG.md index 030ad96..9a3afae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,23 +5,7 @@ All notable changes to rattail-wave will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). -## v0.3.2 (2024-08-18) - -### Fix - -- avoid deprecated base class for config extension - -## v0.3.1 (2024-07-01) - -### Fix - -- remove legacy command definitions - -## v0.3.0 (2024-06-10) - -### Feat - -- switch from setup.cfg to pyproject.toml + hatchling +## Unreleased ## [0.2.0] - 2024-06-06 ### Changed diff --git a/README.md b/README.md deleted file mode 100644 index 53e91b2..0000000 --- a/README.md +++ /dev/null @@ -1,11 +0,0 @@ - -# rattail-wave - -Rattail is a retail software framework, released under the GNU General -Public License. - -This package contains software interfaces for -[Wave](https://www.waveapps.com/). - -Please see the [Rattail Project](https://rattailproject.org/) for more -information. diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..7e17f4c --- /dev/null +++ b/README.rst @@ -0,0 +1,14 @@ + +rattail-wave +============ + +Rattail is a retail software framework, released under the GNU General +Public License. + +This package contains software interfaces for `Wave`_. + +.. _`Wave`: https://www.waveapps.com/ + +Please see the `Rattail Project`_ for more information. + +.. _`Rattail Project`: https://rattailproject.org/ diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index ae4c88a..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,53 +0,0 @@ - -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - - -[project] -name = "rattail-wave" -version = "0.3.2" -description = "Rattail integration package for Wave" -readme = "README.md" -authors = [{name = "Lance Edgar", email = "lance@edbob.org"}] -license = {text = "GNU GPL v3+"} -classifiers = [ - "Development Status :: 3 - Alpha", - "Environment :: Console", - "Intended Audience :: Developers", - "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", - "Natural Language :: English", - "Operating System :: OS Independent", - "Programming Language :: Python", - "Programming Language :: Python :: 3", - "Topic :: Office/Business", - "Topic :: Software Development :: Libraries :: Python Modules", -] -dependencies = [ - "invoke", - "rattail[db]", -] - - -[project.entry-points."rattail.typer_imports"] -rattail_wave = "rattail_wave.commands" - - -[project.entry-points."rattail.config.extensions"] -rattail_wave = "rattail_wave.config:RattailWaveExtension" - - -[project.entry-points."rattail.importing"] -"to_rattail.from_wave.import" = "rattail_wave.importing.wave:FromWaveToRattail" - - -[project.urls] -Homepage = "https://rattailproject.org" -Repository = "https://forgejo.wuttaproject.org/rattail/rattail-wave" -Changelog = "https://forgejo.wuttaproject.org/rattail/rattail-wave/src/branch/master/CHANGELOG.md" - - -[tool.commitizen] -version_provider = "pep621" -tag_format = "v$version" -update_changelog_on_bump = true diff --git a/rattail_wave/_version.py b/rattail_wave/_version.py index b3dab34..08b390b 100644 --- a/rattail_wave/_version.py +++ b/rattail_wave/_version.py @@ -1,6 +1,3 @@ # -*- coding: utf-8; -*- -from importlib.metadata import version - - -__version__ = version('rattail-wave') +__version__ = '0.2.0' diff --git a/rattail_wave/commands.py b/rattail_wave/commands.py index 00586dc..9796ace 100644 --- a/rattail_wave/commands.py +++ b/rattail_wave/commands.py @@ -26,7 +26,7 @@ rattail-wave commands import typer -from rattail.commands import rattail_typer +from rattail.commands import rattail_typer, ImportSubcommand from rattail.commands.typer import importer_command, typer_get_runas_user from rattail.commands.importing import ImportCommandHandler @@ -46,3 +46,12 @@ def import_wave( config, import_handler_key='to_rattail.from_wave.import') kwargs['user'] = typer_get_runas_user(ctx) handler.run(kwargs, progress=progress) + + +class ImportWave(ImportSubcommand): + """ + Import data to Rattail, from Wave API + """ + name = 'import-wave' + description = __doc__.strip() + handler_key = 'to_rattail.from_wave.import' diff --git a/rattail_wave/config.py b/rattail_wave/config.py index fb68972..0c7f9e6 100644 --- a/rattail_wave/config.py +++ b/rattail_wave/config.py @@ -2,7 +2,7 @@ ################################################################################ # # Rattail -- Retail Software Framework -# Copyright © 2010-2024 Lance Edgar +# Copyright © 2010-2022 Lance Edgar # # This file is part of Rattail. # @@ -24,10 +24,10 @@ Config Extension """ -from wuttjamaican.conf import WuttaConfigExtension +from rattail.config import ConfigExtension -class RattailWaveExtension(WuttaConfigExtension): +class RattailWaveExtension(ConfigExtension): """ Config extension for rattail-wave. """ diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..06d7273 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,45 @@ +# -*- coding: utf-8; -*- + +[metadata] +name = rattail-wave +version = attr: rattail_wave.__version__ +author = Lance Edgar +author_email = lance@edbob.org +url = https://rattailproject.org/ +description = Rattail integration package for Wave +long_description = file: README.rst +classifiers = + Development Status :: 3 - Alpha + Environment :: Console + Intended Audience :: Developers + License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+) + Natural Language :: English + Operating System :: OS Independent + Programming Language :: Python + Programming Language :: Python :: 3 + Topic :: Office/Business + Topic :: Software Development :: Libraries :: Python Modules + + +[options] +install_requires = + invoke + rattail[db] + +packages = find: +include_package_data = True + + +[options.entry_points] + +rattail.subcommands = + import-wave = rattail_wave.commands:ImportWave + +rattail.typer_imports = + rattail_wave = rattail_wave.commands + +rattail.config.extensions = + rattail_wave = rattail_wave.config:RattailWaveExtension + +rattail.importing = + to_rattail.from_wave.import = rattail_wave.importing.wave:FromWaveToRattail diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..4aed714 --- /dev/null +++ b/setup.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8; -*- +################################################################################ +# +# Rattail -- Retail Software Framework +# Copyright © 2010-2023 Lance Edgar +# +# This file is part of Rattail. +# +# Rattail is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. +# +# Rattail is distributed in the hope that it will be useful, but WITHOUT ANY +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. +# +# You should have received a copy of the GNU General Public License along with +# Rattail. If not, see . +# +################################################################################ +""" +rattail-wave setup script +""" + +from setuptools import setup + +setup() diff --git a/tasks.py b/tasks.py index 5492e9f..0c51e8c 100644 --- a/tasks.py +++ b/tasks.py @@ -2,7 +2,7 @@ ################################################################################ # # Rattail -- Retail Software Framework -# Copyright © 2010-2024 Lance Edgar +# Copyright © 2010-2022 Lance Edgar # # This file is part of Rattail. # @@ -25,24 +25,13 @@ Tasks for rattail-wave """ import os -import re import shutil from invoke import task here = os.path.abspath(os.path.dirname(__file__)) -__version__ = None -pattern = re.compile(r'^version = "(\d+\.\d+\.\d+)"$') -with open(os.path.join(here, 'pyproject.toml'), 'rt') as f: - for line in f: - line = line.rstrip('\n') - match = pattern.match(line) - if match: - __version__ = match.group(1) - break -if not __version__: - raise RuntimeError("could not parse version!") +exec(open(os.path.join(here, 'rattail_wave', '_version.py')).read()) @task @@ -56,5 +45,5 @@ def release(c): c.run('python -m build --sdist') # upload to public PyPI - filename = f'rattail_wave-{__version__}.tar.gz' - c.run(f'twine upload dist/{filename}') + filename = 'rattail-wave-{}.tar.gz'.format(__version__) + c.run('twine upload dist/{}'.format(filename))