Release Notes¶
This page contains the release history and changelog for params-proto.
Version 3.2.0 (2025-02-01)¶
✨ Features¶
Unprefixed CLI Subcommand Attributes: Subcommand attributes no longer require prefix by default
Old:
python train.py train-config --config.epochs 200New:
python train.py train-config --epochs 200Prefixed syntax still works for backwards compatibility
@proto.prefixControls CLI Prefix Requirement: Classes decorated with@proto.prefixrequire prefixed CLI syntaxRegular dataclasses:
--epochs 200(unprefixed)@proto.prefixclasses:--config.epochs 200(prefixed required)
🐛 Bug Fixes¶
isinstance()for@proto.prefixInstances: Fixedisinstance(instance, DecoratedClass)returningFalseInstances of
@proto.prefixdecorated classes now correctly pass isinstance checksEnables proper type checking in Union subcommand handlers
🧪 Testing¶
Added comprehensive nested CLI subcommand tests (
test_nested_cli.py)Added parallel test execution with
pytest-xdistRun tests in parallel:
pytest -n auto
Version 3.1.2 (2025-01-27)¶
📚 Documentation¶
Claude Code Plugin: Fixed install command format in plugin documentation
Version 3.1.1 (2025-01-25)¶
🐛 Bug Fixes¶
EnvVar Descriptor Protocol: EnvVar now works in plain classes without
@protodecoratorPreviously
EnvVar @ "VAR" | defaultreturned_EnvVarobject in plain classesNow auto-resolves via
__get__descriptor when accessed as class attributeFixes:
AttributeError: '_EnvVar' object has no attribute 'decode'
♻️ API Changes¶
Removed
.get()method: Use class attribute access insteadOld:
EnvVar("PORT", dtype=int).get()New:
class C: port = EnvVar("PORT", dtype=int)thenC.portUse
invalidate_cache()to force re-read from environment
Version 3.1.0 (2025-01-23)¶
✨ Features¶
_dictProperty anddict()Support: Get a clean dict of parameter values from proto classes and functionsConfig._dictreturns{'lr': 0.001, 'batch_size': 32}(defaults merged with overrides)dict(Config)works identically via__iter__supportWorks for both
@proto/@proto.prefixclasses and@proto.cli/@proto.prefixfunctions
📚 Documentation¶
Added
_dictproperty documentation to API referenceUpdated Claude skill references with clean dict examples
Version 3.0.0 (2025-01-12)¶
✨ Features¶
Automatic Type Inference for Untyped Attributes: Class attributes without explicit type annotations are now automatically inferred
name = "hello"is treated asname: str = "hello"count = 42is treated ascount: int = 42data = Noneis treated asdata: Any = None(generic type)Untyped attributes now appear in
vars(self)inside__post_init__Explicit type annotations are always preserved
EnvVar OR Operation: Try multiple environment variable names in order
EnvVar @ "PRIMARY" @ "FALLBACK" | default- tries PRIMARY first, then FALLBACKFunction syntax:
EnvVar("PRIMARY", "FALLBACK", default="value")Returns first env var that is set, or default if none are set
EnvVar Lazy Loading: Environment variables are cached after first access
Values cached after first access via descriptor
invalidate_cache()clears cached value for re-read
🐛 Bug Fixes¶
Untyped class attributes now correctly appear in
vars(self)during__post_init__Consolidated duplicate
_EnvVarclass definitions
Version 3.0.0-rc25 (2025-01-08)¶
✨ Features¶
New
piter @Operator Syntax: Cleaner, more readable parameter iterationUse
piter @ {"lr": [0.001, 0.01]}instead ofpiter({"lr": [0.001, 0.01]})Chain with
*without repeatingpiter:piter @ {"lr": [0.001, 0.01]} * {"batch_size": [32, 64]}Legacy function-call syntax still supported for backward compatibility
📚 Documentation¶
Added Operators Quick Reference table to parameter-iteration docs
Added Operator Precedence section with examples
Updated all code examples to use the new
@syntax
Version 3.0.0-rc24 (2025-12-29)¶
✨ Features¶
Literal[…] Type Support: Full validation of allowed values
Restricts parameters to specific set of allowed values
Works with strings, numbers, and mixed types
Case-sensitive validation with clear error messages
Example:
Literal["adam", "sgd", "rmsprop"]
Enum Type Conversion: Automatic conversion to enum members
Case-insensitive CLI matching for user convenience
Supports
auto()and custom value enumsMember name displayed in help text
Example:
Optimizer.ADAMfrom--optimizer adam
Path Type Instantiation: Automatic
pathlib.PathcreationStrings converted to Path objects automatically
Works with relative and absolute paths
Ready to use with pathlib methods
Part of general callable type instantiation pattern
dict Type Parsing: Safe parsing using
ast.literal_evalSupports nested structures and mixed types
No code execution risk - only evaluates literals
Works with both single and double quotes
Example:
'{"lr": 0.01, "batch_size": 32}'
🎯 General Callable Type Instantiation¶
Implemented unified approach for custom types:
Any callable type annotation is automatically instantiated with string value
Path(value)for pathsCustom classes with string constructors
dataclasses and other callables
📚 Documentation¶
Comprehensive sections for Literal, Enum, Path, dict types
Security note on
ast.literal_evalfor dict parsingCLI usage examples for all new types
Updated Type Support Matrix showing all types as ✅ Full
📊 Test Coverage¶
Added 17 comprehensive tests in test_advanced_types.py:
✅ Literal validation (strings, numbers, mixed)
✅ Enum conversion (auto() and custom values)
✅ Path instantiation (relative and absolute)
✅ dict parsing (simple, nested, mixed types)
✅ Combined usage of multiple advanced types
✅ Help text generation for all types
All existing 48 CLI parsing tests still passing (65 total)
🔄 Type System Complete¶
Now fully supporting 13 type categories:
Primitive: int, float, str, bool
Special: Optional[T], Union types
Collections: List[T], Tuple[T, …], dict
Validation: Literal[…], Enum
Paths: pathlib.Path
Custom: Any callable type
Version 3.0.0-rc23 (2025-12-29)¶
✨ Features¶
Tuple[T, …] CLI Parsing: Full support for variable-length and fixed-size tuples
Variable-length tuples:
Tuple[int, ...]collects values into tuple with consistent typeFixed-size tuples:
Tuple[int, str, float]with mixed types at each positionCLI collects multiple values:
python script.py --sizes 256 512 1024→sizes=(256, 512, 1024)Automatic element/position type conversion with type safety
Works with defaults and
@proto.prefixclassesHelp text shows tuple notation:
(INT,...)or(INT,STR,FLOAT)
Implementation:
Updated
_convert_type()intype_utils.pyto handle both variable and fixed-size tuplesUpdated CLI parser in
cli_parse.pyto collect multiple values for Tuple parametersUpdated
_get_type_name()to display tuple signatures in help text
Test Suite: All 9 comprehensive test cases now PASSING in
tests/test_v3/test_cli_parsing.py:✅
test_tuple_variable_length_int- Variable-length integer tuples✅
test_tuple_variable_length_float- Variable-length float tuples✅
test_tuple_variable_length_str- Variable-length string tuples✅
test_tuple_fixed_size_mixed- Fixed-size with mixed types (int, str, float)✅
test_tuple_with_defaults- Overriding tuple defaults✅
test_tuple_single_value- Single value wrapped in tuple✅
test_tuple_empty_initialization- Empty tuple defaults✅
test_tuple_with_prefix_class- Tuples in @proto.prefix classes✅
test_tuple_help_strings- Help text generation
📋 Type System Updates¶
Type Support Matrix: Updated to show
Tuple[T, ...]as ✅ Full supportDocumentation: Comprehensive guide for tuple usage with examples and CLI patterns
Total Fully Working Types: int, float, str, bool, Optional[T], List[T], Tuple[T, …], Union types
Version 3.0.0-rc22 (2025-12-29)¶
📚 Documentation¶
List[T] CLI Parsing Documentation: Comprehensive guide for using list types
Updated
docs/key_concepts/type-system.mdwith practical examplesAdded section showing CLI usage patterns:
--items a b c→ list of valuesHelp text generation examples showing
[STR],[INT],[FLOAT]notationExplanation of how multiple values are collected until next flag
Type support matrix updated to show List[T] as ✅ Full support
Version 3.0.0-rc21 (2025-12-29)¶
✨ Features¶
List[T] CLI Parsing: Full support for
List[str],List[int],List[float]and other list typesCLI collects multiple values:
python script.py --items a b c→items=['a', 'b', 'c']Automatic element type conversion:
python script.py --counts 1 2 3→counts=[1, 2, 3]Works with defaults:
--items x y zoverridesitems: List[str] = ["default"]Help text shows element type:
--items [STR],--counts [INT],--ratios [FLOAT]Support for List parameters in
@proto.prefixclasses
Implementation:
Updated
_convert_type()intype_utils.pyto handle generic List[T] typesUpdated CLI parser in
cli_parse.pyto collect multiple CLI arguments for List parametersUpdated
_get_type_name()to display[INT],[STR],[FLOAT]in help text
Test Suite: All 9 comprehensive test cases now PASSING in
tests/test_v3/test_cli_parsing.py:✅
test_list_str_cli_parsing- Multiple string values✅
test_list_int_cli_parsing- Multiple integers with type conversion✅
test_list_float_cli_parsing- Multiple floats✅
test_list_with_defaults- Overriding list defaults✅
test_list_with_prefix_class- List in @proto.prefix classes✅
test_list_empty_initialization- Empty list defaults✅
test_list_single_vs_multiple_values- Single value wrapped in list✅
test_list_help_strings- Help text generation✅
test_list_str_whitespace_handling- Paths and special characters
📋 Documentation & Known Issues¶
Type System Documentation: Updated type support matrix to accurately reflect CLI parsing status
✅ Fully working: int, float, str, bool, Optional[T], List[T], Union[Class, Class], dataclass unions
⚠️ Partial: Literal[…], Enum (help text works, no runtime conversion)
❌ Broken: Tuple[T, …], Path, dict (collection types)
Path Type Issue: Documented that Path type annotation is not converted from strings
Help text shows correctly, but CLI strings are not wrapped in Path objects
Enhanced Union Types Documentation:
Added “Why Union Types Matter” section in union_types.md
Reorganized examples to show CLI usage first, then implementation
Clarified that Union types are a core feature for multi-way dispatching
Migration Notes:
Workaround for Path parameters: Accept string and convert in function body
Version 3.0.0-rc20 (2025-12-28)¶
🐛 Bug Fixes¶
Optional[T] CLI Parsing: Fixed
Optional[str],Optional[int], and otherOptional[T]types failing to parse correctly in CLIThe issue:
Optional[T]types were incorrectly treated as Union subcommands, requiring special syntax instead of working as simple optional parameters.Before (v3.0.0-rc19):
from typing import Optional from params_proto import proto @proto.cli def train(checkpoint: Optional[str] = None, learning_rate: float = 0.001): print(f"checkpoint={checkpoint}, lr={learning_rate}")
❌ This would fail:
python train.py --checkpoint model.pt # error: unrecognized argument: --checkpoint
✅ After (v3.0.0-rc20):
# Now works correctly with standard syntax python train.py --checkpoint model.pt # Output: checkpoint=model.pt, lr=0.001 # Still supports omitting the optional parameter python train.py # Output: checkpoint=None, lr=0.001 # Works seamlessly with other parameters python train.py --checkpoint model.pt --learning-rate 0.01 # Output: checkpoint=model.pt, lr=0.01
Improved help output:
Before: --checkpoint VALUE Path to checkpoint file After: --checkpoint STR Path to checkpoint file
Technical fixes:
Fixed
cli_parse.py:_get_union_classes(): Now filters outNoneTypefrom Union type argumentsFixed
cli_parse.pyUnion handling: Added detection forOptional[T]patterns (Union with single non-None type) and treats them as regular optional parametersFixed
type_utils.py:_get_type_name(): Now recognizesOptional[T]patterns and recursively extracts the correct inner type name for help textHelp text now shows specific types (
STR,INT,FLOAT) instead of genericVALUEfor Optional types
Version 3.0.0-rc19 (2025-12-28)¶
🧪 Testing¶
Added comprehensive test cases for
Optional[str]andOptional[int]CLI parsingDocuments current limitation where
Optional[T]types don’t parse correctly with normal--param valuesyntaxTests verify expected behavior once the issue is fixed
📚 Documentation¶
New: Created dedicated
Union Typesdocumentation page (docs/key_concepts/union_types.md)Quick reference with 3 common patterns (Union selection, single class, optional parameters)
Clear distinction between
Union[ClassA, ClassB]andOptional[T]Detailed examples and syntax variations
Documents
Optional[str]limitation and workaround
Refactored: Streamlined
cli_guide.mdto reduce verbosityMoved verbose Union/Optional explanation to dedicated
union_types.mdReplaced with concise 3-line reference for quick navigation
Maintains clarity while keeping main guide focused
Version 3.0.0-rc18 (2025-12-26)¶
🐛 Bug Fixes¶
EnvVar Instantiation Fix: Fixed
@proto.prefixclasses with EnvVar fields failing on instantiation withAttributeError: '_EnvVar' object has no attribute '__get__'.The bug occurred because
_EnvVaris callable (has__call__), so it was incorrectly detected as a method during instance creation. The fix uses precise method detection withinspect.isfunctionandinspect.ismethodinstead of the overly broadcallable()check.from params_proto import proto, EnvVar @proto.prefix class Config: host: str = EnvVar @ "HOST" | "localhost" # Before fix: AttributeError: '_EnvVar' object has no attribute '__get__' # After fix: works correctly c = Config()
📚 Documentation¶
Added EnvVar + inheritance documentation and tests
Documented that inherited EnvVar fields are resolved and type-converted correctly
Version 3.0.0-rc17 (2025-12-26)¶
✨ Features¶
Inherited Fields: Support inherited fields in
@protoclasses. Parent class fields are now properly included invars(), CLI args, and work with EnvVar.class BaseConfig: host: str = EnvVar @ "HOST" | "localhost" port: int = EnvVar @ "PORT" | 8080 @proto.prefix class AppConfig(BaseConfig): debug: bool = EnvVar @ "DEBUG" | False
Version 3.0.0-rc16 (2025-12-26)¶
🐛 Bug Fixes¶
Python 3.10 Support: Use
Union[]syntax instead of|operator for type hints to support Python 3.10 (#17).
Version 3.0.0-rc15 (2025-12-19)¶
🐛 Bug Fixes¶
EnvVar dtype Conversion: Fixed
EnvVar.get()to apply thedtypeparameter for type conversion. Previously, thedtypewas stored but not used when reading from environment variables, causing values to always be returned as strings.import os from params_proto import EnvVar os.environ["PORT"] = "9000" # Before fix: returned '9000' (str) # After fix: returns 9000 (int) port = EnvVar("PORT", dtype=int, default=8012).get()
All dtypes are now properly applied:
int,float,bool, andstr.
Version 3.0.0-rc10 (2025-12-17)¶
🐛 Bug Fixes¶
Classmethod/Staticmethod Support: Fixed
@proto,@proto.cli, and@proto.partialdecorators to properly handle@classmethodand@staticmethoddescriptors. Previously, decorating methods with@protowould incorrectly includeself/clsin CLI parameters or corrupt method calls.Correct decorator order (proto decorator on the OUTSIDE):
class Trainer: @proto.cli # proto.cli on OUTSIDE receives the descriptor @classmethod def train(cls, lr: float = 0.01): return cls.run_training(lr) @proto.cli @staticmethod def evaluate(model_path: str): return load_and_eval(model_path)
The decorators now:
Detect
classmethod/staticmethoddescriptors viaisinstance()Properly unwrap to get the underlying function signature
Exclude
clsparameter for classmethods automaticallyImplement descriptor protocol (
__get__) for proper method bindingRe-wrap results in
classmethod()/staticmethod()forproto.partial
VAR_POSITIONAL/VAR_KEYWORD Handling:
*argsand**kwargsparameters are now properly excluded from CLI parameters by checkinginspect.Parameter.kindinstead of just parameter names.
Version 3.0.0-rc7 (2025-12-16)¶
✨ Features¶
Claude Skill: Added hierarchical Claude skill documentation in
skill/directory. Provides AI assistants with comprehensive params-proto knowledge including:Quick reference and cheat sheet
API documentation for all decorators
Feature guides (help generation, environment variables, sweeps)
Common patterns and examples
Version 3.0.0-rc6 (2025-12-16)¶
🐛 Bug Fixes¶
Boolean Type Display: Boolean flags now show
BOOLtype in help text for consistency with other types (INT, STR, FLOAT).--verbose BOOL Enable verbose output (default: False) --no-cuda BOOL Use CUDA acceleration (default: True)
Version 3.0.0-rc5 (2025-12-16)¶
🐛 Bug Fixes¶
Boolean Flag Help Text: Fixed help text for boolean flags with
default=True. Previously,--flagwas shown in help even when the flag defaulted to True (making--flaga no-op). Now shows--no-flagfor booleans defaulting to True, making it clear how to disable the feature.@proto.cli def train(cuda: bool = True): # Use CUDA acceleration ...
Previously:
--cuda Use CUDA acceleration (default: True)Now:--no-cuda Use CUDA acceleration (default: True)ANSI Help Colorization: Fixed regex that incorrectly colored the first word of boolean flag descriptions as a type. Now only uppercase type names (INT, STR, FLOAT, BOOL) and enum choices (
{A,B,C}) are colorized as types.
Version 3.0.0-rc4 (2025-12-14)¶
🐛 Bug Fixes¶
EnvVar Class Resolution: Fixed EnvVar not resolving at import time for class-based configs. Previously, accessing
Config.ipon a@proto.prefixclass withip: str = EnvVar @ "VAR" | "default"would return theEnvVarobject instead of the resolved value. Now EnvVar values are resolved at decoration time for both functions and classes.
Version 3.0.0 (Upcoming)¶
🎉 Major Release: Complete v3 Redesign¶
params-proto v3 is a complete rewrite focused on simplicity and modern Python type hints.
✨ Key Features¶
Documentation & Help Generation¶
Multi-line Documentation: Inline comments and docstring Args are now concatenated on separate lines for better readability
@proto.cli def train( batch_size: int = 32, # Training batch size ): """Args: batch_size: Controls memory usage and gradient noise """
Generates:
--batch-size INT Training batch size Controls memory usage and gradient noise (default: 32)
Automatic Help Generation: Parse inline comments (
#) for parameter documentationDocstring Args Support: Extract parameter docs from Google/NumPy-style docstrings
Smart Deduplication: Identical inline and docstring descriptions are shown only once
Auto-generated Descriptions: Fallback descriptions generated from parameter names
Environment Variables¶
EnvVar Support: Read configuration from environment variables with type conversion
Pipe Operator Syntax: Clean default value syntax:
EnvVar @ "VAR" | defaultTemplate Expansion: Support for
$VAR,${VAR}, and multiple variable substitutionType Conversion: Automatic conversion of env var strings to annotated types
CLI Improvements¶
Function CLI: Decorate functions with
@proto.clifor instant CLI programsprog Parameter: Override script name for predictable help output in tests
Rich Type Support: Optional, List, Literal, Tuple, Enum, Path, Union types
Multi-namespace Configs: Use
@proto.prefixfor organized, modular configurations
🔄 API Changes¶
Decorator-based:
@protoand@proto.cliinstead of class inheritanceType Hints Required: Full type hint support for IDE integration
Simplified Singleton:
@proto.prefixfor singleton configsFunction Support: First-class support for function-based configs
📚 Documentation¶
Complete Rewrite: All documentation updated for v3 API
Comprehensive Examples: Real-world ML training and RL agent examples
Migration Guide: Step-by-step guide for upgrading from v2
Type System Guide: Complete documentation of supported type hints
Version 2.13.2 (2025-08-03)¶
📚 Documentation¶
Major: Added comprehensive Sphinx documentation site with Furo theme
Added: Complete API documentation for proto, hyper, and utils modules
Added: Extensive tutorial collection covering:
Basic usage patterns and CLI integration
Advanced features including dynamic configs and validation
Environment variables for flexible deployment
Nested configurations for complex applications
Hyperparameter sweeps and experiment management
Added: Read the Docs integration with automatic builds
Updated: Repository moved to
geyang/params-protowith main branch as default
🔧 Configuration Management¶
Added: Documentation build targets to main Makefile (
make docs,make preview)Added:
.readthedocs.yamlconfiguration for automated documentation builds
Version 2.13.0 (2025-01-15)¶
✨ Features¶
Added: Environment name checking to ensure all env names are defined in env string
Fixed: Dollar-sign handling in environment variable strings
Improved: Code formatting with ruff configuration
Removed:
typingdependency (no longer needed for Python 3.8+)
🧹 Maintenance¶
Added: Comprehensive ruff configuration for code formatting
Added: PyCharm/IntelliJ IDE configuration files
Updated: Setup.py dependency management
Improved: Test coverage for environment variable parsing
Version 2.12.1 (2024-04-20)¶
🐛 Bug Fixes¶
Improved: Error traces for better debugging experience
Enhanced: Exception handling and error reporting
Version 2.12.0 (2023-12-21)¶
🧹 Maintenance¶
Removed:
textwrapdependency (was causing import issues)Fixed: README documentation formatting
Updated: Dependency cleanup
Version 2.11.x Series (2023)¶
The 2.11.x series focused on advanced parameter management and hierarchical configurations.
Version 2.11.16 (2023-09-03)¶
Added: Tree mode support for both Meta instances and ParamsProto instances
Improved: Nested dictionary handling with
_treeattributeEnhanced: Parameter attribute management
Version 2.11.14 (2023-07-24)¶
Fixed:
__vars__property for ParamsProto descendantsImproved: Property descriptor handling for dynamic attributes
Version 2.11.13 (2023-07-24)¶
Enhanced:
vars(Args)functionality for better introspectionAdded: Dynamic property access improvements
Version 2.11.12 (2023-07-24)¶
Changed:
Args.propertynow returns property descriptor instead of valueImproved: Property-based parameter access patterns
Version 2.11.11 (2023-07-23)¶
Removed: Debug print statements from production code
Cleaned: Console output for cleaner user experience
Version 2.11.10 (2023-07-23)¶
Added: Parameter freezing once namespace is instantiated
Improved: Immutability patterns for configuration safety
Version 2.11.9 (2023-07-22)¶
Fixed: Function detection in parameter attributes
Improved: Dynamic attribute handling
Version 2.11.8 (2023-07-22)¶
Changed: Child detection moved to initialization time
Improved: Performance of nested configuration detection
Version 2.11.7 (2023-07-22)¶
Fixed:
__new__method super() call issuesImproved: Object instantiation patterns
Version 2.11.6 (2023-07-22)¶
Fixed: ParamsProto set as non-recursive Bear to prevent dict→Bear conversion
Improved: Nested attribute handling
Version 2.11.5 (2023-07-22)¶
Added: Support for object properties in configurations
Enhanced: Property-based parameter definitions
Version 2.11.4 (2023-07-22)¶
Improved: Internal attribute management
Enhanced: Performance optimizations
Version 2.11.3 (2023-07-21)¶
Fixed: Critical
__vars__property bugImproved: Dictionary representation of configurations
Version 2.11.2 (2023-07-21)¶
Fixed: Argument parsing edge cases
Improved: CLI argument handling robustness
Version 2.11.1 (2023-07-21)¶
Added: Children attribute support for nested configurations
Enhanced: Hierarchical parameter management
Version 2.11.0 (2023-07-21)¶
Major: Added hierarchical hydration support
Added: Nested configuration update mechanisms
Enhanced: Multi-level parameter management
Older Versions¶
Version 2.12.0¶
Removed:
textwrapdependencyFixed: Documentation links and formatting
Version 2.11.x Series¶
Multiple bug fixes and improvements
Enhanced CLI argument parsing
Better error handling and validation
Version 2.10.x Series¶
Stability improvements
Performance optimizations
Bug fixes in parameter handling
Version 2.9.x Series¶
Enhanced hyperparameter sweep functionality
Improved nested configuration support
Better environment variable handling
Version 2.8.x Series (Long-term stable)¶
Core functionality stabilization
Extensive bug fixes and improvements
Enhanced CLI features
Version 2.4.0 - 2.8.0¶
Major feature additions
API improvements and stabilization
Enhanced documentation
Version 2.0.3 - 2.2.0¶
Initial stable releases
Core parameter management functionality
Basic CLI integration
Migration Guide¶
Upgrading to 2.13.x¶
The 2.13.x series introduces comprehensive documentation but maintains full backward compatibility. No code changes are required.
Key Changes Since 2.0.x¶
Environment Variables: Enhanced support for environment variable defaults and validation
Nested Configurations: Improved support for hierarchical parameter structures
Hyperparameter Sweeps: Advanced sweep functionality with the
SweepclassType Safety: Better type hints and validation throughout the codebase
Documentation: Complete rewrite with examples and API reference
Breaking Changes¶
Version 2.13.0¶
Removed:
typingdependency - ensure your Python version supports built-in type hintsRepository: Moved from
episodeyang/params_prototogeyang/params-proto
Earlier Versions¶
See individual version notes above for specific breaking changes
Contributors¶
Ge Yang - Primary author and maintainer
Claude Code - Documentation generation and enhancement
Support¶
Documentation: https://params-proto.readthedocs.io/
Issues: https://github.com/geyang/params-proto/issues
Repository: https://github.com/geyang/params-proto