Coverage for /home/runner/work/viur-core/viur-core/viur/src/viur/core/bones/__init__.py: 92%
46 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-13 11:04 +0000
« prev ^ index » next coverage.py v7.10.6, created at 2025-09-13 11:04 +0000
1from .base import (
2 BaseBone,
3 CloneBehavior,
4 CloneStrategy,
5 Compute,
6 ComputeInterval,
7 ComputeMethod,
8 MultipleConstraints,
9 ReadFromClientError,
10 ReadFromClientErrorSeverity,
11 ReadFromClientException,
12 UniqueLockMethod,
13 UniqueValue,
14)
15from .boolean import BooleanBone
16from .captcha import CaptchaBone
17from .color import ColorBone
18from .credential import CredentialBone
19from .date import DateBone
20from .email import EmailBone
21from .file import FileBone
22from .image import ImageBone
23from .json import JsonBone
24from .key import KeyBone
25from .numeric import NumericBone
26from .password import PasswordBone
27from .phone import PhoneBone
28from .randomslice import RandomSliceBone
29from .raw import RawBone
30from .record import RecordBone
31from .relational import RelationalBone, RelationalConsistency, RelationalUpdateLevel
32from .selectcountry import SelectCountryBone
33from .select import (
34 SelectBone,
35 translation_key_prefix_skeleton_bonename,
36 translation_key_prefix_bonename,
37)
38from .sortindex import SortIndexBone
39from .spam import SpamBone
40from .spatial import SpatialBone
41from .string import StringBone
42from .text import TextBone
43from .treeleaf import TreeLeafBone
44from .treenode import TreeNodeBone
45from .uid import UidBone
46from .uri import UriBone
47from .user import UserBone
49# Expose only specific names
50__all = [
51 "BaseBone",
52 "BooleanBone",
53 "CaptchaBone",
54 "CloneBehavior",
55 "CloneStrategy",
56 "ColorBone",
57 "Compute",
58 "ComputeInterval",
59 "ComputeMethod",
60 "CredentialBone",
61 "DateBone",
62 "EmailBone",
63 "FileBone",
64 "ImageBone",
65 "JsonBone",
66 "KeyBone",
67 "MultipleConstraints",
68 "NumericBone",
69 "PasswordBone",
70 "PhoneBone",
71 "RandomSliceBone",
72 "RawBone",
73 "ReadFromClientError",
74 "ReadFromClientErrorSeverity",
75 "RecordBone",
76 "RelationalBone",
77 "RelationalConsistency",
78 "RelationalUpdateLevel",
79 "SelectBone",
80 "SelectCountryBone",
81 "SortIndexBone",
82 "SpamBone",
83 "SpatialBone",
84 "StringBone",
85 "TextBone",
86 "TreeLeafBone",
87 "TreeNodeBone",
88 "UidBone",
89 "UniqueLockMethod",
90 "UniqueValue",
91 "UriBone",
92 "UserBone",
93 "translation_key_prefix_bonename",
94 "translation_key_prefix_skeleton_bonename",
95]
97for __cls_name, __cls in locals().copy().items():
98 if __cls_name.startswith("__"):
99 continue
101 if __cls_name.endswith("Bone"):
102 __old_cls_name = __cls_name[0].lower() + __cls_name[1:]
104 __all += [__old_cls_name]
106 # Dynamically create a class providing a deprecation logging message for every lower-case bone name
107 def __generate_deprecation_constructor(cls, cls_name, old_cls_name):
108 def __init__(self, *args, **kwargs):
109 import logging, warnings
110 logging.warning(f"Use of class '{old_cls_name}' is deprecated, use '{cls_name}' instead.")
111 warnings.warn(f"Use of class '{old_cls_name}' is deprecated, use '{cls_name}' instead.", stacklevel=2)
112 cls.__init__(self, *args, **kwargs)
114 return __init__
116 locals()[__old_cls_name] = type(__old_cls_name, (__cls,), {
117 "__init__": __generate_deprecation_constructor(__cls, __cls_name, __old_cls_name)
118 })
120 # print(__old_cls_name, "installed as ", locals()[__old_cls_name], issubclass(locals()[__old_cls_name], __cls))
122__all__ = __all