Reverse Argparse Versions Save

A Python library to determine what exactly the user ran at the command line, along with default values, and any transformations that happened after parsing arguments.

v1.0.8

3 weeks ago

Chore

  • chore: Remove commitizen configuration (73ceec1)

  • chore: Remove commitizen pre-commit hook (18c274f)

    In order to enable a faster development workflow, remove the commitizen pre-commit hook to allow commits messages that don't adhere to the Conventional Commits specification. Commit messages are still checked in the Continuous Integration workflow, though, so a branch will need to be clean before merging.

Continuous Integration

Documentation

  • docs: Fix license/copyright text in file (1d496c1)

    Should have been included in b3553415da40949f9ce496ca1363cb69424da791, but was overlooked.

  • docs: Reword Conventional Commits guidelines (6659b11)

  • docs: Add code lines badge (9e4953d)

Patch

  • patch: Indicate that the package is typed (bd89c55)

    According to PEP 561, we need to add this file to static type checkers can infer the types from the package.

Test

  • test: Ignore assert warnings in test files (01f97d0)

v1.0.7

1 month ago

Chore

  • chore: Ignore security findings in tests/examples (f18ece4)

  • chore: Switch to Ruff (6112943)

    Use Ruff to replace a variety of linters/formatters.

  • chore: Fix badge URLs (2c8dda1)

    Somehow it looks like some hidden character wound up copy/pasted in the middle of the https.

  • chore: Add PR template (eb0b3b8)

Continuous Integration

Documentation

  • docs: Add docstrings to test/example files (f0b7eb9)

  • docs: Add OpenSSF Scorecard badge to ReadTheDocs (91c5557)

  • docs: Add CodeFactor badge (105a394)

  • docs: Adopt Conventional Comments (9d16c0c)

    Try to encourage effective communication via issues/PRs.

  • docs: Update link to latest GMS release (af2ce45)

  • docs: Move copyright/license text to comments (b355341)

    In all source files, move the copyright and license text from the module docstring to comments immediately below it. This is to avoid processing this text when Sphinx is automatically generating documentation from docstrings.

  • docs: Add contributor license agreement (9531c94)

  • docs: Update copyright text in source files (4cba3d0)

    Per guidance from Sandia Technology Transfer, the recommended text from the Linux Foundation is insufficient for our purposes.

  • docs: Update copyright/license info (4d1d42a)

    Update the copyright years in the LICENSE.md file and add copyright and license information to all source files (part of the Gold level OpenSSF Best Practices).

  • docs: Add coverage job steps (3b20a84)

    Add steps to the CI job to compute the documentation coverage for the package and archive the results.

Patch

  • patch: Force prefer_short to be keyword-only (f02c7f2)

    Turning on flake8-boolean-trap linting via Ruff resulted in the following findings:

    reverse_argparse/reverse_argparse.py:242:31:
    FBT002 Boolean default positional argument in function definition
    reverse_argparse/reverse_argparse.py:242:31:
    FBT001 Boolean-typed positional argument in function definition
    Found 2 errors.
    

    Switching prefer_short from a positional to a keyword-only argument addresses the problem.

    Note that this is technically a breaking change, but only for a "private" method, not in the package's public API. Therefore the change is not registered as a breaking change via Conventional Commit syntax, and no major version update will be created. Instead, this commit will force the creation of a patch release. If users were relying on the prior behavior of this internal method, they can simply switch to the keyword syntax when calling it.

Refactor

  • refactor: Address Ruff-specific lint findings (076e199)

  • refactor: Address Pylint findings (862bc62)

  • refactor: Ignore particular type error (9d412dd)

  • refactor: Remove unnecessary shebang lines (a7ae1f6)

  • refactor: Assign exception messages to variables (844c71a)

    Running flake8-errmsg via Ruff yielded the following findings:

    reverse_argparse/reverse_argparse.py:143:17:
    EM102 Exception must not use an f-string literal, assign to variable
    first
    reverse_argparse/reverse_argparse.py:461:17:
    EM102 Exception must not use an f-string literal, assign to variable
    first
    Found 2 errors.
    

    This changes resolves the issues.

  • refactor: Don't override Python builtins (9006adb)

Test

  • test: Use tuples for parametrize variables (25d9be8)

  • test: Use UTC timezone with datetime (25ff30f)

    Running flake8-datetimez via Ruff yielded the following findings:

    example/test_examples.py:88:25:
    DTZ005 `datetime.datetime.now()` called without a `tz` argument
    example/test_examples.py:89:25:
    DTZ007 Naive datetime constructed using
    `datetime.datetime.strptime()` without %z
    example/test_examples.py:125:13:
    DTZ005 `datetime.datetime.now()` called without a `tz` argument
    example/test_examples.py:126:25:
    DTZ007 Naive datetime constructed using
    `datetime.datetime.strptime()` without %z
    Found 4 errors.
    

    Specifying timezone info resolves the issues.

v1.0.6

4 months ago

Continuous Integration

Documentation

  • docs: Add more badges (629857d)

    Add additional badges to capture things like contributions, the conda-forge release channel, etc.

  • docs: Include badges in ReadTheDocs (e30fc68)

    Include the badges from the README in the index page of our documentation so this information is visible on ReadTheDocs in addition to GitHub and PyPI.

    Closes #81.

  • docs: Private vulnerability reporting (9d6a758)

    Remove the security issue template and instead direct people to file a private security advisory.

Patch

  • patch: Add a badge for the CodeQL action (2d77837)

    Create a patch release to push all these new badges out to PyPI.

v1.0.5

7 months ago

Chore

  • chore: Update python-semantic-release config (9972341)

    • Add commit types to automatically bump the minor or patch version numbers via a commit message.
    • Update commitizen configuration to allow the new commit types.
  • chore: Add Python 3.12 to pyproject.toml (ef59c2d)

    This was accidentally omitted in 6642a176e3591f3ef8ed0c04dbcbc4a257c5b127.

  • chore: Remove YAPF configuration (ad02127)

    We switched to black back in #5.

Continuous Integration

Documentation

  • docs: Remove dependency pinning (b14034f)

    I should be the case that the bugs that kept us on an older version of Sphinx have been resolved at this point, so remove the version pinning.

  • docs: Add sphinx-copybutton (2122825)

    Automatically add a button to all code boxes to copy the contents to the clipboard.

  • docs: Fix typos (eb05c2c)

  • docs: Special thanks to @mjsumpter (6cc3054)

    Include @mjsumpter in the Credits section at the bottom of the README, as he put together a prior iteration of this concept under my guidance. His earlier implementation informed the eventual creation of this package.

  • docs: Add CI details to contributing guidelines (b8269bf)

  • docs: Check spelling (b72ee11)

    Add sphinxcontrib-spelling extension to check the spelling in our documentation, and add a step to the CI job to ensure all is well.

  • docs: Add OpenSSF Best Practices badge (604fb61)

  • docs: Fix copy/paste issue (2f6517a)

  • docs: pre-commit install instructions (063d8f9)

Patch

  • patch: Add release notes template (a447eac)

    • Create a template to govern the generation of release notes by python-semantic-release.
    • Bump the patch version number to test that this works as expected.

Test

  • test: Run examples in CI (6642a17)

    Create example/test_examples.py so pytest runs all the examples and checks their output.

v1.0.4

10 months ago

v1.0.4 (2023-07-25)

Fix

v1.0.3

10 months ago

v1.0.3 (2023-07-25)

Fix

  • fix: Semantic release configuration (a73688c)

v1.0.2

10 months ago

v1.0.2 (2023-07-24)

Ci

  • ci: Remove -vv for semantic-release (d83ae5d)

Fix

  • fix: Release notes template (1ac839a)

  • fix: Semantic release configuration

  • Add __init__.py to the files modified.

  • Fix the __version__ in that file.

  • Remove trailing space in CHANGELOG template.

  • Add build command.

  • Make release commit match conventional standard.

  • Add release notes template.

  • Publish releases to PyPI and GitHub Releases. (0325dc0)

v1.0.1

10 months ago

v1.0.1 (2023-07-20)

Ci

  • ci: Rename workflow file (1cfed2d)

  • ci: Add conventional commits job (c683d7a)

  • ci: Set up semantice-release

Add a semantic-release configuration to pyproject.toml, with a custom CHANGELOG.md template. Also add a GitHub Actions workflow. (9f233be)

Documentation

Fix

  • fix: Include version in init.py (b7b369e)

v1.0.0

10 months ago

Initial release of the reverse_argparse package.