Coverage for Users / vladimirpavlov / PycharmProjects / parameterizable / src / mixinforge / __init__.py: 100%

10 statements  

« prev     ^ index     » next       coverage.py v7.13.1, created at 2026-01-01 16:37 -0600

1"""Tools for working with mixinforge classes. 

2 

3This package provides reusable mixins and utility functions that help you build 

4well-structured Python classes. It offers tools for parameter management, cache 

5management, initialization control, thread safety, pickle prevention, JSON 

6serialization, and dictionary utilities. 

7 

8Public API: 

9- ParameterizableMixin: Base class for parameterizable objects with JSON serialization. 

10- CacheablePropertiesMixin: Automatic discovery and invalidation of cached_property attributes. 

11- NotPicklableMixin: Mixin that prevents pickling/unpickling. 

12- SingleThreadEnforcerMixin: Enforces single-threaded execution with multi-process support. 

13- GuardedInitMeta: Metaclass for strict initialization control and lifecycle hooks. 

14- SingletonMixin: Ensures each subclass maintains exactly one instance. 

15- sort_dict_by_keys: Sort a dictionary by its keys alphabetically. 

16- dumpjs: Serialize an object (or parameters) into a JSON string. 

17- loadjs: Deserialize a JSON string produced by dumpjs back into a Python object. 

18- update_jsparams: Update parameters in a JSON-serialized string. 

19- access_jsparams: Access parameters in a JSON-serialized string. 

20- JsonSerializedObject: NewType alias for JSON strings produced by dumpjs. 

21""" 

22 

23from ._version_info import __version__ 

24 

25from .dict_sorter import * 

26from .not_picklable_mixin import * 

27from .json_processor import * 

28from .parameterizable_mixin import * 

29from .cacheable_properties_mixin import * 

30from .guarded_init_metaclass import * 

31from .single_thread_enforcer_mixin import * 

32from .singleton_mixin import * 

33 

34__all__ = [ 

35 'CacheablePropertiesMixin', 

36 'GuardedInitMeta', 

37 'SingleThreadEnforcerMixin', 

38 'sort_dict_by_keys', 

39 'ParameterizableMixin', 

40 'NotPicklableMixin', 

41 'loadjs', 

42 'dumpjs', 

43 'JsonSerializedObject', 

44 'update_jsparams', 

45 'access_jsparams', 

46 '__version__' 

47]