reydb 1.2.18__py3-none-any.whl → 1.2.20__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.
- reydb/__init__.py +3 -1
- reydb/rall.py +2 -1
- reydb/rbase.py +1 -1
- reydb/rbuild.py +51 -1531
- reydb/rconfig.py +29 -29
- reydb/rconn.py +15 -15
- reydb/rdb.py +60 -531
- reydb/rengine.py +596 -0
- reydb/rerror.py +14 -14
- reydb/rexec.py +8 -8
- reydb/rinfo.py +32 -32
- reydb/rorm.py +77 -59
- {reydb-1.2.18.dist-info → reydb-1.2.20.dist-info}/METADATA +1 -1
- reydb-1.2.20.dist-info/RECORD +16 -0
- reydb-1.2.18.dist-info/RECORD +0 -15
- {reydb-1.2.18.dist-info → reydb-1.2.20.dist-info}/WHEEL +0 -0
- {reydb-1.2.18.dist-info → reydb-1.2.20.dist-info}/licenses/LICENSE +0 -0
reydb/rorm.py
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
# -*- coding: utf-8 -*-
|
3
3
|
|
4
4
|
"""
|
5
|
-
@Time : 2025-09-23
|
5
|
+
@Time : 2025-09-23
|
6
6
|
@Author : Rey
|
7
7
|
@Contact : reyxbo@163.com
|
8
8
|
@Explain : Database ORM methods.
|
@@ -32,7 +32,7 @@ from datetime import datetime, date, time, timedelta
|
|
32
32
|
from warnings import filterwarnings
|
33
33
|
from reykit.rbase import CallableT, Null, throw, is_instance
|
34
34
|
|
35
|
-
from . import
|
35
|
+
from . import rengine
|
36
36
|
from .rbase import (
|
37
37
|
SessionT,
|
38
38
|
SessionTransactionT,
|
@@ -69,7 +69,7 @@ __all__ = (
|
|
69
69
|
)
|
70
70
|
|
71
71
|
|
72
|
-
|
72
|
+
DatabaseEngineT = TypeVar('DatabaseEngineT', 'rengine.DatabaseEngine', 'rengine.DatabaseEngineAsync')
|
73
73
|
DatabaseORMModelT = TypeVar('DatabaseORMModelT', bound='DatabaseORMModel')
|
74
74
|
DatabaseORMT = TypeVar('DatabaseORMT', 'DatabaseORM', 'DatabaseORMAsync')
|
75
75
|
DatabaseORMSessionT = TypeVar('DatabaseORMSessionT', 'DatabaseORMSession', 'DatabaseORMSessionAsync')
|
@@ -303,11 +303,9 @@ class DatabaseORMModelField(DatabaseORMBase, FieldInfo):
|
|
303
303
|
kwargs['alias'] = kwargs['sa_column_kwargs']['name'] = kwargs.pop('field_name')
|
304
304
|
|
305
305
|
## Key auto.
|
306
|
-
if kwargs.
|
307
|
-
kwargs['sa_column_kwargs']['autoincrement'] = True
|
306
|
+
if kwargs.pop('key_auto', False):
|
308
307
|
kwargs['primary_key'] = True
|
309
|
-
|
310
|
-
kwargs['sa_column_kwargs']['autoincrement'] = False
|
308
|
+
kwargs['sa_column_kwargs']['autoincrement'] = True
|
311
309
|
|
312
310
|
## Key.
|
313
311
|
if kwargs.get('primary_key'):
|
@@ -336,7 +334,11 @@ class DatabaseORMModelField(DatabaseORMBase, FieldInfo):
|
|
336
334
|
## Argument default.
|
337
335
|
arg_default = kwargs.pop('arg_default', Null)
|
338
336
|
if arg_default == Null:
|
339
|
-
if
|
337
|
+
if (
|
338
|
+
kwargs['nullable']
|
339
|
+
or kwargs['sa_column_kwargs'].get('autoincrement')
|
340
|
+
or kwargs['sa_column_kwargs'].get('server_default') is not None
|
341
|
+
):
|
340
342
|
kwargs['default'] = None
|
341
343
|
elif callable(arg_default):
|
342
344
|
kwargs['default_factory'] = arg_default
|
@@ -502,23 +504,23 @@ class DatabaseORMModelMethod(DatabaseORMBase):
|
|
502
504
|
return instance
|
503
505
|
|
504
506
|
|
505
|
-
class DatabaseORMSuper(DatabaseORMBase, Generic[
|
507
|
+
class DatabaseORMSuper(DatabaseORMBase, Generic[DatabaseEngineT, DatabaseORMSessionT]):
|
506
508
|
"""
|
507
509
|
Database ORM super type.
|
508
510
|
"""
|
509
511
|
|
510
512
|
|
511
|
-
def __init__(self,
|
513
|
+
def __init__(self, engine: DatabaseEngineT) -> None:
|
512
514
|
"""
|
513
515
|
Build instance attributes.
|
514
516
|
|
515
517
|
Parameters
|
516
518
|
----------
|
517
|
-
|
519
|
+
engine: Database engine.
|
518
520
|
"""
|
519
521
|
|
520
522
|
# Build.
|
521
|
-
self.
|
523
|
+
self.engine = engine
|
522
524
|
self.__sess = self.session(True)
|
523
525
|
|
524
526
|
## Method.
|
@@ -557,13 +559,13 @@ class DatabaseORMSuper(DatabaseORMBase, Generic[DatabaseT, DatabaseORMSessionT])
|
|
557
559
|
return sess
|
558
560
|
|
559
561
|
|
560
|
-
class DatabaseORM(DatabaseORMSuper['
|
562
|
+
class DatabaseORM(DatabaseORMSuper['rengine.DatabaseEngine', 'DatabaseORMSession']):
|
561
563
|
"""
|
562
564
|
Database ORM type.
|
563
565
|
"""
|
564
566
|
|
565
567
|
|
566
|
-
class DatabaseORMAsync(DatabaseORMSuper['
|
568
|
+
class DatabaseORMAsync(DatabaseORMSuper['rengine.DatabaseEngineAsync', 'DatabaseORMSessionAsync']):
|
567
569
|
"""
|
568
570
|
Asynchronous database ORM type.
|
569
571
|
"""
|
@@ -603,7 +605,7 @@ class DatabaseORMSessionSuper(
|
|
603
605
|
# Build.
|
604
606
|
self.orm = orm
|
605
607
|
self.autocommit = autocommit
|
606
|
-
self.
|
608
|
+
self.session: SessionT | None = None
|
607
609
|
self.begin: SessionTransactionT | None = None
|
608
610
|
|
609
611
|
|
@@ -774,10 +776,10 @@ class DatabaseORMSession(
|
|
774
776
|
"""
|
775
777
|
|
776
778
|
# Create.
|
777
|
-
if self.
|
778
|
-
self.
|
779
|
+
if self.session is None:
|
780
|
+
self.session = Session(self.orm.engine.engine)
|
779
781
|
|
780
|
-
return self.
|
782
|
+
return self.session
|
781
783
|
|
782
784
|
|
783
785
|
def get_begin(self) -> SessionTransaction:
|
@@ -828,9 +830,18 @@ class DatabaseORMSession(
|
|
828
830
|
if self.begin is not None:
|
829
831
|
self.begin.close()
|
830
832
|
self.begin = None
|
831
|
-
if self.
|
832
|
-
self.
|
833
|
-
self.
|
833
|
+
if self.session is not None:
|
834
|
+
self.session.close()
|
835
|
+
self.session = None
|
836
|
+
|
837
|
+
|
838
|
+
def flush(self) -> None:
|
839
|
+
"""
|
840
|
+
Send execution to database, can refresh increment primary key attribute value of model.
|
841
|
+
"""
|
842
|
+
|
843
|
+
# Send.
|
844
|
+
self.session.flush()
|
834
845
|
|
835
846
|
|
836
847
|
def wrap_transact(method: CallableT) -> CallableT:
|
@@ -847,17 +858,16 @@ class DatabaseORMSession(
|
|
847
858
|
"""
|
848
859
|
|
849
860
|
|
850
|
-
# Define.
|
851
861
|
@functools_wraps(method)
|
852
862
|
def wrap(self: 'DatabaseORMSession', *args, **kwargs):
|
853
863
|
|
854
864
|
# Session.
|
855
|
-
if self.
|
856
|
-
self.
|
865
|
+
if self.session is None:
|
866
|
+
self.session = Session(self.orm.engine.engine)
|
857
867
|
|
858
868
|
# Begin.
|
859
869
|
if self.begin is None:
|
860
|
-
self.begin = self.
|
870
|
+
self.begin = self.session.begin()
|
861
871
|
|
862
872
|
# Execute.
|
863
873
|
result = method(self, *args, **kwargs)
|
@@ -899,7 +909,7 @@ class DatabaseORMSession(
|
|
899
909
|
throw(ValueError, tables)
|
900
910
|
|
901
911
|
# Create.
|
902
|
-
metadata.create_all(self.orm.
|
912
|
+
metadata.create_all(self.orm.engine.engine, tables, skip)
|
903
913
|
|
904
914
|
|
905
915
|
@wrap_transact
|
@@ -928,7 +938,7 @@ class DatabaseORMSession(
|
|
928
938
|
throw(ValueError, tables)
|
929
939
|
|
930
940
|
# Drop.
|
931
|
-
metadata.drop_all(self.orm.
|
941
|
+
metadata.drop_all(self.orm.engine.engine, tables, skip)
|
932
942
|
|
933
943
|
|
934
944
|
@wrap_transact
|
@@ -953,14 +963,14 @@ class DatabaseORMSession(
|
|
953
963
|
model = type(model)
|
954
964
|
|
955
965
|
# Get.
|
956
|
-
result = self.
|
966
|
+
result = self.session.get(model, key)
|
957
967
|
|
958
968
|
# Autucommit.
|
959
969
|
if (
|
960
970
|
self.autocommit
|
961
971
|
and result is not None
|
962
972
|
):
|
963
|
-
self.
|
973
|
+
self.session.expunge(result)
|
964
974
|
|
965
975
|
return result
|
966
976
|
|
@@ -990,7 +1000,7 @@ class DatabaseORMSession(
|
|
990
1000
|
results = [
|
991
1001
|
result
|
992
1002
|
for key in keys
|
993
|
-
if (result := self.
|
1003
|
+
if (result := self.session.get(model, key)) is not None
|
994
1004
|
]
|
995
1005
|
|
996
1006
|
return results
|
@@ -1016,7 +1026,7 @@ class DatabaseORMSession(
|
|
1016
1026
|
|
1017
1027
|
# Get.
|
1018
1028
|
select = Select(model)
|
1019
|
-
models = self.
|
1029
|
+
models = self.session.exec(select)
|
1020
1030
|
models = list(models)
|
1021
1031
|
|
1022
1032
|
return models
|
@@ -1033,7 +1043,7 @@ class DatabaseORMSession(
|
|
1033
1043
|
"""
|
1034
1044
|
|
1035
1045
|
# Add.
|
1036
|
-
self.
|
1046
|
+
self.session.add_all(models)
|
1037
1047
|
|
1038
1048
|
|
1039
1049
|
@wrap_transact
|
@@ -1048,7 +1058,7 @@ class DatabaseORMSession(
|
|
1048
1058
|
|
1049
1059
|
# Delete.
|
1050
1060
|
for model in models:
|
1051
|
-
self.
|
1061
|
+
self.session.delete(model)
|
1052
1062
|
|
1053
1063
|
|
1054
1064
|
@wrap_transact
|
@@ -1063,7 +1073,7 @@ class DatabaseORMSession(
|
|
1063
1073
|
|
1064
1074
|
# Refresh.
|
1065
1075
|
for model in models:
|
1066
|
-
self.
|
1076
|
+
self.session.refresh(model)
|
1067
1077
|
|
1068
1078
|
|
1069
1079
|
@wrap_transact
|
@@ -1078,7 +1088,7 @@ class DatabaseORMSession(
|
|
1078
1088
|
|
1079
1089
|
# Refresh.
|
1080
1090
|
for model in models:
|
1081
|
-
self.
|
1091
|
+
self.session.expire(model)
|
1082
1092
|
|
1083
1093
|
|
1084
1094
|
@overload
|
@@ -1134,7 +1144,7 @@ class DatabaseORMSessionAsync(
|
|
1134
1144
|
|
1135
1145
|
# Close.
|
1136
1146
|
await self.close()
|
1137
|
-
await self.orm.
|
1147
|
+
await self.orm.engine.dispose()
|
1138
1148
|
|
1139
1149
|
|
1140
1150
|
def get_sess(self) -> AsyncSession:
|
@@ -1147,10 +1157,10 @@ class DatabaseORMSessionAsync(
|
|
1147
1157
|
"""
|
1148
1158
|
|
1149
1159
|
# Create.
|
1150
|
-
if self.
|
1151
|
-
self.
|
1160
|
+
if self.session is None:
|
1161
|
+
self.session = AsyncSession(self.orm.engine.engine)
|
1152
1162
|
|
1153
|
-
return self.
|
1163
|
+
return self.session
|
1154
1164
|
|
1155
1165
|
|
1156
1166
|
async def get_begin(self) -> AsyncSessionTransaction:
|
@@ -1201,9 +1211,18 @@ class DatabaseORMSessionAsync(
|
|
1201
1211
|
if self.begin is not None:
|
1202
1212
|
await self.begin.rollback()
|
1203
1213
|
self.begin = None
|
1204
|
-
if self.
|
1205
|
-
await self.
|
1206
|
-
self.
|
1214
|
+
if self.session is not None:
|
1215
|
+
await self.session.close()
|
1216
|
+
self.session = None
|
1217
|
+
|
1218
|
+
|
1219
|
+
async def flush(self) -> None:
|
1220
|
+
"""
|
1221
|
+
Asynchronous send execution to database, can refresh increment primary key attribute value of model.
|
1222
|
+
"""
|
1223
|
+
|
1224
|
+
# Send.
|
1225
|
+
await self.session.flush()
|
1207
1226
|
|
1208
1227
|
|
1209
1228
|
def wrap_transact(method: CallableT) -> CallableT:
|
@@ -1220,7 +1239,6 @@ class DatabaseORMSessionAsync(
|
|
1220
1239
|
"""
|
1221
1240
|
|
1222
1241
|
|
1223
|
-
# Define.
|
1224
1242
|
@functools_wraps(method)
|
1225
1243
|
async def wrap(self: 'DatabaseORMSessionAsync', *args, **kwargs):
|
1226
1244
|
|
@@ -1237,7 +1255,7 @@ class DatabaseORMSessionAsync(
|
|
1237
1255
|
if self.autocommit:
|
1238
1256
|
await self.commit()
|
1239
1257
|
await self.close()
|
1240
|
-
await self.orm.
|
1258
|
+
await self.orm.engine.dispose()
|
1241
1259
|
|
1242
1260
|
return result
|
1243
1261
|
|
@@ -1271,7 +1289,7 @@ class DatabaseORMSessionAsync(
|
|
1271
1289
|
throw(ValueError, tables)
|
1272
1290
|
|
1273
1291
|
# Create.
|
1274
|
-
conn = await self.
|
1292
|
+
conn = await self.session.connection()
|
1275
1293
|
await conn.run_sync(metadata.create_all, tables, skip)
|
1276
1294
|
|
1277
1295
|
|
@@ -1301,7 +1319,7 @@ class DatabaseORMSessionAsync(
|
|
1301
1319
|
throw(ValueError, tables)
|
1302
1320
|
|
1303
1321
|
# Drop.
|
1304
|
-
conn = await self.
|
1322
|
+
conn = await self.session.connection()
|
1305
1323
|
await conn.run_sync(metadata.drop_all, tables, skip)
|
1306
1324
|
|
1307
1325
|
|
@@ -1327,14 +1345,14 @@ class DatabaseORMSessionAsync(
|
|
1327
1345
|
model = type(model)
|
1328
1346
|
|
1329
1347
|
# Get.
|
1330
|
-
result = await self.
|
1348
|
+
result = await self.session.get(model, key)
|
1331
1349
|
|
1332
1350
|
# Autucommit.
|
1333
1351
|
if (
|
1334
1352
|
self.autocommit
|
1335
1353
|
and result is not None
|
1336
1354
|
):
|
1337
|
-
self.
|
1355
|
+
self.session.expunge(result)
|
1338
1356
|
|
1339
1357
|
return result
|
1340
1358
|
|
@@ -1364,7 +1382,7 @@ class DatabaseORMSessionAsync(
|
|
1364
1382
|
results = [
|
1365
1383
|
result
|
1366
1384
|
for key in keys
|
1367
|
-
if (result := await self.
|
1385
|
+
if (result := await self.session.get(model, key)) is not None
|
1368
1386
|
]
|
1369
1387
|
|
1370
1388
|
return results
|
@@ -1390,7 +1408,7 @@ class DatabaseORMSessionAsync(
|
|
1390
1408
|
|
1391
1409
|
# Get.
|
1392
1410
|
select = Select(model)
|
1393
|
-
models = await self.
|
1411
|
+
models = await self.session.exec(select)
|
1394
1412
|
models = list(models)
|
1395
1413
|
|
1396
1414
|
return models
|
@@ -1407,7 +1425,7 @@ class DatabaseORMSessionAsync(
|
|
1407
1425
|
"""
|
1408
1426
|
|
1409
1427
|
# Add.
|
1410
|
-
self.
|
1428
|
+
self.session.add_all(models)
|
1411
1429
|
|
1412
1430
|
|
1413
1431
|
@wrap_transact
|
@@ -1422,7 +1440,7 @@ class DatabaseORMSessionAsync(
|
|
1422
1440
|
|
1423
1441
|
# Delete.
|
1424
1442
|
for model in models:
|
1425
|
-
await self.
|
1443
|
+
await self.session.delete(model)
|
1426
1444
|
|
1427
1445
|
|
1428
1446
|
@wrap_transact
|
@@ -1437,7 +1455,7 @@ class DatabaseORMSessionAsync(
|
|
1437
1455
|
|
1438
1456
|
# Refresh.
|
1439
1457
|
for model in models:
|
1440
|
-
await self.
|
1458
|
+
await self.session.refresh(model)
|
1441
1459
|
|
1442
1460
|
|
1443
1461
|
@wrap_transact
|
@@ -1452,7 +1470,7 @@ class DatabaseORMSessionAsync(
|
|
1452
1470
|
|
1453
1471
|
# Refresh.
|
1454
1472
|
for model in models:
|
1455
|
-
self.
|
1473
|
+
self.session.expire(model)
|
1456
1474
|
|
1457
1475
|
|
1458
1476
|
@overload
|
@@ -1519,7 +1537,7 @@ class DatabaseORMStatement(DatabaseORMStatementSuper[DatabaseORMSession]):
|
|
1519
1537
|
self.sess.get_begin()
|
1520
1538
|
|
1521
1539
|
# Execute.
|
1522
|
-
result: Result = self.sess.
|
1540
|
+
result: Result = self.sess.session.exec(self)
|
1523
1541
|
|
1524
1542
|
## Select.)
|
1525
1543
|
if isinstance(self, Select):
|
@@ -1530,7 +1548,7 @@ class DatabaseORMStatement(DatabaseORMStatementSuper[DatabaseORMSession]):
|
|
1530
1548
|
|
1531
1549
|
## Select.
|
1532
1550
|
if isinstance(self, Select):
|
1533
|
-
self.sess.
|
1551
|
+
self.sess.session.expunge_all()
|
1534
1552
|
|
1535
1553
|
self.sess.commit()
|
1536
1554
|
self.sess.close()
|
@@ -1564,7 +1582,7 @@ class DatabaseORMStatementAsync(DatabaseORMStatementSuper[DatabaseORMSessionAsyn
|
|
1564
1582
|
await self.sess.get_begin()
|
1565
1583
|
|
1566
1584
|
# Execute.
|
1567
|
-
result: Result = await self.sess.
|
1585
|
+
result: Result = await self.sess.session.exec(self)
|
1568
1586
|
|
1569
1587
|
## Select.
|
1570
1588
|
if isinstance(self, Select):
|
@@ -1575,11 +1593,11 @@ class DatabaseORMStatementAsync(DatabaseORMStatementSuper[DatabaseORMSessionAsyn
|
|
1575
1593
|
|
1576
1594
|
## Select.
|
1577
1595
|
if isinstance(self, Select):
|
1578
|
-
self.sess.
|
1596
|
+
self.sess.session.expunge_all()
|
1579
1597
|
|
1580
1598
|
await self.sess.commit()
|
1581
1599
|
await self.sess.close()
|
1582
|
-
await self.sess.orm.
|
1600
|
+
await self.sess.orm.engine.dispose()
|
1583
1601
|
|
1584
1602
|
return result
|
1585
1603
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
reydb/__init__.py,sha256=BnJsTzcwqeQ8-5Boqsehgcpc1eSDkv41v0kdb10gAgM,643
|
2
|
+
reydb/rall.py,sha256=5GI0yuwF72XypNZ1DYIxKizo2Z5pR88Uv0nUpHKYhCk,379
|
3
|
+
reydb/rbase.py,sha256=S3ip2PxvLn2Spgv5G_xd7xgC-U4wjEoAZ7Up25ZQvLk,8223
|
4
|
+
reydb/rbuild.py,sha256=6ZkU3LGkIk04KTPtd8fgTC4pX93p1tvbOhZWWEi-v5A,40846
|
5
|
+
reydb/rconfig.py,sha256=oOYGqhFzWVPx57D-Bbw6B2F9VmqGc_Y-aTy-mJd0Cgk,18163
|
6
|
+
reydb/rconn.py,sha256=K_k6cJ94yrPIFaSZ06enpguTWVPhDu67LHan41C1bRA,7023
|
7
|
+
reydb/rdb.py,sha256=X3ZScVFnPAm6Cqmsx13CCumQH3ZwEQcL4UqpoY42APg,2708
|
8
|
+
reydb/rengine.py,sha256=CoUh0n5ZG1oRdbcTqCl-s8R8ePXJtIxDg79E6dGx2dU,15644
|
9
|
+
reydb/rerror.py,sha256=M7RPXwywLYl5Vew7jfXxUxVnBrM1b_T6V9Izt4B8zI0,14791
|
10
|
+
reydb/rexec.py,sha256=hZe5SRbqo_aTpuB1vI2HXVx1FjtwvKGLRom3uzjTuqI,52949
|
11
|
+
reydb/rinfo.py,sha256=c5otyOikGMVnLFhPbtlgmnFBRR3NMP7xcmMW-LQdaQk,18314
|
12
|
+
reydb/rorm.py,sha256=mnfVf6fulTJ84EyjFqYijdAwdwaybBVvyZKNG4EhbwU,50065
|
13
|
+
reydb-1.2.20.dist-info/METADATA,sha256=3WSGgIL7ScE69ImeI9ma3zezy-rgNmZ0dxe1a1WPr1k,1647
|
14
|
+
reydb-1.2.20.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
15
|
+
reydb-1.2.20.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
16
|
+
reydb-1.2.20.dist-info/RECORD,,
|
reydb-1.2.18.dist-info/RECORD
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
reydb/__init__.py,sha256=MJkZy2rOM2VSj_L2kaKe6CJfsg334vb3OLVUqavWKfM,558
|
2
|
-
reydb/rall.py,sha256=IxSPGh77xz7ndDC7J8kZ_66Gq_xTAztGtnELUku1Ouw,364
|
3
|
-
reydb/rbase.py,sha256=sl2lZWQVC5kXTJid2v5zmy1lMshYLm2NhEQi_dnY_Bw,8232
|
4
|
-
reydb/rbuild.py,sha256=QZF26KDL6oRb6RyMEtIJcbiX9TJzK2aUPqjqGjflF7s,80834
|
5
|
-
reydb/rconfig.py,sha256=cPFt9QI_lj0u4tChBJ0kHYf2G788epbT2oSYk2r24yo,18010
|
6
|
-
reydb/rconn.py,sha256=guRaR8N6RuzZzujwaeq7HhKWTizF9SrUBqEAFjfjpoo,6909
|
7
|
-
reydb/rdb.py,sha256=nieXxFqf07Dljl-12Ub8R8s-uNZjai7PN2rqlvOxyqw,15408
|
8
|
-
reydb/rerror.py,sha256=O7lbnkAamQa1OKz6WJPeBUkzDTP6LNGqBqCfrI02DO4,14722
|
9
|
-
reydb/rexec.py,sha256=uj87vAeKnqNg9tWCy0ycjI9uMj0IgZCS4waL9cC_mTY,52930
|
10
|
-
reydb/rinfo.py,sha256=1lMnD-eN97vHrQ1DM8X7mQIhyLmCg6V0P2QwSeF07_c,18127
|
11
|
-
reydb/rorm.py,sha256=-pb5SJBk2WOluWC0ci0OOCOKOj2MIxoy3oVRJ7whpFQ,49337
|
12
|
-
reydb-1.2.18.dist-info/METADATA,sha256=SCX11Jre4BRem7gUw8lqaZ495-pNgrqhz45C3-3V4Ws,1647
|
13
|
-
reydb-1.2.18.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
14
|
-
reydb-1.2.18.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
15
|
-
reydb-1.2.18.dist-info/RECORD,,
|
File without changes
|
File without changes
|