nsj-rest-lib2 0.0.16__py3-none-any.whl → 0.0.18__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.
- nsj_rest_lib2/compiler/compiler.py +12 -2
- nsj_rest_lib2/compiler/compiler_structures.py +3 -0
- nsj_rest_lib2/compiler/dto_compiler.py +10 -4
- nsj_rest_lib2/compiler/edl_model/entity_model_base.py +9 -0
- nsj_rest_lib2/compiler/edl_model/trait_property_meta_model.py +3 -0
- nsj_rest_lib2/compiler/property_compiler.py +134 -14
- {nsj_rest_lib2-0.0.16.dist-info → nsj_rest_lib2-0.0.18.dist-info}/METADATA +4 -1
- {nsj_rest_lib2-0.0.16.dist-info → nsj_rest_lib2-0.0.18.dist-info}/RECORD +10 -10
- {nsj_rest_lib2-0.0.16.dist-info → nsj_rest_lib2-0.0.18.dist-info}/WHEEL +0 -0
- {nsj_rest_lib2-0.0.16.dist-info → nsj_rest_lib2-0.0.18.dist-info}/top_level.txt +0 -0
|
@@ -118,7 +118,7 @@ class EDLCompiler:
|
|
|
118
118
|
ast_dto_attributes,
|
|
119
119
|
ast_entity_attributes,
|
|
120
120
|
props_pk,
|
|
121
|
-
|
|
121
|
+
aux_classes,
|
|
122
122
|
related_imports,
|
|
123
123
|
relations_dependencies,
|
|
124
124
|
fixed_filters,
|
|
@@ -171,7 +171,7 @@ class EDLCompiler:
|
|
|
171
171
|
dto_class_name, code_dto = self._dto_compiler.compile(
|
|
172
172
|
entity_model,
|
|
173
173
|
ast_dto_attributes,
|
|
174
|
-
|
|
174
|
+
aux_classes,
|
|
175
175
|
related_imports,
|
|
176
176
|
fixed_filters,
|
|
177
177
|
prefx_class_name,
|
|
@@ -305,6 +305,16 @@ class EDLCompiler:
|
|
|
305
305
|
if entity_model.trait_properties:
|
|
306
306
|
properties_structure.trait_properties.update(entity_model.trait_properties)
|
|
307
307
|
|
|
308
|
+
if entity_model.extends_properties:
|
|
309
|
+
properties_structure.extends_properties.update(
|
|
310
|
+
entity_model.extends_properties
|
|
311
|
+
)
|
|
312
|
+
|
|
313
|
+
if entity_model.composed_properties:
|
|
314
|
+
properties_structure.composed_properties.update(
|
|
315
|
+
entity_model.composed_properties
|
|
316
|
+
)
|
|
317
|
+
|
|
308
318
|
if entity_model.repository.properties:
|
|
309
319
|
properties_structure.entity_properties.update(
|
|
310
320
|
entity_model.repository.properties
|
|
@@ -3,6 +3,7 @@ from nsj_rest_lib2.compiler.edl_model.entity_model_base import EntityModelBase
|
|
|
3
3
|
from nsj_rest_lib2.compiler.edl_model.index_model import IndexModel
|
|
4
4
|
from nsj_rest_lib2.compiler.edl_model.property_meta_model import PropertyMetaModel
|
|
5
5
|
from nsj_rest_lib2.compiler.edl_model.trait_property_meta_model import (
|
|
6
|
+
ExtendsPropertyMetaModel,
|
|
6
7
|
TraitPropertyMetaModel,
|
|
7
8
|
)
|
|
8
9
|
|
|
@@ -23,6 +24,8 @@ class PropertiesCompilerStructure:
|
|
|
23
24
|
self.metric_label: list[str] = []
|
|
24
25
|
self.entity_properties: dict[str, ColumnMetaModel] = {}
|
|
25
26
|
self.trait_properties: dict[str, TraitPropertyMetaModel] = {}
|
|
27
|
+
self.extends_properties: dict[str, ExtendsPropertyMetaModel] = {}
|
|
28
|
+
self.composed_properties: dict[str, list[str]] = {}
|
|
26
29
|
|
|
27
30
|
|
|
28
31
|
class ComponentsCompilerStructure:
|
|
@@ -16,7 +16,7 @@ class DTOCompiler:
|
|
|
16
16
|
self,
|
|
17
17
|
entity_model: EntityModelBase,
|
|
18
18
|
ast_dto_attributes: list[ast.stmt],
|
|
19
|
-
|
|
19
|
+
aux_classes: list[ast.stmt],
|
|
20
20
|
related_imports: list[tuple[str, str, str]],
|
|
21
21
|
fixed_filters: list[tuple[str, BasicTypes]],
|
|
22
22
|
prefx_class_name: str,
|
|
@@ -30,8 +30,8 @@ class DTOCompiler:
|
|
|
30
30
|
:param ast_dto_attributes: Atributos do DTO
|
|
31
31
|
:type ast_dto_attributes: list[ast.stmt]
|
|
32
32
|
|
|
33
|
-
:param
|
|
34
|
-
:type
|
|
33
|
+
:param aux_classes: Classes auxiliares (enums, agregadores, etc.)
|
|
34
|
+
:type aux_classes: list[ast.stmt]
|
|
35
35
|
|
|
36
36
|
:return: Código compilado do DTO
|
|
37
37
|
:rtype: str
|
|
@@ -86,6 +86,12 @@ class DTOCompiler:
|
|
|
86
86
|
names=[ast.alias(name="DTOObjectField", asname=None)],
|
|
87
87
|
level=0,
|
|
88
88
|
),
|
|
89
|
+
# from nsj_rest_lib.descriptor import DTOAggregator
|
|
90
|
+
ast.ImportFrom(
|
|
91
|
+
module="nsj_rest_lib.descriptor",
|
|
92
|
+
names=[ast.alias(name="DTOAggregator", asname=None)],
|
|
93
|
+
level=0,
|
|
94
|
+
),
|
|
89
95
|
]
|
|
90
96
|
|
|
91
97
|
for import_ in related_imports:
|
|
@@ -135,7 +141,7 @@ class DTOCompiler:
|
|
|
135
141
|
|
|
136
142
|
# Definindo o módulo
|
|
137
143
|
module = ast.Module(
|
|
138
|
-
body=imports +
|
|
144
|
+
body=imports + aux_classes + [ast_class],
|
|
139
145
|
type_ignores=[],
|
|
140
146
|
)
|
|
141
147
|
module = ast.fix_missing_locations(module)
|
|
@@ -8,6 +8,7 @@ from typing import Dict, List, Optional
|
|
|
8
8
|
from nsj_rest_lib2.compiler.edl_model.property_meta_model import PropertyMetaModel
|
|
9
9
|
from nsj_rest_lib2.compiler.edl_model.repository_model import RepositoryModel
|
|
10
10
|
from nsj_rest_lib2.compiler.edl_model.trait_property_meta_model import (
|
|
11
|
+
ExtendsPropertyMetaModel,
|
|
11
12
|
TraitPropertyMetaModel,
|
|
12
13
|
)
|
|
13
14
|
|
|
@@ -55,9 +56,17 @@ class EntityModelBase(BaseModel):
|
|
|
55
56
|
None,
|
|
56
57
|
description="Dicionário de propriedades condicionais da trait (isso é, especifica propriedades, e seus valores fixos, que serão usados como um tipo de filtro fixo usado como condição para que a propridade principal assum o papel daquele tipo de trait).",
|
|
57
58
|
)
|
|
59
|
+
extends_properties: Optional[Dict[str, ExtendsPropertyMetaModel]] = Field(
|
|
60
|
+
None,
|
|
61
|
+
description="Dicionário de propriedades condicionais associadas ao uso de extends (especifica propriedades e seus valores fixos, usados como filtros quando a entidade é uma especialização via extends).",
|
|
62
|
+
)
|
|
58
63
|
properties: Dict[str, PropertyMetaModel] = Field(
|
|
59
64
|
..., description="Dicionário de propriedades do modelo."
|
|
60
65
|
)
|
|
66
|
+
composed_properties: Optional[Dict[str, List[str]]] = Field(
|
|
67
|
+
None,
|
|
68
|
+
description="Dicionário que define grupos de propriedades compostas, permitindo agrupar propriedades existentes em DTOs agregados.",
|
|
69
|
+
)
|
|
61
70
|
components: Optional[Dict[str, "EntityModelBase"]] = Field(
|
|
62
71
|
None,
|
|
63
72
|
description="Entidades filhas, relacionadas por composição e definidas inline (evitando a criação de novos arquivos EDL para a definição de entidades componentes da entidade atual).",
|
|
@@ -80,17 +80,60 @@ class EDLPropertyCompiler:
|
|
|
80
80
|
ast_dto_attributes = []
|
|
81
81
|
ast_entity_attributes = []
|
|
82
82
|
props_pk = []
|
|
83
|
-
|
|
83
|
+
aux_classes = []
|
|
84
84
|
related_imports = []
|
|
85
85
|
relations_dependencies = []
|
|
86
86
|
fixed_filters = []
|
|
87
87
|
|
|
88
88
|
if properties_structure.properties is None:
|
|
89
|
-
return (ast_dto_attributes, ast_entity_attributes, props_pk,
|
|
89
|
+
return (ast_dto_attributes, ast_entity_attributes, props_pk, aux_classes)
|
|
90
|
+
|
|
91
|
+
composed_properties = properties_structure.composed_properties or {}
|
|
92
|
+
|
|
93
|
+
aggregator_class_names: dict[str, str] = {}
|
|
94
|
+
aggregator_dto_attributes: dict[str, list[ast.stmt]] = {}
|
|
95
|
+
aggregated_property_to_group: dict[str, str] = {}
|
|
96
|
+
|
|
97
|
+
for composed_key, composed_list in composed_properties.items():
|
|
98
|
+
if not composed_list:
|
|
99
|
+
continue
|
|
100
|
+
|
|
101
|
+
composed_class_name = (
|
|
102
|
+
f"{CompilerStrUtil.to_pascal_case(escopo)}"
|
|
103
|
+
f"{CompilerStrUtil.to_pascal_case(prefx_class_name)}"
|
|
104
|
+
f"{CompilerStrUtil.to_pascal_case(entity_model.id)}"
|
|
105
|
+
f"{CompilerStrUtil.to_pascal_case(composed_key)}AggregatorDTO"
|
|
106
|
+
)
|
|
107
|
+
|
|
108
|
+
aggregator_class_names[composed_key] = composed_class_name
|
|
109
|
+
aggregator_dto_attributes[composed_key] = []
|
|
110
|
+
|
|
111
|
+
for composed_property in composed_list:
|
|
112
|
+
if composed_property in aggregated_property_to_group:
|
|
113
|
+
raise Exception(
|
|
114
|
+
f"Propriedade '{composed_property}' da entidade '{entity_model.id}' está associada a mais de um composed_property."
|
|
115
|
+
)
|
|
116
|
+
|
|
117
|
+
if composed_property not in properties_structure.properties:
|
|
118
|
+
raise Exception(
|
|
119
|
+
f"Propriedade '{composed_property}' referenciada no composed_property '{composed_key}' não encontrada na entidade '{entity_model.id}'."
|
|
120
|
+
)
|
|
121
|
+
|
|
122
|
+
aggregated_property_to_group[composed_property] = composed_key
|
|
90
123
|
|
|
91
124
|
for pkey in properties_structure.properties:
|
|
92
125
|
prop = properties_structure.properties[pkey]
|
|
93
126
|
|
|
127
|
+
composed_key = aggregated_property_to_group.get(pkey)
|
|
128
|
+
if composed_key:
|
|
129
|
+
if prop.pk:
|
|
130
|
+
raise Exception(
|
|
131
|
+
f"Propriedade '{pkey}' não pode ser utilizada em composed_properties por ser chave primária."
|
|
132
|
+
)
|
|
133
|
+
target_dto_attributes = aggregator_dto_attributes[composed_key]
|
|
134
|
+
else:
|
|
135
|
+
target_dto_attributes = ast_dto_attributes
|
|
136
|
+
|
|
94
137
|
# DTO
|
|
95
138
|
if isinstance(prop.type, PrimitiveTypes):
|
|
96
139
|
# Tratando propriedade simples (não array, não object)
|
|
@@ -99,10 +142,10 @@ class EDLPropertyCompiler:
|
|
|
99
142
|
map_unique_by_property,
|
|
100
143
|
escopo,
|
|
101
144
|
entity_model,
|
|
102
|
-
|
|
145
|
+
target_dto_attributes,
|
|
103
146
|
ast_entity_attributes,
|
|
104
147
|
props_pk,
|
|
105
|
-
|
|
148
|
+
aux_classes,
|
|
106
149
|
pkey,
|
|
107
150
|
prop,
|
|
108
151
|
prefx_class_name,
|
|
@@ -124,7 +167,7 @@ class EDLPropertyCompiler:
|
|
|
124
167
|
entity_model,
|
|
125
168
|
entity_models,
|
|
126
169
|
properties_structure,
|
|
127
|
-
|
|
170
|
+
target_dto_attributes,
|
|
128
171
|
ast_entity_attributes,
|
|
129
172
|
related_imports,
|
|
130
173
|
relations_dependencies,
|
|
@@ -139,7 +182,7 @@ class EDLPropertyCompiler:
|
|
|
139
182
|
related_entity_id,
|
|
140
183
|
entity_model,
|
|
141
184
|
properties_structure,
|
|
142
|
-
|
|
185
|
+
target_dto_attributes,
|
|
143
186
|
ast_entity_attributes,
|
|
144
187
|
pkey,
|
|
145
188
|
prop,
|
|
@@ -153,7 +196,24 @@ class EDLPropertyCompiler:
|
|
|
153
196
|
for pkey in properties_structure.trait_properties:
|
|
154
197
|
prop = properties_structure.trait_properties[pkey]
|
|
155
198
|
|
|
156
|
-
self.
|
|
199
|
+
self._compile_trait_extends_property(
|
|
200
|
+
properties_structure,
|
|
201
|
+
map_unique_by_property,
|
|
202
|
+
pkey,
|
|
203
|
+
prop,
|
|
204
|
+
ast_dto_attributes,
|
|
205
|
+
ast_entity_attributes,
|
|
206
|
+
fixed_filters,
|
|
207
|
+
escopo,
|
|
208
|
+
entity_model,
|
|
209
|
+
aux_classes,
|
|
210
|
+
prefx_class_name,
|
|
211
|
+
)
|
|
212
|
+
|
|
213
|
+
for pkey in properties_structure.extends_properties:
|
|
214
|
+
prop = properties_structure.extends_properties[pkey]
|
|
215
|
+
|
|
216
|
+
self._compile_trait_extends_property(
|
|
157
217
|
properties_structure,
|
|
158
218
|
map_unique_by_property,
|
|
159
219
|
pkey,
|
|
@@ -163,21 +223,38 @@ class EDLPropertyCompiler:
|
|
|
163
223
|
fixed_filters,
|
|
164
224
|
escopo,
|
|
165
225
|
entity_model,
|
|
166
|
-
|
|
226
|
+
aux_classes,
|
|
167
227
|
prefx_class_name,
|
|
168
228
|
)
|
|
169
229
|
|
|
230
|
+
for composed_key, class_name in aggregator_class_names.items():
|
|
231
|
+
dto_attributes = aggregator_dto_attributes.get(composed_key, [])
|
|
232
|
+
|
|
233
|
+
aux_classes.append(
|
|
234
|
+
self._build_aggregator_class_ast(
|
|
235
|
+
class_name=class_name,
|
|
236
|
+
dto_attributes=dto_attributes,
|
|
237
|
+
)
|
|
238
|
+
)
|
|
239
|
+
|
|
240
|
+
ast_dto_attributes.append(
|
|
241
|
+
self._build_dto_aggregator_ast(
|
|
242
|
+
name=composed_key,
|
|
243
|
+
class_name=class_name,
|
|
244
|
+
)
|
|
245
|
+
)
|
|
246
|
+
|
|
170
247
|
return (
|
|
171
248
|
ast_dto_attributes,
|
|
172
249
|
ast_entity_attributes,
|
|
173
250
|
props_pk,
|
|
174
|
-
|
|
251
|
+
aux_classes,
|
|
175
252
|
related_imports,
|
|
176
253
|
relations_dependencies,
|
|
177
254
|
fixed_filters,
|
|
178
255
|
)
|
|
179
256
|
|
|
180
|
-
def
|
|
257
|
+
def _compile_trait_extends_property(
|
|
181
258
|
self,
|
|
182
259
|
properties_structure: PropertiesCompilerStructure,
|
|
183
260
|
map_unique_by_property: dict[str, IndexCompilerStructure],
|
|
@@ -188,7 +265,7 @@ class EDLPropertyCompiler:
|
|
|
188
265
|
fixed_filters: list[tuple[str, BasicTypes]],
|
|
189
266
|
escopo: str,
|
|
190
267
|
entity_model: EntityModelBase,
|
|
191
|
-
|
|
268
|
+
aux_classes: list[ast.stmt],
|
|
192
269
|
prefx_class_name: str,
|
|
193
270
|
):
|
|
194
271
|
enum_class_name = None
|
|
@@ -302,7 +379,7 @@ class EDLPropertyCompiler:
|
|
|
302
379
|
raise Exception(f"Erro desconhecido ao compilar a propriedade {pkey}")
|
|
303
380
|
|
|
304
381
|
enum_class_name, ast_enum_class = result
|
|
305
|
-
|
|
382
|
+
aux_classes.append(ast_enum_class)
|
|
306
383
|
|
|
307
384
|
# Resolvendo o nome da propriedade no Entity
|
|
308
385
|
if (
|
|
@@ -370,6 +447,49 @@ class EDLPropertyCompiler:
|
|
|
370
447
|
# TODO Pensar em validações para esse value (se está de acordo com o tipo ou enum)
|
|
371
448
|
fixed_filters.append((pkey, prop.value))
|
|
372
449
|
|
|
450
|
+
def _build_aggregator_class_ast(
|
|
451
|
+
self,
|
|
452
|
+
class_name: str,
|
|
453
|
+
dto_attributes: list[ast.stmt],
|
|
454
|
+
):
|
|
455
|
+
body = dto_attributes if dto_attributes else [ast.Pass()]
|
|
456
|
+
|
|
457
|
+
return ast.ClassDef(
|
|
458
|
+
name=class_name,
|
|
459
|
+
bases=[ast.Name(id="DTOBase", ctx=ast.Load())],
|
|
460
|
+
keywords=[],
|
|
461
|
+
decorator_list=[
|
|
462
|
+
ast.Call(
|
|
463
|
+
func=ast.Name(id="DTO", ctx=ast.Load()),
|
|
464
|
+
args=[],
|
|
465
|
+
keywords=[],
|
|
466
|
+
)
|
|
467
|
+
],
|
|
468
|
+
body=body,
|
|
469
|
+
)
|
|
470
|
+
|
|
471
|
+
def _build_dto_aggregator_ast(
|
|
472
|
+
self,
|
|
473
|
+
name: str,
|
|
474
|
+
class_name: str,
|
|
475
|
+
):
|
|
476
|
+
return ast.AnnAssign(
|
|
477
|
+
target=ast.Name(
|
|
478
|
+
id=CompilerStrUtil.to_snake_case(name),
|
|
479
|
+
ctx=ast.Store(),
|
|
480
|
+
),
|
|
481
|
+
annotation=ast.Name(
|
|
482
|
+
id=class_name,
|
|
483
|
+
ctx=ast.Load(),
|
|
484
|
+
),
|
|
485
|
+
value=ast.Call(
|
|
486
|
+
func=ast.Name(id="DTOAggregator", ctx=ast.Load()),
|
|
487
|
+
args=[ast.Name(id=class_name, ctx=ast.Load())],
|
|
488
|
+
keywords=[],
|
|
489
|
+
),
|
|
490
|
+
simple=1,
|
|
491
|
+
)
|
|
492
|
+
|
|
373
493
|
def _compile_external_relation(
|
|
374
494
|
self,
|
|
375
495
|
related_entity_id: str,
|
|
@@ -757,7 +877,7 @@ class EDLPropertyCompiler:
|
|
|
757
877
|
ast_dto_attributes,
|
|
758
878
|
ast_entity_attributes,
|
|
759
879
|
props_pk,
|
|
760
|
-
|
|
880
|
+
aux_classes,
|
|
761
881
|
pkey,
|
|
762
882
|
prop,
|
|
763
883
|
prefx_class_name: str,
|
|
@@ -936,7 +1056,7 @@ class EDLPropertyCompiler:
|
|
|
936
1056
|
raise Exception(f"Erro desconhecido ao compilar a propriedade {pkey}")
|
|
937
1057
|
|
|
938
1058
|
enum_class_name, ast_enum_class = result
|
|
939
|
-
|
|
1059
|
+
aux_classes.append(ast_enum_class)
|
|
940
1060
|
|
|
941
1061
|
# Resolvendo o nome da propriedade no Entity
|
|
942
1062
|
if (
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nsj_rest_lib2
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.18
|
|
4
4
|
Summary: Biblioteca para permitir a distribuição de rotas dinâmicas numa API, configuradas por meio de EDLs declarativos (em formato JSON).
|
|
5
5
|
Home-page: https://github.com/Nasajon/nsj_rest_lib2
|
|
6
6
|
Author: Nasajon Sistemas
|
|
@@ -31,3 +31,6 @@ Biblioteca para permitir a distribuição de rotas dinâmicas numa API, configur
|
|
|
31
31
|
* Rever modo de usar o InjectFactory (talvez dando ciência, ao RestLib, do padrão multibanco)
|
|
32
32
|
* Implementar e documentar campos join
|
|
33
33
|
* Implementar e documentar conjuntos
|
|
34
|
+
* Dar erro ao haver conflito de nomes das propriedades (por qualquer tipo de herança)
|
|
35
|
+
* Rotas para o inline
|
|
36
|
+
* inline será para composição (arquivo externo é agregação)
|
|
@@ -4,24 +4,24 @@ nsj_rest_lib2/redis_config.py,sha256=4KLcvYS3nJO7PMQgF6F9_j6r-TyqcS7TBbd3LEQuKDU
|
|
|
4
4
|
nsj_rest_lib2/settings.py,sha256=Hn_o1HZmievnYb8D1kNT2Nq-OEjxbyNjOiOpbnFsMwE,367
|
|
5
5
|
nsj_rest_lib2/compiler/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
6
|
nsj_rest_lib2/compiler/ai_compiler.py,sha256=shAtN4T0ai_52qh15L3mK1QbeC6glHOR6C3J3gj14II,9029
|
|
7
|
-
nsj_rest_lib2/compiler/compiler.py,sha256=
|
|
8
|
-
nsj_rest_lib2/compiler/compiler_structures.py,sha256=
|
|
9
|
-
nsj_rest_lib2/compiler/dto_compiler.py,sha256=
|
|
7
|
+
nsj_rest_lib2/compiler/compiler.py,sha256=xz1xYP7mY1hqzuuwDo-ATlU1X-8ldhGmFwEIUtQbOeo,18638
|
|
8
|
+
nsj_rest_lib2/compiler/compiler_structures.py,sha256=cgA4ldqOoBYH8qxS99G2hd5Tgo7M1yzN0O_VIVpw3TI,1378
|
|
9
|
+
nsj_rest_lib2/compiler/dto_compiler.py,sha256=qK0LHmXAlY_snm6QncIO0S4GiRtHYgtd74xSodK8MQA,5670
|
|
10
10
|
nsj_rest_lib2/compiler/entity_compiler.py,sha256=A0fiLFF7dGXM2uH5cknmAX-cQ-9nu4Ubujp-m5NmgYE,4780
|
|
11
11
|
nsj_rest_lib2/compiler/model.py,sha256=QDBoM26qoZdiNcykl1nvXCrFDhg-6Q__QzVq6uY1QzE,1460
|
|
12
|
-
nsj_rest_lib2/compiler/property_compiler.py,sha256=
|
|
12
|
+
nsj_rest_lib2/compiler/property_compiler.py,sha256=G4xY8cX9TU2c5oNLRRKlU4sQ4b4bzR2KAjBleQmrX6Y,40471
|
|
13
13
|
nsj_rest_lib2/compiler/edl_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
14
14
|
nsj_rest_lib2/compiler/edl_model/ai_entity_edl.py,sha256=664QBDcOgVnyfwtUOXO1W7AKaZhueBG335x5DuogruY,7644
|
|
15
15
|
nsj_rest_lib2/compiler/edl_model/api_model.py,sha256=pH0Uiq_64AGvkHqwY44TrulWWZXbi6M0EKJWUhSqKj0,837
|
|
16
16
|
nsj_rest_lib2/compiler/edl_model/column_meta_model.py,sha256=s0sEVkoW1hV2_hto1mws4XhzKGH_b4NzhaOiwFH25Ks,694
|
|
17
17
|
nsj_rest_lib2/compiler/edl_model/entity_model.py,sha256=Yc6wvjsiwacmz796mZIU-i9hxzNV9yuLPdULGKYHNbM,854
|
|
18
|
-
nsj_rest_lib2/compiler/edl_model/entity_model_base.py,sha256=
|
|
18
|
+
nsj_rest_lib2/compiler/edl_model/entity_model_base.py,sha256=7AVyxmYtwZYVm6hNXQm-EBO3LMYkMHPf1ZFQrt0wZ3Q,4160
|
|
19
19
|
nsj_rest_lib2/compiler/edl_model/entity_model_root.py,sha256=VinsxFlNyCaKKk37ZzcbmWaWgoUP2-dZBG61Ke7NvVs,231
|
|
20
20
|
nsj_rest_lib2/compiler/edl_model/index_model.py,sha256=cXWlu0hxtro5vvYoirkDW4R3PCnBW5oCCWjRJ6AX5zE,508
|
|
21
21
|
nsj_rest_lib2/compiler/edl_model/primitives.py,sha256=GTo8e1mf9munvl_J1-fmaXgSJ8yQvGX56f2rwS85M1Y,1459
|
|
22
22
|
nsj_rest_lib2/compiler/edl_model/property_meta_model.py,sha256=ie3roNZAqYTwz7q0TTdceMjY5khnBiED2yp0XBqqk7E,3909
|
|
23
23
|
nsj_rest_lib2/compiler/edl_model/repository_model.py,sha256=Vt1HxlaoifP4w5ij1laKDkD1-COBihE8EX1HkdEDUSo,977
|
|
24
|
-
nsj_rest_lib2/compiler/edl_model/trait_property_meta_model.py,sha256=
|
|
24
|
+
nsj_rest_lib2/compiler/edl_model/trait_property_meta_model.py,sha256=NtMVZeOPu3LJwXI-8tCOLVuQiGua_0t7kL1h9gL7HuM,657
|
|
25
25
|
nsj_rest_lib2/compiler/util/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
26
|
nsj_rest_lib2/compiler/util/str_util.py,sha256=lVP1yHhj1pOd6ULtTnkcfX6Gqrpe4yCBratHUhBNGcI,843
|
|
27
27
|
nsj_rest_lib2/compiler/util/type_naming_util.py,sha256=wTfxPCezCTt-ltSg_hkaYNH7Z05k-mlJKZd-9AMA9ac,768
|
|
@@ -30,7 +30,7 @@ nsj_rest_lib2/controller/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZ
|
|
|
30
30
|
nsj_rest_lib2/controller/dynamic_controller.py,sha256=XMqxe1NW-NE5XwomXb4pSNdALQHpP74Hc26R4fnmXqg,15194
|
|
31
31
|
nsj_rest_lib2/service/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
32
32
|
nsj_rest_lib2/service/entity_loader.py,sha256=uB0xXih9Px2jSTMdZNIu6_3dngE37K7adKX03cYSRug,15660
|
|
33
|
-
nsj_rest_lib2-0.0.
|
|
34
|
-
nsj_rest_lib2-0.0.
|
|
35
|
-
nsj_rest_lib2-0.0.
|
|
36
|
-
nsj_rest_lib2-0.0.
|
|
33
|
+
nsj_rest_lib2-0.0.18.dist-info/METADATA,sha256=5HB_H5qhmsBFRU6DI9uMmXYyzLobZe-2aLUMFIMM_qc,1585
|
|
34
|
+
nsj_rest_lib2-0.0.18.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
35
|
+
nsj_rest_lib2-0.0.18.dist-info/top_level.txt,sha256=L6zh0EfH8_rur7OJ8_V-El-XEMf4qg3bkF8ADgqLVIA,14
|
|
36
|
+
nsj_rest_lib2-0.0.18.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|