-Added descriptive docstrings across `Falyx` and `CommandArgumentParser` internals: - `is_cli_mode`, `get_tip`, and `_render_help` in `falyx.py` - Validation and parsing helpers in `command_argument_parser.py` (`_validate_nargs`, `_normalize_choices`, `_validate_default_list_type`, `_validate_action`, `_register_store_bool_optional`, `_register_argument`, `_check_if_in_choices`, `_raise_remaining_args_error`, `_consume_nargs`, `_consume_all_positional_args`, `_handle_token`, `_find_last_flag_argument`, `_is_mid_value`, `_is_invalid_choices_state`, `_value_suggestions_for_arg`) - Introduced `_raise_suggestion_error()` utility to standardize error messages when required values are missing, including defaults and choices. - Replaced duplicated inline suggestion/error logic in `APPEND`, `EXTEND`, and generic STORE handlers with this helper. - Improved error chaining with `from error` for clarity in `_normalize_choices` and `_validate_action`. - Consolidated `HELP`, `TLDR`, and `COUNT` default-value validation into a single check. - Enhanced completions: - Extended suggestion logic to show remaining flags for `APPEND`, `EXTEND`, and `COUNT` arguments when last tokens are not keywords. - Added `.config.json` to `.gitignore`. - Bumped version to 0.1.85.
49 lines
1.2 KiB
TOML
49 lines
1.2 KiB
TOML
[tool.poetry]
|
|
name = "falyx"
|
|
version = "0.1.85"
|
|
description = "Reliable and introspectable async CLI action framework."
|
|
authors = ["Roland Thomas Jr <roland@rtj.dev>"]
|
|
license = "MIT"
|
|
readme = "README.md"
|
|
packages = [{ include = "falyx" }]
|
|
|
|
[tool.poetry.dependencies]
|
|
python = ">=3.10"
|
|
prompt_toolkit = "^3.0"
|
|
rich = "^14.0"
|
|
pydantic = "^2.0"
|
|
python-json-logger = "^3.3.0"
|
|
toml = "^0.10"
|
|
pyyaml = "^6.0"
|
|
aiohttp = "^3.11"
|
|
python-dateutil = "^2.8"
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
pytest = "^8.3.5"
|
|
pytest-asyncio = "^0.20"
|
|
ruff = "^0.3"
|
|
toml = "^0.10"
|
|
black = { version = "^25.0", allow-prereleases = true }
|
|
mypy = { version = "^1.0", allow-prereleases = true }
|
|
isort = { version = "^5.0", allow-prereleases = true }
|
|
pytest-cov = "^4.0"
|
|
mkdocs = "^1.6.1"
|
|
mkdocs-material = "^9.6.14"
|
|
mkdocstrings = {extras = ["python"], version = "^0.29.1"}
|
|
mike = "^2.1.3"
|
|
|
|
[tool.poetry.scripts]
|
|
falyx = "falyx.__main__:main"
|
|
|
|
[build-system]
|
|
requires = ["poetry-core>=1.0.0"]
|
|
build-backend = "poetry.core.masonry.api"
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "auto"
|
|
#asyncio_default_fixture_loop_scope = "function"
|
|
|
|
[tool.pylint."MESSAGES CONTROL"]
|
|
disable = ["broad-exception-caught"]
|