reydb 1.1.40__py3-none-any.whl → 1.1.42__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/rbase.py +3 -3
- reydb/rdb.py +41 -28
- reydb/rparam.py +12 -12
- {reydb-1.1.40.dist-info → reydb-1.1.42.dist-info}/METADATA +1 -1
- {reydb-1.1.40.dist-info → reydb-1.1.42.dist-info}/RECORD +7 -7
- {reydb-1.1.40.dist-info → reydb-1.1.42.dist-info}/WHEEL +0 -0
- {reydb-1.1.40.dist-info → reydb-1.1.42.dist-info}/licenses/LICENSE +0 -0
reydb/rbase.py
CHANGED
@@ -23,8 +23,8 @@ __all__ = (
|
|
23
23
|
)
|
24
24
|
|
25
25
|
|
26
|
-
|
27
|
-
'
|
26
|
+
URLParameters = TypedDict(
|
27
|
+
'URLParameters',
|
28
28
|
{
|
29
29
|
'drivername': str,
|
30
30
|
'backend': str,
|
@@ -45,7 +45,7 @@ class DatabaseBase(Base):
|
|
45
45
|
"""
|
46
46
|
|
47
47
|
|
48
|
-
def extract_url(url: str | URL) ->
|
48
|
+
def extract_url(url: str | URL) -> URLParameters:
|
49
49
|
"""
|
50
50
|
Extract parameters from URL of string.
|
51
51
|
|
reydb/rdb.py
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
|
11
11
|
|
12
12
|
from typing import Any, Literal, overload
|
13
|
-
from collections.abc import Iterable, Generator
|
13
|
+
from collections.abc import Iterable, Generator, Container
|
14
14
|
from enum import EnumType
|
15
15
|
from urllib.parse import quote as urllib_quote
|
16
16
|
from pymysql.constants.CLIENT import MULTI_STATEMENTS
|
@@ -793,7 +793,7 @@ class Database(DatabaseBase):
|
|
793
793
|
self,
|
794
794
|
path: str | tuple[str, str],
|
795
795
|
data: TableData,
|
796
|
-
duplicate: Literal['ignore', 'update'] | None = None,
|
796
|
+
duplicate: Literal['ignore', 'update'] | Container[str] | None = None,
|
797
797
|
report: bool | None = None,
|
798
798
|
**kwdata: Any
|
799
799
|
) -> Result:
|
@@ -808,8 +808,9 @@ class Database(DatabaseBase):
|
|
808
808
|
data : Insert data.
|
809
809
|
duplicate : Handle method when constraint error.
|
810
810
|
- `None`: Not handled.
|
811
|
-
- `ignore
|
812
|
-
- `update
|
811
|
+
- `ignore`: Use `UPDATE IGNORE INTO` clause.
|
812
|
+
- `update`: Use `ON DUPLICATE KEY UPDATE` clause and update all fields.
|
813
|
+
- `Container[str]`: Use `ON DUPLICATE KEY UPDATE` clause and update this fields.
|
813
814
|
report : Whether report SQL execute information.
|
814
815
|
- `None`, Use attribute `report_execute_info`: of object `ROption`.
|
815
816
|
- `int`: Use this value.
|
@@ -901,6 +902,13 @@ class Database(DatabaseBase):
|
|
901
902
|
## Join sql part.
|
902
903
|
match duplicate:
|
903
904
|
|
905
|
+
### Not handle.
|
906
|
+
case None:
|
907
|
+
sql = (
|
908
|
+
f'INSERT INTO `{database}`.`{table}`({sql_fields})\n'
|
909
|
+
f'VALUES({sql_values})'
|
910
|
+
)
|
911
|
+
|
904
912
|
### Ignore.
|
905
913
|
case 'ignore':
|
906
914
|
sql = (
|
@@ -909,8 +917,20 @@ class Database(DatabaseBase):
|
|
909
917
|
)
|
910
918
|
|
911
919
|
### Update.
|
912
|
-
case
|
913
|
-
|
920
|
+
case _:
|
921
|
+
sql_fields_list_update = sql_fields_list
|
922
|
+
if duplicate != 'update':
|
923
|
+
sql_fields_list_update = [
|
924
|
+
field
|
925
|
+
for field in sql_fields_list
|
926
|
+
if field in duplicate
|
927
|
+
]
|
928
|
+
update_content = ',\n '.join(
|
929
|
+
[
|
930
|
+
f'`{field}` = VALUES(`{field}`)'
|
931
|
+
for field in sql_fields_list_update
|
932
|
+
]
|
933
|
+
)
|
914
934
|
sql = (
|
915
935
|
f'INSERT INTO `{database}`.`{table}`({sql_fields})\n'
|
916
936
|
f'VALUES({sql_values})\n'
|
@@ -918,13 +938,6 @@ class Database(DatabaseBase):
|
|
918
938
|
f' {update_content}'
|
919
939
|
)
|
920
940
|
|
921
|
-
### Not handle.
|
922
|
-
case _:
|
923
|
-
sql = (
|
924
|
-
f'INSERT INTO `{database}`.`{table}`({sql_fields})\n'
|
925
|
-
f'VALUES({sql_values})'
|
926
|
-
)
|
927
|
-
|
928
941
|
# Execute SQL.
|
929
942
|
result = self.execute(sql, data, report, **kwdata_replace)
|
930
943
|
|
@@ -1741,7 +1754,7 @@ class Database(DatabaseBase):
|
|
1741
1754
|
@property
|
1742
1755
|
def status(self):
|
1743
1756
|
"""
|
1744
|
-
Build `
|
1757
|
+
Build `DatabaseParametersStatus` or `DatabaseParametersPragma` instance.
|
1745
1758
|
|
1746
1759
|
Returns
|
1747
1760
|
-------
|
@@ -1749,17 +1762,17 @@ class Database(DatabaseBase):
|
|
1749
1762
|
"""
|
1750
1763
|
|
1751
1764
|
# Import.
|
1752
|
-
from .rparam import
|
1765
|
+
from .rparam import DatabaseParametersStatus, DatabaseParametersPragma
|
1753
1766
|
|
1754
1767
|
# Build.
|
1755
1768
|
|
1756
1769
|
## SQLite.
|
1757
1770
|
if self.backend == 'sqlite':
|
1758
|
-
dbp =
|
1771
|
+
dbp = DatabaseParametersPragma(self)
|
1759
1772
|
|
1760
1773
|
## Other.
|
1761
1774
|
else:
|
1762
|
-
dbp =
|
1775
|
+
dbp = DatabaseParametersStatus(self, False)
|
1763
1776
|
|
1764
1777
|
return dbp
|
1765
1778
|
|
@@ -1767,7 +1780,7 @@ class Database(DatabaseBase):
|
|
1767
1780
|
@property
|
1768
1781
|
def global_status(self):
|
1769
1782
|
"""
|
1770
|
-
Build `
|
1783
|
+
Build `DatabaseParametersStatus` or `DatabaseParametersPragma` instance.
|
1771
1784
|
|
1772
1785
|
Returns
|
1773
1786
|
-------
|
@@ -1775,17 +1788,17 @@ class Database(DatabaseBase):
|
|
1775
1788
|
"""
|
1776
1789
|
|
1777
1790
|
# Import.
|
1778
|
-
from .rparam import
|
1791
|
+
from .rparam import DatabaseParametersStatus, DatabaseParametersPragma
|
1779
1792
|
|
1780
1793
|
# Build.
|
1781
1794
|
|
1782
1795
|
## SQLite.
|
1783
1796
|
if self.backend == 'sqlite':
|
1784
|
-
dbp =
|
1797
|
+
dbp = DatabaseParametersPragma(self)
|
1785
1798
|
|
1786
1799
|
## Other.
|
1787
1800
|
else:
|
1788
|
-
dbp =
|
1801
|
+
dbp = DatabaseParametersStatus(self, True)
|
1789
1802
|
|
1790
1803
|
return dbp
|
1791
1804
|
|
@@ -1793,7 +1806,7 @@ class Database(DatabaseBase):
|
|
1793
1806
|
@property
|
1794
1807
|
def variables(self):
|
1795
1808
|
"""
|
1796
|
-
Build `
|
1809
|
+
Build `DatabaseParametersVariable` or `DatabaseParametersPragma` instance.
|
1797
1810
|
|
1798
1811
|
Returns
|
1799
1812
|
-------
|
@@ -1801,17 +1814,17 @@ class Database(DatabaseBase):
|
|
1801
1814
|
"""
|
1802
1815
|
|
1803
1816
|
# Import.
|
1804
|
-
from .rparam import
|
1817
|
+
from .rparam import DatabaseParametersVariable, DatabaseParametersPragma
|
1805
1818
|
|
1806
1819
|
# Build.
|
1807
1820
|
|
1808
1821
|
## SQLite.
|
1809
1822
|
if self.backend == 'sqlite':
|
1810
|
-
dbp =
|
1823
|
+
dbp = DatabaseParametersPragma(self)
|
1811
1824
|
|
1812
1825
|
## Other.
|
1813
1826
|
else:
|
1814
|
-
dbp =
|
1827
|
+
dbp = DatabaseParametersVariable(self, False)
|
1815
1828
|
|
1816
1829
|
return dbp
|
1817
1830
|
|
@@ -1827,17 +1840,17 @@ class Database(DatabaseBase):
|
|
1827
1840
|
"""
|
1828
1841
|
|
1829
1842
|
# Import.
|
1830
|
-
from .rparam import
|
1843
|
+
from .rparam import DatabaseParametersVariable, DatabaseParametersPragma
|
1831
1844
|
|
1832
1845
|
# Build.
|
1833
1846
|
|
1834
1847
|
## SQLite.
|
1835
1848
|
if self.backend == 'sqlite':
|
1836
|
-
dbp =
|
1849
|
+
dbp = DatabaseParametersPragma(self)
|
1837
1850
|
|
1838
1851
|
## Other.
|
1839
1852
|
else:
|
1840
|
-
dbp =
|
1853
|
+
dbp = DatabaseParametersVariable(self, True)
|
1841
1854
|
|
1842
1855
|
return dbp
|
1843
1856
|
|
reydb/rparam.py
CHANGED
@@ -17,16 +17,16 @@ from .rdb import Database
|
|
17
17
|
|
18
18
|
|
19
19
|
__all__ = (
|
20
|
-
'
|
21
|
-
'
|
22
|
-
'
|
23
|
-
'
|
20
|
+
'DatabaseParameters',
|
21
|
+
'DatabaseParametersStatus',
|
22
|
+
'DatabaseParametersVariable',
|
23
|
+
'DatabaseParametersPragma'
|
24
24
|
)
|
25
25
|
|
26
26
|
|
27
|
-
class
|
27
|
+
class DatabaseParameters(DatabaseBase):
|
28
28
|
"""
|
29
|
-
Database
|
29
|
+
Database parameters type.
|
30
30
|
"""
|
31
31
|
|
32
32
|
|
@@ -85,9 +85,9 @@ class DatabaseParameter(DatabaseBase):
|
|
85
85
|
self.update(params)
|
86
86
|
|
87
87
|
|
88
|
-
class
|
88
|
+
class DatabaseParametersStatus(DatabaseParameters):
|
89
89
|
"""
|
90
|
-
Database
|
90
|
+
Database parameters status type.
|
91
91
|
"""
|
92
92
|
|
93
93
|
|
@@ -155,9 +155,9 @@ class DatabaseParameterStatus(DatabaseParameter):
|
|
155
155
|
raise AssertionError('database status not update')
|
156
156
|
|
157
157
|
|
158
|
-
class
|
158
|
+
class DatabaseParametersVariable(DatabaseParameters):
|
159
159
|
"""
|
160
|
-
Database
|
160
|
+
Database parameters variable type.
|
161
161
|
"""
|
162
162
|
|
163
163
|
|
@@ -247,9 +247,9 @@ class DatabaseParameterVariable(DatabaseParameter):
|
|
247
247
|
self.rdatabase.execute(sql)
|
248
248
|
|
249
249
|
|
250
|
-
class
|
250
|
+
class DatabaseParametersPragma(DatabaseParameters):
|
251
251
|
"""
|
252
|
-
Database
|
252
|
+
Database parameters pragma type.
|
253
253
|
"""
|
254
254
|
|
255
255
|
|
@@ -1,16 +1,16 @@
|
|
1
1
|
reydb/__init__.py,sha256=SqjJEBMiUMnKkNfmOvw_jprZcj9Edi0jyBKt67xeYUE,544
|
2
2
|
reydb/rall.py,sha256=UWnbtl4oG4YqXyqTMN_5uqE-QqD5nb_-dvarotlTUeU,388
|
3
|
-
reydb/rbase.py,sha256=
|
3
|
+
reydb/rbase.py,sha256=HYoFasGBAhXUUHNFP1doGnHBW3-xkgRc32O9KppGSak,4824
|
4
4
|
reydb/rbuild.py,sha256=iXJ76BNlUflJfMAAEbPuQLyVePyye8aDq7MaXD16Ktw,32419
|
5
5
|
reydb/rconfig.py,sha256=1uQG-khhkupKgzC51nYku3P__-qdaSXZB13GdDyKy00,12312
|
6
6
|
reydb/rconn.py,sha256=YWscFMjBph9ttPXjzTTpaziTd7v7vnE0b7E4mVpJ6oc,6163
|
7
|
-
reydb/rdb.py,sha256=
|
7
|
+
reydb/rdb.py,sha256=3Kr8U6YoxExfUhiaSXUzvfwhOyAdcNZJYicr0Bb8zX4,54791
|
8
8
|
reydb/rerror.py,sha256=lirCR6yv1-9JsC6ZIKCkS0ezcNojAOAbJpup2xtsyx0,9968
|
9
9
|
reydb/rexec.py,sha256=dGdRkG1XR0Z66T0r4nPCSdQzSRWc_Q3t6TPSSrDTIxY,9042
|
10
10
|
reydb/rfile.py,sha256=JoXI_YgR5TDR7kh06eU0TngEOkSW8DmcZ4SDjTl22Wk,15255
|
11
11
|
reydb/rinfo.py,sha256=KXTkcpTGAD3p9RVKKcnmc_FjJtiKRPk-K5ZepPOnphQ,15253
|
12
|
-
reydb/rparam.py,sha256=
|
13
|
-
reydb-1.1.
|
14
|
-
reydb-1.1.
|
15
|
-
reydb-1.1.
|
16
|
-
reydb-1.1.
|
12
|
+
reydb/rparam.py,sha256=6cnSjNlX54iPS1uxMQdpazPM5XL4J87vVgfL6CIYG3U,7031
|
13
|
+
reydb-1.1.42.dist-info/METADATA,sha256=uAVh_Vj1Vs3U2P022pBnZRvrwzPzxAyu0X_ULJOEKA0,1550
|
14
|
+
reydb-1.1.42.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
15
|
+
reydb-1.1.42.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
|
16
|
+
reydb-1.1.42.dist-info/RECORD,,
|
File without changes
|
File without changes
|