From a0b759bf81da6747488a2dd66cb39fbce8c03269 Mon Sep 17 00:00:00 2001 From: Andrew E Slaughter Date: Tue, 28 Jul 2026 13:06:40 -0600 Subject: [PATCH 1/4] update dependencies for py313 support --- .github/workflows/new_pypi_release.yml | 8 ++++---- .github/workflows/unittest.yml | 18 +++++++++--------- requirements.txt | 3 +-- setup.cfg | 3 --- setup.py | 12 +++--------- 5 files changed, 17 insertions(+), 27 deletions(-) diff --git a/.github/workflows/new_pypi_release.yml b/.github/workflows/new_pypi_release.yml index 0ccb88f..9e1df41 100644 --- a/.github/workflows/new_pypi_release.yml +++ b/.github/workflows/new_pypi_release.yml @@ -10,16 +10,16 @@ jobs: name: Build source distribution runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - - uses: actions/setup-python@v2 + - uses: actions/setup-python@v5 name: Install Python with: - python-version: "3.9" + python-version: "3.13" - name: Install dependencies run: | - python3 -m pip install --upgrade pip wheel + python3 -m pip install --upgrade pip setuptools wheel python3 -m pip install -r requirements.txt - name: Build dist diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml index 3dc80a7..b1da989 100644 --- a/.github/workflows/unittest.yml +++ b/.github/workflows/unittest.yml @@ -9,12 +9,12 @@ jobs: flake8: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: - python-version: "3.9" + python-version: "3.13" - name: Install dependencies run: | @@ -28,12 +28,12 @@ jobs: coverage: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: - python-version: "3.9" + python-version: "3.13" - name: Install dependencies run: | @@ -53,14 +53,14 @@ jobs: strategy: matrix: os: [ ubuntu-latest, macos-latest ] - python-version: [ '3.9', '3.10', '3.11', '3.12' ] + python-version: [ '3.10', '3.11', '3.12', '3.13' ] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} diff --git a/requirements.txt b/requirements.txt index 6b80341..10ca590 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,3 @@ dateparser<2.0 requests>=2.0.0 -regex>=2021.11.10,<=2023.10.3 -setuptools_scm<4.2 +regex>=2021.11.10 diff --git a/setup.cfg b/setup.cfg index f0bc3eb..51640e6 100644 --- a/setup.cfg +++ b/setup.cfg @@ -11,9 +11,6 @@ replace = version='{new_version}' search = __version__ = '{current_version}' replace = __version__ = '{new_version}' -[bdist_wheel] -universal = 1 - [flake8] exclude = - docs diff --git a/setup.py b/setup.py index 71a82c7..befe188 100644 --- a/setup.py +++ b/setup.py @@ -47,17 +47,11 @@ 'Intended Audience :: Developers', 'License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication', 'Natural Language :: English', - 'Programming Language :: Python :: 3.7', - 'Programming Language :: Python :: 3.8', - 'Programming Language :: Python :: 3.9', 'Programming Language :: Python :: 3.10', 'Programming Language :: Python :: 3.11', + 'Programming Language :: Python :: 3.12', + 'Programming Language :: Python :: 3.13', ], - use_scm_version={ - 'local_scheme': 'node-and-date', - }, - setup_requires=[ - 'setuptools_scm' - ], + python_requires='>=3.10', test_suite='tests', ) From c6fa2e46b05878817bd807ff6c77db3975ea7cd4 Mon Sep 17 00:00:00 2001 From: Andrew E Slaughter Date: Tue, 28 Jul 2026 15:33:56 -0600 Subject: [PATCH 2/4] CI updates for M3works migration --- .github/workflows/new_pypi_release.yml | 51 ------------------ .github/workflows/release_pypi.yaml | 38 +++++++++++++ .github/workflows/testing.yml | 62 +++++++++++++++++++++ .github/workflows/unittest.yml | 74 -------------------------- README.rst | 5 +- requirements.txt | 1 - requirements_dev.txt | 11 ++-- setup.py | 6 +-- 8 files changed, 109 insertions(+), 139 deletions(-) delete mode 100644 .github/workflows/new_pypi_release.yml create mode 100644 .github/workflows/release_pypi.yaml create mode 100644 .github/workflows/testing.yml delete mode 100644 .github/workflows/unittest.yml diff --git a/.github/workflows/new_pypi_release.yml b/.github/workflows/new_pypi_release.yml deleted file mode 100644 index 9e1df41..0000000 --- a/.github/workflows/new_pypi_release.yml +++ /dev/null @@ -1,51 +0,0 @@ -name: Release to Pypi - -# Run on a published release and push to Pypi -on: - release: - types: [published] - -jobs: - build_dist: - name: Build source distribution - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - uses: actions/setup-python@v5 - name: Install Python - with: - python-version: "3.13" - - - name: Install dependencies - run: | - python3 -m pip install --upgrade pip setuptools wheel - python3 -m pip install -r requirements.txt - - - name: Build dist - run: python setup.py sdist --formats=gztar - - - name: Build wheel - run: python3 setup.py bdist_wheel - - - uses: actions/upload-artifact@v4 - with: - path: dist/*.tar.gz - - pypi-publish: - needs: [build_dist] - name: upload release to PyPI - runs-on: ubuntu-latest - permissions: - # IMPORTANT: this permission is mandatory for trusted publishing - id-token: write - if: github.event_name == 'release' && github.event.action == 'published' - steps: - # retrieve your distributions here - - uses: actions/download-artifact@v4 - with: - name: artifact - path: dist - - - name: Publish package distributions to PyPI - uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/release_pypi.yaml b/.github/workflows/release_pypi.yaml new file mode 100644 index 0000000..e90a149 --- /dev/null +++ b/.github/workflows/release_pypi.yaml @@ -0,0 +1,38 @@ +name: Upload Python Package + +# Cut a tag, then publish a GitHub Release for that tag; publication triggers this upload. +on: + release: + types: [published] + +permissions: + contents: read + +jobs: + deploy: + runs-on: ubuntu-latest + # Gated environment: v* tags only, and a required reviewer must approve the run. + # The name must match the environment on the PyPI trusted publisher. + environment: pypi + permissions: + contents: read + # IMPORTANT: this permission is mandatory for trusted publishing + id-token: write + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.13' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install build + + - name: Build package + run: python -m build + + - name: Publish package + uses: pypa/gh-action-pypi-publish@release/v1 diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml new file mode 100644 index 0000000..33c0356 --- /dev/null +++ b/.github/workflows/testing.yml @@ -0,0 +1,62 @@ +# Configuration for unit testing +name: Testing and Coverage + +on: + pull_request: + branches: [ master ] + paths-ignore: + - '**.md' + - '**.rst' + push: + branches: [ master ] + paths-ignore: + - '**.md' + - '**.rst' + +permissions: + contents: read + +jobs: + flake8: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + + - name: Install dependencies + run: | + python3 -m pip install --upgrade pip + python3 -m pip install flake8 + + - name: Lint with flake8 + run: flake8 inicheck --ignore=C901,W503 + + test: + needs: [ flake8 ] + strategy: + fail-fast: false + matrix: + os: [ ubuntu-latest, macos-latest ] + python-version: [ '3.10', '3.11', '3.12', '3.13' ] + runs-on: ${{ matrix.os }} + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python3 -m pip install --upgrade pip + python3 -m pip install -r requirements_dev.txt + python3 -m pip install . + + - name: Test with pytest + run: pytest -v --cov=inicheck --cov-report=term-missing --cov-fail-under=75 diff --git a/.github/workflows/unittest.yml b/.github/workflows/unittest.yml deleted file mode 100644 index b1da989..0000000 --- a/.github/workflows/unittest.yml +++ /dev/null @@ -1,74 +0,0 @@ -name: Unittest, flake8 - -# Run action on pull requests -on: - pull_request: - branches: [ master ] - -jobs: - flake8: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.13" - - - name: Install dependencies - run: | - python3 -m pip install --upgrade pip - python3 -m pip install flake8 - - - name: Lint with flake8 - run: | - flake8 inicheck --ignore=C901,W503 - - coverage: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.13" - - - name: Install dependencies - run: | - python3 -m pip install --upgrade pip - python3 -m pip install coverage coveralls PyYAML pytest - python3 -m pip install -r requirements.txt - - - name: Run coverage - run: | - make coverage - coveralls --service=github - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - unittest: - needs: [ flake8, coverage ] - strategy: - matrix: - os: [ ubuntu-latest, macos-latest ] - python-version: [ '3.10', '3.11', '3.12', '3.13' ] - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v4 - - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v5 - with: - python-version: ${{ matrix.python-version }} - - - name: Install dependencies - run: | - python3 -m pip install --upgrade pip - python3 -m pip install -r requirements.txt - python3 -m pip install pytest - - - name: Run unittests - run: python3 -m pytest -v diff --git a/README.rst b/README.rst index 77ff8cc..def257f 100644 --- a/README.rst +++ b/README.rst @@ -10,8 +10,9 @@ Welcome to inicheck :target: https://inicheck.readthedocs.io/en/latest/?badge=latest :alt: Documentation Status -.. image:: https://coveralls.io/repos/github/USDA-ARS-NWRC/inicheck/badge.svg?branch=master - :target: https://coveralls.io/github/USDA-ARS-NWRC/inicheck?branch=master +.. image:: https://github.com/M3Works/inicheck/actions/workflows/testing.yml/badge.svg + :target: https://github.com/M3Works/inicheck/actions/workflows/testing.yml + :alt: Testing Status What is inicheck? diff --git a/requirements.txt b/requirements.txt index 10ca590..1561649 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,2 @@ dateparser<2.0 requests>=2.0.0 -regex>=2021.11.10 diff --git a/requirements_dev.txt b/requirements_dev.txt index 0ca42e8..df5afcd 100644 --- a/requirements_dev.txt +++ b/requirements_dev.txt @@ -1,9 +1,4 @@ -r requirements.txt -autopep8 -coverage==4.5.4 -coveralls==1.11.1 -isort==4.3.21 -sphinx-rtd-theme==0.4.3 -sphinx==1.8.5 -sphinxcontrib-apidoc==0.3.0 -pytest==6.0.2 +pytest>=8.0 +pytest-cov>=5.0 +coverage>=7.0 diff --git a/setup.py b/setup.py index befe188..94ba727 100644 --- a/setup.py +++ b/setup.py @@ -22,9 +22,9 @@ "configuration files", long_description=readme + '\n\n' + history, long_description_content_type='text/x-rst', - author="USDA ARS NWRC", - author_email='snow@ars.usda.gov', - url='https://github.com/USDA-ARS-NWRC/inicheck', + author="M3Works", + author_email='info@m3works.io', + url='https://github.com/M3Works/inicheck', project_urls={ 'Documentation': 'https://inicheck.readthedocs.io', }, From 2a34a76c305b90daea654d84c51b7291bf709f96 Mon Sep 17 00:00:00 2001 From: Andrew E Slaughter Date: Tue, 28 Jul 2026 16:42:37 -0600 Subject: [PATCH 3/4] updates for migration to M3Works github --- .github/workflows/testing.yml | 5 +-- .readthedocs.yaml | 16 +++++++ CONTRIBUTING.rst | 14 +++--- MANIFEST.in | 16 ------- Makefile | 83 ----------------------------------- docs/conf.py | 10 ++--- docs/installation.rst | 12 ++--- docs/usage.rst | 8 ++-- inicheck/__init__.py | 4 +- readthedocs.yaml | 7 --- requirements.txt | 2 - requirements_dev.txt | 4 -- setup.cfg | 26 ----------- setup.py | 57 ------------------------ 14 files changed, 42 insertions(+), 222 deletions(-) create mode 100644 .readthedocs.yaml delete mode 100644 MANIFEST.in delete mode 100644 Makefile delete mode 100644 readthedocs.yaml delete mode 100644 requirements.txt delete mode 100644 requirements_dev.txt delete mode 100644 setup.cfg delete mode 100644 setup.py diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml index 33c0356..998c7e9 100644 --- a/.github/workflows/testing.yml +++ b/.github/workflows/testing.yml @@ -30,7 +30,7 @@ jobs: - name: Install dependencies run: | python3 -m pip install --upgrade pip - python3 -m pip install flake8 + python3 -m pip install ".[dev]" - name: Lint with flake8 run: flake8 inicheck --ignore=C901,W503 @@ -55,8 +55,7 @@ jobs: - name: Install dependencies run: | python3 -m pip install --upgrade pip - python3 -m pip install -r requirements_dev.txt - python3 -m pip install . + python3 -m pip install ".[dev]" - name: Test with pytest run: pytest -v --cov=inicheck --cov-report=term-missing --cov-fail-under=75 diff --git a/.readthedocs.yaml b/.readthedocs.yaml new file mode 100644 index 0000000..25db8da --- /dev/null +++ b/.readthedocs.yaml @@ -0,0 +1,16 @@ +version: 2 + +build: + os: ubuntu-24.04 + tools: + python: "3.13" + +sphinx: + configuration: docs/conf.py + +python: + install: + - method: pip + path: . + extra_requirements: + - docs diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 17f6ed2..c51fe78 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -15,7 +15,7 @@ Types of Contributions Report Bugs ~~~~~~~~~~~ -Report bugs at https://github.com/USDA-ARS-NWRC/inicheck/issues. +Report bugs at https://github.com/M3Works/inicheck/issues. If you are reporting a bug, please include: @@ -45,7 +45,7 @@ articles, and such. Submit Feedback ~~~~~~~~~~~~~~~ -The best way to send feedback is to file an issue at https://github.com/USDA-ARS-NWRC/inicheck/issues. +The best way to send feedback is to file an issue at https://github.com/M3Works/inicheck/issues. If you are proposing a feature: @@ -68,7 +68,7 @@ Ready to contribute? Here's how to set up `inicheck` for local development. $ mkvirtualenv inicheck $ cd inicheck/ - $ python setup.py develop + $ pip install -e ".[dev]" 4. Create a branch for local development:: @@ -79,7 +79,7 @@ Ready to contribute? Here's how to set up `inicheck` for local development. 5. When you're done making changes, check that your changes pass flake8 and the tests: $ flake8 inicheck tests - $ python setup.py test or py.test + $ pytest To get flake8, just pip install them into your virtualenv. @@ -100,8 +100,8 @@ Before you submit a pull request, check that it meets these guidelines: 2. If the pull request adds functionality, the docs should be updated. Put your new functionality into a function with a docstring, and add the feature to the list in README.rst. -3. The pull request should work for Python >= 3.6. Check - https://github.com/USDA-ARS-NWRC/inicheck/pull_requests +3. The pull request should work for Python >= 3.10. Check + https://github.com/M3Works/inicheck/pull_requests and make sure that the tests pass for all supported Python versions. Releasing to PyPI @@ -109,7 +109,7 @@ Before you submit a pull request, check that it meets these guidelines: To create a new release on `Pypi.org `_, follow these steps: #. Create a new release for inicheck - #. Name the tag and release the version number, for example `v0.9.1 `_ + #. Name the tag and release the version number, for example `v0.9.1 `_ #. Add documentation about the release and why it's different from the previous. Especially highlight any changes that will break existing integrations. #. Publish new release which will trigger a build to release to PyPI diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 68a13fa..0000000 --- a/MANIFEST.in +++ /dev/null @@ -1,16 +0,0 @@ -include AUTHORS.rst -include CONTRIBUTING.rst -include HISTORY.rst -include LICENSE -include README.rst -include requirements.txt -include requirements_dev.txt - -include docs/inicheck.rst -include docs/modules.rst - -recursive-include tests * -recursive-exclude * __pycache__ -recursive-exclude * *.py[co] - -recursive-include docs *.rst conf.py Makefile make.bat *.jpg *.png *.gif diff --git a/Makefile b/Makefile deleted file mode 100644 index ccdc83f..0000000 --- a/Makefile +++ /dev/null @@ -1,83 +0,0 @@ -.PHONY: clean clean-test clean-pyc clean-build docs help -.DEFAULT_GOAL := help -define BROWSER_PYSCRIPT -import os, webbrowser, sys -try: - from urllib import pathname2url -except: - from urllib.request import pathname2url - -webbrowser.open("file://" + pathname2url(os.path.abspath(sys.argv[1]))) -endef -export BROWSER_PYSCRIPT - -define PRINT_HELP_PYSCRIPT -import re, sys - -for line in sys.stdin: - match = re.match(r'^([a-zA-Z_-]+):.*?## (.*)$$', line) - if match: - target, help = match.groups() - print("%-20s %s" % (target, help)) -endef -export PRINT_HELP_PYSCRIPT -BROWSER := python -c "$$BROWSER_PYSCRIPT" - -help: - @python -c "$$PRINT_HELP_PYSCRIPT" < $(MAKEFILE_LIST) - -clean: clean-build clean-pyc clean-test ## remove all build, test, coverage and Python artifacts - - -clean-build: ## remove build artifacts - rm -fr build/ - rm -fr dist/ - rm -fr .eggs/ - find . -name '*.egg-info' -exec rm -fr {} + - find . -name '*.egg' -exec rm -f {} + - -clean-pyc: ## remove Python file artifacts - find . -name '*.pyc' -exec rm -f {} + - find . -name '*.pyo' -exec rm -f {} + - find . -name '*~' -exec rm -f {} + - find . -name '__pycache__' -exec rm -fr {} + - -clean-test: ## remove test and coverage artifacts - rm -f .coverage - rm -fr htmlcov/ - -lint: ## check style with isort and pep8 - isort inicheck/*.py tests/*.py - autopep8 --aggressive --in-place inicheck/*.py tests/*.py - -test: ## run tests quickly with the default Python - py.test - -coverage: ## check code coverage quickly with the default Python - coverage run --source inicheck -m pytest - coverage report --fail-under=80 - -coveralls: coverage ## run coveralls - coveralls - -docs: ## generate Sphinx HTML documentation, including API docs - rm -f docs/inicheck.rst - rm -f docs/modules.rst - sphinx-apidoc -o docs/ inicheck - $(MAKE) -C docs clean - $(MAKE) -C docs html - $(BROWSER) docs/_build/html/index.html - -servedocs: docs ## compile the docs watching for changes - watchmedo shell-command -p '*.rst' -c '$(MAKE) -C docs html' -R -D . - -release: clean dist # package and upload a release - twine upload --repository pypi dist/* - -dist: clean ## builds source and wheel package - python setup.py sdist - python setup.py bdist_wheel - ls -l dist - -install: clean ## install the package to the active Python's site-packages - python setup.py install diff --git a/docs/conf.py b/docs/conf.py index fa789fb..82bde2a 100755 --- a/docs/conf.py +++ b/docs/conf.py @@ -14,7 +14,7 @@ # import os import sys -from pkg_resources import get_distribution +from importlib.metadata import version project_dir = os.path.abspath(os.path.dirname(os.getcwd())) print(project_dir) @@ -24,11 +24,11 @@ # -- Project information ----------------------------------------------------- project = 'inicheck' -copyright = '2020, Micah Johnson' -author = 'Micah Johnson' +copyright = '2026, M3Works' +author = 'M3Works' # The full version, including alpha/beta/rc tags -release = get_distribution('inicheck').version +release = version('m3w-inicheck') # -- General configuration --------------------------------------------------- @@ -148,7 +148,7 @@ # author, documentclass [howto, manual, or own class]). latex_documents = [ (master_doc, 'inicheck.tex', 'inicheck Documentation', - 'Micah Johnson', 'manual'), + 'M3Works', 'manual'), ] diff --git a/docs/installation.rst b/docs/installation.rst index 3456b90..9b6c21d 100644 --- a/docs/installation.rst +++ b/docs/installation.rst @@ -12,7 +12,7 @@ To install inicheck, run this command in your terminal: .. code-block:: console - $ pip install inicheck + $ pip install m3w-inicheck This is the preferred method to install inicheck, as it will always install the most recent stable release. @@ -32,20 +32,20 @@ You can either clone the public repository: .. code-block:: console - $ git clone git://github.com/USDA-ARS-NWRC/inicheck + $ git clone git://github.com/M3Works/inicheck Or download the `tarball`_: .. code-block:: console - $ curl -OL https://github.com/USDA-ARS-NWRC/inicheck/tarball/master + $ curl -OL https://github.com/M3Works/inicheck/tarball/master Once you have a copy of the source, you can install it with: .. code-block:: console - $ python setup.py install + $ pip install . -.. _Github repo: https://github.com/USDA-ARS-NWRC/inicheck -.. _tarball: https://github.com/USDA-ARS-NWRC/inicheck/tarball/master +.. _Github repo: https://github.com/M3Works/inicheck +.. _tarball: https://github.com/M3Works/inicheck/tarball/master diff --git a/docs/usage.rst b/docs/usage.rst index 96269ea..0911f33 100644 --- a/docs/usage.rst +++ b/docs/usage.rst @@ -165,8 +165,8 @@ Here are some examples of this in action: * `SMRFs example configuration header`_ * `SMRFs example custom header function`_ -.. _`SMRFs example configuration header`: https://github.com/USDA-ARS-NWRC/smrf/blob/master/examples/boise_river_basin/brb_wy2017.ini -.. _`SMRFs example custom header function`: https://github.com/USDA-ARS-NWRC/smrf/blob/master/smrf/utils/utils.py#L259 +.. _`SMRFs example configuration header`: https://github.com/M3Works/smrf/blob/master/examples/boise_river_basin/brb_wy2017.ini +.. _`SMRFs example custom header function`: https://github.com/M3Works/smrf/blob/master/smrf/utils/utils.py#L259 Custom Configuration File Section Titles @@ -198,6 +198,6 @@ The following is a good example of how this looks in a project: * `AWSMs example configuration titles`_ * `AWSMS module dictionary`_ -.. _`AWSMs example configuration titles`: https://github.com/USDA-ARS-NWRC/awsm/blob/master/tests/test_base_config.ini +.. _`AWSMs example configuration titles`: https://github.com/M3Works/awsm/blob/master/tests/test_base_config.ini -.. _`AWSMS module dictionary`: https://github.com/USDA-ARS-NWRC/awsm/blob/master/awsm/__init__.py +.. _`AWSMS module dictionary`: https://github.com/M3Works/awsm/blob/master/awsm/__init__.py diff --git a/inicheck/__init__.py b/inicheck/__init__.py index 65d4911..37c1b0e 100644 --- a/inicheck/__init__.py +++ b/inicheck/__init__.py @@ -1,8 +1,8 @@ # -*- coding: utf-8 -*- from os.path import abspath, dirname, join -__author__ = """Micah Johnson""" -__email__ = 'micah.johnson150@gmail.com' +__author__ = """M3Works""" +__email__ = 'info@m3works.io' __version__ = '0.2.2' # Keywords for conditional statements in a master config file diff --git a/readthedocs.yaml b/readthedocs.yaml deleted file mode 100644 index 7a1e8b5..0000000 --- a/readthedocs.yaml +++ /dev/null @@ -1,7 +0,0 @@ -build: - image: latest - -python: - version: 3.6 - setup_install: true - diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 1561649..0000000 --- a/requirements.txt +++ /dev/null @@ -1,2 +0,0 @@ -dateparser<2.0 -requests>=2.0.0 diff --git a/requirements_dev.txt b/requirements_dev.txt deleted file mode 100644 index df5afcd..0000000 --- a/requirements_dev.txt +++ /dev/null @@ -1,4 +0,0 @@ --r requirements.txt -pytest>=8.0 -pytest-cov>=5.0 -coverage>=7.0 diff --git a/setup.cfg b/setup.cfg deleted file mode 100644 index 51640e6..0000000 --- a/setup.cfg +++ /dev/null @@ -1,26 +0,0 @@ -[bumpversion] -current_version = 0.2.2 -commit = True -tag = True - -[bumpversion:file:setup.py] -search = version='{current_version}' -replace = version='{new_version}' - -[bumpversion:file:inicheck/__init__.py] -search = __version__ = '{current_version}' -replace = __version__ = '{new_version}' - -[flake8] -exclude = - - docs - - venv - - build - - dist -ignore = E203 -max-line-length = 88 -max-complexity = 10 -select = C,E,F,W,B,B950 - -[tool:pytest] - diff --git a/setup.py b/setup.py deleted file mode 100644 index 94ba727..0000000 --- a/setup.py +++ /dev/null @@ -1,57 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -"""The setup script.""" - -from setuptools import setup, find_packages - -with open('README.rst') as readme_file: - readme = readme_file.read() - -with open('docs/history.rst') as history_file: - history = history_file.read() - -with open('requirements.txt') as req_file: - requirements = req_file.read() - -setup( - name='m3w-inicheck', - version='0.2.2', - description="inicheck is an high level configuration file checker " - "enabling developers tight control over their users " - "configuration files", - long_description=readme + '\n\n' + history, - long_description_content_type='text/x-rst', - author="M3Works", - author_email='info@m3works.io', - url='https://github.com/M3Works/inicheck', - project_urls={ - 'Documentation': 'https://inicheck.readthedocs.io', - }, - packages=find_packages(include=['inicheck']), - entry_points={ - 'console_scripts': [ - 'inicheck=inicheck.cli:main', - 'inidiff=inicheck.cli:inidiff', - 'inimake=inicheck.cli:inimake', - 'inichangefind=inicheck.cli:detect_file_changes' - ] - }, - include_package_data=True, - install_requires=requirements, - license="CC0 1.0 Universal (CC0 1.0) Public Domain Dedication", - zip_safe=False, - keywords='inicheck', - classifiers=[ - 'Development Status :: 4 - Beta', - 'Intended Audience :: Developers', - 'License :: CC0 1.0 Universal (CC0 1.0) Public Domain Dedication', - 'Natural Language :: English', - 'Programming Language :: Python :: 3.10', - 'Programming Language :: Python :: 3.11', - 'Programming Language :: Python :: 3.12', - 'Programming Language :: Python :: 3.13', - ], - python_requires='>=3.10', - test_suite='tests', -) From 8ca6d4a87c0b357a98f51164b4c4c49d9b4b10b0 Mon Sep 17 00:00:00 2001 From: Andrew E Slaughter Date: Tue, 28 Jul 2026 16:50:48 -0600 Subject: [PATCH 4/4] Add missing files --- .bumpversion.cfg | 12 +++++++++ pyproject.toml | 65 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 77 insertions(+) create mode 100644 .bumpversion.cfg create mode 100644 pyproject.toml diff --git a/.bumpversion.cfg b/.bumpversion.cfg new file mode 100644 index 0000000..af7070a --- /dev/null +++ b/.bumpversion.cfg @@ -0,0 +1,12 @@ +[bumpversion] +current_version = 0.2.2 +commit = True +tag = True + +[bumpversion:file:pyproject.toml] +search = version = "{current_version}" +replace = version = "{new_version}" + +[bumpversion:file:inicheck/__init__.py] +search = __version__ = '{current_version}' +replace = __version__ = '{new_version}' diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..bcef43b --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,65 @@ +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[project] +name = "m3w-inicheck" +version = "0.2.2" +description = "inicheck is an high level configuration file checker enabling developers tight control over their users configuration files" +readme = "README.rst" +requires-python = ">=3.10" +license = "CC0-1.0" +authors = [{ name = "M3Works", email = "info@m3works.io" }] +keywords = ["inicheck"] +classifiers = [ + "Development Status :: 4 - Beta", + "Intended Audience :: Developers", + "Natural Language :: English", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", +] +dependencies = [ + "dateparser<2.0", + "requests>=2.0.0", +] + +[project.optional-dependencies] +dev = [ + "pytest>=8.0", + "pytest-cov>=5.0", + "coverage>=7.0", + "flake8", + # flake8 cannot read pyproject.toml on its own; this plugin is what makes [tool.flake8] work + "Flake8-pyproject", + "build", + "bump2version", +] +docs = [ + "sphinx", + "sphinx-rtd-theme", + "sphinxcontrib-apidoc", +] + +[project.scripts] +inicheck = "inicheck.cli:main" +inidiff = "inicheck.cli:inidiff" +inimake = "inicheck.cli:inimake" +inichangefind = "inicheck.cli:detect_file_changes" + +[project.urls] +Homepage = "https://github.com/M3Works/inicheck" +Repository = "https://github.com/M3Works/inicheck" +Documentation = "https://inicheck.readthedocs.io" + +[tool.hatch.build.targets.wheel] +packages = ["inicheck"] + +# Carried over verbatim from setup.cfg's [flake8]; read via the Flake8-pyproject plugin. +[tool.flake8] +exclude = ["docs", "venv", "build", "dist"] +ignore = ["E203"] +max-line-length = 88 +max-complexity = 10 +select = ["C", "E", "F", "W", "B", "B950"]