mdbq 3.2.17__py3-none-any.whl → 3.2.18__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.
@@ -2191,8 +2191,8 @@ class MysqlDatasQuery:
2191
2191
  }
2192
2192
  if not self.update_service:
2193
2193
  return
2194
- min_date = df['日期'].min()
2195
- max_date = df['日期'].max()
2194
+ min_date = df['日期'].min().strftime('%Y-%m-%d')
2195
+ max_date = df['日期'].max().strftime('%Y-%m-%d')
2196
2196
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
2197
2197
  print(f'{now} 正在更新: mysql ({host}:{port}) {db_name}/{table_name} -> {min_date}~{max_date}')
2198
2198
  m_engine.df_to_mysql(
@@ -3255,6 +3255,8 @@ def main(days=150, months=3):
3255
3255
  "生意参谋3",
3256
3256
  "生意经3",
3257
3257
  "达摩盘3",
3258
+ '人群画像2',
3259
+ '人群画像3',
3258
3260
  ]
3259
3261
  # 使用 ThreadPoolExecutor 来并行运行
3260
3262
  with concurrent.futures.ThreadPoolExecutor() as executor:
@@ -3297,10 +3299,10 @@ def main(days=150, months=3):
3297
3299
 
3298
3300
 
3299
3301
  if __name__ == '__main__':
3300
- # main(
3301
- # days=150, # 清理聚合数据的日期长度
3302
- # months=3 # 生成聚合数据的长度
3303
- # )
3302
+ main(
3303
+ days=150, # 清理聚合数据的日期长度
3304
+ months=3 # 生成聚合数据的长度
3305
+ )
3304
3306
 
3305
3307
  # query_list = [query1, query2]
3306
3308
  # # 使用 ThreadPoolExecutor 来并行运行
@@ -3314,10 +3316,10 @@ if __name__ == '__main__':
3314
3316
  # ),
3315
3317
  # }
3316
3318
 
3317
- # 3. 清理聚合数据
3318
- optimize_data.op_data(
3319
- db_name_lists=['聚合数据'],
3320
- days=100, # 清理聚合数据的日期长度
3321
- is_mongo=False,
3322
- is_mysql=True,
3323
- )
3319
+ # # 3. 清理聚合数据
3320
+ # optimize_data.op_data(
3321
+ # db_name_lists=['聚合数据'],
3322
+ # days=30, # 清理聚合数据的日期长度
3323
+ # is_mongo=False,
3324
+ # is_mysql=True,
3325
+ # )
mdbq/mysql/mysql.py CHANGED
@@ -299,23 +299,29 @@ class MysqlUpload:
299
299
  cursor.execute(sql)
300
300
  result = cursor.fetchall() # 复合主键数
301
301
  if len(result) <= 1: # 如果存在复合主键,则不能直接删除 id 键,其他主键可能不是唯一,会报错
302
- cursor.execute(f"SHOW COLUMNS FROM {table_name} LIKE 'id'")
302
+ column_name = 'id'
303
+ sql = (f'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS '
304
+ f'WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s AND COLUMN_NAME = %s')
305
+ # cursor.execute(f"SHOW COLUMNS FROM `{table_name}` LIKE 'id'")
306
+ cursor.execute(sql, (db_name, table_name, column_name))
303
307
  result = cursor.fetchone()
304
308
  if result:
305
- cursor.execute(f"ALTER TABLE {table_name} DROP COLUMN id;") # 删除 id 列
309
+ # cursor.execute(f"ALTER TABLE `{table_name}` DROP COLUMN id;") # 删除 id 列
310
+ sql = f"ALTER TABLE `{table_name}` DROP COLUMN {column_name}" # 删除 id 列
311
+ cursor.execute(sql)
306
312
  cursor.execute(
307
- f"ALTER TABLE {table_name} ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
308
- cursor.execute(f"ALTER TABLE {table_name} AUTO_INCREMENT = 1") # 设置自增从 1 开始
313
+ f"ALTER TABLE `{table_name}` ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
314
+ cursor.execute(f"ALTER TABLE `{table_name}` AUTO_INCREMENT = 1") # 设置自增从 1 开始
309
315
  # print(f'重置自增id')
310
316
  else:
311
- print(f'{table_name} 当前表存在复合主键: {result}, 无法重置自增id')
317
+ print(f'{table_name} 存在复合主键: 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
312
318
  except Exception as e:
313
- print(f'{e}')
319
+ print(f'333 `{table_name}` {e}')
314
320
  connection.rollback()
315
321
  connection.commit()
316
322
 
317
323
 
318
- @try_except
324
+ # @try_except
319
325
  def dict_to_mysql(self, db_name, table_name, dict_data, icm_update=None, main_key=None, unique_main_key=None, index_length=100, set_typ=None, allow_not_null=False, cut_data=None):
320
326
  """
321
327
  插入字典数据
@@ -650,7 +656,7 @@ class MysqlUpload:
650
656
  __res_dict.update({k: 'varchar(255)'})
651
657
  return __res_dict, df
652
658
 
653
- @try_except
659
+ # @try_except
654
660
  def df_to_mysql(self, df, db_name, table_name, set_typ=None, icm_update=[], move_insert=False, df_sql=False, drop_duplicates=False,
655
661
  filename=None, count=None, reset_id=False, allow_not_null=False, cut_data=None):
656
662
  """
@@ -678,10 +684,10 @@ class MysqlUpload:
678
684
  self.filename = filename
679
685
  if isinstance(df, pd.DataFrame):
680
686
  if len(df) == 0:
681
- print(f'{db_name}: {table_name} 传入的 df 数据长度为0, {self.filename}')
687
+ print(f'{db_name}: `{table_name}` 传入的 df 数据长度为0, {self.filename}')
682
688
  return
683
689
  else:
684
- print(f'{db_name}: {table_name} 传入的 df 不是有效的 dataframe 结构, {self.filename}')
690
+ print(f'{db_name}: `{table_name}` 传入的 df 不是有效的 dataframe 结构, {self.filename}')
685
691
  return
686
692
  if not db_name or db_name == 'None':
687
693
  print(f'{db_name} 不能为 None')
@@ -780,7 +786,6 @@ class MysqlUpload:
780
786
  chunksize=1000
781
787
  )
782
788
  if reset_id:
783
- pass
784
789
  # 6. 重置自增列
785
790
  try:
786
791
  # 查询所有复合主键
@@ -791,18 +796,24 @@ class MysqlUpload:
791
796
  cursor.execute(sql)
792
797
  result = cursor.fetchall() # 复合主键数
793
798
  if len(result) <= 1: # 如果存在复合主键,则不能直接删除 id 键,其他主键可能不是唯一,会报错
794
- cursor.execute(f"SHOW COLUMNS FROM {table_name} LIKE 'id'")
799
+ column_name = 'id'
800
+ sql = (f'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS '
801
+ f'WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s AND COLUMN_NAME = %s')
802
+ # cursor.execute(f"SHOW COLUMNS FROM `{table_name}` LIKE 'id'")
803
+ cursor.execute(sql, (db_name, table_name, column_name))
795
804
  result = cursor.fetchone()
796
805
  if result:
797
- cursor.execute(f"ALTER TABLE {table_name} DROP COLUMN id;") # 删除 id 列
806
+ # cursor.execute(f"ALTER TABLE `{table_name}` DROP COLUMN id;") # 删除 id 列
807
+ sql = f"ALTER TABLE `{table_name}` DROP COLUMN {column_name}" # 删除 id 列
808
+ cursor.execute(sql)
798
809
  cursor.execute(
799
- f"ALTER TABLE {table_name} ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
800
- cursor.execute(f"ALTER TABLE {table_name} AUTO_INCREMENT = 1") # 设置自增从 1 开始
810
+ f"ALTER TABLE `{table_name}` ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
811
+ cursor.execute(f"ALTER TABLE `{table_name}` AUTO_INCREMENT = 1") # 设置自增从 1 开始
801
812
  # print(f'重置自增id')
802
813
  else:
803
- print(f'{table_name} 当前表存在复合主键: {result}, 无法重置自增id')
814
+ print(f'{table_name} 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
804
815
  except Exception as e:
805
- print(f'{e}')
816
+ print(f'333 `{table_name}` {e}')
806
817
  connection.rollback()
807
818
  connection.commit() # 提交事务
808
819
  connection.close()
@@ -832,29 +843,34 @@ class MysqlUpload:
832
843
  chunksize=1000
833
844
  )
834
845
  # 6. 重置自增列
835
- if reset_id:
836
- try:
837
- # 查询所有复合主键
838
- sql = (
839
- f"SELECT `COLUMN_NAME` AS `PrimaryKey` FROM `information_schema`.`COLUMNS` "
840
- f"WHERE `TABLE_SCHEMA` = '{db_name}'AND `TABLE_NAME` = '{table_name}' AND `COLUMN_KEY` = 'PRI';"
841
- )
842
- cursor.execute(sql)
843
- result = cursor.fetchall() # 复合主键数
844
- if len(result) <= 1: # 如果存在复合主键,则不能直接删除 id 键,其他主键可能不是唯一,会报错
845
- cursor.execute(f"SHOW COLUMNS FROM {table_name} LIKE 'id'")
846
- result = cursor.fetchone()
847
- if result:
848
- cursor.execute(f"ALTER TABLE {table_name} DROP COLUMN id;") # 删除 id 列
849
- cursor.execute(
850
- f"ALTER TABLE {table_name} ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
851
- cursor.execute(f"ALTER TABLE {table_name} AUTO_INCREMENT = 1") # 设置自增从 1 开始
852
- # print(f'重置自增id')
853
- else:
854
- print(f'{table_name} 当前表存在复合主键: {result}, 无法重置自增id')
855
- except Exception as e:
856
- print(f'{e}')
857
- connection.rollback()
846
+ try:
847
+ # 查询所有复合主键
848
+ sql = (
849
+ f"SELECT `COLUMN_NAME` AS `PrimaryKey` FROM `information_schema`.`COLUMNS` "
850
+ f"WHERE `TABLE_SCHEMA` = '{db_name}'AND `TABLE_NAME` = '{table_name}' AND `COLUMN_KEY` = 'PRI';"
851
+ )
852
+ cursor.execute(sql)
853
+ result = cursor.fetchall() # 复合主键数
854
+ if len(result) <= 1: # 如果存在复合主键,则不能直接删除 id 键,其他主键可能不是唯一,会报错
855
+ column_name = 'id'
856
+ sql = (f'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS '
857
+ f'WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s AND COLUMN_NAME = %s')
858
+ # cursor.execute(f"SHOW COLUMNS FROM `{table_name}` LIKE 'id'")
859
+ cursor.execute(sql, (db_name, table_name, column_name))
860
+ result = cursor.fetchone()
861
+ if result:
862
+ # cursor.execute(f"ALTER TABLE `{table_name}` DROP COLUMN id;") # 删除 id 列
863
+ sql = f"ALTER TABLE `{table_name}` DROP COLUMN {column_name}" # 删除 id
864
+ cursor.execute(sql)
865
+ cursor.execute(
866
+ f"ALTER TABLE `{table_name}` ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
867
+ cursor.execute(f"ALTER TABLE `{table_name}` AUTO_INCREMENT = 1") # 设置自增从 1 开始
868
+ # print(f'重置自增id')
869
+ else:
870
+ print(f'{table_name} 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
871
+ except Exception as e:
872
+ print(f'333 `{table_name}` {e}')
873
+ connection.rollback()
858
874
  connection.close()
859
875
  return
860
876
 
@@ -948,8 +964,8 @@ class MysqlUpload:
948
964
  # print(f'mysql -> df_to_mysql 报错: {e}, {self.filename}')
949
965
  # breakpoint()
950
966
 
951
- # 6. 重置自增列
952
967
  if reset_id:
968
+ # 6. 重置自增列
953
969
  try:
954
970
  # 查询所有复合主键
955
971
  sql = (
@@ -959,18 +975,24 @@ class MysqlUpload:
959
975
  cursor.execute(sql)
960
976
  result = cursor.fetchall() # 复合主键数
961
977
  if len(result) <= 1: # 如果存在复合主键,则不能直接删除 id 键,其他主键可能不是唯一,会报错
962
- cursor.execute(f"SHOW COLUMNS FROM {table_name} LIKE 'id'")
978
+ column_name = 'id'
979
+ sql = (f'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS '
980
+ f'WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s AND COLUMN_NAME = %s')
981
+ # cursor.execute(f"SHOW COLUMNS FROM `{table_name}` LIKE 'id'")
982
+ cursor.execute(sql, (db_name, table_name, column_name))
963
983
  result = cursor.fetchone()
964
984
  if result:
965
- cursor.execute(f"ALTER TABLE {table_name} DROP COLUMN id;") # 删除 id 列
985
+ # cursor.execute(f"ALTER TABLE `{table_name}` DROP COLUMN id;") # 删除 id 列
986
+ sql = f"ALTER TABLE `{table_name}` DROP COLUMN {column_name}" # 删除 id 列
987
+ cursor.execute(sql)
966
988
  cursor.execute(
967
- f"ALTER TABLE {table_name} ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
968
- cursor.execute(f"ALTER TABLE {table_name} AUTO_INCREMENT = 1") # 设置自增从 1 开始
989
+ f"ALTER TABLE `{table_name}` ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
990
+ cursor.execute(f"ALTER TABLE `{table_name}` AUTO_INCREMENT = 1") # 设置自增从 1 开始
969
991
  # print(f'重置自增id')
970
992
  else:
971
- print(f'{table_name} 当前表存在复合主键: {result}, 无法重置自增id')
993
+ print(f'{table_name} 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
972
994
  except Exception as e:
973
- print(f'{e}')
995
+ print(f'333 `{table_name}` {e}')
974
996
  connection.rollback()
975
997
  connection.commit() # 提交事务
976
998
  connection.close()
@@ -1055,19 +1077,19 @@ class MysqlUpload:
1055
1077
  columns = [desc[0] for desc in cursor.description]
1056
1078
  df = pd.DataFrame(rows, columns=columns) # 转为 df
1057
1079
  except Exception as e:
1058
- print(f'{e} {db_name} -> {table_name} 表不存在')
1080
+ print(f'{e} {db_name} -> `{table_name}` 表不存在')
1059
1081
  return df
1060
1082
  finally:
1061
1083
  connection.close()
1062
1084
 
1063
1085
  if len(df) == 0:
1064
- print(f'database: {db_name}, table: {table_name} 查询的数据为空')
1086
+ print(f'database: {db_name}, table: `{table_name}` 查询的数据为空')
1065
1087
  else:
1066
1088
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
1067
1089
  cost_time = int(time.time() - before_time)
1068
1090
  if cost_time < 1:
1069
1091
  cost_time = round(time.time() - before_time, 2)
1070
- print(f'{now} mysql ({self.host}) 表: {table_name} 获取数据长度: {len(df)}, 用时: {cost_time} 秒')
1092
+ print(f'{now} mysql ({self.host}) 表: `{table_name}` 获取数据长度: {len(df)}, 用时: {cost_time} 秒')
1071
1093
  return df
1072
1094
 
1073
1095
  def upload_pandas(self, update_path, db_name, days=None):
@@ -1263,18 +1285,24 @@ class OptimizeDatas:
1263
1285
  cursor.execute(sql)
1264
1286
  result = cursor.fetchall() # 复合主键数
1265
1287
  if len(result) <= 1: # 如果存在复合主键,则不能直接删除 id 键,其他主键可能不是唯一,会报错
1266
- cursor.execute(f"SHOW COLUMNS FROM {table_name} LIKE 'id'")
1288
+ column_name = 'id'
1289
+ sql = (f'SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS '
1290
+ f'WHERE TABLE_SCHEMA = %s AND TABLE_NAME = %s AND COLUMN_NAME = %s')
1291
+ # cursor.execute(f"SHOW COLUMNS FROM `{table_name}` LIKE 'id'")
1292
+ cursor.execute(sql, (self.db_name, table_name, column_name))
1267
1293
  result = cursor.fetchone()
1268
1294
  if result:
1269
- cursor.execute(f"ALTER TABLE {table_name} DROP COLUMN id;") # 删除 id 列
1295
+ # cursor.execute(f"ALTER TABLE `{table_name}` DROP COLUMN id;") # 删除 id 列
1296
+ sql = f"ALTER TABLE `{table_name}` DROP COLUMN {column_name}" # 删除 id 列
1297
+ cursor.execute(sql)
1270
1298
  cursor.execute(
1271
- f"ALTER TABLE {table_name} ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
1272
- cursor.execute(f"ALTER TABLE {table_name} AUTO_INCREMENT = 1") # 设置自增从 1 开始
1299
+ f"ALTER TABLE `{table_name}` ADD column id INT AUTO_INCREMENT PRIMARY KEY FIRST;")
1300
+ cursor.execute(f"ALTER TABLE `{table_name}` AUTO_INCREMENT = 1") # 设置自增从 1 开始
1273
1301
  # print(f'重置自增id')
1274
1302
  else:
1275
- print(f'{table_name} 当前表存在复合主键: {result}, 无法重置自增id')
1303
+ print(f'{table_name} 存在复合主键: {[item['PrimaryKey'] for item in result]}, 无法重置自增id')
1276
1304
  except Exception as e:
1277
- print(f'{e}')
1305
+ print(f'333 `{table_name}` {e}')
1278
1306
  self.connection.rollback()
1279
1307
  self.connection.close()
1280
1308
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
@@ -1290,16 +1318,16 @@ class OptimizeDatas:
1290
1318
  for e_key in except_key:
1291
1319
  if e_key in data.keys(): # 在检查重复数据时,不包含 更新时间 字段
1292
1320
  del data[e_key]
1293
- try:
1294
- delete_id = data['id']
1295
- del data['id']
1296
- data = re.sub(r'\.0+\', ', '\', ', str(data)) # 统一移除小数点后面的 0
1297
- if data in all_datas: # 数据出现重复时
1298
- duplicate_id.append(delete_id) # 添加 id 到 duplicate_id
1299
- continue
1300
- all_datas.append(data) # 数据没有重复
1301
- except Exception as e:
1302
- print(f'{table_name} 函数: mysql - > OptimizeDatas -> delete_duplicate -> {e}')
1321
+ # try:
1322
+ delete_id = data['id']
1323
+ del data['id']
1324
+ data = re.sub(r'\.0+\', ', '\', ', str(data)) # 统一移除小数点后面的 0
1325
+ if data in all_datas: # 数据出现重复时
1326
+ duplicate_id.append(delete_id) # 添加 id 到 duplicate_id
1327
+ continue
1328
+ all_datas.append(data) # 数据没有重复
1329
+ # except Exception as e:
1330
+ # print(f'{table_name} 函数: mysql - > OptimizeDatas -> delete_duplicate -> {e}')
1303
1331
  del all_datas
1304
1332
 
1305
1333
  if not duplicate_id: # 如果没有重复数据,则跳过该数据表
@@ -1312,7 +1340,7 @@ class OptimizeDatas:
1312
1340
  sql = f"DELETE FROM `{table_name}` WHERE id IN ({placeholders})"
1313
1341
  cursor.execute(sql, duplicate_id)
1314
1342
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
1315
- print(f"{now} {table_name} -> {date.strftime('%Y-%m-%d')} before: {len(datas)}, remove: {cursor.rowcount}")
1343
+ print(f"{now} `{table_name}` -> {date.strftime('%Y-%m-%d')} before: {len(datas)}, remove: {cursor.rowcount}")
1316
1344
  self.connection.commit() # 提交事务
1317
1345
  except Exception as e:
1318
1346
  print(f'{self.db_name}/{table_name}, {e}')
@@ -1350,7 +1378,7 @@ class OptimizeDatas:
1350
1378
  sql = f"DELETE FROM `{table_name}` WHERE id IN ({placeholders})"
1351
1379
  cursor.execute(sql, duplicate_id)
1352
1380
  now = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
1353
- print(f"{now} {table_name} -> before: {len(datas)}, "
1381
+ print(f"{now} `{table_name}` -> before: {len(datas)}, "
1354
1382
  f"remove: {cursor.rowcount}")
1355
1383
  self.connection.commit() # 提交事务
1356
1384
  except Exception as e:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 3.2.17
3
+ Version: 3.2.18
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -5,7 +5,7 @@ mdbq/aggregation/aggregation.py,sha256=-yzApnlqSN2L0E1YMu5ml-W827qpKQvWPCOI7jj2k
5
5
  mdbq/aggregation/df_types.py,sha256=U9i3q2eRPTDY8qAPTw7irzu-Tlg4CIySW9uYro81wdk,8125
6
6
  mdbq/aggregation/mysql_types.py,sha256=YTGyrF9vcRgfkQbpT-e-JdJ7c7VF1dDHgyx9YZRES8w,10934
7
7
  mdbq/aggregation/optimize_data.py,sha256=RXIv7cACCgYyehAxMjUYi_S7rVyjIwXKWMaM3nduGtA,3068
8
- mdbq/aggregation/query_data.py,sha256=-l29T7LNZJ7U6QHfa0ZyZVz7N35n23xNZb7XlCDOspQ,148348
8
+ mdbq/aggregation/query_data.py,sha256=Is5RUwDb_ODjU3WH2S-0b-lV1Jux2xgfE7kwNNvPx4Q,148447
9
9
  mdbq/aggregation/query_data_bak.py,sha256=r1FU0C4zjXln7oVSrRkElh4Ehl-9mYhGcq57jLbViUA,104071
10
10
  mdbq/aggregation/query_data_bak20241124.py,sha256=oY95ZK3qt3Wx9pdZKZ5cvDh45Yi5yGj1kl8G6riumHA,144513
11
11
  mdbq/bdup/__init__.py,sha256=AkhsGk81SkG1c8FqDH5tRq-8MZmFobVbN60DTyukYTY,28
@@ -28,7 +28,7 @@ mdbq/log/mylogger.py,sha256=oaT7Bp-Hb9jZt52seP3ISUuxVcI19s4UiqTeouScBO0,3258
28
28
  mdbq/mongo/__init__.py,sha256=SILt7xMtQIQl_m-ik9WLtJSXIVf424iYgCfE_tnQFbw,13
29
29
  mdbq/mongo/mongo.py,sha256=v9qvrp6p1ZRWuPpbSilqveiE0FEcZF7U5xUPI0RN4xs,31880
30
30
  mdbq/mysql/__init__.py,sha256=A_DPJyAoEvTSFojiI2e94zP0FKtCkkwKP1kYUCSyQzo,11
31
- mdbq/mysql/mysql.py,sha256=ZG6BMfoXg6YGnHqv7GfwPwd7RXjoetCAFqPnbdHWqOM,79507
31
+ mdbq/mysql/mysql.py,sha256=1Jsv-Uih9uaJWygirD5SR2vNdEfDn9qVEauisKGnnM0,82038
32
32
  mdbq/mysql/recheck_mysql.py,sha256=rgTpvDMWYTyEn7UQdlig-pdXDluTgiU8JG6lkMh8DV0,8665
33
33
  mdbq/mysql/s_query.py,sha256=MbIprZ4yJDAZ9AahZPzl7hqS695Vs0P-AJNwAtA_EEc,9287
34
34
  mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,1523
@@ -46,7 +46,7 @@ mdbq/req_post/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
46
46
  mdbq/req_post/req_tb.py,sha256=qg7pet73IgKGmCwxaeUyImJIoeK_pBQT9BBKD7fkBNg,36160
47
47
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
48
48
  mdbq/spider/aikucun.py,sha256=yG0wqvKKqAsx_OQXAy-wAJF_DPITL3r_S-9txb5bnHk,22436
49
- mdbq-3.2.17.dist-info/METADATA,sha256=lxqDb9y53ZzJ5OeiUfsV8sdJptpkycbMtQN5HIqO5mM,244
50
- mdbq-3.2.17.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
51
- mdbq-3.2.17.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
52
- mdbq-3.2.17.dist-info/RECORD,,
49
+ mdbq-3.2.18.dist-info/METADATA,sha256=0Ios6aS-xrAmk0h9zT185FLeKXDAMVk-IRRzL0fIFhI,244
50
+ mdbq-3.2.18.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
51
+ mdbq-3.2.18.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
52
+ mdbq-3.2.18.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.44.0)
2
+ Generator: setuptools (70.1.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5