mdbq 3.10.5__py3-none-any.whl → 3.10.7__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.
mdbq/__version__.py CHANGED
@@ -1 +1 @@
1
- VERSION = '3.10.5'
1
+ VERSION = '3.10.7'
mdbq/mysql/uploader.py CHANGED
@@ -1219,6 +1219,25 @@ class MySQLUploader:
1219
1219
  """
1220
1220
  return sql
1221
1221
 
1222
+ def _get_decimal_scale(self, decimal_type: str) -> int:
1223
+ """
1224
+ 从DECIMAL类型定义中提取小数位数
1225
+
1226
+ :param decimal_type: DECIMAL类型字符串,如'DECIMAL(10,4)'
1227
+ :return: 小数位数
1228
+ :raises: 无显式抛出异常,但解析失败时返回默认值2
1229
+ """
1230
+ try:
1231
+ # 匹配DECIMAL类型中的精度和小数位数
1232
+ match = re.match(r'decimal\((\d+),\s*(\d+)\)', decimal_type.lower())
1233
+ if match:
1234
+ return int(match.group(2))
1235
+ except (ValueError, AttributeError, IndexError):
1236
+ pass
1237
+
1238
+ # 默认返回2位小数
1239
+ return 2
1240
+
1222
1241
  def _prepare_insert_sql(
1223
1242
  self,
1224
1243
  db_name: str,
@@ -1239,7 +1258,7 @@ class MySQLUploader:
1239
1258
  6. 当 check_duplicate=True 且 duplicate_columns 指定了排重列且 update_on_duplicate=False 时,按 duplicate_columns 指定的列(但排除`id`和`更新时间`)排重插入,不考虑是否更新旧数据。
1240
1259
 
1241
1260
  """
1242
- # 获取所有列名(排除id和更新时间列)
1261
+ # 获取所有列名(排除id
1243
1262
  all_columns = [col for col in set_typ.keys()
1244
1263
  if col.lower() != 'id']
1245
1264
 
@@ -1248,9 +1267,15 @@ class MySQLUploader:
1248
1267
  return self._build_simple_insert_sql(db_name, table_name, all_columns,
1249
1268
  update_on_duplicate)
1250
1269
 
1270
+ # 确定排重列(排除id和更新时间列)
1271
+ dup_cols = duplicate_columns if duplicate_columns else [
1272
+ col for col in all_columns
1273
+ if col.lower() not in self.base_excute_col
1274
+ ]
1275
+
1251
1276
  # 情况3-6:检查重复
1252
1277
  return self._build_duplicate_check_sql(db_name, table_name, all_columns,
1253
- duplicate_columns, update_on_duplicate, set_typ)
1278
+ dup_cols, update_on_duplicate, set_typ)
1254
1279
 
1255
1280
  def _execute_batch_insert(
1256
1281
  self,
@@ -1403,7 +1428,14 @@ class MySQLUploader:
1403
1428
  # 准备参数
1404
1429
  row_values = [row.get(col) for col in all_columns]
1405
1430
  if check_duplicate:
1406
- row_values += [row.get(col) for col in duplicate_columns]
1431
+ # 确定排重列(排除id和更新时间列)
1432
+ dup_cols = duplicate_columns if duplicate_columns else [
1433
+ col for col in all_columns
1434
+ if col.lower() not in self.base_excute_col
1435
+ ]
1436
+
1437
+ # 添加排重条件参数
1438
+ row_values += [row.get(col) for col in dup_cols]
1407
1439
 
1408
1440
  # logger.info(sql)
1409
1441
  # logger.info(row_values)
@@ -1540,4 +1572,5 @@ def main():
1540
1572
 
1541
1573
 
1542
1574
  if __name__ == '__main__':
1543
- main()
1575
+ # main()
1576
+ pass
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mdbq
3
- Version: 3.10.5
3
+ Version: 3.10.7
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1,5 +1,5 @@
1
1
  mdbq/__init__.py,sha256=Il5Q9ATdX8yXqVxtP_nYqUhExzxPC_qk_WXQ_4h0exg,16
2
- mdbq/__version__.py,sha256=51aaiJO4QmLmJb4fxtT4uQtl5MznQsVENkLEBRAcEBc,18
2
+ mdbq/__version__.py,sha256=luTjFBlvNtusrL5oiS9aezU8M7ZT0e3xyxokQP2F1Es,18
3
3
  mdbq/aggregation/__init__.py,sha256=EeDqX2Aml6SPx8363J-v1lz0EcZtgwIBYyCJV6CcEDU,40
4
4
  mdbq/aggregation/optimize.py,sha256=2oalzD9weZhDclUC22OLxYa8Zj7KnmsGUoUau_Jlyc4,19796
5
5
  mdbq/aggregation/query_data.py,sha256=5_OzjGR5Sq00q-EgAYmSE5V9i4Solw9y4hkldl4mvt8,179808
@@ -12,7 +12,7 @@ mdbq/mysql/__init__.py,sha256=A_DPJyAoEvTSFojiI2e94zP0FKtCkkwKP1kYUCSyQzo,11
12
12
  mdbq/mysql/deduplicator.py,sha256=brhX3eyE8-kn3nAYweKfBbAkXiNcyw_pL4CTyPqmPBg,21983
13
13
  mdbq/mysql/mysql.py,sha256=Fzaqbjg5g3HdNl50jInIrdurdzcgR2CCzdKLVImD1-Q,55339
14
14
  mdbq/mysql/s_query.py,sha256=X055aLRAgxVvueXx4NbfNjp6MyBI02_XBb1pTKw09L0,8660
15
- mdbq/mysql/uploader.py,sha256=mQUcOFOuw1BeeJpPX1seDSKtJXuTzAG75GA8oQNWMT8,61195
15
+ mdbq/mysql/uploader.py,sha256=Lw9lgzmJkr5ojHQ_VMy4z710ZJpIoH7pzn4zrpZokms,62371
16
16
  mdbq/other/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
17
17
  mdbq/other/download_sku_picture.py,sha256=YU8DxKMXbdeE1OOKEA848WVp62jYHw5O4tXTjUdq9H0,44832
18
18
  mdbq/other/otk.py,sha256=iclBIFbQbhlqzUbcMMoePXBpcP1eZ06ZtjnhcA_EbmE,7241
@@ -25,7 +25,7 @@ mdbq/redis/__init__.py,sha256=YtgBlVSMDphtpwYX248wGge1x-Ex_mMufz4-8W0XRmA,12
25
25
  mdbq/redis/getredis.py,sha256=Uk8-cOWT0JU1qRyIVqdbYokSLvkDIAfcokmYj1ebw8k,24104
26
26
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
27
27
  mdbq/spider/aikucun.py,sha256=YyPWa_nOH1zs8wgTDcgzn5w8szGKWPyWzmWMVIPkFnU,21638
28
- mdbq-3.10.5.dist-info/METADATA,sha256=I0ojjsBkeW8KpaITA6ImuAvlJt3dONcmuJzRpLNkWqU,364
29
- mdbq-3.10.5.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
30
- mdbq-3.10.5.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
31
- mdbq-3.10.5.dist-info/RECORD,,
28
+ mdbq-3.10.7.dist-info/METADATA,sha256=bsu32knUObF_BeSlp2OYExxro_8H1ygHLX2ZMay9Bug,364
29
+ mdbq-3.10.7.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
30
+ mdbq-3.10.7.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
31
+ mdbq-3.10.7.dist-info/RECORD,,
File without changes