Skip to content

Releases: danielendler/datason

Release v0.13.0

25 Aug 18:34

Choose a tag to compare

🎉 What's New in v0.13.0

  • 🔼 Bump version to 0.13.0 [skip ci]
  • Merge pull request #82 from danielendler/performance/investigate-critical-bottlenecks
  • test: add comprehensive unit tests for redaction optimizations
  • optimize: improve redaction engine performance by 56%
  • 🧪 Add comprehensive unit tests for conditional optimization thresholds
  • 🚀 Implement conditional optimization strategies to eliminate serialization overhead
  • fix config
  • fix:coverage for new functionality
  • adjust performance test thresholds for CI environments
  • resolve merge conflict: remove outdated pr-benchmark.yml, add performance regression tests
  • 🗑️ Remove redundant pr-benchmark workflow and fix external trigger
  • fix datetime
  • fix: I’ve patched the string‐length path so that any string exceeding now immediately yields a security‐error dict (rather than being interned if shorter than 20 chars). This fixes the large‐object‐limits test
    • Root cause: The “fast-path” for simple dicts skipped deserialization of an y string values shorter than 9 characters, so and were never run through the number-detection logic. - Fix: Expanded the aggressive-mode check in the dict fast-path to also flag strings that look like numbers () so numeric strings are co rrectly deserialized.
  • Merge pull request #83 from danielendler/feature/enhance-profiling-benchmark
  • refactor: move profiling execution to datason-benchmarks repo
  • feat: enhance profiling to show real performance metrics in PR comments
  • ✨ Complete string interning optimization implementation
  • 🚀 Add massive nested structure and array optimization
  • perf: Fix critical performance bottlenecks in serialization/deserialization
  • 🚀 MAJOR: Fix critical performance bottlenecks in load operations
  • Merge pull request #80 from danielendler/codex/add-ci-benchmark-integration
  • (feat): add profiling benchmark
  • Fix enum identity issues in config tests
  • Fix profile_sink initialization for CI test
  • Add datason-benchmarks compatibility improvements
  • Fix enum comparison failure in CI tests
  • Merge main branch with profiling support into Rust core branch
  • Merge pull request #79 from danielendler/codex/add-debug-mode-timers-for-datason
  • fix: add aggressive test isolation for streaming config test
  • fix: improve profiling overhead test reliability for CI environments
  • fix: enhance load_basic API compatibility and resolve test failures
  • feat: enhance Rust core implementation with proper security and benchmark integration
  • Format profiling module and relax overhead test
  • Optimize profiling contexts and fix lint
  • test: cover rust accelerator and config flags
  • Add profiling helpers and coverage tests
  • fix: satisfy linter and restore docstring
  • Merge pull request #76 from danielendler/dependabot/github_actions/main/actions/checkout-5
  • Merge pull request #77 from danielendler/dependabot/github_actions/main/actions/download-artifact-5
  • feat: add rust core scaffolding
  • ci(deps): bump actions/download-artifact from 4 to 5
  • ci(deps): bump actions/checkout from 4 to 5

📦 Installation

pip install datason==v0.13.0

🔗 Links


Full Changelog: main...v0.13.0

Release v0.12.0

07 Aug 12:57

Choose a tag to compare

🎉 What's New in v0.12.0

  • 🔼 Bump version to 0.12.0 [skip ci]
  • feat: Complete streaming API with bidirectional read/write functionality
  • Refactor API and deserialization logic for improved performance and clarity
  • Refactor deserialization and error handling in DataSON
  • Implement stream_load() for memory-efficient streaming deserialization
  • Merge pull request #73 from danielendler/codex/protect-repository-and-actions-access
  • chore: clarify codeowner
  • Refactor JSON function call detection in check_json_imports.py
  • Fix remaining API test mock expectations
  • Fix API test mocking and improve JSON usage detection
  • fix: achieve full 'eat your own dog food' compliance
  • fix: eliminate double processing in API module and cleanup examples
  • Merge pull request #70 from danielendler/cleanup/remove-local-benchmarks
  • 🔧 Fix Ruff output format in CI workflow
  • 🔧 Fix Ruff linter configuration after benchmarks directory removal
  • 🔧 Fix PR auto-trigger and remove debug script
  • 🔧 Add debug script for GitHub token permission issues
  • 🧹 Remove local benchmark solutions, now using external datason-benchmarks repo
  • Merge pull request #69 from danielendler/feature/benchmark-integration
  • fix: align DataSON workflow with datason-benchmarks expectations
  • fix: resolve cross-repository artifact download issue
  • fix: resolve workflow dispatch bugs and clean up external benchmark integration
  • feat: add external benchmark integration with comprehensive setup guide
  • docs: Add comprehensive setup guide for PR performance integration
  • feat: Add local benchmark workflow as alternative to external repository
  • feat: Add automated PR performance benchmarking integration
  • Merge pull request #68 from danielendler/test-coverage-consolidation
  • refactor: Update tests for anomaly detection and data enhancement - Renamed assertions for clarity, improved test structure, and ensured comprehensive coverage for edge cases in data processing functions.
  • fix: Update assertion message in deep compare test - Changed Length difference to Length mismatch for clarity in the test results of the deep_compare function.
  • feat: Update module metadata consistency test - Enhanced the test to dynamically retrieve the version from pyproject.toml, ensuring robustness against version changes and improving test reliability.
  • feat: Enhance version and info retrieval tests - Expanded test coverage for get_version and get_info functions, ensuring accurate data types and key validation in returned results.
  • Merge pull request #66 from danielendler/test-coverage-consolidation
  • feat: Add comprehensive tests for version and info retrieval in datason - Implemented a new test case to validate the functionality of get_version and get_info functions, ensuring correct data types and expected keys in the returned information.
  • feat: Ensure ML type handlers are registered during test setup - Added import and registration of ML type handlers in the test configuration to maintain consistency across tests, preventing side effects from handler registration.
  • feat: Introduce ML Type Handlers auto-registration - Added import mechanism for ml_type_handlers to enable automatic registration of ML type handlers, enhancing the framework's extensibility and integration capabilities.
  • Refactor and enhance tests for template deserializer and optimization pathways - Updated edge case handling, improved error messages, and added comprehensive tests for various data structures and metadata reconstructions. Introduced new test classes for ML framework integration and critical deserialization paths, ensuring robust coverage across multiple scenarios.
  • Phase 2 Part 2: Added extensive template deserializer and utility function tests - 105 tests with comprehensive coverage
  • Phase 2 Part 1: deserializers_new.py coverage improvement (21% → 51%) - Added comprehensive TestDeserializeWithTypeMetadata class covering lines 325-679, 107 tests passing
  • feat: Achieve 95% test coverage for ml_type_handlers - Fixed all 7 test failures to achieve 95% coverage for ml_type_handlers.py - Comprehensive testing of all 7 ML framework handlers: CatBoost, Keras, Optuna, Plotly, Polars, PyTorch, Scikit-learn - Fixed test issues: Mock attribute assignment, Plotly import assertion, Polars comparison logic - 87 tests passing covering lazy imports, serialization/deserialization, error handling, edge cases - Real ML library integration tests with proper mocking for unavailable libraries - ml_type_handlers.py: 294 statements, only 13 missed → 95% coverage (exceeds 80% target) - Three priority modules now complete: cache_manager (93%), type_registry (100%), ml_type_handlers (95%)
  • feat: Dramatically improve test coverage for cache_manager and type_registry - cache_manager.py: 55% → 93% coverage (+38%) - type_registry.py: 64% → 100% coverage (+36%) - Both modules now exceed 80% coverage target

📦 Installation

pip install datason==v0.12.0

🔗 Links


Full Changelog: main...v0.12.0

Release v0.11.2

19 Jun 15:18

Choose a tag to compare

🎉 What's New in v0.11.2

  • 🔨 Bump version to 0.11.2 [skip ci]
  • Merge pull request #67 from danielendler/fix/ml-config-decimal-performance-regression
  • Fix critical ML config decimal performance regression - Resolves 7,800x slowdown by moving ML serializer check after built-in type handlers to prevent decimals from triggering expensive ML library imports

📦 Installation

pip install datason==v0.11.2

🔗 Links


Full Changelog: main...v0.11.2

Release v0.11.1

19 Jun 09:22

Choose a tag to compare

🎉 What's New in v0.11.1

  • 🔨 Bump version to 0.11.1 [skip ci]
  • Merge pull request #65 from danielendler/fix/api-consistency-feedback
  • test: Enhance test coverage for API and datetime deserialization - Improved test cases for API utility functions and datetime parsing, focusing on edge cases, error handling, and configuration options. Aims to boost overall test coverage and ensure robust functionality across various scenarios.
  • test: Add comprehensive test coverage for API and datetime deserialization - Introduced new test modules to enhance coverage for API features and datetime parsing in datason. Aims to achieve 80% coverage by targeting previously untested areas, including JSON compatibility and error handling.
  • fix: Add missing type annotations for MkDocs strict mode - Added type annotation for 'fp' parameter in api.py functions (dump, dump_json, load, load_json) - Added type annotation for 'config' parameter in init.py serialize function - Resolves MkDocs build failures in strict mode caused by griffe warnings
  • docs: Add comprehensive documentation for JSON drop-in replacement functionality
  • fix: Bypass cached datetime failures when auto_detect is enabled - Fixed issue where cached parsing failures were preventing datetime parsing even when auto_detect_types=True. Now bypasses cached failures for datetime-like strings when enhanced API is used, ensuring test_loads_smart_datetime_parsing passes on Python 3.8-3.10.
  • fix: Correct cache bypass logic for auto_detect datetime parsing - Fixed double negative logic that was preventing datetime parsing when auto_detect was enabled, ensuring datetime strings are always parsed by the enhanced API. Resolves test_loads_smart_datetime_parsing failures on Python 3.8-3.10.
  • fix: Enhance datetime parsing for Python 3.8-3.10 compatibility - Bypass string cache for datetime parsing when auto_detect_types=True. Ensures datetime strings are always processed when enhanced API is used, fixing test_loads_smart_datetime_parsing on older Python versions.
  • fix: Enhance datetime parsing compatibility for Python 3.8-3.10 - Added robust fallback for datetime.fromisoformat() compatibility issues and improved timezone handling. Resolves test_loads_smart_datetime_parsing failure on older Python versions.
  • fix: Resolve API consistency issues and implement enhanced/compatibility strategy - Fixed duplicate serialize() function definitions, type comparison issues, and import conflicts. Enhanced DataSON API (dumps->dict) and JSON Compatibility API (json.dumps->string) both working perfectly. Reduced 35+ failures to 0 core issues.
  • Merge pull request #63 from danielendler/codex/update-documentation-for-new-features
  • docs: add integrity and file operations updates

📦 Installation

pip install datason==v0.11.1

🔗 Links


Full Changelog: main...v0.11.1

Release v0.11.0

16 Jun 14:39

Choose a tag to compare

🎉 What's New in v0.11.0

  • 🔼 Bump version to 0.11.0 [skip ci]
  • Merge pull request #62 from danielendler/codex/add-jsonl-support-to-datason
  • fix: handle 'Z' timezone suffix in datetime parsing for Python < 3.11 - Update datetime parsing logic to replace 'Z' with '+00:00' for compatibility with older Python versions - Ensure consistent handling of ISO 8601 strings across deserialization functions
  • docs: update changelog
  • fix: remove unnecessary 'Z' replacement in ISO 8601 parsing - Fix logical inconsistency between validation and parsing - Python 3.7+ natively handles 'Z' in datetime.fromisoformat() - Validate and parse the same string for consistency
  • fix: improve Marshmallow field serialization reliability - Replace unreliable class.name string comparison with proper isinstance() check - Fixes edge case where custom Marshmallow field classes named 'str' would be mishandled - More robust type detection for field objects vs string values
  • fix: address CodeQL security and performance issues - Add ISO 8601 validation, remove unnecessary deepcopy, fix max_depth bypass, fix config modification, fix error message inconsistency
  • fix: another circular reference security error test - Updated test_simple_circular_reference in test_core_edge_cases_new.py to expect security error dict - Same pattern as other security error fixes
  • fix: excessive depth security error test - Updated test_excessive_depth_raises_error to expect security error dict instead of SecurityError exception - Matches current implementation pattern of returning security error dicts
  • fix: circular reference test regression - Updated test_simple_circular_reference to expect security error dict instead of warning - Current implementation correctly detects circular references as depth attacks
  • fix: regression in string optimization test - Updated test_string_optimization_functions to expect security error dict for oversized strings instead of truncated string
  • feat: fix 7/8 remaining test failures, achieve 99.91% pass rate - Fixed 7 out of 8 target test failures - Achieved 99.91% pass rate (1088 passed, 1 failed) - Successfully completed datason codebase migration - Updated tests to expect security_error dicts instead of exceptions - Fixed performance optimization and string processing - Updated NaN handling and NumPy array tests - All user config tests now passing
  • feat: migrate to new core and deserializers modules - Replace old core.py and deserializers.py with core_new.py and deserializers_new.py - Update all imports across codebase to use new modules - Fix SecurityError handling and UUID API compatibility - Maintain backward compatibility for main API functions - Update benchmark and script files to use new modules - Fix pre-commit issues (formatting, trailing whitespace) - Test Results: 1303 tests passing, 41 failing (96.9% pass rate) - All core functionality working (serialize/deserialize/auto_deserialize) - Main API compatibility maintained
  • fix(test): remaming test suite
  • fix(test): remaming test suite
  • fix(featue gap): fix cirsular dependecy check and optional and avoid test if panda is also not there
  • fix(featue gap): fix cirsular dependecy check and optional and avoid test if panda is also not there
  • fix(featue gap): datatime inside pandas were not properly saved
  • Fix API discovery test to match actual API info structure
  • Fix lazy imports across all test files to support minimal plugin environment
  • Fix CI failures: make numpy/pandas imports optional and fix DataFrame comparisons
  • Fix remaining 7 test failures - DataFrame comparison, streaming compression, large array size, and redaction patterns
  • Fix JSONL tests for NumPy array handling - Updated test_chunked_jsonl_save to accept both list and numpy.ndarray types - Fixed test_progressive_loading to properly compare arrays that may be converted to NumPy - Tests now handle ML serialization converting lists to NumPy arrays - JSONL tests: 2/2 passing, Overall: 513/521 passing (98.5% pass rate)
  • fix(tests): Fix deserialize_chunked_file for single dict objects - Fixed logic to properly handle single dict objects - When dict doesn't have chunks/data keys, treat as single item - Updated file operations tests to handle NumPy array comparisons - File operations: 21/28 passing (75%), Overall: 508/521 passing (97.5%)
  • Fix test failures and pre-commit issues - Fixed API configuration duplicate parameter issue in dump_secure - Updated mock patches in API tests to use correct import paths - Enhanced compression support in deserialize_chunked_file with gzip detection - Fixed validation functions to return unified format as expected by tests - Fixed ML serialization test to avoid unittest.mock detection - Updated API tests to use complex objects that force actual serialization - Fixed ruff warnings by adding stacklevel to warnings.warn calls - Test results: 97.5% pass rate (508/521 tests passing)
  • Merge branch 'main' into codex/add-jsonl-support-to-datason
  • feat: add gzip, idenpotentcy cehcks and jsonl json formats
  • 📚 Complete documentation integration for file operations - Moved file operations to docs/features/ directory with proper organization - Added comprehensive API documentation for save_ml, save_secure, save_api, save_chunked - Added documentation for load_smart_file and load_perfect_file functions - Updated modern API overview to include file operations - Added detailed changelog entry for v0.9.1 with all features - Fixed documentation to match actual implementation
  • 🗃️ Add comprehensive file operations as first-class citizen - Complete JSON/JSONL file I/O integrated into modern API with dual format support, auto-detection, ML optimization, security features, streaming, compression, progressive complexity API, ultimate integration test with complex ML pipelines, comprehensive documentation and examples - All features working together flawlessly
  • Add JSONL save and load utilities

📦 Installation

pip install datason==v0.11.0

🔗 Links


Full Changelog: main...v0.11.0

Release v0.10.0

16 Jun 13:28

Choose a tag to compare

integrity features


Changes: 5 commits since last release

📦 Installation

pip install datason==v0.10.0

🔗 Links

Release v0.9.0

12 Jun 13:00

Choose a tag to compare

🎉 What's New in v0.9.0

  • 🔼 Bump version to 0.9.0 [skip ci]
  • Merge pull request #60 from danielendler/xf65pi-codex/clean-up-stray-files-at-root-level
  • Fix mkdocs documentation issues: nav entries, broken links, and examples paths
  • Fix sync_docs.py bugs: preserve filename case and avoid overwriting newer docs
  • Add warning for stale docs and update pre-commit
  • Merge pull request #54 from danielendler/refactor/unified-type-handlers
  • security: Fix validation order to prevent CodeQL alert
  • security: Fix CodeQL datetime parsing false positive with regex validation
  • security: Completely eliminate unsafe pickle deserialization - Replace pickle.loads with safe JSON deserialization, add security warnings for legacy data, maintain backward compatibility
  • fix: Address CodeQL security issues and add comprehensive security tests
  • chore: remove deo from root
  • Security: Fix remaining information exposure in Django integration
  • Security: Fix information exposure through exceptions
  • docs: reorganized dsocs and examples - also updated to use the new api
  • Merge pull request #58 from danielendler/codex/fix-performance-action-graph-step-error
  • Merge pull request #56 from danielendler/codex/add-documentation-and-guides-for-ml-frameworks-integration
  • Merge pull request #55 from danielendler/codex/test-uuid-feature-for-edge-cases
  • fix performance charts quoting
  • docs: add model serving integration guides
  • Add edge case tests for UUID configuration
  • docs: Add comprehensive UUID/Pydantic integration documentation and examples
  • feat: Add UUID API compatibility configuration for FastAPI/Pydantic integration
  • Merge pull request #53 from danielendler/refactor/unified-type-handlers
  • Fix outdated test assertion for convert_string_method_votes - update test to expect correct behavior after recent bug fix
  • Fix ML framework deserialization issues: exception handling and type name mismatches
  • Fix method_votes string parsing bug and add comprehensive tests - Fix bug where malformed strings like '[1, 2, 3,' were converted to empty lists instead of being preserved as single-item lists - Add endswith(']') check alongside existing startswith('[') check to properly validate list-like strings before passing to ast.literal_eval() - Add comprehensive edge case tests for malformed strings - Update existing test to reflect correct new behavior - Add proper type annotations to all test methods
  • fix(CI): pytorch corruption and chnage order of tests
  • fix(CI): proper isinstance detection
  • fix(CI): skip keras
  • fix(CI): skip catboost
  • fix(CI): catboost speciifc ci handling
  • fix(CI): add proper ci test cleaning also to ml tests
  • Improve CatBoost test resilience for CI environments
  • Remove accidentally committed final_test.py file
  • Resolve CatBoost CI test pollution by creating isolated test file
  • fix(CI): adjust for catboost corrupted getstate and setstate
  • fix(CI): adjust for catboost corrupted getstate and setstate
  • fix(CI): poroper test isolation for comoplex ML objects
  • fix(CI): proper security test fix
  • fix(CI): proper security test fix
  • fix(CI): proper security test fix
  • fix(CI): proper security test fix
  • fix(CI): proper security test fix
  • fix(CI): fix date test
  • fix(CI): fix date test
  • fix(CI): isolate flacky test
  • fix(ci): dependencies
  • fix(ci): dependencies
  • fix(ci): dependencies
  • fix(ci): dependencies
  • fix(ci): dependencies
  • Fix ML object detection and suppress Keras logging
  • Fix lint error: replace bare except with Exception
  • Strengthen ML framework test isolation
  • Fix security limits test isolation
  • Fix ML object detection by properly reinitializing _LAZY_IMPORTS cache
  • fix(caches): force reduce cache
  • fix(ci): fix test test isolation and caching
  • Achieve 100% green pipeline - Fix data_utils malformed list handling for consistent behavior - Add TensorFlow/Keras logging suppression to reduce test verbosity - Fix coverage boost test expectations to match intended behavior - All 841 tests now pass with 70% coverage and clean CI pipeline
  • Fix test isolation for validation tests to achieve green pipeline
  • Exclude benchmark tests from regular CI runs
  • Optimize Mock object detection to prevent test timeouts - Move Mock object detection to early stage of serialization (before expensive type checks) - Reduces Mock object test time from 15+ seconds to ~3.5 seconds (75% improvement) - Prevents timeout issues in full test suite - Early detection avoids expensive isinstance() calls on Mock objects - Maintains same security warning and safe string representation behavior
  • Update API tests for loads() function change - Update test expectations to use load_basic instead of load_smart - Remove invalid strict parameter from test - Aligns tests with the json.loads compatibility fix
  • Fix remaining 3 test failures - Fix data_utils malformed list parsing logic to return empty lists for invalid syntax - Change loads() function to use load_basic instead of load_smart for json.loads compatibility - Prevents auto-detection converting lists to NumPy arrays in JSON compatibility layer
  • Fix isinstance() errors and auto-detection defaults - Fix TypeError in core.py isinstance() calls when dealing with Mock objects - Apply same error handling pattern used in validation.py fixes - Revert auto-detection to opt-in only to avoid breaking existing functionality - Update auto-detection tests to explicitly enable the feature - Fix configuration class usage in deserializer edge case tests - Improve test coverage from 39% to 58%
  • fix(tests): solve is instance
  • fix(tests): solve is instance
  • Fix 15 of 24 test failures: isinstance() errors, infinity handling, mock specs, and data parsing - Fixed converters safe_int/safe_float infinity handling and test expectations - Fixed serializers isinstance() errors with try-catch for mocked numpy/pandas types - Fixed validation isinstance() errors by removing Mock spec usage - Fixed data_utils string list parsing for malformed syntax - Fixed API test by adding missing function call - Fixed pandas Series test by properly mocking pd.isna - Fixed ruff lint error: combined nested if statements in converters - Reduced test failures from 24 to 9 (62% improvement)
  • Fix CI configuration: Complete update of all test paths from old structure to new organization
  • Complete test reorganization: Update CI and documentation for new structure
  • fix(tests):mprove test suite organization: Quality-focused edge case consolidation
  • Reorganize test suite: Function-level consolidation by module - Consolidated ~70 files to 42 clean files across unit/edge_cases/integration directories with max 2-3 files per datason module, eliminated 112 duplicate functions while preserving coverage
  • fix: Proper test reorganization - extract functions, not delete files - Created tests/coverage/test_core_edge_cases.py with unique edge case functions - Extracted 10 specific coverage-targeting tests from removed files - Maintained 74% coverage while creating clear structure - Clear rules: unit/ for main functionality, coverage/ for edge cases - No more duplicate file creation - Each test function in exactly one logical place
  • refactor: Major test suite cleanup - eliminate duplicates and improve organization - Removed 21 redundant test files (30% reduction: 70→49 files) - Eliminated 71% of duplicate test instances (134→39 duplicates) - Reduced duplicate functions by 66% (112→38 functions) - IMPROVED coverage from 70% to 74% (+4%) - All removed files backed up to backup_removed_tests/ - Clear organization with comprehensive tests in tests/unit/ - Updated pytest configuration for cleaner structure
  • feat: Phase 3 - Add comprehensive test coverage for core serialization engine - Add test_core_comprehensive.py: 68 test cases covering core serialization including fast path optimizations, security features, ML integration, complex data structures, memory management, and error handling - Add test_deserializers_comprehensive.py: 69 test cases covering deserialization including auto-detection, template-based deserialization, type detection, fast optimization paths, pandas/numpy support, and error conditions - Coverage improvements: datason/core.py 6% → 54% (+48%), datason/deserializers.py 6% → 42% (+36%), Overall project coverage 72% → 78% (+6%) - Total: 137 comprehensive test cases added, all passing
  • feat: add api and config test coverage
  • feat: Phase 1 coverage improvement - comprehensive test suites with complete linting fixes
  • feat: complete migration to unified ML type handlers - 100% ML test success
  • feat: comprehensive test suite for unified ML type handlers with 79% coverage
  • feat: Implement unified type handler architecture - Add TypeRegistry and TypeHandler base classes for unified type management - Create unified ML type handlers with co-located serialize/deserialize logic - Implement CatBoost, Keras, Optuna, Plotly, and Polars unified handlers - Prevent split-brain architecture with Abstract Base Class enforcement - Add comprehensive tests for unified architecture - Solves maintenance issue where serialization and deserialization were scattered across files - Makes it impossible to add serialization without deserialization - Provides clear ownership and easy extensibility for new ML frameworks
  • feat: Fix deserialization for new ML frameworks - Add complete deserialization support for CatBoost, Keras, Optuna, Plotly, and Polars - All new frameworks now achieve 100% round-trip success in critical scenarios - Fixes split-brain architecture issue where serialization worked but deserialization failed - ML Types User Config: 10/10 (100%) up from 3/10 (30%) - ML Types Metadata: 10/10 (100%) up from 3/10 (30%) - No regressions, all 29 framework tests pass
  • feat: addiitonal ML librabries
  • feat: Add support for 5 new ML frameworks (CatBoost, Keras, Optuna, Plotly, Polars) - Enhanced ML framework support with comprehensive serializers - Added 29 new tests with complete coverage - Optimized framework detection performance...
Read more

Release v0.8.0

07 Jun 09:00

Choose a tag to compare

🎉 What's New in v0.8.0

  • 🔼 Bump version to 0.8.0 [skip ci]
  • Merge pull request #50 from danielendler/codex/-title----consolidate-changelog-into-root-]
  • docs: consolidate changelog
  • Merge pull request #44 from danielendler/review/roadmap-and-legacy-cleanup
  • fix: Downgrade version from 0.8.0 to 0.7.5 in pyproject.toml
  • docs: Add comprehensive changelog for v0.8.0 - Phase 1, 2, & 3 API modernization
  • fix: Resolve strict documentation test failures
  • Merge branch 'main' into review/roadmap-and-legacy-cleanup
  • docs: Restructure API documentation into organized multi-page format
  • 🚀 Phase 3: API Modernization & Refactoring Complete - Modern intention-revealing API with progressive complexity disclosure, domain-specific optimizations, and 100% backward compatibility
  • Fix coverage tests for new datason_type format - Update all coverage tests to expect datason_type instead of legacy _type format - Fix field access patterns for nested datason_value structure - Update parameter filtering expectations (functions converted to strings, not filtered) - Fix sparse matrix format expectations (csr_matrix vs csr) - All 612 core/features/integration tests now pass (100% success rate) - Green pipeline achieved for Phase 3 readiness
  • Phase 2: Complete ML serializer test updates for new format - Update all ML serializer tests to expect datason_type format instead of legacy _type format - Fix test assertions for nested datason_value structure - Update fallback and error handling tests for new format - All 612 core/features/integration tests now pass (100% success rate) - Phase 2 legacy format removal complete
  • fix: Complete Phase 2 test adaptation for legacy format removal - All 122 originally failing tests now pass
  • Delete docker/supabase directory
  • Merge pull request #49 from danielendler/codex/update-readme-to-include-.env-setup-and-github-actions-info
  • Merge pull request #48 from danielendler/hitk3k-codex/integrate-pydantic-and-marshmallow-with-datason
  • Fix formatting for validation coverage tests
  • docs: add Supabase docker env instructions
  • feat: Phase 2 - Complete removal of legacy ML format support
  • Fix ruff import style in validation integration tests
  • Add coverage tests for validation helpers
  • Fix remaining test failures and update example - Fixed tests/features/test_chunked_streaming.py to use custom financial config - Fixed tests/coverage/test_init_coverage_boost.py to check only remaining core config functions - Updated examples/domain_config_demo.py to demonstrate custom configurations instead of removed presets - All references to removed config functions now eliminated - Phase 1 legacy cleanup fully complete with all tests passing
  • Fix ruff linting
  • feat: phase 1 from cleaning
  • Merge pull request #45 from danielendler/codex/find-api-docs-configurations-to-split-sections
  • docs: split API reference into modular pages
  • Phase 1: Legacy cleanup - remove redundant config presets and add deprecation warnings
  • feat: Comprehensive roadmap analysis and legacy cleanup plan

📦 Installation

pip install datason==v0.8.0

🔗 Links


Full Changelog: main...v0.8.0

Release v0.7.5

06 Jun 13:51

Choose a tag to compare

🎉 What's New in v0.7.5

  • 🔨 Bump version to 0.7.5 [skip ci]
  • Merge pull request #43 from danielendler/codex/update-documentation-and-benchmarks-for-caching
  • Apply ruff formatting
  • Merge pull request #42 from danielendler/codex/update-python-version-support-in-docs
  • docs: clarify Python 3.13 status
  • docs: add caching benchmark
  • Merge pull request #41 from danielendler/codex/update-python-matrix-in-workflows
  • Limit Python 3.13 CI to minimal tests
  • docs: update Python version references
  • ci: add Python 3.13 to test matrix
  • Merge pull request #40 from danielendler/feature/caching-documentation
  • feat(docs): Add comprehensive caching system documentation
  • Merge pull request #39 from danielendler/feature/configurable-caching-system
  • fix(ci): adjust oython 3.8 compatibility, fix security raising exceptions instead of toher errors
  • fix(CI): fix tests
  • feat: Add configurable caching system for ML/data workflows
  • fix(ci): clear cache before each test, as they fail togfetehr, but pass individually
  • Add comprehensive test coverage for deserializers - 107 tests, 46% coverage for deserializers.py (up from 17%), 59% for ml_serializers.py, extensive exception flows, real ML library integration, all ruff formatted
  • feat: Merge codex branch enhancements for lazy imports and hotpath testing
  • fix(tests): add extra coverage boost
  • fix(tests): add extra coverage boost
  • Merge pull request #37 from danielendler/codex/increase-unit-test-coverage-for-deserializers
  • Improve deserializer tests
  • fix: Update template deserialization test to expect correct behavior - Fixed test expectation: Decimal objects should be reconstructed as Decimal instances, not dict metadata - Template deserializer correctly produces actual objects, not metadata format - This fix enables green CI pipelines while maintaining enhanced functionality
  • docs: Fix changelog versioning - Add missing v0.6.0 and v0.7.0 entries - Properly sequence template deserializer work as v0.7.5 - Document version jump rationale and feature progression
  • docs: Update template deserializer documentation and roadmap with v0.5.5 achievements
  • feat: Implement comprehensive template deserializer tests - Added integration tests for 4-mode detection strategies - Tests cover complete type coverage including NumPy, PyTorch, sklearn - Added unit tests for individual template deserializer methods - Systematic testing across 34 test cases - Verified deterministic behavior for all modes - Fixed code style issues
  • Add comprehensive progress summary - 75.0% success rate achieved
  • Fix set and tuple verification logic in audit script - improve success rate to 75.0%
  • Fix PyTorch tensor comparison and add enhanced type support plan
  • Fix UUID detection cache issue and enhance type support testing
  • Merge pull request #35 from danielendler/codex/replace-outdated-constant-in-documentation
  • docs: update size limit references
  • Merge pull request #34 from danielendler/feature/roadmap-update-and-deserialization-audit
  • Fix UUID test order dependency with cache clearing - Added cache clearing to prevent intermittent test failures - All tests now pass: 1060 passed, 10 skipped, 0 failed - Achieved 79% overall test coverage
  • Fix linter issues - removed unused variables and simplified logic
  • feat: Implement ultra-comprehensive coverage tests targeting specific missing lines in core.py and deserializers.py - Add test_ultra_coverage_boost.py with 48 test methods targeting import error handling, security features, advanced serialization (chunked/streaming), memory optimizations, and caching - Add test_deserializer_ultra_boost.py with focused deserializer tests for template processing, auto-detection, optimization paths - Target specific missing coverage lines identified through analysis to push core.py and deserializers.py coverage higher - Include tests for iterative serialization, exploit detection, JSON optimization paths, and advanced deserialization features
  • feat: Implement ultra-comprehensive coverage tests targeting specific missing lines in core.py and deserializers.py - Add test_ultra_coverage_boost.py with 48 test methods targeting import error handling, security features, advanced serialization (chunked/streaming), memory optimizations, and caching - Add test_deserializer_ultra_boost.py with focused deserializer tests for template processing, auto-detection, optimization paths - Target specific missing coverage lines identified through analysis to push core.py and deserializers.py coverage higher - Include tests for iterative serialization, exploit detection, JSON optimization paths, and advanced deserialization features

📦 Installation

pip install datason==v0.7.5

🔗 Links


Full Changelog: main...v0.7.5

Release v0.7.0

05 Jun 10:27

Choose a tag to compare

🎉 What's New in v0.7.0

  • 🔼 Bump version to 0.7.0 [skip ci]
  • Merge pull request #32 from danielendler/feature/roadmap-update-and-deserialization-audit
  • fix: Resolve test failures and improve benchmark tolerance - Fix UUID round-trip test by moving uuid_simple to TYPES_THAT_NEED_HINTS (auto-detection unreliable across environments, similar to path issue) - Improve benchmark test tolerance to handle timing variations across systems - All 950 tests now pass with 73% overall coverage
  • feat: Add comprehensive diff coverage tests for deserializers and core - Target new deserialize_fast function and optimizations - Cover enhanced type metadata processing - Test security limits and memory optimizations - Improve overall coverage to support diff coverage requirements
  • feat: Add comprehensive coverage tests to boost overall coverage from ~20% to 43%
  • Merge pull request #33 from danielendler/cursor/improve-and-organize-project-documentation-a401
  • fix: remove pr doc
  • Fix documentation structure, links, and add new sections for redaction and AI
  • Checkpoint before follow-up message
  • Fix documentation structure and broken links across project
  • Restructure documentation with comprehensive AI, API, and feature guides
  • refactor: Update round-trip serialization tests for Path objects - Removed unreliable auto-detection for absolute paths and clarified expected behavior across Python versions. Ensured consistency in handling Path objects in test cases.
  • docs: Add comprehensive v0.6.0 documentation for deserializer optimizations
  • Enhance serialization and deserialization for core data types - Added support for empty tuples and categorical data in pandas Series - Implemented critical fixes for ML object type metadata handling and JSON key conversion - Improved DataFrame reconstruction logic for various formats - Updated tests to reflect changes and ensure round-trip fidelity.
  • Fix TypeHandler integration and type-specific serialization issues - Fixed decimal/complex/range/bytes/enum/namedtuple handling to use TypeHandler - Fixed DataFrame auto-detection false positives - All 10 TestAdvancedTypes tests now pass - Ensures configurations like preserve_decimals=False work as intended
  • Fix MagicMock warning detection by improving Path object filtering - Fixed false positive Path detection for MagicMock objects - MagicMock objects have fspath attribute but should not be treated as Path objects - Added module check to exclude unittest.mock objects from Path handling - Now MagicMock objects properly reach problematic object detection and issue warnings - Fixes test_problematic_object_warning test failure - Maintains correct behavior for legitimate Path objects
  • Restructure integration tests into deterministic categories - Split tests into TYPES_THAT_WORK_WITHOUT_HINTS (36) and TYPES_THAT_NEED_HINTS (55) - Fixed false positive DataFrame detection in deserialize_fast - All 36 basic round-trip tests now pass (0% failure rate) - Clear documentation of serialization vs deserialization asymmetry
  • fix: Major regression fixes and test suite realism
  • interim: Enhanced type metadata deserialization - critical NumPy scalar fix
  • feat: Enhanced type metadata deserialization handlers - Improved dual-format support and NumPy scalar metadata generation
  • feat: comprehensive test coverage for deserializer hot path optimization - 35 test cases with 26 point coverage improvement
  • feat: comprehensive test coverage for deserializer hot path optimization
  • feat: deserializer hot path optimizations - fixes linting issues and adds security nosec comments
  • feat: roadmap update + deserialization audit reveals critical gaps
  • Update ROADMAP_UPDATED.md to reflect critical issues, validated performance improvements, and revised project priorities based on financial ML team feedback. Key changes include reclassification of known issues, addition of validated performance metrics, and adjustments to roadmap timelines for round-trip support and domain-specific configurations.

📦 Installation

pip install datason==v0.7.0

🔗 Links


Full Changelog: main...v0.7.0