Coverage for /home/runner/work/viur-core/viur-core/viur/src/viur/core/skeleton/__init__.py: 76%

23 statements  

« prev     ^ index     » next       coverage.py v7.16.1, created at 2026-09-25 15:02 +0000

1import logging 

2import warnings 

3 

4from .adapter import DatabaseAdapter, ViurTagsSearchAdapter 

5# The bones package has to be complete before the first skeleton class is built: MetaBaseSkel 

6# reaches into it while the class body is executed, and bones.image in turn subclasses RelSkel. 

7# Importing viur.core establishes that order anyway; this keeps it intact for anyone importing 

8# viur.core.skeleton directly. 

9from .. import bones as _bones # noqa: F401 

10 

11from .base import BaseSkeleton 

12from .instance import SkeletonInstance 

13from .meta import ABSTRACT_SKEL_CLS_SUFFIX, MetaBaseSkel, MetaSkel, Skeleton_Cls 

14from .relskel import RefSkel, RelSkel 

15from .skeleton import SeoKeyBone, Skeleton, _UNDEFINED_KINDNAME 

16from .tasks import SkelIterTask, SkeletonMaintenanceTask, update_relations 

17from .utils import ( # noqa 

18 SkelList, 

19 is_skeletoninstance_of, 

20 iterAllSkelClasses, 

21 listKnownSkeletons, 

22 remove_render_preparation_deep, 

23 skeletonByKind, 

24 without_render_preparation, 

25) 

26 

27# DEPRECATED ATTRIBUTES HANDLING 

28# FIXME: REMOVE WITH VIUR4 

29 

30from ..bones.base import getSystemInitialized as _getSystemInitialized 

31from ..db import KeyType as _KeyType 

32 

33__DEPRECATED_NAMES = { 

34 # stuff prior viur-core < 3.6 

35 "seoKeyBone": ("SeoKeyBone", SeoKeyBone), 

36 # stuff prior viur-core < 3.8 

37 "getSystemInitialized": ("bones.base.getSystemInitialized", _getSystemInitialized), 

38 "KeyType": ("db.KeyType", _KeyType), 

39} 

40 

41 

42def __getattr__(attr: str) -> object: 

43 if entry := __DEPRECATED_NAMES.get(attr): 43 ↛ 44line 43 didn't jump to line 44 because the condition on line 43 was never true

44 func = entry[1] 

45 msg = f"{attr} was replaced by {entry[0]}" 

46 warnings.warn(msg, DeprecationWarning, stacklevel=2) 

47 logging.warning(msg, stacklevel=2) 

48 return func 

49 

50 return super(__import__(__name__).__class__).__getattribute__(attr) 

51 

52 

53__all__ = [ 

54 "ABSTRACT_SKEL_CLS_SUFFIX", 

55 "BaseSkeleton", 

56 "DatabaseAdapter", 

57 "MetaBaseSkel", 

58 "MetaSkel", 

59 "RefSkel", 

60 "RelSkel", 

61 "SeoKeyBone", 

62 "SkelIterTask", 

63 "SkelList", 

64 "Skeleton", 

65 "Skeleton_Cls", 

66 "SkeletonInstance", 

67 "SkeletonMaintenanceTask", 

68 "ViurTagsSearchAdapter", 

69 "_UNDEFINED_KINDNAME", 

70 "is_skeletoninstance_of", 

71 "iterAllSkelClasses", 

72 "listKnownSkeletons", 

73 "remove_render_preparation_deep", 

74 "skeletonByKind", 

75 "update_relations", 

76 "without_render_preparation", 

77]