-
ci: pre-commit auto-update (
47bb274
)updates:
-
ci: pre-commit auto-update (
9d3e11a
)updates:
-
ci: pre-commit auto-update (
48da6a4
)updates:
-
ci: pre-commit auto-update (
a5591e4
)updates:
-
ci: pre-commit auto-update (
5d80e7d
)updates:
-
ci: pre-commit auto-update (
bbc7a4e
)updates:
-
ci: pre-commit auto-update (
4c5b060
)updates:
-
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: Add a badge for the CodeQL action (
2d77837
)Create a patch release to push all these new badges out to PyPI.
-
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.
-
ci: pre-commit auto-update (
cb014b7
)updates:
-
ci: pre-commit auto-update (
568c816
)updates:
-
ci: pre-commit auto-update (
b57dc9f
)updates:
-
ci: Add Python 3.12 to CI (
f03f4dc
)Also update the version badge to specify particular versions.
-
ci: pre-commit auto-update (
d9fc077
)updates:
-
ci: pre-commit auto-update (
e97c276
)updates:
-
ci: pre-commit auto-update (
87d1f7e
)updates:
-
ci: pre-commit auto-update (
b750046
)updates:
-
ci: pre-commit auto-update (
b50b368
)updates:
-
ci: pre-commit auto-update (
989ba52
)updates:
-
ci: Fix pre-commit auto-update message (
6475b1f
)Ensure the commit message used by the pre-commit auto-update bot adheres to the Conventional Commits specification.
-
ci: pre-commit autoupdate (
08fe531
)updates:
-
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: 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: Run examples in CI (
6642a17
)Create
example/test_examples.py
sopytest
runs all the examples and checks their output.
- fix: PyPI badge (
1581e2a
)
- fix: Semantic release configuration (
a73688c
)
- ci: Remove
-vv
forsemantic-release
(d83ae5d
)
-
fix: Release notes template (
1ac839a
) -
fix: Semantic release configuration (
0325dc0
)- 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.
- Add
-
ci: Rename workflow file (
1cfed2d
) -
ci: Add conventional commits job (
c683d7a
) -
ci: Set up semantice-release (
9f233be
)Add a semantic-release configuration to
pyproject.toml
, with a customCHANGELOG.md
template. Also add a GitHub Actions workflow.
- docs: Fix PyPI badge (
edcc3d4
)
- fix: Include version in init.py (
b7b369e
)
-
1.0.1 (
92bdc1a
)Automatically generated by python-semantic-release.
-
refactor!: Build up
args
consecutively (d9a5639
)Rework the class such that:
- We initialize the
args
to a list of strings containing only the program name. - Each
_unparse_*
method appends a list of strings corresponding to the action to theargs
. - The
get_*_command_line_invocation
methods appropriately concatenate the elements inargs
into a single string.
This sets us up for being able to handle sub-parser actions.
Note that this is a breaking change, as it removes the
get_*_args
public methods. - We initialize the
- chore: Enable Pyroma (
124fa62
) - chore: Enable Bandit (
80e5bbe
) - chore: Add pre-commit hooks (
1c2a015
) - chore: Add pre-commit configuration (
93ba0e7
) - chore: Add VS Code settings (
cc4edb2
) - chore: Add pycache to .gitignore (
48a8acd
)
-
ci: Remove documentation jobs (
81ab9c2
)Let ReadTheDocs test the PR instead.
-
ci: Add Sphinx job to build the docs (
671ac18
) -
ci: Install all development dependencies (
d8e7cf6
) -
ci: Switch to CodeCov (
5899e2f
)Abandon Coveralls, as it doesn't seem to integrate well with GitHub Actions.
-
ci: Add Coveralls integration (
7b19390
) -
ci: Don't auto-fix PRs (
cab73e9
) -
ci: Switch flake8 (
477646b
)Instead of running
flake8
in our GitHub Actions workflow, run it via pre-commit.ci. -
ci: Add initial workflow (
9e42fcd
)Create initial GitHub Actions workflow to lint and test the package.
-
docs: Prepare for PyPI (
511e859
) -
docs: Fix punctuation. (
cfc1279
) -
docs: Tweak badge (
369b154
) -
docs: Sort badges in README (
9db52fe
) -
docs: Add ReadTheDocs badge to README (
df7e2db
) -
docs: Correct links (
df1bde3
)Correct the URL for the documentation hosting on ReadTheDocs.
-
docs: Create
_static
directory (6d83328
) -
docs: Install the package first (
c00c692
)Try to
pip install .
as part of creating the environment for ReadTheDocs. -
docs: Add ReadTheDocs configuration (
32e84f1
) -
docs: Add Sphinx documentation (
4595541
)Create the Sphinx-based documentation for the package, including:
- Getting started guidelines
- The motivation for the package
- Example use cases
- Reference documentation for developers
-
docs: Add CI badge to README (
b14c7dd
) -
docs: Fix contributing guidelines (
87afd52
) -
docs: Address pydocstyle issues (
1c1d2e2
) -
docs: Update contributing guidelines (
7f41b8d
)Translate from GitLab to GitHub.
-
docs: Add issue template (
9e8cfc0
) -
docs: Update Markdown files (
62c9115
)Tweaks to link syntax, etc.
-
docs: Update README.md (
1d69674
) -
docs: Add LICENSE.md (
72de284
) -
docs: Make unparse grammar consistent (
bb55e4d
)Make the spelling of unparse and its derivatives consistent (no hyphenation, not quoted) in all docstrings and text printed to the terminal.
-
feat: Make private method public (
509fafb
)Since classes/scripts using
reverse_argparse
may also need the ability to quote a command line argument if there are spaces in it, transitionquote_arg_if_necessary
from a private to a public method. This will avoid code duplication outsidereverse_argparse
, and ensure classes and scripts that are using it are quoting arguments consistently. -
feat: Handle subparsers (
b2262d5
)Enable the unparsing of subparser actions by recursively pushing them onto the stack of parsers, unparsing them, and popping them back off the stack.
Note: This also makes it such that optional arguments are unparsed before positional ones, as this is required when dealing with subparsers.
-
fix: Move init.py (
324f3e5
)Part of extracting this package from the repository it was initially developed in.
-
fix: Correct method call (
27fb201
)Should have been part of 509fafb33329128ba8985578d66ab1bffe3fdbfb.
-
fix: Omit suppressed arguments (
9484360
)If an argument's help text has been suppressed, and the value of the argument matches the default value, that indicated that a parser author has hidden an argument from users, and the user hasn't modified it on the command line. To match the parser author's intent, such arguments should be omitted from the effective command line invocation.
-
refactor: Only support Python 3.8+ (
8d15f4a
)Changes that can be undone when we remove 3.8 support:
- Change certain type hints to work for 3.8
- Use version guard around
BooleanOptionalAction
Changes that can be undone when we remove 3.9 support:
- Switch match-case statement to if block.
-
refactor: Address pylint issues (
b4555dc
) -
refactor: Address isort issues (
fd6242d
) -
refactor: Address mypy issues (
403e53d
) -
refactor: Display positional arguments first (
ccf644d
)Display positional rather than optional arguments first in the effective command line. This is necessary to prepare for the ability to handle sub-parsers.
-
refactor: Prepare for nested parsers (
ec3a7d8
)Change the
parser
attribute to be a list of parsers to prepare for processing nested parsers.
- style: Address black issues (
f2a8622
)
-
test: Adjust code coverage (
b7aa09e
) -
test: Rework tests for calling program name (
8c21452
)As part of the transition from GitLab CI/CD to GitHub Actions, the program name used when running the tests has shifted from
__main__.py
topytest
. This commits adjusts the tests to ignore the program name, and only pay attention to the arguments that come after it, such that the tests will work in both contexts. -
test: Fix import (
65e57ba
)Rework how the tests import the class, given the package reorganization after pulling it out of the repository it was initially developed in.
-
[pre-commit.ci] pre-commit autoupdate (
a88839f
)updates:
-
[pre-commit.ci] pre-commit autoupdate (
f0df3d3
)updates:
-
[pre-commit.ci] pre-commit autoupdate (
fd58d13
)updates:
-
Add more issue templates (
234b562
) -
Add CHANGELOG.md (
7bcc39d
) -
Add CONTRIBUTING.md (
2b6dfc0
) -
Add CODE_OF_CONDUCT.md (
acbac7d
) -
Add SECURITY.md (
4ef978c
) -
Add README.md (
4a0580c
) -
Move init.py (
c50bcd2
) -
Add setup.py (
1de083b
) -
Add requirements.txt (
75aa526
) -
Add pyproject.toml (
e833969
) -
Add .style.yapf (
13d6301
) -
Add .gitignore (
1c329cf
) -
Add .coveragerc (
b43be41
) -
Unparse
BooleanOptionalAction
(cd82066
) -
Unparse
extend
action (3e9fbd3
) -
Unparse
count
action (224b23b
) -
Unparse
append_const
action (b22390a
) -
Unparse
store_const
action (64cc273
) -
Create
reverse_argparse
module (#1873) (1ab310c
)Create a module that is able to generate the effective command line invocation of a script, given the
ArgumentParser
that was used to parse the command line options, and theNamespace
of those parsed options. This makes it such that users can know exactly what was run, including all default values, and any transformations that might've been made to the arguments after parsing.This commit only implements the functionality we care about at the moment, which includes the following "actions":
- store
- store_true
- store_false
- append
- help
- version
The remaining actions are stubbed out but not yet implemented:
- store_const
- append_const
- count
- extend
- BooleanOptionalAction
Also how sub-parsers are handled remains to be determined in the future.