avrotize 2.21.1__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. avrotize/__init__.py +66 -0
  2. avrotize/__main__.py +6 -0
  3. avrotize/_version.py +34 -0
  4. avrotize/asn1toavro.py +160 -0
  5. avrotize/avrotize.py +152 -0
  6. avrotize/avrotocpp/CMakeLists.txt.jinja +77 -0
  7. avrotize/avrotocpp/build.bat.jinja +7 -0
  8. avrotize/avrotocpp/build.sh.jinja +7 -0
  9. avrotize/avrotocpp/dataclass_body.jinja +108 -0
  10. avrotize/avrotocpp/vcpkg.json.jinja +21 -0
  11. avrotize/avrotocpp.py +483 -0
  12. avrotize/avrotocsharp/README.md.jinja +166 -0
  13. avrotize/avrotocsharp/class_test.cs.jinja +266 -0
  14. avrotize/avrotocsharp/dataclass_core.jinja +293 -0
  15. avrotize/avrotocsharp/enum_test.cs.jinja +20 -0
  16. avrotize/avrotocsharp/project.csproj.jinja +30 -0
  17. avrotize/avrotocsharp/project.sln.jinja +34 -0
  18. avrotize/avrotocsharp/run_coverage.ps1.jinja +98 -0
  19. avrotize/avrotocsharp/run_coverage.sh.jinja +149 -0
  20. avrotize/avrotocsharp/testproject.csproj.jinja +19 -0
  21. avrotize/avrotocsharp.py +1180 -0
  22. avrotize/avrotocsv.py +121 -0
  23. avrotize/avrotodatapackage.py +173 -0
  24. avrotize/avrotodb.py +1383 -0
  25. avrotize/avrotogo/go_enum.jinja +12 -0
  26. avrotize/avrotogo/go_helpers.jinja +31 -0
  27. avrotize/avrotogo/go_struct.jinja +151 -0
  28. avrotize/avrotogo/go_test.jinja +47 -0
  29. avrotize/avrotogo/go_union.jinja +38 -0
  30. avrotize/avrotogo.py +476 -0
  31. avrotize/avrotographql.py +197 -0
  32. avrotize/avrotoiceberg.py +210 -0
  33. avrotize/avrotojava/class_test.java.jinja +212 -0
  34. avrotize/avrotojava/enum_test.java.jinja +21 -0
  35. avrotize/avrotojava/testproject.pom.jinja +54 -0
  36. avrotize/avrotojava.py +2156 -0
  37. avrotize/avrotojs.py +250 -0
  38. avrotize/avrotojsons.py +481 -0
  39. avrotize/avrotojstruct.py +345 -0
  40. avrotize/avrotokusto.py +364 -0
  41. avrotize/avrotomd/README.md.jinja +49 -0
  42. avrotize/avrotomd.py +137 -0
  43. avrotize/avrotools.py +168 -0
  44. avrotize/avrotoparquet.py +208 -0
  45. avrotize/avrotoproto.py +359 -0
  46. avrotize/avrotopython/dataclass_core.jinja +241 -0
  47. avrotize/avrotopython/enum_core.jinja +87 -0
  48. avrotize/avrotopython/pyproject_toml.jinja +18 -0
  49. avrotize/avrotopython/test_class.jinja +97 -0
  50. avrotize/avrotopython/test_enum.jinja +23 -0
  51. avrotize/avrotopython.py +626 -0
  52. avrotize/avrotorust/dataclass_enum.rs.jinja +74 -0
  53. avrotize/avrotorust/dataclass_struct.rs.jinja +204 -0
  54. avrotize/avrotorust/dataclass_union.rs.jinja +105 -0
  55. avrotize/avrotorust.py +435 -0
  56. avrotize/avrotots/class_core.ts.jinja +140 -0
  57. avrotize/avrotots/class_test.ts.jinja +77 -0
  58. avrotize/avrotots/enum_core.ts.jinja +46 -0
  59. avrotize/avrotots/gitignore.jinja +34 -0
  60. avrotize/avrotots/index.ts.jinja +0 -0
  61. avrotize/avrotots/package.json.jinja +23 -0
  62. avrotize/avrotots/tsconfig.json.jinja +21 -0
  63. avrotize/avrotots.py +687 -0
  64. avrotize/avrotoxsd.py +344 -0
  65. avrotize/cddltostructure.py +1841 -0
  66. avrotize/commands.json +3496 -0
  67. avrotize/common.py +834 -0
  68. avrotize/constants.py +87 -0
  69. avrotize/csvtoavro.py +132 -0
  70. avrotize/datapackagetoavro.py +76 -0
  71. avrotize/dependencies/cpp/vcpkg/vcpkg.json +19 -0
  72. avrotize/dependencies/cs/net90/dependencies.csproj +29 -0
  73. avrotize/dependencies/go/go121/go.mod +6 -0
  74. avrotize/dependencies/java/jdk21/pom.xml +91 -0
  75. avrotize/dependencies/python/py312/requirements.txt +13 -0
  76. avrotize/dependencies/rust/stable/Cargo.toml +17 -0
  77. avrotize/dependencies/typescript/node22/package.json +16 -0
  78. avrotize/dependency_resolver.py +348 -0
  79. avrotize/dependency_version.py +432 -0
  80. avrotize/generic/generic.avsc +57 -0
  81. avrotize/jsonstoavro.py +2167 -0
  82. avrotize/jsonstostructure.py +2864 -0
  83. avrotize/jstructtoavro.py +878 -0
  84. avrotize/kstructtoavro.py +93 -0
  85. avrotize/kustotoavro.py +455 -0
  86. avrotize/openapitostructure.py +717 -0
  87. avrotize/parquettoavro.py +157 -0
  88. avrotize/proto2parser.py +498 -0
  89. avrotize/proto3parser.py +403 -0
  90. avrotize/prototoavro.py +382 -0
  91. avrotize/prototypes/any.avsc +19 -0
  92. avrotize/prototypes/api.avsc +106 -0
  93. avrotize/prototypes/duration.avsc +20 -0
  94. avrotize/prototypes/field_mask.avsc +18 -0
  95. avrotize/prototypes/struct.avsc +60 -0
  96. avrotize/prototypes/timestamp.avsc +20 -0
  97. avrotize/prototypes/type.avsc +253 -0
  98. avrotize/prototypes/wrappers.avsc +117 -0
  99. avrotize/structuretocddl.py +597 -0
  100. avrotize/structuretocpp/CMakeLists.txt.jinja +76 -0
  101. avrotize/structuretocpp/build.bat.jinja +3 -0
  102. avrotize/structuretocpp/build.sh.jinja +3 -0
  103. avrotize/structuretocpp/dataclass_body.jinja +50 -0
  104. avrotize/structuretocpp/vcpkg.json.jinja +11 -0
  105. avrotize/structuretocpp.py +697 -0
  106. avrotize/structuretocsharp/class_test.cs.jinja +180 -0
  107. avrotize/structuretocsharp/dataclass_core.jinja +156 -0
  108. avrotize/structuretocsharp/enum_test.cs.jinja +36 -0
  109. avrotize/structuretocsharp/json_structure_converters.cs.jinja +399 -0
  110. avrotize/structuretocsharp/program.cs.jinja +49 -0
  111. avrotize/structuretocsharp/project.csproj.jinja +17 -0
  112. avrotize/structuretocsharp/project.sln.jinja +34 -0
  113. avrotize/structuretocsharp/testproject.csproj.jinja +18 -0
  114. avrotize/structuretocsharp/tuple_converter.cs.jinja +121 -0
  115. avrotize/structuretocsharp.py +2295 -0
  116. avrotize/structuretocsv.py +365 -0
  117. avrotize/structuretodatapackage.py +659 -0
  118. avrotize/structuretodb.py +1125 -0
  119. avrotize/structuretogo/go_enum.jinja +12 -0
  120. avrotize/structuretogo/go_helpers.jinja +26 -0
  121. avrotize/structuretogo/go_interface.jinja +18 -0
  122. avrotize/structuretogo/go_struct.jinja +187 -0
  123. avrotize/structuretogo/go_test.jinja +70 -0
  124. avrotize/structuretogo.py +729 -0
  125. avrotize/structuretographql.py +502 -0
  126. avrotize/structuretoiceberg.py +355 -0
  127. avrotize/structuretojava/choice_core.jinja +34 -0
  128. avrotize/structuretojava/class_core.jinja +23 -0
  129. avrotize/structuretojava/enum_core.jinja +18 -0
  130. avrotize/structuretojava/equals_hashcode.jinja +30 -0
  131. avrotize/structuretojava/pom.xml.jinja +26 -0
  132. avrotize/structuretojava/tuple_core.jinja +49 -0
  133. avrotize/structuretojava.py +938 -0
  134. avrotize/structuretojs/class_core.js.jinja +33 -0
  135. avrotize/structuretojs/enum_core.js.jinja +10 -0
  136. avrotize/structuretojs/package.json.jinja +12 -0
  137. avrotize/structuretojs/test_class.js.jinja +84 -0
  138. avrotize/structuretojs/test_enum.js.jinja +58 -0
  139. avrotize/structuretojs/test_runner.js.jinja +45 -0
  140. avrotize/structuretojs.py +657 -0
  141. avrotize/structuretojsons.py +498 -0
  142. avrotize/structuretokusto.py +639 -0
  143. avrotize/structuretomd/README.md.jinja +204 -0
  144. avrotize/structuretomd.py +322 -0
  145. avrotize/structuretoproto.py +764 -0
  146. avrotize/structuretopython/dataclass_core.jinja +363 -0
  147. avrotize/structuretopython/enum_core.jinja +45 -0
  148. avrotize/structuretopython/map_alias.jinja +21 -0
  149. avrotize/structuretopython/pyproject_toml.jinja +23 -0
  150. avrotize/structuretopython/test_class.jinja +103 -0
  151. avrotize/structuretopython/test_enum.jinja +34 -0
  152. avrotize/structuretopython.py +799 -0
  153. avrotize/structuretorust/dataclass_enum.rs.jinja +63 -0
  154. avrotize/structuretorust/dataclass_struct.rs.jinja +121 -0
  155. avrotize/structuretorust/dataclass_union.rs.jinja +81 -0
  156. avrotize/structuretorust.py +714 -0
  157. avrotize/structuretots/class_core.ts.jinja +78 -0
  158. avrotize/structuretots/enum_core.ts.jinja +6 -0
  159. avrotize/structuretots/gitignore.jinja +8 -0
  160. avrotize/structuretots/index.ts.jinja +1 -0
  161. avrotize/structuretots/package.json.jinja +39 -0
  162. avrotize/structuretots/test_class.ts.jinja +35 -0
  163. avrotize/structuretots/tsconfig.json.jinja +21 -0
  164. avrotize/structuretots.py +740 -0
  165. avrotize/structuretoxsd.py +679 -0
  166. avrotize/xsdtoavro.py +413 -0
  167. avrotize-2.21.1.dist-info/METADATA +1319 -0
  168. avrotize-2.21.1.dist-info/RECORD +171 -0
  169. avrotize-2.21.1.dist-info/WHEEL +4 -0
  170. avrotize-2.21.1.dist-info/entry_points.txt +3 -0
  171. avrotize-2.21.1.dist-info/licenses/LICENSE +201 -0
@@ -0,0 +1,78 @@
1
+ /** {{ docstring }} */
2
+ {%- if typedjson_annotation %}
3
+ import 'reflect-metadata';
4
+ {%- if fields | selectattr("is_primitive", "equalto", false) | list | length > 0 %}
5
+ import { jsonObject, jsonMember, TypedJSON } from 'typedjson';
6
+ {%- else %}
7
+ import { jsonObject, jsonMember, TypedJSON } from 'typedjson';
8
+ {%- endif %}
9
+ {%- endif %}
10
+ {%- for import_type, import_path in imports.items() %}
11
+ import { {{ import_type }} } from '{{ import_path }}';
12
+ {%- endfor %}
13
+
14
+ {%- if typedjson_annotation %}
15
+ @jsonObject
16
+ {%- endif %}
17
+ export {% if is_abstract %}abstract {% endif %}class {{ class_name }}{% if base_class %} extends {{ base_class }}{% endif %} {
18
+ {%- for field in fields %}
19
+ /** {{ field.docstring }} */
20
+ {%- if typedjson_annotation %}
21
+ {%- set field_type = field.type_no_null %}
22
+ @jsonMember({{ 'String' if field.is_enum else (field_type if not field.is_primitive else 'String' if field_type == 'Date' else field_type | capitalize) }})
23
+ {%- endif %}
24
+ public {{ field.name }}{% if field.is_optional %}?{% endif %}: {{ field.type_no_null }};
25
+ {%- endfor %}
26
+
27
+ constructor(
28
+ {%- set required_fields = fields | selectattr("is_required") | list -%}
29
+ {%- set optional_fields = fields | selectattr("is_optional") | list -%}
30
+ {%- for field in required_fields %}
31
+ {{ field.name }}: {{ field.type_no_null }}{% if not loop.last or optional_fields %},{% endif %}
32
+ {%- endfor %}
33
+ {%- for field in optional_fields %}
34
+ {{ field.name }}?: {{ field.type_no_null }}{% if not loop.last %},{% endif %}
35
+ {%- endfor %}
36
+ ) {
37
+ {%- if base_class %}
38
+ super();
39
+ {%- endif %}
40
+ {%- for field in fields %}
41
+ {%- if field.is_optional %}
42
+ if ({{ field.name }} !== undefined) {
43
+ this.{{ field.name }} = {{ field.name }};
44
+ }
45
+ {%- else %}
46
+ this.{{ field.name }} = {{ field.name }};
47
+ {%- endif %}
48
+ {%- endfor %}
49
+ }
50
+
51
+ {%- if typedjson_annotation %}
52
+ public toJSON(): string {
53
+ const serializer = new TypedJSON({{ class_name }});
54
+ return serializer.stringify(this) || '';
55
+ }
56
+
57
+ public static fromJSON(json: string): {{ class_name }} {
58
+ const serializer = new TypedJSON({{ class_name }});
59
+ const result = serializer.parse(json);
60
+ if (!result) {
61
+ throw new Error('Failed to deserialize {{ class_name }}');
62
+ }
63
+ return result;
64
+ }
65
+ {%- endif %}
66
+
67
+ /**
68
+ * Creates an instance of {{ class_name }} with sample data for testing.
69
+ * @returns A new {{ class_name }} instance with sample values.
70
+ */
71
+ public static createInstance(): {{ class_name }} {
72
+ return new {{ class_name }}(
73
+ {%- for field in required_fields %}
74
+ {{ field.test_value }}{% if not loop.last %},{% endif %} // {{ field.name }}
75
+ {%- endfor %}
76
+ );
77
+ }
78
+ }
@@ -0,0 +1,6 @@
1
+ /** {{ docstring }} */
2
+ export enum {{ enum_name }} {
3
+ {%- for symbol in symbols %}
4
+ {{ symbol }} = "{{ symbol }}"{%- if not loop.last %},{%- endif %}
5
+ {%- endfor %}
6
+ }
@@ -0,0 +1,8 @@
1
+ node_modules/
2
+ dist/
3
+ *.log
4
+ .DS_Store
5
+ *.tsbuildinfo
6
+ coverage/
7
+ .vscode/
8
+ .idea/
@@ -0,0 +1 @@
1
+ // Auto-generated index file
@@ -0,0 +1,39 @@
1
+ {
2
+ "name": "{{ package_name }}",
3
+ "version": "1.0.0",
4
+ "description": "Generated TypeScript classes from JSON Structure schema",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "scripts": {
8
+ "build": "tsc",
9
+ "test": "jest",
10
+ "test:watch": "jest --watch"
11
+ },
12
+ "keywords": [],
13
+ "author": "",
14
+ "license": "ISC",
15
+ "devDependencies": {
16
+ "typescript": "^5.0.0",
17
+ "@types/node": "^20.0.0",
18
+ "@types/jest": "^29.5.0",
19
+ "jest": "^29.5.0",
20
+ "ts-jest": "^29.1.0"
21
+ },
22
+ "dependencies": {
23
+ "typedjson": "^1.8.0",
24
+ "reflect-metadata": "^0.1.13"
25
+ },
26
+ "jest": {
27
+ "preset": "ts-jest",
28
+ "testEnvironment": "node",
29
+ "roots": [
30
+ "<rootDir>/test"
31
+ ],
32
+ "testMatch": [
33
+ "**/*.test.ts"
34
+ ],
35
+ "moduleNameMapper": {
36
+ "^(\\.{1,2}/.*)\\.js$": "$1"
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Test case for {{ class_name }}
3
+ */
4
+
5
+ import { {{ class_name }} } from '../src/{{ relative_path }}';
6
+ {%- for enum_type, enum_path in enum_imports.items() %}
7
+ import { {{ enum_type }} } from '{{ enum_path }}';
8
+ {%- endfor %}
9
+
10
+ describe('{{ class_name }}', () => {
11
+ it('should create an instance with required fields', () => {
12
+ const instance = new {{ class_name }}(
13
+ {%- for field in required_fields %}
14
+ {{ field.test_value }}{% if not loop.last %},{% endif %}
15
+ {%- endfor %}
16
+ );
17
+ expect(instance).toBeDefined();
18
+ expect(instance).toBeInstanceOf({{ class_name }});
19
+ {%- for field in required_fields %}
20
+ expect(instance.{{ field.name }}).toBeDefined();
21
+ {%- endfor %}
22
+ });
23
+
24
+ it('should serialize to JSON', () => {
25
+ const instance = new {{ class_name }}(
26
+ {%- for field in required_fields %}
27
+ {{ field.test_value }}{% if not loop.last %},{% endif %}
28
+ {%- endfor %}
29
+ );
30
+ const json = JSON.stringify(instance);
31
+ expect(json).toBeDefined();
32
+ const parsed = JSON.parse(json);
33
+ expect(parsed).toBeDefined();
34
+ });
35
+ });
@@ -0,0 +1,21 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "module": "ES2020",
5
+ "moduleResolution": "node",
6
+ "lib": ["ES2020"],
7
+ "outDir": "./dist",
8
+ "rootDir": "./src",
9
+ "declaration": true,
10
+ "declarationMap": true,
11
+ "sourceMap": true,
12
+ "strict": true,
13
+ "esModuleInterop": true,
14
+ "skipLibCheck": true,
15
+ "forceConsistentCasingInFileNames": true,
16
+ "experimentalDecorators": true,
17
+ "emitDecoratorMetadata": true
18
+ },
19
+ "include": ["src/**/*"],
20
+ "exclude": ["node_modules", "dist"]
21
+ }