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.
@@ -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
  )
@@ -14,3 +14,6 @@ class TraitPropertyMetaModel(BaseModel):
14
14
  None,
15
15
  description="Lista de valores permitidos.",
16
16
  )
17
+
18
+
19
+ ExtendsPropertyMetaModel = TraitPropertyMetaModel
@@ -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._compile_trait_property(
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 _compile_trait_property(
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.16
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=mZVZlFF5Na1w4p-MMytIvk2jt1gOFrEEJu4V6TL3PP4,18303
8
- nsj_rest_lib2/compiler/compiler_structures.py,sha256=ZUeWnO-23f3JHq4bOfTcqszMDDXwuFEtMRhqMN7GeWQ,1214
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=0EbjI2quxE8fD7vn8UjF8FkeCuTAeCKA8Mz__WgLGOA,36163
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=A1HLuG1Z5SOUMpINZDkJA7kuPmevJcj28QQl4KgwX8c,3588
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=SBSfiu4v0PMsWRsGDySR3P2tkabLbDZxx_FFy_3rGXA,605
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.16.dist-info/METADATA,sha256=ImDS5PybQMuExp4Wn1DCNS9cbFPUUN1qDdYBC9Gd0yE,1410
34
- nsj_rest_lib2-0.0.16.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
35
- nsj_rest_lib2-0.0.16.dist-info/top_level.txt,sha256=L6zh0EfH8_rur7OJ8_V-El-XEMf4qg3bkF8ADgqLVIA,14
36
- nsj_rest_lib2-0.0.16.dist-info/RECORD,,
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,,