Release Date: February 12, 2026
Version 0.5.0 is a major code quality release focused on eliminating duplication, reorganizing modules for maintainability, and significantly improving test quality. This release maintains 100% backward compatibility while cleaning up internal architecture.
We've extracted ~600 lines of duplicated code into 9 new, focused modules:
-
binding.py(45 lines, 98% coverage): Centralized column resolution deduplicationresolve_col_names(): Resolve column names against synonymsdiscover_column(): Discover columns by name, type, or context- Unified
COLUMN_SYNONYMSdictionary
-
formatting.py(40 lines, 92% coverage): JSON encoder + summary printingVenturalíticaJSONEncoder: Custom JSON encoder for numpy/pandas typesprint_summary(): Formatted compliance result printing
-
inference.py(280 lines, 97% coverage): ProjectContext helper classProjectContext: Lazy-loaded context for BOM, code analysis, README- Eliminates boilerplate in
infer_*functions
-
metrics/metadata.py(1 line, 100% coverage):METRIC_METADATAextraction
-
probes/subpackage (9 modules, 418 lines):- Split from monolithic
probes.py - Modules:
base.py,carbon.py,hardware.py,integrity.py,handshake.py,trace.py,bom.py,artifact.py,__init__.py - 100% backward compatible via re-exports
- Split from monolithic
-
assurance/subpackage (26 modules):- Reorganized with clear hierarchy:
assurance/causal/(2 modules)assurance/fairness/(2 modules)assurance/graph/(4 modules)assurance/performance/(2 modules)assurance/privacy/(2 modules)assurance/quality/(12 modules)
- Reorganized with clear hierarchy:
-
test_binding.py(32 tests, 98% coverage):- 14 tests for
resolve_col_names() - 9 tests for
discover_column() - 4 tests for COLUMN_SYNONYMS validation
- 5 edge case tests (unicode, duplicates, large data, empty)
- 14 tests for
-
test_formatting.py(20 tests, 92% coverage):- 10 tests for VenturalíticaJSONEncoder
- 10 tests for print_summary()
- Covers numpy types, pandas objects, datetime, nested structures
-
test_probes_edge_cases.py(60+ tests, comprehensive edge cases):- CarbonProbe: zero emissions, very small values, large values, multiple cycles
- HardwareProbe: empty info, missing fields, zero memory
- IntegrityProbe: nonexistent files, large files, unicode filenames
- HandshakeProbe: invalid ports, special hostnames
- BOMProbe: invalid JSON, empty components, large counts
- TraceProbe: no start time, unicode names, AST failures
-
test_inference_edge_cases.py(80+ tests, comprehensive edge cases):- ProjectContext: lazy loading, README discovery, caching, unicode
- infer_system_description: empty responses, list content, unicode, long responses
- infer_technical_documentation: data loading analysis, missing prompts
- infer_risk_classification: markdown blocks, unicode, missing fields
Added pytest.ini_options to pyproject.toml:
[tool.pytest.ini_options]
filterwarnings = [
"ignore::DeprecationWarning:clearml.utilities.pyhocon",
"ignore::DeprecationWarning:pyparsing",
"ignore::RuntimeWarning:numpy",
"ignore::FutureWarning:pandas",
"default::UserWarning", # Only show warnings from our code
]This suppresses 60+ external library warnings while keeping user code warnings visible.
- binding.py
discover_column()bug (line 141): Fixed duplicating same list instead of properly iterating through synonym groups - Test fixtures: Fixed ComplianceResult requires
metric_keyandseverityparameters
- Total tests: 529 passed, 1 skipped, 0 failed
- New tests added: 52 (binding + formatting + edge cases)
- Code coverage: 73% overall
- binding.py: 98%
- formatting.py: 92%
- inference.py: 97%
- Warnings: 24 (down from 90+, all external library related)
- Lines eliminated: ~600 duplicated lines
- New focused modules: 9
- Subpackage reorganizations: 2 major hierarchies
- Ruff linting: 100% clean
- Regressions: 0
- Breaking changes: 5 deprecated import paths removed (see Breaking Changes section)
- Forward compatibility: 100% for non-deprecated imports
The following deprecated import paths have been removed:
| Old Import (Removed) | New Import (Use This) |
|---|---|
from venturalitica import causal |
from venturalitica.assurance.causal import ... |
from venturalitica import fairness |
from venturalitica.assurance.fairness import ... |
from venturalitica import performance |
from venturalitica.assurance.performance import ... |
from venturalitica import privacy |
from venturalitica.assurance.privacy import ... |
from venturalitica import quality |
from venturalitica.assurance.quality import ... |
These shim modules provided backward compatibility shortcuts but are no longer needed. Users should update their imports to use the venturalitica.assurance.* namespace directly.
Migration: If you were using deprecated imports, simply update your code:
# Old (no longer works):
from venturalitica import quality
# New (use this):
from venturalitica.assurance.quality import QualityMetricsNo changes required. All public APIs remain the same. These imports work exactly as before:
# These all still work:
from venturalitica.binding import resolve_col_names, discover_column
from venturalitica.formatting import VenturalíticaJSONEncoder, print_summary
from venturalitica.inference import ProjectContext, infer_system_description
from venturalitica.probes import CarbonProbe, HardwareProbe, IntegrityProbeSee the Breaking Changes section above for migration instructions.
- Python >= 3.11 (unchanged)
- Build system: Hatchling + UV (unchanged)
- All dependencies unchanged
None at this time.
- Phase 5: Performance optimization pass
- Phase 6: Documentation enhancement
- Phase 7: Additional edge case coverage for complex scenarios
This release was completed as part of Phase 4 "Marie Kondo" code quality refactoring.
Available on PyPI:
pip install venturalitica==0.5.0Or with UV:
uv add venturalitica==0.5.0For detailed commit history, see the git log for this version.