mdbq 3.2.7__py3-none-any.whl → 3.2.8__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.
@@ -1272,19 +1272,19 @@ def cut_as_year_month(as_month=False):
1272
1272
 
1273
1273
 
1274
1274
  if __name__ == '__main__':
1275
- cut_as_year_month(as_month=False)
1275
+ # cut_as_year_month(as_month=False)
1276
1276
 
1277
1277
  # username = 'root'
1278
1278
  # password = ''
1279
1279
  # host = ''
1280
1280
  # port = ''
1281
1281
  #
1282
- # # 上传 1 个文件到数据库
1283
- # one_file_to_mysql(
1284
- # file=r'/Users/xigua/Downloads/批量SKU导出-批量任务.xlsx',
1285
- # db_name='属性设置3',
1286
- # table_name='京东商品属性',
1287
- # )
1282
+ # 上传 1 个文件到数据库
1283
+ one_file_to_mysql(
1284
+ file=r'/Users/xigua/Downloads/城市等级.csv',
1285
+ db_name='属性设置3',
1286
+ table_name='城市等级',
1287
+ )
1288
1288
 
1289
1289
 
1290
1290
  # col = 1
@@ -6,6 +6,7 @@ from mdbq.mysql import s_query
6
6
  from mdbq.aggregation import optimize_data
7
7
  from mdbq.config import myconfig
8
8
  from mdbq.config import products
9
+ from mdbq.config import set_support
9
10
  import datetime
10
11
  from dateutil.relativedelta import relativedelta
11
12
  import pandas as pd
@@ -18,10 +19,12 @@ import os
18
19
  import time
19
20
  import calendar
20
21
  import concurrent.futures
22
+ import traceback
21
23
 
22
24
  """
23
25
 
24
26
  """
27
+ error_file = os.path.join(set_support.SetSupport(dirname='support').dirname, 'error.log')
25
28
  username, password, host, port, service_database = None, None, None, None, None,
26
29
  if socket.gethostname() in ['xigua_lx', 'xigua1', 'MacBookPro']:
27
30
  conf = myconfig.main()
@@ -65,6 +68,12 @@ class MysqlDatasQuery:
65
68
  return func(*args, **kwargs)
66
69
  except Exception as e:
67
70
  print(f'{func.__name__}, {e}') # 将异常信息返回
71
+ with open(error_file, 'a') as f:
72
+ now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
73
+ f.write(f'\n{now}\n')
74
+ # f.write(f'报错的文件:\n{e.__traceback__.tb_frame.f_globals["__file__"]}\n') # 发生异常所在的文件
75
+ traceback.print_exc(file=open(error_file, 'a')) # 返回完整的堆栈信息
76
+ print(f'更多信息请查看日志文件: {error_file}')
68
77
 
69
78
  return wrapper
70
79
 
@@ -3227,10 +3236,10 @@ def main(days=150, months=3):
3227
3236
 
3228
3237
 
3229
3238
  if __name__ == '__main__':
3230
- main(
3231
- days=150, # 清理聚合数据的日期长度
3232
- months=3 # 生成聚合数据的长度
3233
- )
3239
+ # main(
3240
+ # days=150, # 清理聚合数据的日期长度
3241
+ # months=3 # 生成聚合数据的长度
3242
+ # )
3234
3243
 
3235
3244
  # query_list = [query1, query2]
3236
3245
  # # 使用 ThreadPoolExecutor 来并行运行
@@ -3244,10 +3253,10 @@ if __name__ == '__main__':
3244
3253
  # ),
3245
3254
  # }
3246
3255
 
3247
- # # 3. 清理聚合数据
3248
- # optimize_data.op_data(
3249
- # db_name_lists=['聚合数据'],
3250
- # days=180, # 清理聚合数据的日期长度
3251
- # is_mongo=False,
3252
- # is_mysql=True,
3253
- # )
3256
+ # 3. 清理聚合数据
3257
+ optimize_data.op_data(
3258
+ db_name_lists=['聚合数据'],
3259
+ days=180, # 清理聚合数据的日期长度
3260
+ is_mongo=False,
3261
+ is_mysql=True,
3262
+ )
mdbq/mysql/mysql.py CHANGED
@@ -12,7 +12,9 @@ import pandas as pd
12
12
  from sqlalchemy import create_engine
13
13
  import os
14
14
  import calendar
15
+ from mdbq.config import set_support
15
16
  from mdbq.config import myconfig
17
+ import traceback
16
18
 
17
19
  warnings.filterwarnings('ignore')
18
20
  """
@@ -25,6 +27,7 @@ warnings.filterwarnings('ignore')
25
27
  3. 小数必须使用 decimal, 禁止 float 和 double, 因为计算精度差异,后续需要聚合数据时会引发很多问题
26
28
 
27
29
  """
30
+ error_file = os.path.join(set_support.SetSupport(dirname='support').dirname, 'error.log')
28
31
 
29
32
 
30
33
  def is_valid_date(date_string):
@@ -112,6 +115,12 @@ class MysqlUpload:
112
115
  return func(*args, **kwargs)
113
116
  except Exception as e:
114
117
  print(f'{func.__name__}, {e}') # 将异常信息返回
118
+ with open(error_file, 'a') as f:
119
+ now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
120
+ f.write(f'\n{now}\n')
121
+ # f.write(f'报错的文件:\n{e.__traceback__.tb_frame.f_globals["__file__"]}\n') # 发生异常所在的文件
122
+ traceback.print_exc(file=open(error_file, 'a')) # 返回完整的堆栈信息
123
+ print(f'更多信息请查看日志文件: {error_file}')
115
124
 
116
125
  return wrapper
117
126
 
@@ -196,6 +205,7 @@ class MysqlUpload:
196
205
  else:
197
206
  sql = f"ALTER TABLE `{table_name}` ADD COLUMN `{col}` {dtypes[col]} NOT NULL;"
198
207
  # sql = f"ALTER TABLE `{table_name}` ADD COLUMN `{col}` {dtypes[col]} NOT NULL;"
208
+ # print(sql)
199
209
  cursor.execute(sql)
200
210
  print(f"添加列: {col}({dtypes[col]})") # 添加列并指定数据类型
201
211
 
@@ -861,6 +871,12 @@ class OptimizeDatas:
861
871
  return func(*args, **kwargs)
862
872
  except Exception as e:
863
873
  print(f'{func.__name__}, {e}') # 将异常信息返回
874
+ with open(error_file, 'a') as f:
875
+ now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
876
+ f.write(f'\n{now}\n')
877
+ # f.write(f'报错的文件:\n{e.__traceback__.tb_frame.f_globals["__file__"]}\n') # 发生异常所在的文件
878
+ traceback.print_exc(file=open(error_file, 'a')) # 返回完整的堆栈信息
879
+ print(f'更多信息请查看日志文件: {error_file}')
864
880
 
865
881
  return wrapper
866
882
 
@@ -1162,9 +1178,3 @@ if __name__ == '__main__':
1162
1178
  data = conf['Windows']['xigua_lx']['mysql']['local']
1163
1179
  username, password, host, port = data['username'], data['password'], data['host'], data['port']
1164
1180
  print(username, password, host, port)
1165
-
1166
- df = pd.read_excel('/Users/xigua/Downloads/66563857.xlsx')
1167
- ss = MysqlUpload(username, password, host, port)
1168
- res, data = ss.convert_df_dtypes(df=df)
1169
- print(data)
1170
- print(res)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 3.2.7
3
+ Version: 3.2.8
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1,11 +1,11 @@
1
1
  mdbq/__init__.py,sha256=Il5Q9ATdX8yXqVxtP_nYqUhExzxPC_qk_WXQ_4h0exg,16
2
2
  mdbq/__version__.py,sha256=y9Mp_8x0BCZSHsdLT_q5tX9wZwd5QgqrSIENLrb6vXA,62
3
3
  mdbq/aggregation/__init__.py,sha256=EeDqX2Aml6SPx8363J-v1lz0EcZtgwIBYyCJV6CcEDU,40
4
- mdbq/aggregation/aggregation.py,sha256=ltYntRjxeN9YX1uTR2_zoYEik2PVPD70xAF98d4TcAo,74732
4
+ mdbq/aggregation/aggregation.py,sha256=X4BETpYM_WxBjMZRW1nKZ3Ex2VoNtjRUj7A1MD074gA,74699
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=Q7_brR_9BMc4HDluPmkvrApGFtUCnXReVYJnRQcSOLI,145414
8
+ mdbq/aggregation/query_data.py,sha256=EGRiub-oowM7ImxeYrfpXouv_rlLJFnweYB03Bv1og8,146034
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=shsMl3B9dJqIyztekHt0L01XP7_nLEEY1jsEkCm9FMc,62855
31
+ mdbq/mysql/mysql.py,sha256=apmrfk7Sx3WXFXvEsNtU_VQ5ybgXdZvQEP8QptOkces,63788
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=48isoL6nEi_uniV-ja2HwYAI7O8D1i1goO4SzBwDGSU,19036
49
- mdbq-3.2.7.dist-info/METADATA,sha256=_PvMX_qrt7C5VTFsKDLiS169BwcfwP3-MZgBQEp9SA0,243
50
- mdbq-3.2.7.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
51
- mdbq-3.2.7.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
52
- mdbq-3.2.7.dist-info/RECORD,,
49
+ mdbq-3.2.8.dist-info/METADATA,sha256=_RMYkup1WgIb9RBJcVoL-Sv7KWrznuOnN4W1xmT-CCs,243
50
+ mdbq-3.2.8.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
51
+ mdbq-3.2.8.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
52
+ mdbq-3.2.8.dist-info/RECORD,,
File without changes