feat: add type hints, new CLI features, and improve project structure

chore: add uv.lock to gitignore

Major changes:
- Add type hints and docstrings to all functions (PEP 484)
- Add __main__.py for module execution (python -m genpass)
- Expose public API in __init__.py
- Add config file support (~/.genpass/config.json)
- Add entropy calculation (--entropy)
- Add clipboard support (--clipboard/-c)
- Add ambiguous characters exclusion (--no-ambiguous)
- Add output formats: plain, json, delimited (--format)
- Add sensible defaults (all character types enabled by default)
- Add input validation for length and count
- Update shell completions for all new options
- Add pre-commit config with ruff, mypy, black
- Update pyproject.toml with dev dependencies and tool configs
- Add requirements.txt and requirements-dev.txt
- Update README.md with comprehensive examples

BREAKING CHANGE: Default behavior now includes all character types
This commit is contained in:
kilyabin
2026-03-10 00:42:16 +04:00
parent c11345d576
commit eeca690c0a
13 changed files with 969 additions and 67 deletions

View File

@@ -0,0 +1,30 @@
"""
GenPass - Secure password generator.
This package provides functionality to generate strong, random passwords
with customizable character sets and various security features.
Example usage:
>>> from genpass import generate_password, get_character_pools
>>> pools = get_character_pools(True, True, True, True, "!@#$%", False)
>>> password = generate_password(16, pools)
>>> print(password)
"""
from genpass.cli import (
AMBIGUOUS_CHARS,
DEFAULT_SYMBOLS,
calculate_entropy,
generate_password,
get_character_pools,
)
__version__ = "2.0.0"
__all__ = [
"generate_password",
"get_character_pools",
"calculate_entropy",
"DEFAULT_SYMBOLS",
"AMBIGUOUS_CHARS",
"__version__",
]