Coverage for sbe2/schema/builtin.py: 100%
22 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-21 19:48 +0200
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-21 19:48 +0200
1from .primitive_type import (
2 PrimitiveType,
3 char as pchar,
4 int8 as pint8,
5 int_ as pint,
6 int16 as pint16,
7 int32 as pint32,
8 int64 as pint64,
9 uint8 as puint8,
10 uint16 as puint16,
11 uint32 as puint32,
12 uint64 as puint64,
13 float_ as pfloat,
14 double as pdouble,
15)
16from .composite import Composite
17from .type import Type
18from .common import Presence
21def primitive_type_to_type(primitive_type: PrimitiveType) -> Type:
22 """
23 Converts a PrimitiveType to a Type.
25 Args:
26 primitive_type (PrimitiveType): The primitive type to convert.
28 Returns:
29 Type: A Type instance representing the primitive type.
30 """
31 return Type(
32 name=primitive_type.name,
33 primitive_type=primitive_type,
34 presence=Presence.REQUIRED,
35 length=1,
36 since_version=0,
37 deprecated=None,
38 description=primitive_type.name,
39 offset=None,
40 )
43char = primitive_type_to_type(pchar)
44int_ = primitive_type_to_type(pint)
45int8 = primitive_type_to_type(pint8)
46int16 = primitive_type_to_type(pint16)
47int32 = primitive_type_to_type(pint32)
48int64 = primitive_type_to_type(pint64)
49uint8 = primitive_type_to_type(puint8)
50uint16 = primitive_type_to_type(puint16)
51uint32 = primitive_type_to_type(puint32)
52uint64 = primitive_type_to_type(puint64)
53float_ = primitive_type_to_type(pfloat)
54double = primitive_type_to_type(pdouble)
57decimal = Composite(
58 name="decimal",
59 description="",
60 elements=[
61 Type(
62 name="mantissa",
63 primitive_type=int64,
64 presence=Presence.REQUIRED,
65 description="",
66 ),
67 Type(
68 name="exponent",
69 primitive_type=int8,
70 presence=Presence.REQUIRED,
71 description="",
72 ),
73 ],
74)
76decimal32 = Composite(
77 name="decimal32",
78 description="",
79 elements=[
80 Type(
81 name="mantissa",
82 primitive_type=int64,
83 presence=Presence.REQUIRED,
84 description="",
85 ),
86 Type(
87 name="exponent",
88 primitive_type=int8,
89 presence=Presence.CONSTANT,
90 description="",
91 const_val=-2,
92 ),
93 ],
94)
96decimal64 = Composite(
97 name="decimal64",
98 description="",
99 elements=[
100 Type(
101 name="mantissa",
102 primitive_type=int64,
103 presence=Presence.REQUIRED,
104 description="",
105 ),
106 Type(
107 name="exponent",
108 primitive_type=int8,
109 presence=Presence.CONSTANT,
110 description="",
111 const_val=-2,
112 ),
113 ],
114)
116__all__ = (
117 'char',
118 'int_',
119 'int8',
120 'int16',
121 'int32',
122 'int64',
123 'uint8',
124 'uint16',
125 'uint32',
126 'uint64',
127 'float_',
128 'double',
129 'decimal',
130 'decimal32',
131 'decimal64'
132)