Skip to content

🔧 Utilities

Helper functions for data processing and package information.

🎯 Overview

Utility functions provide data processing helpers and package information.

📦 Functions

Package Information

datason.get_version() -> str

Get the current version of datason.

Source code in datason/__init__.py
def get_version() -> str:
    """Get the current version of datason."""
    return __version__

datason.get_info() -> dict

Get information about the datason package.

Source code in datason/__init__.py
def get_info() -> dict:
    """Get information about the datason package."""
    return {
        "version": __version__,
        "author": __author__,
        "email": __author__,
        "description": __description__,
        "config_available": _config_available,
        "cache_system": "configurable" if _config_available else "legacy",
    }

Cache Management

datason.clear_all_caches() -> None

Clear all caches across all scopes (for testing/debugging).

Source code in datason/cache_manager.py
def clear_all_caches() -> None:
    """Clear all caches across all scopes (for testing/debugging)."""
    # Clear process-level caches
    _process_string_pattern_cache.clear()
    _process_parsed_object_cache.clear()
    _process_type_cache.clear()
    _process_dict_pool.clear()
    _process_list_pool.clear()

    # Clear ML serializers lazy import cache
    try:
        from . import ml_serializers

        for key in ml_serializers._LAZY_IMPORTS:
            ml_serializers._LAZY_IMPORTS[key] = None
    except ImportError:
        pass

    # Clear request-level caches if they exist
    try:
        if _request_string_pattern_cache.get() is not None:
            _request_string_pattern_cache.get().clear()
    except LookupError:
        pass

    try:
        if _request_parsed_object_cache.get() is not None:
            _request_parsed_object_cache.get().clear()
    except LookupError:
        pass

    try:
        if _request_type_cache.get() is not None:
            _request_type_cache.get().clear()
    except LookupError:
        pass

    try:
        if _request_dict_pool.get() is not None:
            _request_dict_pool.get().clear()
    except LookupError:
        pass

    try:
        if _request_list_pool.get() is not None:
            _request_list_pool.get().clear()
    except LookupError:
        pass

datason.get_cache_metrics(scope: Optional[CacheScope] = None) -> Dict[CacheScope, CacheMetrics]

Get cache metrics for a specific scope or all scopes.

Source code in datason/cache_manager.py
def get_cache_metrics(scope: Optional[CacheScope] = None) -> Dict[CacheScope, CacheMetrics]:
    """Get cache metrics for a specific scope or all scopes."""
    if scope is not None:
        return {scope: _cache_metrics[scope]}
    return dict(_cache_metrics)