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 CHANGED
@@ -23,8 +23,8 @@ __all__ = (
23
23
  )
24
24
 
25
25
 
26
- URLParameter = TypedDict(
27
- 'URLParameter',
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) -> URLParameter:
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`, Use `UPDATE IGNORE INTO`: clause.
812
- - `update`, Use `ON DUPLICATE KEY UPDATE`: clause.
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 'update':
913
- update_content = ',\n '.join([f'`{field}` = VALUES(`{field}`)' for field in sql_fields_list])
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 `DatabaseParameterStatus` or `DatabaseParameterPragma` instance.
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 DatabaseParameterStatus, DatabaseParameterPragma
1765
+ from .rparam import DatabaseParametersStatus, DatabaseParametersPragma
1753
1766
 
1754
1767
  # Build.
1755
1768
 
1756
1769
  ## SQLite.
1757
1770
  if self.backend == 'sqlite':
1758
- dbp = DatabaseParameterPragma(self)
1771
+ dbp = DatabaseParametersPragma(self)
1759
1772
 
1760
1773
  ## Other.
1761
1774
  else:
1762
- dbp = DatabaseParameterStatus(self, False)
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 `DatabaseParameterStatus` or `DatabaseParameterPragma` instance.
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 DatabaseParameterStatus, DatabaseParameterPragma
1791
+ from .rparam import DatabaseParametersStatus, DatabaseParametersPragma
1779
1792
 
1780
1793
  # Build.
1781
1794
 
1782
1795
  ## SQLite.
1783
1796
  if self.backend == 'sqlite':
1784
- dbp = DatabaseParameterPragma(self)
1797
+ dbp = DatabaseParametersPragma(self)
1785
1798
 
1786
1799
  ## Other.
1787
1800
  else:
1788
- dbp = DatabaseParameterStatus(self, True)
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 `DatabaseParameterVariable` or `DatabaseParameterPragma` instance.
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 DatabaseParameterVariable, DatabaseParameterPragma
1817
+ from .rparam import DatabaseParametersVariable, DatabaseParametersPragma
1805
1818
 
1806
1819
  # Build.
1807
1820
 
1808
1821
  ## SQLite.
1809
1822
  if self.backend == 'sqlite':
1810
- dbp = DatabaseParameterPragma(self)
1823
+ dbp = DatabaseParametersPragma(self)
1811
1824
 
1812
1825
  ## Other.
1813
1826
  else:
1814
- dbp = DatabaseParameterVariable(self, False)
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 DatabaseParameterVariable, DatabaseParameterPragma
1843
+ from .rparam import DatabaseParametersVariable, DatabaseParametersPragma
1831
1844
 
1832
1845
  # Build.
1833
1846
 
1834
1847
  ## SQLite.
1835
1848
  if self.backend == 'sqlite':
1836
- dbp = DatabaseParameterPragma(self)
1849
+ dbp = DatabaseParametersPragma(self)
1837
1850
 
1838
1851
  ## Other.
1839
1852
  else:
1840
- dbp = DatabaseParameterVariable(self, True)
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
- 'DatabaseParameter',
21
- 'DatabaseParameterStatus',
22
- 'DatabaseParameterVariable',
23
- 'DatabaseParameterPragma'
20
+ 'DatabaseParameters',
21
+ 'DatabaseParametersStatus',
22
+ 'DatabaseParametersVariable',
23
+ 'DatabaseParametersPragma'
24
24
  )
25
25
 
26
26
 
27
- class DatabaseParameter(DatabaseBase):
27
+ class DatabaseParameters(DatabaseBase):
28
28
  """
29
- Database parameter type.
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 DatabaseParameterStatus(DatabaseParameter):
88
+ class DatabaseParametersStatus(DatabaseParameters):
89
89
  """
90
- Database parameter status type.
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 DatabaseParameterVariable(DatabaseParameter):
158
+ class DatabaseParametersVariable(DatabaseParameters):
159
159
  """
160
- Database parameter variable type.
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 DatabaseParameterPragma(DatabaseParameter):
250
+ class DatabaseParametersPragma(DatabaseParameters):
251
251
  """
252
- Database parameter pragma type.
252
+ Database parameters pragma type.
253
253
  """
254
254
 
255
255
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: reydb
3
- Version: 1.1.40
3
+ Version: 1.1.42
4
4
  Summary: Database method set.
5
5
  Project-URL: homepage, https://github.com/reyxbo/reydb/
6
6
  Author-email: Rey <reyxbo@163.com>
@@ -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=2mP7vSpJHLt-wFkL8tpehYMMIfysyh1Ktg0cR9fjnJk,4821
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=cSh5qVRhkQQVAuYemYOD0MGtJtYIIBGhrjapeiy6sFE,54207
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=VTHBW4gnBjLtITrv73Rtb1Ppw3UJu_LXeKy2tJuGIBE,7016
13
- reydb-1.1.40.dist-info/METADATA,sha256=xQvsJCsasRZEuXV4Aa9eS6IBGKgbXw38vVazAUpcZ0w,1550
14
- reydb-1.1.40.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
15
- reydb-1.1.40.dist-info/licenses/LICENSE,sha256=UYLPqp7BvPiH8yEZduJqmmyEl6hlM3lKrFIefiD4rvk,1059
16
- reydb-1.1.40.dist-info/RECORD,,
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