Changelog¶
Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[0.3.3] - 2026-02-01¶
Added¶
- Timezone support (
tzparameter) foron_weekdays,on_days,after_date,before_date, andbetween_dates - Shared
_resolve_tz(),_now(),_today()helpers in_temporal.pyto consolidate timezone logic - MkDocs Material documentation site with GitHub Pages deployment (28 pages)
- GitHub Actions workflow for automatic docs deployment on push to
main docs-serveanddocs-buildMakefile targets
Changed¶
during_hoursrefactored to use shared_now()helper (no API change)
[0.3.0] - 2026-02-01¶
Added¶
Transform.run_with_error()method for thread-safe error access (mirrorsAsyncTransform.run_with_error())- Thread Safety section in README documenting mutable attributes vs pure alternatives
- README docs for
run_with_error()in Error Tracking section andrun_with_info()in Retry Observability section - API Reference entries updated for
Transform,AsyncTransform,Retry, andAsyncRetrythread-safe methods
Changed¶
Transform._execute()now delegates torun_with_error()internally (backwards compatible)
[0.2.5] - 2026-02-01¶
Changed¶
- Only support python >=3.13 (for now)
[0.2.3] - 2026-02-01¶
Changed¶
- Replace mypy with pyright for type checking in Makefile, CI workflow, and pyproject.toml
- Install opentelemetry extra during typecheck so pyright can resolve optional imports
[0.2.2] - 2026-02-01¶
Fixed¶
- Add
[dependency-groups].devtopyproject.tomlsouv syncinstalls dev tools (pytest,ruff,mypy) needed by CI
[0.2.1] - 2026-02-01¶
Fixed¶
- Resolve duplicate
TraceConfigandTraceHookdefinitions across_typesand_tracingmodules that caused pyright cross-module type mismatches - Fix
_get_combinator_namein_validation.pyto usegetattrinstead ofhasattrguard (pyright cannot narrow types fromhasattr) - Add type: ignore annotations for test-level pyright inference limitations (unresolved generics in decorator lambdas, dynamic attribute assignment on functions, broad return types from
parallel_and/parallel_or/parse_expression)
[0.2.0] - 2026-02-01¶
Fixed¶
- Replace
assertstatements inOpenTelemetryHookwith explicitRuntimeErrorraises (safe underpython -O) - Add input validation to
RetryandAsyncRetryconstructors (max_attempts >= 1,backoff >= 0,jitter >= 0) - Clean up per-key locks in
AsyncCachedPredicateto prevent unbounded memory growth
Added¶
- GitHub Actions CI workflow (lint, typecheck, test matrix across Python 3.10-3.13)
- mypy configuration and dev dependency
- Coverage configuration (
fail_under = 85) - Pre-commit hooks configuration
Makefilewith common development targetsSECURITY.mdwith vulnerability reporting instructionsCHANGELOG.md- Project URLs in
pyproject.toml
Changed¶
- Expanded Ruff lint rules to include
B(bugbear),SIM(simplify),RUF(ruff-specific) - Widened timing thresholds in tests for CI reliability
[0.1.0] - 2026-01-31¶
Added¶
- Core combinator framework (
Combinator,Predicate,Transform) - Operator overloading (
&,|,~,>>) - Async combinators (
AsyncCombinator,async_rule,async_transform) - Validation combinators with error collection (
vrule,async_vrule) - Caching support (
cached_rule,async_cached_rule,use_cache,use_cache_shared) - Retry combinators with configurable backoff (
Retry,AsyncRetry) - Concurrency utilities (
parallel_or,parallel_and,with_timeout,limited,circuit_breaker) - Temporal predicates (
during_hours,on_weekdays,on_days,after_date,before_date,between_dates) - Expression parser and registry for config-driven rules
- Tracing and explain functionality (
use_tracing,PrintHook,LoggingHook,OpenTelemetryHook,explain) - Utility combinators (
Always,Never,Debug,Try)