nsj-rest-lib2 0.0.16__py3-none-any.whl → 0.0.17__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 +5 -0
- nsj_rest_lib2/compiler/compiler_structures.py +2 -0
- nsj_rest_lib2/compiler/edl_model/entity_model_base.py +5 -0
- nsj_rest_lib2/compiler/edl_model/trait_property_meta_model.py +3 -0
- nsj_rest_lib2/compiler/property_compiler.py +19 -2
- {nsj_rest_lib2-0.0.16.dist-info → nsj_rest_lib2-0.0.17.dist-info}/METADATA +4 -1
- {nsj_rest_lib2-0.0.16.dist-info → nsj_rest_lib2-0.0.17.dist-info}/RECORD +9 -9
- {nsj_rest_lib2-0.0.16.dist-info → nsj_rest_lib2-0.0.17.dist-info}/WHEEL +0 -0
- {nsj_rest_lib2-0.0.16.dist-info → nsj_rest_lib2-0.0.17.dist-info}/top_level.txt +0 -0
|
@@ -305,6 +305,11 @@ 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
|
+
|
|
308
313
|
if entity_model.repository.properties:
|
|
309
314
|
properties_structure.entity_properties.update(
|
|
310
315
|
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,7 @@ 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] = {}
|
|
26
28
|
|
|
27
29
|
|
|
28
30
|
class ComponentsCompilerStructure:
|
|
@@ -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,6 +56,10 @@ 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
|
)
|
|
@@ -153,7 +153,24 @@ class EDLPropertyCompiler:
|
|
|
153
153
|
for pkey in properties_structure.trait_properties:
|
|
154
154
|
prop = properties_structure.trait_properties[pkey]
|
|
155
155
|
|
|
156
|
-
self.
|
|
156
|
+
self._compile_trait_extends_property(
|
|
157
|
+
properties_structure,
|
|
158
|
+
map_unique_by_property,
|
|
159
|
+
pkey,
|
|
160
|
+
prop,
|
|
161
|
+
ast_dto_attributes,
|
|
162
|
+
ast_entity_attributes,
|
|
163
|
+
fixed_filters,
|
|
164
|
+
escopo,
|
|
165
|
+
entity_model,
|
|
166
|
+
enum_classes,
|
|
167
|
+
prefx_class_name,
|
|
168
|
+
)
|
|
169
|
+
|
|
170
|
+
for pkey in properties_structure.extends_properties:
|
|
171
|
+
prop = properties_structure.extends_properties[pkey]
|
|
172
|
+
|
|
173
|
+
self._compile_trait_extends_property(
|
|
157
174
|
properties_structure,
|
|
158
175
|
map_unique_by_property,
|
|
159
176
|
pkey,
|
|
@@ -177,7 +194,7 @@ class EDLPropertyCompiler:
|
|
|
177
194
|
fixed_filters,
|
|
178
195
|
)
|
|
179
196
|
|
|
180
|
-
def
|
|
197
|
+
def _compile_trait_extends_property(
|
|
181
198
|
self,
|
|
182
199
|
properties_structure: PropertiesCompilerStructure,
|
|
183
200
|
map_unique_by_property: dict[str, IndexCompilerStructure],
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: nsj_rest_lib2
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.17
|
|
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=
|
|
7
|
+
nsj_rest_lib2/compiler/compiler.py,sha256=J5ggkuYi-wQDra8t2R9riP3rqaKl2AQgnRqXZMX1QXE,18470
|
|
8
|
+
nsj_rest_lib2/compiler/compiler_structures.py,sha256=2rLC21vMsLWURlRlQP4XGW51TRajmYY_guE6OBcoGBA,1318
|
|
9
9
|
nsj_rest_lib2/compiler/dto_compiler.py,sha256=KDdfzoghbsO0RpWAhuhZ4gsb11aoxgci-93dwxWNMuY,5400
|
|
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=OOXEXGxXsEkvGcE_QKcasCoAkQ7qRUkWvPhd0c7yFuA,36717
|
|
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=ICZ0m3t-_Wv8Di5Grb5UJIN7-3belcBf4IUYsceWX1I,3933
|
|
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.17.dist-info/METADATA,sha256=cesW5YRcvKWDcfyVo9yIzPnYL7sAG_0-BF57Ww_LMEs,1585
|
|
34
|
+
nsj_rest_lib2-0.0.17.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
35
|
+
nsj_rest_lib2-0.0.17.dist-info/top_level.txt,sha256=L6zh0EfH8_rur7OJ8_V-El-XEMf4qg3bkF8ADgqLVIA,14
|
|
36
|
+
nsj_rest_lib2-0.0.17.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|