56 Commits
Author SHA1 Message Date
timmy 43d12526d9 Fix pathlib on 3.13 2026-02-09 18:10:59 -08:00
timmy e63b8dc511 Remove python3.9 code 2026-02-09 18:10:59 -08:00
timmy dd56ced241 Upgrade pre-commit 2026-02-09 18:04:35 -08:00
timmy 239152e0f6 Update github actions 2025-11-03 17:53:31 -08:00
timmy 68bdce33d3 Drop python 3.9 2025-11-03 17:43:34 -08:00
timmy ba1c12a575 pre-commit 2025-08-30 20:40:46 -07:00
timmy d284039f12 Update pre-commit 2025-08-30 20:26:32 -07:00
timmy 5fc7a5173d Update tests
Remove python3.8 leftovers
Add prog to create_argparser
Remove metavar usage from BooleanOptionalAction
2025-08-30 20:26:18 -07:00
timmy ecda6fe610 Extract arguments for generic types 2025-08-30 20:07:43 -07:00
timmy cfc55b7366 Drop python 3.8 2025-05-01 17:13:07 -07:00
timmy 6b158ca495 Handle lists of Enum 2025-05-01 17:01:34 -07:00
timmy f1735c879d Don't inherit from argparse Namespace 2024-06-06 19:33:07 -07:00
timmy 8d772c6513 Improve types 2024-05-20 15:09:33 -07:00
timmy 73552e0dd2 Improve Generic list and set typing 2024-05-19 14:11:18 -07:00
timmy 58daa4b274 Fix deduplication 2024-05-18 16:46:44 -07:00
timmy 43f6bf1eac Improve type detection 2024-05-18 15:49:32 -07:00
timmy eca7be0c51 Set optional None types 2024-05-18 13:03:50 -07:00
timmy 709aec31f0 Merge branch 'pre-commit-ci-update-config' 2024-04-29 19:12:57 -07:00
timmy a3eb2f8e31 Fix metavar deprecation on BooleanOptionAction 2024-04-29 19:12:48 -07:00
timmy c588fc891e Support type generation for dicts an addition to namespaces 2024-02-22 19:15:47 -08:00
timmy 1ce6079285 Fix pre-commit 2024-02-22 19:14:45 -08:00
timmy 7c748f6815 Merge branch 'pre-commit-ci-update-config' 2024-02-22 14:44:51 -08:00
timmy 8d5b30546e Improve type guessing for generic Sequence types 2024-02-22 14:42:07 -08:00
timmy d30e73a679 Do not add duplicate settings when generating a namespace 2023-12-17 18:26:57 -08:00
timmy fc2a175e5b Fix normalization of settings using a custom dest 2023-12-17 16:09:41 -08:00
timmy 4c385667e8 Fix settings being overwritten when using the same dest attribute 2023-12-16 16:51:00 -08:00
timmy 9ffefb3e21 Fix readme example 2023-11-19 00:20:43 -08:00
timmy 23d0139144 Map argparse --help output to python versions 2023-11-19 00:14:06 -08:00
timmy 0c49b9309d Persist unknown groups 2023-11-18 23:58:18 -08:00
timmy ccacca1b32 Improve generated namespace
Improve formatting of namespace
Allow _guess_type to return any string
Add tests
2023-11-18 23:31:24 -08:00
timmy 2c79e62765 Fix exported names 2023-11-18 12:43:53 -08:00
timmy 101eef56ca Sanitize group names 2023-09-04 18:32:14 -05:00
timmyandGitHub 0301e1698c Merge pull request #5 from lordwelch/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2023-08-15 07:43:05 -07:00
timmy 4c41e6f588 Use a custom class for typing
Add support for nargs to default to list[str]
2023-06-09 15:41:18 -07:00
timmy b599097cc1 Adds a function to generate a class for typing a namespace 2023-06-08 22:54:36 -07:00
timmy 8af75d3962 Update docstrings and ensure parameters are consistent 2023-06-08 21:44:07 -07:00
timmy e57ee25a60 Make get_namespace consistent with normalize_config 2023-06-08 21:44:07 -07:00
timmyandGitHub 3ed9571156 Merge pull request #2 from lordwelch/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2023-05-06 09:32:31 -07:00
timmy 78ac274e31 Include pyproject.toml 2023-04-26 15:32:06 -07:00
timmy 05c2196fcf Update minimum requirements for typing-extensions 2023-04-26 15:04:57 -07:00
timmy e2ff779c30 Add py.typed 2023-04-25 00:13:51 -07:00
timmyandGitHub e9d0e874f3 Merge pull request #1 from lordwelch/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2023-04-24 23:20:57 -07:00
timmy ea5be60c63 Add un-committed fix and version bump 2023-02-20 02:07:35 -08:00
timmy 391f65c71f Version Bump 2023-02-20 02:01:02 -08:00
timmy ba645eb7c6 Implement qoc fixes
Fix fstring
Add comments explaining execution of normalize_config with defaults arg
Fix not removing file or cmdline settings in persistent groups
Fix a bug in get_namespace when config is a namespace
Add additional tests
2023-02-20 01:59:40 -08:00
timmy 69800f01b6 Version Bump 2023-02-19 22:22:45 -08:00
timmy b2eaa12a0e Upgrade pre-commit 2023-02-19 22:21:05 -08:00
timmy fe7c821605 Add a display_name attribute to Setting 2023-02-19 18:39:35 -08:00
timmy d07cf9949b Allow adding settings to existing groups
Calling add_group or add_persistent_group twice will add any new
settings defined.

Raise a ValueError if add_group or add_persistent_group is called during
a call to add_group or add_persistent_group.
2023-02-19 18:07:14 -08:00
timmy 41cf2dc7cd Version Bump 2023-01-31 19:35:35 -08:00
timmy 577b43c4e8 Fix regression with settings with a '-' 2023-01-31 19:35:10 -08:00
timmy 983fe782a3 Version Bump 2023-01-31 19:19:04 -08:00
timmy d2326eadb9 Add support for persistent setting groups
Persistent setting groups allow settings that are not declared to
 survive normalization and other operations that would normally remove
 any unknown keys in a group.

Calling normalize or get_namespace with persistent=False will remove
 unknown keys even from persistent groups.

Currently the only way to retrieve the defaults for a config and
 preserve unknown keys is to manually get the defaults and update each
 existing group with the default values.
2023-01-31 19:18:09 -08:00
timmy c3976c2fb5 Version Bump 2022-12-15 19:00:40 -08:00
timmy 38e42bf3f9 Make most functions work off of Config objects and Values/Namespace objects
Used Generic for better typing
Backported BooleanOptionalAction for tests on Python 3.8
Remove merge support in normalize_config
Add test to validate that the example works
2022-12-15 18:53:29 -08:00
timmy eb0b6ec0fe Initial Commit 2022-12-14 20:57:57 -08:00