ormlambda 3.11.2__py3-none-any.whl → 3.12.2__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 (28) hide show
  1. ormlambda/__init__.py +1 -1
  2. ormlambda/common/abstract_classes/clause_info_converter.py +73 -0
  3. ormlambda/common/abstract_classes/decomposition_query.py +12 -68
  4. ormlambda/common/abstract_classes/non_query_base.py +2 -2
  5. ormlambda/common/interfaces/ICustomAlias.py +1 -1
  6. ormlambda/components/delete/abstract_delete.py +2 -2
  7. ormlambda/components/join/__init__.py +1 -0
  8. ormlambda/databases/my_sql/clauses/drop_table.py +8 -5
  9. ormlambda/databases/my_sql/clauses/group_by.py +1 -2
  10. ormlambda/databases/my_sql/clauses/select.py +2 -0
  11. ormlambda/databases/my_sql/clauses/upsert.py +8 -4
  12. ormlambda/databases/my_sql/query_builder.py +158 -0
  13. ormlambda/databases/my_sql/statements.py +18 -156
  14. ormlambda/engine/url.py +4 -1
  15. ormlambda/sql/clause_info/__init__.py +2 -1
  16. ormlambda/sql/clause_info/aggregate_function_base.py +86 -0
  17. ormlambda/sql/clause_info/clause_info.py +1 -98
  18. ormlambda/sql/clause_info/interface/IClauseInfo.py +37 -0
  19. ormlambda/sql/clause_info/interface/__init__.py +1 -0
  20. ormlambda/sql/column.py +3 -0
  21. ormlambda/statements/base_statement.py +6 -2
  22. ormlambda/statements/interfaces/IStatements.py +21 -18
  23. ormlambda/utils/module_tree/dynamic_module.py +3 -2
  24. {ormlambda-3.11.2.dist-info → ormlambda-3.12.2.dist-info}/METADATA +56 -10
  25. {ormlambda-3.11.2.dist-info → ormlambda-3.12.2.dist-info}/RECORD +28 -23
  26. /ormlambda/{databases/my_sql → components/join}/join_context.py +0 -0
  27. {ormlambda-3.11.2.dist-info → ormlambda-3.12.2.dist-info}/LICENSE +0 -0
  28. {ormlambda-3.11.2.dist-info → ormlambda-3.12.2.dist-info}/WHEEL +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: ormlambda
3
- Version: 3.11.2
3
+ Version: 3.12.2
4
4
  Summary: ORM designed to interact with the database (currently with MySQL) using lambda functions and nested functions
5
5
  Author: p-hzamora
6
6
  Author-email: p.hzamora@icloud.com
@@ -316,7 +316,7 @@ res = AddressModel.count(Address.address_id, execute=True)
316
316
 
317
317
  The `concat` method allows you to concatenate multiple columns or values into a single string. This is particularly useful for creating derived fields in your queries.
318
318
 
319
- #### Usage
319
+ ### Usage
320
320
 
321
321
  ```python
322
322
  response = ORM(Address, db).where(Address.City.Country.country.regex(r"^Spain")).first(
@@ -347,6 +347,60 @@ As you can see in the response, the result is a dictionary where the keys are a
347
347
 
348
348
  Another elegant approach to adjust the response and obtain an object is by using the `flavour` attribute. You can pass a callable object, which will be used to instantiate it with the returned data.
349
349
 
350
+
351
+ ## 2. Group by
352
+
353
+ The `groupby` method is used to filter results based on aggregate functions.
354
+
355
+ ### Usage
356
+ ```python
357
+ from ormlambda import Column, ORM, create_engine
358
+ from test.config import DATABASE_URL
359
+
360
+
361
+ class Response(BaseModel):
362
+ district: str
363
+ count: int
364
+
365
+ engine= create_engine(DATABASE_URL)
366
+ model = ORM(Address,engine)
367
+
368
+ count_name = Column(column_name="count")
369
+
370
+ res = (
371
+ self.model
372
+ .groupby(Address.district)
373
+ .select(
374
+ (
375
+ Address.district,
376
+ self.model.count(Address.address),
377
+ ),
378
+ flavour=Response,
379
+ )
380
+ )
381
+ ```
382
+
383
+ ## 3. Having
384
+
385
+ The `having` method is used to filter results based on aggregate functions. It is typically used in conjunction with `group by` clauses.
386
+
387
+ ### Usage
388
+ ```python
389
+ res = (
390
+ model
391
+ .groupby(Address.district)
392
+ .having(count_name > 4)
393
+ .select(
394
+ (
395
+ Address.district,
396
+ model.count(Address.address),
397
+ ),
398
+ flavour=Response,
399
+ )
400
+ )
401
+ ```
402
+
403
+
350
404
  ## Using BaseModel for Custom Responses (Pydantic)
351
405
 
352
406
  You can utilize `BaseModel` from Pydantic to create structured response models. This allows you to define the expected structure of your data, ensuring type safety and validation.
@@ -391,14 +445,6 @@ print(select.city)
391
445
  print(select.country)
392
446
  ```
393
447
 
394
-
395
- <!-- ### 2. Having
396
-
397
- The `having` method is used to filter results based on aggregate functions. It is typically used in conjunction with `group by` clauses.
398
-
399
- #### Usage -->
400
-
401
-
402
448
  ## Combine aggregation method
403
449
  As shown in the previous examples, setting the `execute` attribute to `True` allows us to perform the corresponding query in a single line. However, if you're looking to improve efficiency, you can combine all of them into one query.
404
450
  ```python
@@ -1,4 +1,4 @@
1
- ormlambda/__init__.py,sha256=r_1UmdtPv8O7_kB9ZxpaR9JO2oWoSPcpQWoa_dlY3cU,682
1
+ ormlambda/__init__.py,sha256=tAhxXMEeBVObdo417TvykP3s-LPG2yrFgaswNbylbsQ,683
2
2
  ormlambda/caster/__init__.py,sha256=JWJ6qdPTk_uyJHGfFpvFCZeOXdP6DzL4-MtMFZVDPRY,150
3
3
  ormlambda/caster/base_caster.py,sha256=c3vCGoKDyJ39kfUiS7sNKhKdjBRYSK1Ie88lwDIXqgE,1774
4
4
  ormlambda/caster/caster.py,sha256=EiJFeb1t7wRLTloumuZYJgUt_ZNS8FEBAbLguBFLk30,1878
@@ -6,15 +6,16 @@ ormlambda/caster/interfaces/ICaster.py,sha256=MCBBVBho9KH67vCcUk8nclY0a7QoqxgdyV
6
6
  ormlambda/caster/interfaces/__init__.py,sha256=TRoIxxgxuhUhCJq2ldLS3UEa1THrMXEIyTH5K46vyGw,43
7
7
  ormlambda/common/__init__.py,sha256=g4yGxH4WEgvQ7Rix4lpp3FQ-3SeRhptNd5sabgZLQNk,59
8
8
  ormlambda/common/abstract_classes/__init__.py,sha256=l39_WaBH38wrDV2KXb83c73ct7oxSIIVj2Ep4UcvxrU,186
9
- ormlambda/common/abstract_classes/decomposition_query.py,sha256=CH4rRIH_wQCkpDA2qWOdzf-c5BCX6F_2bkpMPjNB044,7592
10
- ormlambda/common/abstract_classes/non_query_base.py,sha256=1BQa9n14k7A2txmnj76nBZckJXARFcJIRooT7VR6y3Q,991
9
+ ormlambda/common/abstract_classes/clause_info_converter.py,sha256=_gAloKLmkkx-horxoU752CJIldAIRkLtkJH2q5WSQA4,3162
10
+ ormlambda/common/abstract_classes/decomposition_query.py,sha256=T5ilaUO9n9JlgeYhCVcp0aUKFzaPXinlYXg9ziwyGFw,5153
11
+ ormlambda/common/abstract_classes/non_query_base.py,sha256=vdZK5jkS3IYD-0F2NGycyEqc2FDzZ3wMN9xzKTH8NBE,989
11
12
  ormlambda/common/abstract_classes/query_base.py,sha256=6qUFPwsVx45kUW3b66pHiSyjhcH4mzbdkddlGeUnG7c,266
12
13
  ormlambda/common/enums/__init__.py,sha256=4lVKCHi1JalwgNzjsAXqX-C54NJEH83y2v5baMO8fN4,103
13
14
  ormlambda/common/enums/condition_types.py,sha256=QZnhhlTwzLcZ9kkmG6a08fQjUUJsJ5XGAH7QCiJRL1A,330
14
15
  ormlambda/common/enums/join_type.py,sha256=EosZVnvAc72LlZHuICIgoKWwUJzhvWOIIAohcbDYPQo,354
15
16
  ormlambda/common/errors/__init__.py,sha256=nc6SJs6v7MbXwcEgcSW7SSG_iBECfz_10YzWwqU1D-E,888
16
17
  ormlambda/common/global_checker.py,sha256=9FtdGl0SCSLEBBFBtburmP_Sh5h2tx88ZG08vjUordc,894
17
- ormlambda/common/interfaces/ICustomAlias.py,sha256=gEzjLFXT_JhkzGuBfWz36cqPrZ_B9999C3S61IicLoQ,159
18
+ ormlambda/common/interfaces/ICustomAlias.py,sha256=GS-Riw_8yCr7N9DXSf5nZxkrwMH6eomNd-BdEhCA7fY,161
18
19
  ormlambda/common/interfaces/IDecompositionQuery.py,sha256=2fwcXONBnYpxL1YHPHaLxqQJ4NANGuTky69QNa74xd4,853
19
20
  ormlambda/common/interfaces/IJoinSelector.py,sha256=-w-MJmwq65tpDLtigWSLgvAqeOl75DA-EyWIugNkfCs,490
20
21
  ormlambda/common/interfaces/INonQueryCommand.py,sha256=7CjLW4sKqkR5zUIGvhRXOtzTs6vypJW1a9EJHlgCw2c,260
@@ -23,10 +24,12 @@ ormlambda/common/interfaces/__init__.py,sha256=np5wuAnBVAHDyD01-X3M9qPmzbjOzP6KN
23
24
  ormlambda/components/__init__.py,sha256=DfPVPLGLbQpbfBmXGKYcJRTELxzzdeNbZbuiMgZrPiA,168
24
25
  ormlambda/components/delete/IDelete.py,sha256=06ZEdbKBxsHSwsGMBu0E1om4WJjojZAm-L3b95eQrcc,139
25
26
  ormlambda/components/delete/__init__.py,sha256=X_at2L4QkxDVK1olXhFHqNemkB8Dxbb7BYqv0EJyu7M,102
26
- ormlambda/components/delete/abstract_delete.py,sha256=ca-AO3nM9MMhy0hofNLjnCod92meiWzRT2vitj8N-l4,535
27
+ ormlambda/components/delete/abstract_delete.py,sha256=4ZgttbvIGpL9_QTJBHNf7jx_1-UoqT9ggNuhE2Au-eM,533
27
28
  ormlambda/components/insert/IInsert.py,sha256=YIfMPlKu7UGgnVpZuhpr0Mtnefe-O85hqk8-GZrVK7w,139
28
29
  ormlambda/components/insert/__init__.py,sha256=TGShCJZwejK3zZCRistBAKoDy2NNDRR_w1LXIbN66Dk,102
29
30
  ormlambda/components/insert/abstract_insert.py,sha256=OmsfVMx8ifD2_ajRSXX8-EeKRTS7FTwbgSjdwASz_eg,695
31
+ ormlambda/components/join/__init__.py,sha256=7hwAB-nKaMirTT6uNZ1JtYNkkIx5zMSa6jaqr28d8Cg,67
32
+ ormlambda/components/join/join_context.py,sha256=SLxVSwCURLOBSMB-aN7PV69sBQXOOP1sCezAKn3Wnqo,3256
30
33
  ormlambda/components/select/ISelect.py,sha256=saA0Iat4lXfd1vc7a7t6Stc_3BJHAysGWH1AcmrhQhw,372
31
34
  ormlambda/components/select/__init__.py,sha256=aIO4Bkk1od7cC9qbwyZ__K1X8hw92OozmfSaKdu3inY,43
32
35
  ormlambda/components/update/IUpdate.py,sha256=U-3Wx8lyCglhxf9gCXWO3MVgydG6gfRpzp00_MHC5cU,168
@@ -56,32 +59,32 @@ ormlambda/databases/my_sql/clauses/count.py,sha256=rh7KNzpxkKEZpqmFV0oc8xHVgOHVG
56
59
  ormlambda/databases/my_sql/clauses/create_database.py,sha256=zpd8uosxKJsf9BULvAHSd1-fU5de8OI7WRqVa8oyiA4,1209
57
60
  ormlambda/databases/my_sql/clauses/delete.py,sha256=jJd6kIDepBJmf5f6CRxHjt-jGePG6iZXbgCDU_rQ-xk,1856
58
61
  ormlambda/databases/my_sql/clauses/drop_database.py,sha256=2GYhtWzHSWM7Yy3v_l2hiY4fFumG8DSCGGLgP0t3Rhk,437
59
- ormlambda/databases/my_sql/clauses/drop_table.py,sha256=ltaJJFcNXChBF7fYGNCZK9QQ4iWfG72HFacL57f2k6A,569
60
- ormlambda/databases/my_sql/clauses/group_by.py,sha256=m-Q6GjhjAx5Y1hH3bGmWOIvdMSE_ilEY8YNCV7fqT5g,849
62
+ ormlambda/databases/my_sql/clauses/drop_table.py,sha256=vPEE7N7z-N0vfVp0t-Qee1TBdZ9Fkvp_rvPP8LAcvdc,673
63
+ ormlambda/databases/my_sql/clauses/group_by.py,sha256=982UhiUzTHe_tocOXFx3d4SoOYzBN4-V9vgz1rbaBnA,780
61
64
  ormlambda/databases/my_sql/clauses/having.py,sha256=yfRJP3Zw4JEdQPkJtqQ4cZwxcUJTBLlb4e7nTRMaUSk,400
62
65
  ormlambda/databases/my_sql/clauses/insert.py,sha256=xR9IRiJeTIw-65MhnbK_uemMdvIEAaqFPg4IFBtC9Yk,3691
63
66
  ormlambda/databases/my_sql/clauses/joins.py,sha256=PEq7_qxgjJK5R_m8WkqJWppEc-bQFIbAb88qn81uGOg,5170
64
67
  ormlambda/databases/my_sql/clauses/limit.py,sha256=32Fii_WHjrX7K5B7H5uWlzYM6KBMFsE-Uz-70CEvTok,386
65
68
  ormlambda/databases/my_sql/clauses/offset.py,sha256=PKieZvCYLSSza-Nhcam5DJEYv--jBU8RHwju3P_f9Kk,390
66
69
  ormlambda/databases/my_sql/clauses/order.py,sha256=n4vrssvUH9e8vlDHvML6Bclw6KHurkWePQ_WZavVxRE,2316
67
- ormlambda/databases/my_sql/clauses/select.py,sha256=O1dZWKG3_93-s_X_EjOF_alp_U82EzfDUKBMBcajxKY,1830
70
+ ormlambda/databases/my_sql/clauses/select.py,sha256=sxlOGisdEkbjBQtFkUv3YG1jCDyu6rpWWHvmj_Jef5E,1870
68
71
  ormlambda/databases/my_sql/clauses/update.py,sha256=GAXqEPEnUUO-M1zlaTU1Esso0s6lL7nmZWSEErZK2iE,2940
69
- ormlambda/databases/my_sql/clauses/upsert.py,sha256=VJAwfvpIT3xXwm3AnifVqiswnYNleDTnbY0CgnQqC0s,1945
72
+ ormlambda/databases/my_sql/clauses/upsert.py,sha256=ULtN81n3dy6GfD0kenq5gu-c6IdscbLeWHk35vo0EqU,2058
70
73
  ormlambda/databases/my_sql/clauses/where.py,sha256=IIyXt98S_ExpC0IHqEO2OL1j-VK9An3Kkbsd2t-2OQU,1694
71
74
  ormlambda/databases/my_sql/functions/__init__.py,sha256=hA8t3mUpV2p-pO4TVp5rjC5Yp7aIkWPsS8NpLi3DUh0,171
72
75
  ormlambda/databases/my_sql/functions/concat.py,sha256=jGUQEj28Gh89ilwJqwFpP5mXyw9tvZ4iC2DrvS4X25M,1346
73
76
  ormlambda/databases/my_sql/functions/max.py,sha256=AjROl4V9RYPMQoo0TomoTB8fRiMyN5-n6hTGRT_G-pY,1461
74
77
  ormlambda/databases/my_sql/functions/min.py,sha256=9g8twv0wUfpxrRK2socnfkJtmd_78pU6HDk_4AiV03c,1487
75
78
  ormlambda/databases/my_sql/functions/sum.py,sha256=PUItqZ4ZbBcOfPzGbYDVvhVKV1RxLMuI63xNbSD8KrA,1487
76
- ormlambda/databases/my_sql/join_context.py,sha256=SLxVSwCURLOBSMB-aN7PV69sBQXOOP1sCezAKn3Wnqo,3256
79
+ ormlambda/databases/my_sql/query_builder.py,sha256=GnOmuH-oOnMf_LP7Aw44fQDnJ51Z1w_OAeJC3MN7byM,5278
77
80
  ormlambda/databases/my_sql/repository/__init__.py,sha256=_T7m-UpgJlx7eYdjBw8jdSVFGnjFYAcbp45g4EM7YEk,54
78
81
  ormlambda/databases/my_sql/repository/repository.py,sha256=DXxY1I4NMA7zshWpzSc6TKf3RlNsOfdk_DDjCF7PoxQ,12149
79
- ormlambda/databases/my_sql/statements.py,sha256=iGfXBiaNAo2LqqBfU6zfcwB49by-vPUxklhgkIoHZHU,17340
82
+ ormlambda/databases/my_sql/statements.py,sha256=gvCV9WQc1IsRN4o7ctQcmEAfOZY8KyBIOMTFnPu3qyw,12576
80
83
  ormlambda/databases/my_sql/types.py,sha256=6c7LMS1VGR8ko1LB1T8DQzn1l10Mzk8PfIeYEOb9w30,1839
81
84
  ormlambda/engine/__init__.py,sha256=Nubog0bQrWZHPsl7g-l3nlFN8be_aHMrQEYfE2RVme8,93
82
85
  ormlambda/engine/create.py,sha256=HwtLi9T_Z7mnZIPfSmutRPT7SlIDFfs82oJuVe-pObo,955
83
86
  ormlambda/engine/template.py,sha256=colmdl-IBSGc1eIqIYShsVkseQwF5_gwwc6Pt8ndN24,1350
84
- ormlambda/engine/url.py,sha256=4FnkQQO93jQcGWmZF38DiJgIrRcIgIYacy2N6Dy3YX8,25401
87
+ ormlambda/engine/url.py,sha256=qSsFGqZcCzJm8XO4qvjlZQ2qLPiyJvp1WI4GpL43Ftc,25404
85
88
  ormlambda/engine/utils.py,sha256=fFoiKsiFuLcjcBVYNebVoYnMrEj3aZdoxEVSNfCY-GM,522
86
89
  ormlambda/model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
87
90
  ormlambda/model/base_model.py,sha256=S_PYs5ZO-LTgiJSyAmGUtXwFKLb9VnM2Rqlq4pdhppY,1021
@@ -91,12 +94,14 @@ ormlambda/repository/interfaces/IDatabaseConnection.py,sha256=pxczjx0b53yjjg5hvV
91
94
  ormlambda/repository/interfaces/IRepositoryBase.py,sha256=24AFQ9ZBnFBQtdt3nkyFXkUbEzEsD2P7OS0FnFECJB8,1206
92
95
  ormlambda/repository/interfaces/__init__.py,sha256=t8Mn0aRZm8uF4MGaqjEANTTADCdOwNF0THZ_qebyzwo,126
93
96
  ormlambda/sql/__init__.py,sha256=0CWQzfxhTRWXozoRsg460o_ZwjW9w4uyL5jQUcD4eHg,121
94
- ormlambda/sql/clause_info/__init__.py,sha256=ft8qh3pxXx3eAJfeBfSNwjzTjEAJob59XYLOnQQCJYI,205
95
- ormlambda/sql/clause_info/clause_info.py,sha256=V4IQ6fuqf0Y-AS0qykQNcpOA2joib3FLuowNrMSBHNI,15644
97
+ ormlambda/sql/clause_info/__init__.py,sha256=wOr8M0ZW7fJ-OGHok9eExh7fVP6kiwqGckEsKdE0U7A,255
98
+ ormlambda/sql/clause_info/aggregate_function_base.py,sha256=X-JFl_2TUU_NH0pnrYxo7nIE5gtQlwSTw4lnNBmioUc,3157
99
+ ormlambda/sql/clause_info/clause_info.py,sha256=M3toTYXQg7XaNHmRUEwaHit4XaNM9Sck2h6ZX1NIOnE,12136
96
100
  ormlambda/sql/clause_info/clause_info_context.py,sha256=Y32p3x4mqcdNHbAowrKaN_ldnGn7zvaP1UdAkWWryhM,2852
97
101
  ormlambda/sql/clause_info/interface/IAggregate.py,sha256=P-QPaTMAMHVR5M9-ClmL8wsj0uNGG5xpxjuAwWnzKxA,216
98
- ormlambda/sql/clause_info/interface/__init__.py,sha256=7eEyHO7P_1DB63bP0ej5EjKkvb7IHwaGlSG58Hrv2X0,49
99
- ormlambda/sql/column.py,sha256=pFCvJKiL4On1VVX41IutGq9eC60xf6Dd8zpXPRMDdFE,5978
102
+ ormlambda/sql/clause_info/interface/IClauseInfo.py,sha256=Gnr6vArgimCt0oJqW-_q2_5jMi8EDBW1wZ8rEF2uzTk,921
103
+ ormlambda/sql/clause_info/interface/__init__.py,sha256=bTNYVMPuJebEvQpPa5LBQaAesGnfljQ8BKsj1UxN09k,100
104
+ ormlambda/sql/column.py,sha256=NRGfwmRg3-AMHZk0kz9UzOi9GzDp43A5kgYliqrNSPE,6085
100
105
  ormlambda/sql/comparer.py,sha256=XTi4QT2ICtssCPsF8yrMwLDswnu7lF3MO217hAAY0t8,5334
101
106
  ormlambda/sql/dtypes.py,sha256=Ji4QOyKD0n9bKe7yXIIduy9uEX5BaXolQSIsx0NXYJY,7843
102
107
  ormlambda/sql/foreign_key.py,sha256=lz5TiHmPFKdfL7ESwUt_MnUy2XYUTiOUiQtammoQTwQ,5530
@@ -106,15 +111,15 @@ ormlambda/sql/table/fields.py,sha256=ovNR3bJ473aKW-2NhbKr0iJlVpgW06jurHLob2IyZU8
106
111
  ormlambda/sql/table/table_constructor.py,sha256=_sc1WnhnjchvIzxQZ85qZJFGZExlmhgKBoeWA-tk1eU,8642
107
112
  ormlambda/sql/types.py,sha256=z5FME0m9j7zSKlxS21cZxHRg0pyTfiJbq7VWZ6IT0kM,832
108
113
  ormlambda/statements/__init__.py,sha256=mFER-VoLf5L2BjdQhWMw6rVQi8kpr-qZzi1ZSWRPIIU,99
109
- ormlambda/statements/base_statement.py,sha256=WLjQrWw72NhBdNkP8uO1UP8hzfv-leyFjmMa4ofa-fk,5660
110
- ormlambda/statements/interfaces/IStatements.py,sha256=83G7KemLYWTTQqvDCm3GnXBhr00bli-28YpiAbyt1yU,11861
114
+ ormlambda/statements/base_statement.py,sha256=5Z5mnna2h2U165IaHxikq9AEOPfc1Nm5Ca2GXzLqk68,5798
115
+ ormlambda/statements/interfaces/IStatements.py,sha256=bmvAFAWOUQiBaesfI_VASNjy07zJwH8O489Qz-F0RzU,12762
111
116
  ormlambda/statements/interfaces/__init__.py,sha256=a3RyTNVA7DwWMqvVi7gFYP4MArdU-RUYixJcxfc79HY,76
112
117
  ormlambda/statements/types.py,sha256=0AYnj6WCQcS-4fhsaK_yu2zQR3guPhPluq_sZxH1UhQ,1938
113
118
  ormlambda/utils/__init__.py,sha256=SEgDWkwbSrYRv0If92Ewq53DKnxxv5HqEAQbETd1C6Q,50
114
119
  ormlambda/utils/module_tree/__init__.py,sha256=LNQtqkwO1ul49Th3aHAIiyt0Wt899GmXCc44Uz1eDyY,53
115
120
  ormlambda/utils/module_tree/dfs_traversal.py,sha256=lSF03G63XtJFLp03ueAmsHMBvhUkjptDbK3IugXm8iU,1425
116
- ormlambda/utils/module_tree/dynamic_module.py,sha256=SJWpOC5oqASGjCXYHW0JwzEpcZ_DkxKLyK4SpIsMbaA,8700
117
- ormlambda-3.11.2.dist-info/LICENSE,sha256=xBprFw8GJLdHMOoUqDk0427EvjIcbEREvXXVFULuuXU,1080
118
- ormlambda-3.11.2.dist-info/METADATA,sha256=YEWvidWeBafsYuVZLKrBY8IcsnhkbzYbZewgiI567Eo,12584
119
- ormlambda-3.11.2.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
120
- ormlambda-3.11.2.dist-info/RECORD,,
121
+ ormlambda/utils/module_tree/dynamic_module.py,sha256=vJOqvm5-WKksudXBK1IcTn4WsuLxt1qXNISq-_21sy4,8705
122
+ ormlambda-3.12.2.dist-info/LICENSE,sha256=xBprFw8GJLdHMOoUqDk0427EvjIcbEREvXXVFULuuXU,1080
123
+ ormlambda-3.12.2.dist-info/METADATA,sha256=IKyumD6YF1P4XuLEszrny77R6H6Hp21SxI_xtC9fQBU,13377
124
+ ormlambda-3.12.2.dist-info/WHEEL,sha256=fGIA9gx4Qxk2KDKeNJCbOEwSrmLtjWCwzBz351GyrPQ,88
125
+ ormlambda-3.12.2.dist-info/RECORD,,