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