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.
- avrotize/__init__.py +66 -0
- avrotize/__main__.py +6 -0
- avrotize/_version.py +34 -0
- avrotize/asn1toavro.py +160 -0
- avrotize/avrotize.py +152 -0
- avrotize/avrotocpp/CMakeLists.txt.jinja +77 -0
- avrotize/avrotocpp/build.bat.jinja +7 -0
- avrotize/avrotocpp/build.sh.jinja +7 -0
- avrotize/avrotocpp/dataclass_body.jinja +108 -0
- avrotize/avrotocpp/vcpkg.json.jinja +21 -0
- avrotize/avrotocpp.py +483 -0
- avrotize/avrotocsharp/README.md.jinja +166 -0
- avrotize/avrotocsharp/class_test.cs.jinja +266 -0
- avrotize/avrotocsharp/dataclass_core.jinja +293 -0
- avrotize/avrotocsharp/enum_test.cs.jinja +20 -0
- avrotize/avrotocsharp/project.csproj.jinja +30 -0
- avrotize/avrotocsharp/project.sln.jinja +34 -0
- avrotize/avrotocsharp/run_coverage.ps1.jinja +98 -0
- avrotize/avrotocsharp/run_coverage.sh.jinja +149 -0
- avrotize/avrotocsharp/testproject.csproj.jinja +19 -0
- avrotize/avrotocsharp.py +1180 -0
- avrotize/avrotocsv.py +121 -0
- avrotize/avrotodatapackage.py +173 -0
- avrotize/avrotodb.py +1383 -0
- avrotize/avrotogo/go_enum.jinja +12 -0
- avrotize/avrotogo/go_helpers.jinja +31 -0
- avrotize/avrotogo/go_struct.jinja +151 -0
- avrotize/avrotogo/go_test.jinja +47 -0
- avrotize/avrotogo/go_union.jinja +38 -0
- avrotize/avrotogo.py +476 -0
- avrotize/avrotographql.py +197 -0
- avrotize/avrotoiceberg.py +210 -0
- avrotize/avrotojava/class_test.java.jinja +212 -0
- avrotize/avrotojava/enum_test.java.jinja +21 -0
- avrotize/avrotojava/testproject.pom.jinja +54 -0
- avrotize/avrotojava.py +2156 -0
- avrotize/avrotojs.py +250 -0
- avrotize/avrotojsons.py +481 -0
- avrotize/avrotojstruct.py +345 -0
- avrotize/avrotokusto.py +364 -0
- avrotize/avrotomd/README.md.jinja +49 -0
- avrotize/avrotomd.py +137 -0
- avrotize/avrotools.py +168 -0
- avrotize/avrotoparquet.py +208 -0
- avrotize/avrotoproto.py +359 -0
- avrotize/avrotopython/dataclass_core.jinja +241 -0
- avrotize/avrotopython/enum_core.jinja +87 -0
- avrotize/avrotopython/pyproject_toml.jinja +18 -0
- avrotize/avrotopython/test_class.jinja +97 -0
- avrotize/avrotopython/test_enum.jinja +23 -0
- avrotize/avrotopython.py +626 -0
- avrotize/avrotorust/dataclass_enum.rs.jinja +74 -0
- avrotize/avrotorust/dataclass_struct.rs.jinja +204 -0
- avrotize/avrotorust/dataclass_union.rs.jinja +105 -0
- avrotize/avrotorust.py +435 -0
- avrotize/avrotots/class_core.ts.jinja +140 -0
- avrotize/avrotots/class_test.ts.jinja +77 -0
- avrotize/avrotots/enum_core.ts.jinja +46 -0
- avrotize/avrotots/gitignore.jinja +34 -0
- avrotize/avrotots/index.ts.jinja +0 -0
- avrotize/avrotots/package.json.jinja +23 -0
- avrotize/avrotots/tsconfig.json.jinja +21 -0
- avrotize/avrotots.py +687 -0
- avrotize/avrotoxsd.py +344 -0
- avrotize/cddltostructure.py +1841 -0
- avrotize/commands.json +3496 -0
- avrotize/common.py +834 -0
- avrotize/constants.py +87 -0
- avrotize/csvtoavro.py +132 -0
- avrotize/datapackagetoavro.py +76 -0
- avrotize/dependencies/cpp/vcpkg/vcpkg.json +19 -0
- avrotize/dependencies/cs/net90/dependencies.csproj +29 -0
- avrotize/dependencies/go/go121/go.mod +6 -0
- avrotize/dependencies/java/jdk21/pom.xml +91 -0
- avrotize/dependencies/python/py312/requirements.txt +13 -0
- avrotize/dependencies/rust/stable/Cargo.toml +17 -0
- avrotize/dependencies/typescript/node22/package.json +16 -0
- avrotize/dependency_resolver.py +348 -0
- avrotize/dependency_version.py +432 -0
- avrotize/generic/generic.avsc +57 -0
- avrotize/jsonstoavro.py +2167 -0
- avrotize/jsonstostructure.py +2864 -0
- avrotize/jstructtoavro.py +878 -0
- avrotize/kstructtoavro.py +93 -0
- avrotize/kustotoavro.py +455 -0
- avrotize/openapitostructure.py +717 -0
- avrotize/parquettoavro.py +157 -0
- avrotize/proto2parser.py +498 -0
- avrotize/proto3parser.py +403 -0
- avrotize/prototoavro.py +382 -0
- avrotize/prototypes/any.avsc +19 -0
- avrotize/prototypes/api.avsc +106 -0
- avrotize/prototypes/duration.avsc +20 -0
- avrotize/prototypes/field_mask.avsc +18 -0
- avrotize/prototypes/struct.avsc +60 -0
- avrotize/prototypes/timestamp.avsc +20 -0
- avrotize/prototypes/type.avsc +253 -0
- avrotize/prototypes/wrappers.avsc +117 -0
- avrotize/structuretocddl.py +597 -0
- avrotize/structuretocpp/CMakeLists.txt.jinja +76 -0
- avrotize/structuretocpp/build.bat.jinja +3 -0
- avrotize/structuretocpp/build.sh.jinja +3 -0
- avrotize/structuretocpp/dataclass_body.jinja +50 -0
- avrotize/structuretocpp/vcpkg.json.jinja +11 -0
- avrotize/structuretocpp.py +697 -0
- avrotize/structuretocsharp/class_test.cs.jinja +180 -0
- avrotize/structuretocsharp/dataclass_core.jinja +156 -0
- avrotize/structuretocsharp/enum_test.cs.jinja +36 -0
- avrotize/structuretocsharp/json_structure_converters.cs.jinja +399 -0
- avrotize/structuretocsharp/program.cs.jinja +49 -0
- avrotize/structuretocsharp/project.csproj.jinja +17 -0
- avrotize/structuretocsharp/project.sln.jinja +34 -0
- avrotize/structuretocsharp/testproject.csproj.jinja +18 -0
- avrotize/structuretocsharp/tuple_converter.cs.jinja +121 -0
- avrotize/structuretocsharp.py +2295 -0
- avrotize/structuretocsv.py +365 -0
- avrotize/structuretodatapackage.py +659 -0
- avrotize/structuretodb.py +1125 -0
- avrotize/structuretogo/go_enum.jinja +12 -0
- avrotize/structuretogo/go_helpers.jinja +26 -0
- avrotize/structuretogo/go_interface.jinja +18 -0
- avrotize/structuretogo/go_struct.jinja +187 -0
- avrotize/structuretogo/go_test.jinja +70 -0
- avrotize/structuretogo.py +729 -0
- avrotize/structuretographql.py +502 -0
- avrotize/structuretoiceberg.py +355 -0
- avrotize/structuretojava/choice_core.jinja +34 -0
- avrotize/structuretojava/class_core.jinja +23 -0
- avrotize/structuretojava/enum_core.jinja +18 -0
- avrotize/structuretojava/equals_hashcode.jinja +30 -0
- avrotize/structuretojava/pom.xml.jinja +26 -0
- avrotize/structuretojava/tuple_core.jinja +49 -0
- avrotize/structuretojava.py +938 -0
- avrotize/structuretojs/class_core.js.jinja +33 -0
- avrotize/structuretojs/enum_core.js.jinja +10 -0
- avrotize/structuretojs/package.json.jinja +12 -0
- avrotize/structuretojs/test_class.js.jinja +84 -0
- avrotize/structuretojs/test_enum.js.jinja +58 -0
- avrotize/structuretojs/test_runner.js.jinja +45 -0
- avrotize/structuretojs.py +657 -0
- avrotize/structuretojsons.py +498 -0
- avrotize/structuretokusto.py +639 -0
- avrotize/structuretomd/README.md.jinja +204 -0
- avrotize/structuretomd.py +322 -0
- avrotize/structuretoproto.py +764 -0
- avrotize/structuretopython/dataclass_core.jinja +363 -0
- avrotize/structuretopython/enum_core.jinja +45 -0
- avrotize/structuretopython/map_alias.jinja +21 -0
- avrotize/structuretopython/pyproject_toml.jinja +23 -0
- avrotize/structuretopython/test_class.jinja +103 -0
- avrotize/structuretopython/test_enum.jinja +34 -0
- avrotize/structuretopython.py +799 -0
- avrotize/structuretorust/dataclass_enum.rs.jinja +63 -0
- avrotize/structuretorust/dataclass_struct.rs.jinja +121 -0
- avrotize/structuretorust/dataclass_union.rs.jinja +81 -0
- avrotize/structuretorust.py +714 -0
- avrotize/structuretots/class_core.ts.jinja +78 -0
- avrotize/structuretots/enum_core.ts.jinja +6 -0
- avrotize/structuretots/gitignore.jinja +8 -0
- avrotize/structuretots/index.ts.jinja +1 -0
- avrotize/structuretots/package.json.jinja +39 -0
- avrotize/structuretots/test_class.ts.jinja +35 -0
- avrotize/structuretots/tsconfig.json.jinja +21 -0
- avrotize/structuretots.py +740 -0
- avrotize/structuretoxsd.py +679 -0
- avrotize/xsdtoavro.py +413 -0
- avrotize-2.21.1.dist-info/METADATA +1319 -0
- avrotize-2.21.1.dist-info/RECORD +171 -0
- avrotize-2.21.1.dist-info/WHEEL +4 -0
- avrotize-2.21.1.dist-info/entry_points.txt +3 -0
- 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 @@
|
|
|
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
|
+
}
|