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

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 

19 

20 

21def primitive_type_to_type(primitive_type: PrimitiveType) -> Type: 

22 """ 

23 Converts a PrimitiveType to a Type. 

24 

25 Args: 

26 primitive_type (PrimitiveType): The primitive type to convert. 

27 

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 ) 

41 

42 

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) 

55 

56 

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) 

75 

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) 

95 

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) 

115 

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)