mdbq 1.3.0__tar.gz → 1.3.2__tar.gz

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.
Files changed (45) hide show
  1. {mdbq-1.3.0 → mdbq-1.3.2}/PKG-INFO +1 -1
  2. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/df_types.py +5 -1
  3. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/mysql_types.py +8 -5
  4. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/query_data.py +9 -6
  5. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mysql/mysql.py +8 -6
  6. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq.egg-info/PKG-INFO +1 -1
  7. {mdbq-1.3.0 → mdbq-1.3.2}/setup.py +1 -1
  8. {mdbq-1.3.0 → mdbq-1.3.2}/README.txt +0 -0
  9. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/__init__.py +0 -0
  10. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/__version__.py +0 -0
  11. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/__init__.py +0 -0
  12. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/aggregation.py +0 -0
  13. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/aggregation/optimize_data.py +0 -0
  14. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/bdup/__init__.py +0 -0
  15. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/bdup/bdup.py +0 -0
  16. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/clean/__init__.py +0 -0
  17. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/clean/data_clean.py +0 -0
  18. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/company/__init__.py +0 -0
  19. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/company/copysh.py +0 -0
  20. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/__init__.py +0 -0
  21. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/get_myconf.py +0 -0
  22. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/products.py +0 -0
  23. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/set_support.py +0 -0
  24. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/config/update_conf.py +0 -0
  25. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/dataframe/__init__.py +0 -0
  26. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/dataframe/converter.py +0 -0
  27. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/log/__init__.py +0 -0
  28. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/log/mylogger.py +0 -0
  29. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mongo/__init__.py +0 -0
  30. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mongo/mongo.py +0 -0
  31. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mysql/__init__.py +0 -0
  32. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mysql/s_query.py +0 -0
  33. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/mysql/year_month_day.py +0 -0
  34. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/other/__init__.py +0 -0
  35. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/other/porxy.py +0 -0
  36. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/other/pov_city.py +0 -0
  37. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/other/ua_sj.py +0 -0
  38. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/pbix/__init__.py +0 -0
  39. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/pbix/pbix_refresh.py +0 -0
  40. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/pbix/refresh_all.py +0 -0
  41. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq/spider/__init__.py +0 -0
  42. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq.egg-info/SOURCES.txt +0 -0
  43. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq.egg-info/dependency_links.txt +0 -0
  44. {mdbq-1.3.0 → mdbq-1.3.2}/mdbq.egg-info/top_level.txt +0 -0
  45. {mdbq-1.3.0 → mdbq-1.3.2}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 1.3.0
3
+ Version: 1.3.2
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -48,7 +48,11 @@ class DataTypes:
48
48
  }
49
49
  }
50
50
  self.path = set_support.SetSupport(dirname='support').dirname
51
- self.json_file = os.path.join(self.path, 'df_types.json')
51
+ self.system_name = None
52
+ if self.system_name:
53
+ self.json_file = os.path.join(self.path, f'{self.system_name}_df_types.json')
54
+ else:
55
+ self.json_file = os.path.join(self.path, 'df_types.json')
52
56
  if not os.path.isdir(self.path):
53
57
  os.makedirs(self.path)
54
58
  if not os.path.isfile(self.json_file):
@@ -46,11 +46,12 @@ class DataTypes:
46
46
  '数据库量': 0,
47
47
  '集合数量': 0,
48
48
  '字段量': 0,
49
- '数据简介': '记录 dataframe 或者数据库的列信息(dtypes)',
49
+ '数据简介': '记录数据库各表的数据类型信息',
50
50
  }
51
51
  }
52
52
  self.path = set_support.SetSupport(dirname='support').dirname
53
- self.json_file = os.path.join(self.path, 'mysql_types.json')
53
+ self.system_name = 'home_lx'
54
+ self.json_file = os.path.join(self.path, f'mysql_types_{self.system_name}.json')
54
55
  if not os.path.isdir(self.path):
55
56
  os.makedirs(self.path)
56
57
  if not os.path.isfile(self.json_file):
@@ -149,7 +150,7 @@ class DataTypes:
149
150
  return {}, cl, None, None # 返回这些结果的目的是等添加完列再写 json 文件才能读到 types 信息
150
151
 
151
152
 
152
- def mysql_all_dtypes(db_name=None, table_name=None, path=None):
153
+ def mysql_all_dtypes(db_name=None, table_name=None, path=None, system_name=None):
153
154
  """
154
155
  更新笔记本 mysql 中所有数据库的 dtypes 信息到本地 json
155
156
  """
@@ -206,7 +207,9 @@ def mysql_all_dtypes(db_name=None, table_name=None, path=None):
206
207
  time.sleep(0.5)
207
208
 
208
209
  d = DataTypes()
209
- d.json_file = os.path.join(path, f'mysql_types.json') # # json 保存位置
210
+ if system_name:
211
+ d.system_name = system_name # 影响 json 文件名
212
+ # d.json_file = os.path.join(path, f'mysql_types.json') # # json 保存位置
210
213
  for result in results:
211
214
  for db_n, table_n in result.items():
212
215
  # print(db_n, table_n, db_name, table_name)
@@ -242,5 +245,5 @@ def mysql_all_dtypes(db_name=None, table_name=None, path=None):
242
245
  if __name__ == '__main__':
243
246
  # 更新 mysql 中所有数据库的 dtypes 信息到本地 json
244
247
  mysql_all_dtypes(
245
- path='/Users/xigua/Downloads',
248
+ path='/Users/xigua/Downloads', system_name='company',
246
249
  )
@@ -495,7 +495,7 @@ class GroupBy:
495
495
  df.to_excel(os.path.join(path, filename + '.xlsx'), index=index, header=header, engine=engine, freeze_panes=freeze_panes)
496
496
 
497
497
 
498
- def data_aggregation(service_databases=[{}]):
498
+ def data_aggregation(service_databases=[{}], months=1, system_name=None,):
499
499
  """
500
500
  1. 从数据库中读取数据
501
501
  2. 数据聚合清洗
@@ -504,7 +504,7 @@ def data_aggregation(service_databases=[{}]):
504
504
  for service_database in service_databases:
505
505
  for service_name, database in service_database.items():
506
506
  sdq = MysqlDatasQuery(target_service=service_name) # 实例化数据处理类
507
- sdq.months = 1 # 设置数据周期, 1 表示近 2 个月
507
+ sdq.months = months # 设置数据周期, 1 表示近 2 个月
508
508
  g = GroupBy() # 实例化数据聚合类
509
509
  # 实例化数据库连接
510
510
  username, password, host, port = get_myconf.select_config_values(target_service=service_name, database=database)
@@ -558,7 +558,8 @@ def data_aggregation(service_databases=[{}]):
558
558
  db_name=db_name,
559
559
  table_name=table_name,
560
560
  drop_dup=False,
561
- icm_update=unique_key_list
561
+ icm_update=unique_key_list,
562
+ system_name=system_name,
562
563
  ) # 3. 回传数据库
563
564
  res = g.performance(bb_tg=True) # 盈亏表,依赖其他表,单独做
564
565
  m.df_to_mysql(
@@ -566,7 +567,8 @@ def data_aggregation(service_databases=[{}]):
566
567
  db_name='聚合数据',
567
568
  table_name='_全店商品销售',
568
569
  drop_dup=False,
569
- icm_update=['日期', '商品id'] # 设置唯一主键
570
+ icm_update=['日期', '商品id'], # 设置唯一主键
571
+ system_name = system_name,
570
572
  )
571
573
  res = g.performance(bb_tg=False) # 盈亏表,依赖其他表,单独做
572
574
  m.df_to_mysql(
@@ -574,12 +576,13 @@ def data_aggregation(service_databases=[{}]):
574
576
  db_name='聚合数据',
575
577
  table_name='_推广商品销售',
576
578
  drop_dup=False,
577
- icm_update=['日期', '商品id'] # 设置唯一主键
579
+ icm_update=['日期', '商品id'], # 设置唯一主键
580
+ system_name=system_name,
578
581
  )
579
582
 
580
583
  # optimize_data.op_data(service_databases=service_databases, days=3650) # 立即启动对聚合数据的清理工作
581
584
 
582
585
 
583
586
  if __name__ == '__main__':
584
- data_aggregation(service_databases=[{'company': 'mysql'}])
587
+ data_aggregation(service_databases=[{'company': 'mysql'}], months=1, system_name='company')
585
588
  # optimize_data.op_data(service_databases=[{'company': 'mysql'}], days=3650) # 立即启动对聚合数据的清理工作
@@ -57,7 +57,7 @@ class MysqlUpload:
57
57
  }
58
58
  self.filename = None
59
59
 
60
- def df_to_mysql(self, df, table_name, db_name='远程数据源', icm_update=[], icm_up=[], df_sql=False, drop_dup=True, drop_duplicates=False, filename=None, count=None):
60
+ def df_to_mysql(self, df, table_name, db_name='远程数据源', icm_update=[], icm_up=[], df_sql=False, drop_dup=True, drop_duplicates=False, filename=None, count=None, system_name=None):
61
61
  """
62
62
  将 df 写入数据库
63
63
  db_name: 数据库名称
@@ -123,7 +123,7 @@ class MysqlUpload:
123
123
  print(f'创建 mysql 表: {table_name}')
124
124
 
125
125
  # 2. 列数据类型转换,将 df 数据类型转换为 mysql 的数据类型
126
- dtypes, cl, db_n, tb_n = self.convert_dtypes(df=df, db_name=db_name, table_name=table_name)
126
+ dtypes, cl, db_n, tb_n = self.convert_dtypes(df=df, db_name=db_name, table_name=table_name, system_name=system_name)
127
127
 
128
128
  # 有特殊字符不需转义
129
129
  sql = f"SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '{db_name}' AND TABLE_NAME = '{table_name}';"
@@ -169,11 +169,11 @@ class MysqlUpload:
169
169
  # 返回这些结果的目的是等添加完列再写 json 文件才能读到 types 信息
170
170
  # ⚠️ mysql_all_dtypes 函数默认只读取 home_lx 的数据库信息,不会读取其他系统
171
171
  if cl and db_n and tb_n:
172
- mysql_types.mysql_all_dtypes(db_name=db_name, table_name=table_name) # 更新一个表的 dtypes
172
+ mysql_types.mysql_all_dtypes(db_name=db_name, table_name=table_name, system_name=system_name) # 更新一个表的 dtypes
173
173
  elif cl and db_n:
174
- mysql_types.mysql_all_dtypes(db_name=db_name) # 更新一个数据库的 dtypes
174
+ mysql_types.mysql_all_dtypes(db_name=db_name, system_name=system_name) # 更新一个数据库的 dtypes
175
175
  elif cl:
176
- mysql_types.mysql_all_dtypes() # 更新所有数据库所有数据表的 dtypes 信息到本地 json
176
+ mysql_types.mysql_all_dtypes(system_name=system_name) # 更新所有数据库所有数据表的 dtypes 信息到本地 json
177
177
 
178
178
  # 4. 移除指定日期范围内的数据,仅限于聚合数据使用,其他情况不要设置
179
179
  if drop_duplicates and '日期' in df.columns.tolist():
@@ -293,7 +293,7 @@ class MysqlUpload:
293
293
  connection.commit() # 提交事务
294
294
  connection.close()
295
295
 
296
- def convert_dtypes(self, df, db_name, table_name):
296
+ def convert_dtypes(self, df, db_name, table_name, system_name=None):
297
297
  """
298
298
  根据本地 json 转换 df 的类型为 mysql 专有的数据类型
299
299
  可能不存在本地 json 文件 (函数按指定规则转换并更新 json)
@@ -302,6 +302,8 @@ class MysqlUpload:
302
302
  cols = df.columns.tolist()
303
303
  # path = set_support.SetSupport(dirname='support').dirname
304
304
  d = mysql_types.DataTypes()
305
+ if system_name:
306
+ d.system_name = system_name
305
307
  # 从本地文件中读取 dtype 信息
306
308
  dtypes, cl, db_n, tb_n = d.load_dtypes(cl='mysql', db_name=db_name, table_name=table_name)
307
309
  # 可能会因为没有 json 文件, 返回 None
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mdbq
3
- Version: 1.3.0
3
+ Version: 1.3.2
4
4
  Home-page: https://pypi.org/project/mdbsql
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -3,7 +3,7 @@
3
3
  from setuptools import setup, find_packages
4
4
 
5
5
  setup(name='mdbq',
6
- version='1.3.0',
6
+ version='1.3.2',
7
7
  author='xigua, ',
8
8
  author_email="2587125111@qq.com",
9
9
  url='https://pypi.org/project/mdbsql',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes