ormlambda 0.1.0__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 (70) hide show
  1. ormlambda/__init__.py +4 -0
  2. ormlambda/common/__init__.py +2 -0
  3. ormlambda/common/abstract_classes/__init__.py +3 -0
  4. ormlambda/common/abstract_classes/abstract_model.py +302 -0
  5. ormlambda/common/abstract_classes/non_query_base.py +33 -0
  6. ormlambda/common/abstract_classes/query_base.py +10 -0
  7. ormlambda/common/enums/__init__.py +2 -0
  8. ormlambda/common/enums/condition_types.py +16 -0
  9. ormlambda/common/enums/join_type.py +10 -0
  10. ormlambda/common/interfaces/INonQueryCommand.py +9 -0
  11. ormlambda/common/interfaces/IQueryCommand.py +11 -0
  12. ormlambda/common/interfaces/IRepositoryBase.py +67 -0
  13. ormlambda/common/interfaces/IStatements.py +227 -0
  14. ormlambda/common/interfaces/__init__.py +4 -0
  15. ormlambda/components/__init__.py +0 -0
  16. ormlambda/components/delete/IDelete.py +6 -0
  17. ormlambda/components/delete/__init__.py +2 -0
  18. ormlambda/components/delete/abstract_delete.py +14 -0
  19. ormlambda/components/insert/IInsert.py +6 -0
  20. ormlambda/components/insert/__init__.py +2 -0
  21. ormlambda/components/insert/abstract_insert.py +21 -0
  22. ormlambda/components/select/ISelect.py +14 -0
  23. ormlambda/components/select/__init__.py +2 -0
  24. ormlambda/components/select/table_column.py +39 -0
  25. ormlambda/components/update/IUpdate.py +7 -0
  26. ormlambda/components/update/__init__.py +2 -0
  27. ormlambda/components/update/abstract_update.py +25 -0
  28. ormlambda/components/upsert/IUpsert.py +6 -0
  29. ormlambda/components/upsert/__init__.py +2 -0
  30. ormlambda/components/upsert/abstract_upsert.py +21 -0
  31. ormlambda/components/where/__init__.py +1 -0
  32. ormlambda/components/where/abstract_where.py +11 -0
  33. ormlambda/databases/__init__.py +0 -0
  34. ormlambda/databases/my_sql/__init__.py +2 -0
  35. ormlambda/databases/my_sql/clauses/__init__.py +13 -0
  36. ormlambda/databases/my_sql/clauses/create_database.py +29 -0
  37. ormlambda/databases/my_sql/clauses/delete.py +54 -0
  38. ormlambda/databases/my_sql/clauses/drop_database.py +19 -0
  39. ormlambda/databases/my_sql/clauses/drop_table.py +23 -0
  40. ormlambda/databases/my_sql/clauses/insert.py +70 -0
  41. ormlambda/databases/my_sql/clauses/joins.py +103 -0
  42. ormlambda/databases/my_sql/clauses/limit.py +17 -0
  43. ormlambda/databases/my_sql/clauses/offset.py +17 -0
  44. ormlambda/databases/my_sql/clauses/order.py +29 -0
  45. ormlambda/databases/my_sql/clauses/select.py +172 -0
  46. ormlambda/databases/my_sql/clauses/update.py +52 -0
  47. ormlambda/databases/my_sql/clauses/upsert.py +68 -0
  48. ormlambda/databases/my_sql/clauses/where_condition.py +219 -0
  49. ormlambda/databases/my_sql/repository.py +192 -0
  50. ormlambda/databases/my_sql/statements.py +86 -0
  51. ormlambda/model_base.py +36 -0
  52. ormlambda/utils/__init__.py +3 -0
  53. ormlambda/utils/column.py +65 -0
  54. ormlambda/utils/dtypes.py +104 -0
  55. ormlambda/utils/foreign_key.py +36 -0
  56. ormlambda/utils/lambda_disassembler/__init__.py +4 -0
  57. ormlambda/utils/lambda_disassembler/dis_types.py +136 -0
  58. ormlambda/utils/lambda_disassembler/disassembler.py +69 -0
  59. ormlambda/utils/lambda_disassembler/dtypes.py +103 -0
  60. ormlambda/utils/lambda_disassembler/name_of.py +41 -0
  61. ormlambda/utils/lambda_disassembler/nested_element.py +44 -0
  62. ormlambda/utils/lambda_disassembler/tree_instruction.py +145 -0
  63. ormlambda/utils/module_tree/__init__.py +0 -0
  64. ormlambda/utils/module_tree/dfs_traversal.py +60 -0
  65. ormlambda/utils/module_tree/dynamic_module.py +237 -0
  66. ormlambda/utils/table_constructor.py +308 -0
  67. ormlambda-0.1.0.dist-info/LICENSE +21 -0
  68. ormlambda-0.1.0.dist-info/METADATA +268 -0
  69. ormlambda-0.1.0.dist-info/RECORD +70 -0
  70. ormlambda-0.1.0.dist-info/WHEEL +4 -0
@@ -0,0 +1,268 @@
1
+ Metadata-Version: 2.1
2
+ Name: ormlambda
3
+ Version: 0.1.0
4
+ Summary: ORM designed to interact with the database using lambda functions
5
+ Author: p-hzamora
6
+ Author-email: p.hzamora@icloud.com
7
+ Requires-Python: >=3.12,<4.0
8
+ Classifier: Programming Language :: Python :: 3
9
+ Classifier: Programming Language :: Python :: 3.12
10
+ Requires-Dist: mysql-connector (>=2.2.9,<3.0.0)
11
+ Requires-Dist: ruff (>=0.4.5,<0.5.0)
12
+ Description-Content-Type: text/markdown
13
+
14
+ # ormMySQL
15
+ This ORM is designed to connect with a MySQL server, facilitating the management of various database queries. Built with flexibility and efficiency in mind, this ORM empowers developers to interact with the database using lambda functions, allowing for concise and expressive query construction.
16
+
17
+ # Creating your first lambda query
18
+
19
+ ## Initialize MySQLRepository
20
+ ```python
21
+ from decouple import config
22
+ from src.ormmysql.databases.my_sql import MySQLRepository
23
+
24
+ USERNAME = config("USERNAME")
25
+ PASSWORD = config("PASSWORD")
26
+ HOST = config("HOST")
27
+
28
+
29
+ database = MySQLRepository(user=USERNAME, password=PASSWORD, database="sakila", host=HOST)
30
+ ```
31
+
32
+ ## Select all columns
33
+ ```python
34
+ from src.test.models.address import AddressModel
35
+
36
+ result = AddressModel(database).select()
37
+ ```
38
+ The `result` var will be of type `tuple[Address, ...]`
39
+
40
+ ## Select multiples tables
41
+ Once the `AddressModel` class is created, we will not only be able to access all the information in that table, but also all the information in all the tables that have foreign keys related to it."
42
+
43
+ ```python
44
+ from src.ormmysql.common.enums import ConditionType
45
+ from src.test.models.address import AddressModel
46
+
47
+
48
+ result = AddressModel(database).where(lambda x: (x.City.Country, ConditionType.REGEXP, r"^[aA]")).select(
49
+ lambda address: (
50
+ address,
51
+ address.City,
52
+ address.City.Country,
53
+ ),
54
+ )
55
+ ```
56
+ The `result` var will be of type `tuple[tuple[Address], tuple[City], tuple[Country]]`.
57
+
58
+ If we were used `select_one` method, we retrieved `tuple[Address, City, Country]`.
59
+
60
+ ## Filter by `where` condition
61
+
62
+ ```python
63
+ result = AddressModel(database).where(lambda x: 10 <= x.address_id <= 30).select()
64
+ ```
65
+
66
+ Additionally, we can filter by others tables. For example, we can return all addresses for each city where `country_id` = 87 (Spain)
67
+
68
+ ```python
69
+ result = AddressModel(database).where(lambda x: x.City.Country.country_id == 87).select()
70
+ ```
71
+
72
+ We can also return `Address`, `City` or `Country` if needed.
73
+
74
+ ```python
75
+ result = AddressModel(database).where(lambda x: x.City.Country.country_id == 87).select(lambda x: (x, x.City, x.City.Country))
76
+ ```
77
+
78
+ ### Pass variables to the `where` method
79
+ Since we generally work with lambda methods, I often have to work with `bytecode` to retrieve the name of the string variables. For this reason, it's imperative that we map these variables to replace them with the actual values.
80
+
81
+ ```python
82
+ LOWER = 10
83
+ UPPER = 30
84
+ AddressModel(database).where(lambda x: LOWER <= x.address_id <= UPPER, LOWER=LOWER, UPPER=UPPER).select()
85
+ ```
86
+ That solution is somewhat `awkward` and not very clean, but it's necessary for automating queries.
87
+
88
+ ## Writable methods INSERT, UPDATE, DELETE
89
+ The easiest way to add or delete data in your database is by using its appropiate methods. You just need to instantiate an object with the data and pass it to the method
90
+
91
+ ### Insert
92
+ ```python
93
+ address = Address(address_id=1, address="C/ ...", phone="XXXXXXXXX", postal_code="28026")
94
+
95
+ AddressModel(database).insert(address)
96
+ ```
97
+
98
+ ### Update
99
+
100
+ You can use either the properties of the same object or `str` values.
101
+ ```python
102
+
103
+ AddressModel(database).where(lambda x: x.address_id == 1).update(
104
+ {
105
+ Address.phone: "YYYYYYYYY",
106
+ Address.postal_code: "28030",
107
+ }
108
+ )
109
+
110
+ AddressModel(database).where(lambda x: x.address_id == 1).update(
111
+ {
112
+ "phone": "YYYYYYYYY",
113
+ "postal_code": "28030",
114
+ }
115
+ )
116
+ ```
117
+ ### Delete
118
+
119
+ ```python
120
+ AddressModel(database).where(lambda x: x.address_id == 1).delete()
121
+ ```
122
+
123
+
124
+ # Table Map
125
+ The most important aspect when creating classes to map database tables is to consider the importance of typing the variables that should behave as columns. In other words, variables that are typed will be those that are passed to the class constructor. This is why both `__table_name__` and variables that reference foreign classes, are not given a specific data tpye.
126
+
127
+ For example, imagine you have three Table in your database: `Addres`, `City` and `Country`. Each of them has its own Foreing keys.
128
+
129
+ `Address` has a FK relationship with `City`.
130
+
131
+ `City` has a FK relationship with `Country`.
132
+
133
+ The easiest way to map your tables is:
134
+
135
+ ```python
136
+ from datetime import datetime
137
+
138
+ from src.ormmysql import (
139
+ Column,
140
+ Table,
141
+ BaseModel,
142
+ ForeignKey,
143
+ )
144
+ from src.ormmysql.common.interfaces import IStatements_two_generic, IRepositoryBase
145
+
146
+
147
+ class Country(Table):
148
+ __table_name__ = "country"
149
+
150
+ country_id: int = Column[int](is_primary_key=True)
151
+ country: str
152
+ last_update: datetime
153
+
154
+
155
+ class Address(Table):
156
+ __table_name__ = "address"
157
+
158
+ address_id: int = Column[int](is_primary_key=True)
159
+ address: str
160
+ address2: str
161
+ district: str
162
+ city_id: int
163
+ postal_code: str
164
+ phone: str
165
+ location: str
166
+ last_update: datetime = Column[datetime](is_auto_generated=True)
167
+
168
+ City = ForeignKey["Address", City](__table_name__, City, lambda a, c: a.city_id == c.city_id)
169
+
170
+
171
+ class City(Table):
172
+ __table_name__ = "city"
173
+
174
+ city_id: int = Column[int](is_primary_key=True)
175
+ city: str
176
+ country_id: int
177
+ last_update: datetime
178
+
179
+ Country = ForeignKey["City", Country](__table_name__, Country, lambda ci, co: ci.country_id == co.country_id)
180
+ ```
181
+
182
+ Once created, you need to create a Model for each Table
183
+
184
+ ```python
185
+ class CountryModel(BaseModel[Country]):
186
+ def __new__[TRepo](cls, repository: IRepositoryBase[TRepo]):
187
+ return super().__new__(cls, Country, repository)
188
+
189
+
190
+ class AddressModel(BaseModel[Address]):
191
+ def __new__[TRepo](cls, repository: IRepositoryBase[TRepo]):
192
+ return super().__new__(cls, Address, repository)
193
+
194
+
195
+ class CityModel(BaseModel[City]):
196
+ def __new__[TRepo](cls, repository: IRepositoryBase[TRepo]):
197
+ return super().__new__(cls, City, repository)
198
+ ```
199
+
200
+ # Creating complex queries with lambda
201
+
202
+ We can use various methods such as `where`, `limit`, `offset`, `order`, etc...
203
+
204
+ # Filter using `where` method
205
+ To retrieve all `Address` object where the fk reference to the `City` table, and the fk reference to the `Country` table have a `country_id` value greater or equal than 50, ordered in `descending` order, then:
206
+
207
+ ```python
208
+ result = (
209
+ AddressModel(database)
210
+ .order(lambda a: a.address_id, order_type="DESC")
211
+ .where(lambda x: x.City.Country.country_id >= 50)
212
+ .select(lambda a: (a))
213
+ )
214
+
215
+ ```
216
+ Also you can use `ConditionType` enum for `regular expressions` and get, for example, all rows from a different table where the `Country` name starts with `A`, limited to `100`:
217
+
218
+
219
+ ```python
220
+ address, city, country = (
221
+ AddressModel(database)
222
+ .order(lambda a: a.address_id, order_type="DESC")
223
+ .where(lambda x: (x.City.Country, ConditionType.REGEXP, r"^[A]"))
224
+ .limit(100)
225
+ .select(
226
+ lambda a: (
227
+ a,
228
+ a.City,
229
+ a.City.Country,
230
+ )
231
+ )
232
+ )
233
+
234
+
235
+ for a in address:
236
+
237
+ print(a.address_id)
238
+
239
+ for c in city:
240
+ print(c.city_id)
241
+
242
+ for co in country:
243
+ print(co.country)
244
+ ```
245
+
246
+ # Transform Table objects into Iterable object
247
+ In the example above, we see that the `result` var returns a tuple of tuples. However, we can simplify the `result` var when needed by passing `flavour` attribute in `select` method to get a tuple of the specified data type.
248
+
249
+ ```python
250
+ result = (
251
+ a_model
252
+ .where(lambda x: (x.City.Country, ConditionType.REGEXP, r"^[A]"))
253
+ .limit(100)
254
+ .select(
255
+ lambda a: (
256
+ a.address_id,
257
+ a.City.city_id,
258
+ a.City.Country.country_id,
259
+ a.City.Country.country,
260
+ ),
261
+ flavour=dict,
262
+ )
263
+ )
264
+ ```
265
+
266
+ with this approach, we will obtain a dictionary where the key will be the concatenation between the selected table name and the column name specified in the lambda function, to avoid overwritting data from tables that sharing column names.
267
+
268
+
@@ -0,0 +1,70 @@
1
+ ormlambda/__init__.py,sha256=nRG76yZWhrJVqckoYaej3wI2iN2uU--MvqI8Zx_SzWQ,242
2
+ ormlambda/common/__init__.py,sha256=daEdpEyAJIa8b2VkCqSKcw8PaExcB6Qro80XNes_sHA,2
3
+ ormlambda/common/abstract_classes/__init__.py,sha256=LZUlffEFZ98DO9MNlw2PloI4xR8Qf9WitIjafBmE9WQ,166
4
+ ormlambda/common/abstract_classes/abstract_model.py,sha256=-n7Uu9lLQbRJPU7JQIG90HLFaKci3czeqH9ov90HVFY,12835
5
+ ormlambda/common/abstract_classes/non_query_base.py,sha256=HCzvbiCiyIVIOwiFqDNf5HYatIG6XCWQs3_p6CaTrpw,879
6
+ ormlambda/common/abstract_classes/query_base.py,sha256=kCGaYpdl4laekmRgtMnkJknsgC4D2BsXYKDj3aP2DvQ,194
7
+ ormlambda/common/enums/__init__.py,sha256=cKLaRnQqrnywNnDZSvMab67pV3Bw2iqwEI-gyL7yrFE,102
8
+ ormlambda/common/enums/condition_types.py,sha256=mDPMrtzZu4IYv3-q5Zw4NNgwUoNAx4lih5SIDFRn1Qo,309
9
+ ormlambda/common/enums/join_type.py,sha256=iRtmY-Zw61jl8zI1Jax65CCqk2qPRjs_6UmiLOpY5F4,290
10
+ ormlambda/common/interfaces/INonQueryCommand.py,sha256=7CjLW4sKqkR5zUIGvhRXOtzTs6vypJW1a9EJHlgCw2c,260
11
+ ormlambda/common/interfaces/IQueryCommand.py,sha256=Ins6SufOqL2kAHe-l8f9Kv5NIg0TpqtwLt7Ci0zzpf0,331
12
+ ormlambda/common/interfaces/IRepositoryBase.py,sha256=I05nCEFMoSRklnQt4fn8ase6YqNeS-qSxRPH_wqrB58,1859
13
+ ormlambda/common/interfaces/IStatements.py,sha256=VBrVqqsqmaUinSgE11knMfRxZjSeBCwldjCsiBb5jm4,9124
14
+ ormlambda/common/interfaces/__init__.py,sha256=Ane8WwjRFadOhoSRCbnphV4_SnE0jAE77DLj8ZZJaRg,243
15
+ ormlambda/components/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
+ ormlambda/components/delete/IDelete.py,sha256=06ZEdbKBxsHSwsGMBu0E1om4WJjojZAm-L3b95eQrcc,139
17
+ ormlambda/components/delete/__init__.py,sha256=X_at2L4QkxDVK1olXhFHqNemkB8Dxbb7BYqv0EJyu7M,102
18
+ ormlambda/components/delete/abstract_delete.py,sha256=rLOWzKY1Mu-YMgOOU0DSV2XNIklkZCs5RlceZMxWB34,468
19
+ ormlambda/components/insert/IInsert.py,sha256=MDiMFmePra9coEMWmEg5EUhxAIXLxZ9yX5uG-qP7Nl4,137
20
+ ormlambda/components/insert/__init__.py,sha256=TGShCJZwejK3zZCRistBAKoDy2NNDRR_w1LXIbN66Dk,102
21
+ ormlambda/components/insert/abstract_insert.py,sha256=9tKMmMgbQe8NwOisNnTHtiFN-4cwnLVO61v-EHwFiXc,602
22
+ ormlambda/components/select/ISelect.py,sha256=MufLURuFjILvuidLQEI5Dx032cnHE2OaC0u2pQSlJRs,312
23
+ ormlambda/components/select/__init__.py,sha256=BygaFGphVgGT0Zke4WhzdBQMUxevC34Qseok9qutaJE,95
24
+ ormlambda/components/select/table_column.py,sha256=yseg5M1MEhzq3EER0Es8qvTWHik2OT3o7Hn1Nxs5QRA,1219
25
+ ormlambda/components/update/IUpdate.py,sha256=PIt9ohoH0V02Wlsbg6mkwhS0vIrnRfWbuKg0EWK14RE,166
26
+ ormlambda/components/update/__init__.py,sha256=QNl3V8Ygy6WlU2rGtwQD9TiT1vVVSceYNhx2BwsJglo,101
27
+ ormlambda/components/update/abstract_update.py,sha256=AFIThy_qqLKqCEuC4NJ2sP9JuWHjvxXmZHCluMTPVEs,794
28
+ ormlambda/components/upsert/IUpsert.py,sha256=2m6Bcwa0X80IDLnf0QErqr01uYEydOnRta9_T1nxjK4,139
29
+ ormlambda/components/upsert/__init__.py,sha256=vfyfXrQILiExYo5lQ7dDNuOMhJ0mE9CVV0w3j1LaagE,101
30
+ ormlambda/components/upsert/abstract_upsert.py,sha256=ISHdN_MTpmM24F-x6wZkKflE0WpadX9p82gr1abGeeA,592
31
+ ormlambda/components/where/__init__.py,sha256=mI-ylB6cTTVf3rtCX54apgZrMP6y9tTD7-X3Ct0RFxw,56
32
+ ormlambda/components/where/abstract_where.py,sha256=s4FDBJIXYzb9KfEg4ZpbnNkoGHLbK_JVJF0pIP87rQg,245
33
+ ormlambda/databases/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
+ ormlambda/databases/my_sql/__init__.py,sha256=3PbOp4WqxJzFOSRwBozqyNtQi25cLLdiJFPDzEnSI70,115
35
+ ormlambda/databases/my_sql/clauses/__init__.py,sha256=1gAcmaajMmtIqTOXF6ibcPjKTuWkVKk9TM5OtrInmaE,650
36
+ ormlambda/databases/my_sql/clauses/create_database.py,sha256=sZtr8PXuH2RVmpJZQAYm8giJKAhCGUj0nX1pND3IXD0,988
37
+ ormlambda/databases/my_sql/clauses/delete.py,sha256=tjmMmGW7X2-4ai-15acT2VwygNExRAd0axzoHe6ksoA,1871
38
+ ormlambda/databases/my_sql/clauses/drop_database.py,sha256=H4_CAl8lPXvW7UuYosg4MwZkGdi8AX_hQRD8PlQQE0E,517
39
+ ormlambda/databases/my_sql/clauses/drop_table.py,sha256=0xZBUWuxhQpyKZ2c0JVys4gGbEdDu7YpFA-_SXsYmPw,604
40
+ ormlambda/databases/my_sql/clauses/insert.py,sha256=2ZDN1lqR28t9Lu2l3IArxefYpn92Q9Bak6l5zxvGy1M,2790
41
+ ormlambda/databases/my_sql/clauses/joins.py,sha256=M6Oj0T6at-zvG2UXO5pJ4bndtvgrBj0CucFppskh1sE,3037
42
+ ormlambda/databases/my_sql/clauses/limit.py,sha256=sudJY2YLq33OA46iGGUuuappzz-kJUAwx8oVk7SCmxI,385
43
+ ormlambda/databases/my_sql/clauses/offset.py,sha256=lRPfE198-j4X8gJUVzzrdUxKyOj9cY2vDY15qkFGUUY,389
44
+ ormlambda/databases/my_sql/clauses/order.py,sha256=I80nCYk4Mf5O-kXWBa-gSdIOjn76j0nWTJx0PSqWtJo,1012
45
+ ormlambda/databases/my_sql/clauses/select.py,sha256=hZKNMdUHL1JZJJB1KMzzU9KmwxkAqngzuWi1cz9giZI,6541
46
+ ormlambda/databases/my_sql/clauses/update.py,sha256=1U9JrUOc0_aUkhcjYRWpS1b8BuDUHpootUAsh5to8jA,1873
47
+ ormlambda/databases/my_sql/clauses/upsert.py,sha256=ecj3cqmBPczFca6QaZmSNDtk05UKPjn6Z4d0R3MZago,1957
48
+ ormlambda/databases/my_sql/clauses/where_condition.py,sha256=SXdEDjYoeoNubb7Y07UV_UQQ_EeywPyqHsvBoH_yhrY,8290
49
+ ormlambda/databases/my_sql/repository.py,sha256=rpBnciyYe6nTxZgjviTYGUK_YkDvJuTCw6j-LbF1Fn0,6479
50
+ ormlambda/databases/my_sql/statements.py,sha256=IFnPRzYme8YyNiM3rumGP_1CzWiocZb8xF1QNq2DP5s,2086
51
+ ormlambda/model_base.py,sha256=gEvGi7VH7aawmBU6a-V3pIWaWOs1grQ_gTBsrsC8DiQ,1071
52
+ ormlambda/utils/__init__.py,sha256=ywMdWqmA2jHj19-W-S04yfaYF5hv4IZ1lZDq0B8Jnjs,142
53
+ ormlambda/utils/column.py,sha256=ATyOUZ6cWYlvYQwlusVNYjV6A9aQn0T9CaKVUw52jDo,1941
54
+ ormlambda/utils/dtypes.py,sha256=YTh9a3E3eZLECCXD_en1ufXV0gLVmLMS50haIdGt8Zw,7739
55
+ ormlambda/utils/foreign_key.py,sha256=Y5mwzKXL_AjCbsV7rJ-O2rZ4SaIUjsrLl8XPjXksT7Y,1329
56
+ ormlambda/utils/lambda_disassembler/__init__.py,sha256=_718I4R_ipYLYQ1I9nhrAcN0PzROrKluazH_Gu4S98c,228
57
+ ormlambda/utils/lambda_disassembler/dis_types.py,sha256=D7kBFbHQJpQ5bpY30RSpNkLmITfpmblkHpnVBmt4yLo,4805
58
+ ormlambda/utils/lambda_disassembler/disassembler.py,sha256=Zc_hFeEheCiBtFIo39F573uU3jkkB-VyA-wJGICqs44,2019
59
+ ormlambda/utils/lambda_disassembler/dtypes.py,sha256=QtftGMCcb4arAQnXkwGQ1VeV-6x0mZdRTfZmxLkAtFo,6449
60
+ ormlambda/utils/lambda_disassembler/name_of.py,sha256=Cjic_GzqgArxx7kDUMOGYmmNRHj7HcxG-kcDfAhA5yk,1142
61
+ ormlambda/utils/lambda_disassembler/nested_element.py,sha256=nXwytOwBbPYSTMxksQTRMhSeqRIMpIcVWg70loVtQ_k,1234
62
+ ormlambda/utils/lambda_disassembler/tree_instruction.py,sha256=ftt8QPSoGUZ3gYAK59y8SpiaumrvLExmp-lgwCeO9vk,5115
63
+ ormlambda/utils/module_tree/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
+ ormlambda/utils/module_tree/dfs_traversal.py,sha256=lSF03G63XtJFLp03ueAmsHMBvhUkjptDbK3IugXm8iU,1425
65
+ ormlambda/utils/module_tree/dynamic_module.py,sha256=PHUGfO7ENBRlUR1uP6R7g76YApLpvFzMKdWlJJ9vQLw,8468
66
+ ormlambda/utils/table_constructor.py,sha256=hKiDDsSpVakFqL_QhIfmlvwXI91nb_KoPpPFway7NQ4,10881
67
+ ormlambda-0.1.0.dist-info/LICENSE,sha256=xBprFw8GJLdHMOoUqDk0427EvjIcbEREvXXVFULuuXU,1080
68
+ ormlambda-0.1.0.dist-info/METADATA,sha256=oWIgEhlInUj4bLF46UxkLfsGuPIKsqsUWhYxiAZsNcw,8205
69
+ ormlambda-0.1.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
70
+ ormlambda-0.1.0.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: poetry-core 1.9.0
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any