mdbq 2.8.4__py3-none-any.whl → 2.8.6__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/aggregation/aggregation.py +24 -32
- mdbq/aggregation/mysql_types.py +2 -2
- mdbq/aggregation/query_data.py +9 -8
- mdbq/clean/clean_upload.py +26 -52
- mdbq/company/copysh.py +3 -1
- mdbq/mysql/mysql.py +1 -1
- {mdbq-2.8.4.dist-info → mdbq-2.8.6.dist-info}/METADATA +1 -1
- {mdbq-2.8.4.dist-info → mdbq-2.8.6.dist-info}/RECORD +10 -10
- {mdbq-2.8.4.dist-info → mdbq-2.8.6.dist-info}/WHEEL +0 -0
- {mdbq-2.8.4.dist-info → mdbq-2.8.6.dist-info}/top_level.txt +0 -0
mdbq/aggregation/aggregation.py
CHANGED
@@ -1201,8 +1201,8 @@ def one_file_to_mysql(file, db_name, table_name):
|
|
1201
1201
|
|
1202
1202
|
|
1203
1203
|
def test():
|
1204
|
-
path = os.path.relpath(r'/Users/xigua/Downloads
|
1205
|
-
|
1204
|
+
path = os.path.relpath(r'/Users/xigua/Downloads/未命名文件夹')
|
1205
|
+
|
1206
1206
|
for root, dirs, files in os.walk(path, topdown=False):
|
1207
1207
|
for name in files:
|
1208
1208
|
if name.endswith('.csv') and 'baidu' not in name and '~' not in name:
|
@@ -1212,43 +1212,35 @@ def test():
|
|
1212
1212
|
# print(name)
|
1213
1213
|
if len(df) == 0:
|
1214
1214
|
continue
|
1215
|
-
|
1216
|
-
|
1215
|
+
# df.insert(loc=1, column='店铺名称', value='万里马官方旗舰店')
|
1216
|
+
if '颜色编码' in df.columns.tolist():
|
1217
|
+
print(name)
|
1218
|
+
df.pop('颜色编码')
|
1219
|
+
df.to_csv(os.path.join(root, name), encoding='utf-8_sig', index=False, header=True)
|
1220
|
+
# pattern = re.findall(r'\d{4}-\d{2}-\d{2}_\d{4}-\d{2}-\d{2}', name)[0]
|
1221
|
+
# new_name = f'py_xg_店铺销售指标_万里马官方旗舰店_{pattern}.csv'
|
1217
1222
|
# df.to_csv(os.path.join(root, name), encoding='utf-8_sig', index=False, header=True)
|
1218
|
-
|
1219
|
-
|
1220
|
-
df.rename(columns={
|
1221
|
-
'订单id': '计划ID',
|
1222
|
-
'投资回报率': '投入产出比',
|
1223
|
-
'直接投资回报率': '直接成交投入产出比',
|
1224
|
-
'预售金额': '直接成交投入产出比',
|
1225
|
-
'直接投资回报率': '总预售成交金额',
|
1226
|
-
'预售订单量': '总预售成交笔数',
|
1227
|
-
# '商品点击量': '展现量',
|
1228
|
-
# '商品点击率': '观看率',
|
1229
|
-
}, inplace=True)
|
1230
|
-
|
1231
|
-
df.to_csv(os.path.join('/Users/xigua/Downloads/', f'py_xg_tg_report_超级直播报表_人群_万里马官方旗舰店_.csv'), encoding='utf-8_sig', index=False, header=True)
|
1223
|
+
# os.remove(os.path.join(root, name))
|
1232
1224
|
|
1233
1225
|
|
1234
1226
|
if __name__ == '__main__':
|
1235
|
-
username = 'root'
|
1236
|
-
password = ''
|
1237
|
-
host = ''
|
1238
|
-
port = ''
|
1239
|
-
|
1240
|
-
# 上传 1 个文件到数据库
|
1241
|
-
one_file_to_mysql(
|
1242
|
-
|
1243
|
-
|
1244
|
-
|
1245
|
-
)
|
1227
|
+
# username = 'root'
|
1228
|
+
# password = ''
|
1229
|
+
# host = ''
|
1230
|
+
# port = ''
|
1231
|
+
#
|
1232
|
+
# # 上传 1 个文件到数据库
|
1233
|
+
# one_file_to_mysql(
|
1234
|
+
# file=r'/Users/xi',
|
1235
|
+
# db_name='推广数据2',
|
1236
|
+
# table_name='超级直播',
|
1237
|
+
# )
|
1246
1238
|
|
1247
1239
|
# # 上传一个目录到指定数据库
|
1248
|
-
# db_name = '
|
1249
|
-
# table_name = '
|
1240
|
+
# db_name = '生意经3'
|
1241
|
+
# table_name = '宝贝指标'
|
1250
1242
|
# upload_dir(
|
1251
|
-
# path=os.path.relpath(r'/Users/xigua/数据中心/原始文件3
|
1243
|
+
# path=os.path.relpath(r'/Users/xigua/数据中心/原始文件3/生意经/宝贝指标sdff'),
|
1252
1244
|
# db_name=db_name,
|
1253
1245
|
# collection_name=table_name,
|
1254
1246
|
# )
|
mdbq/aggregation/mysql_types.py
CHANGED
@@ -64,7 +64,7 @@ class DataTypes:
|
|
64
64
|
def get_mysql_types(self, cl, dtypes, db_name, table_name, is_file_dtype=True):
|
65
65
|
""" 更新 mysql 的 types 信息到 json 文件 """
|
66
66
|
if cl in self.datas.keys():
|
67
|
-
if db_name in list(self.datas[cl].keys()): # ['京东数据2', '推广数据2', '生意参谋2', '生意经
|
67
|
+
if db_name in list(self.datas[cl].keys()): # ['京东数据2', '推广数据2', '生意参谋2', '生意经3']
|
68
68
|
if table_name in list(self.datas[cl][db_name].keys()):
|
69
69
|
if is_file_dtype: # 旧数据优先
|
70
70
|
# # 用 dtypes 更新, 允许手动指定 json 文件里面的数据类型
|
@@ -182,7 +182,7 @@ def mysql_all_dtypes(db_name=None, table_name=None, path=None):
|
|
182
182
|
sys_lists = ['information_schema', 'mysql', 'performance_schema', 'sakila', 'sys']
|
183
183
|
db_name_lists = [item for item in db_name_lists if item not in sys_lists]
|
184
184
|
|
185
|
-
results = [] # 返回结果示例: [{'云电影': '电影更新'}, {'生意经
|
185
|
+
results = [] # 返回结果示例: [{'云电影': '电影更新'}, {'生意经3': 'e3_零售明细统计'}]
|
186
186
|
for db_ in db_name_lists:
|
187
187
|
config.update({'database': db_}) # 添加更新 config 字段
|
188
188
|
connection = pymysql.connect(**config) # 连接数据库
|
mdbq/aggregation/query_data.py
CHANGED
@@ -158,9 +158,10 @@ class MysqlDatasQuery:
|
|
158
158
|
'退款额': 1,
|
159
159
|
'退款额_发货后': 1,
|
160
160
|
'退货量_发货后': 1,
|
161
|
+
'店铺名称': 1,
|
161
162
|
}
|
162
163
|
df = self.download.data_to_df(
|
163
|
-
db_name='生意经
|
164
|
+
db_name='生意经3',
|
164
165
|
table_name='宝贝指标',
|
165
166
|
start_date=start_date,
|
166
167
|
end_date=end_date,
|
@@ -283,7 +284,7 @@ class MysqlDatasQuery:
|
|
283
284
|
def idbm(self):
|
284
285
|
""" 用生意经日数据制作商品 id 和编码对照表 """
|
285
286
|
data_values = self.download.columns_to_list(
|
286
|
-
db_name='生意经
|
287
|
+
db_name='生意经3',
|
287
288
|
table_name='宝贝指标',
|
288
289
|
columns_name=['宝贝id', '商家编码', '行业类目'],
|
289
290
|
)
|
@@ -1338,7 +1339,7 @@ class GroupBy:
|
|
1338
1339
|
df['宝贝id'] = df['宝贝id'].astype(str)
|
1339
1340
|
df.fillna(0, inplace=True)
|
1340
1341
|
# df = df[(df['销售额'] != 0) | (df['退款额'] != 0)] # 注释掉, 因为后续使用生意经作为基准合并推广表,需确保所有商品id 齐全
|
1341
|
-
df = df.groupby(['日期', '宝贝id', '行业类目'], as_index=False).agg(
|
1342
|
+
df = df.groupby(['日期', '店铺名称', '宝贝id', '行业类目'], as_index=False).agg(
|
1342
1343
|
**{'销售额': ('销售额', np.min),
|
1343
1344
|
'销售量': ('销售量', np.min),
|
1344
1345
|
'订单数': ('订单数', np.min),
|
@@ -1359,7 +1360,7 @@ class GroupBy:
|
|
1359
1360
|
)
|
1360
1361
|
self.data_tgyj.update(
|
1361
1362
|
{
|
1362
|
-
table_name: df[['日期', '宝贝id', '销售额', '销售量', '退款额_发货后', '退货量_发货后']],
|
1363
|
+
table_name: df[['日期', '店铺名称', '宝贝id', '销售额', '销售量', '退款额_发货后', '退货量_发货后']],
|
1363
1364
|
}
|
1364
1365
|
)
|
1365
1366
|
return df
|
@@ -1874,7 +1875,7 @@ class GroupBy:
|
|
1874
1875
|
# print(self.data_tgyj)
|
1875
1876
|
tg, syj, idbm, pic, cost = (
|
1876
1877
|
self.data_tgyj['天猫_主体报表'],
|
1877
|
-
self.data_tgyj['
|
1878
|
+
self.data_tgyj['生意经_宝贝指标'],
|
1878
1879
|
self.data_tgyj['商品id编码表'],
|
1879
1880
|
self.data_tgyj['商品id图片对照表'],
|
1880
1881
|
self.data_tgyj['商品成本']) # 这里不要加逗号
|
@@ -1895,7 +1896,7 @@ class GroupBy:
|
|
1895
1896
|
# 推广表合并生意经 , 以推广数据为基准,销售数据不齐全
|
1896
1897
|
df = pd.merge(df, syj, how='left', left_on=['日期', '商品id'], right_on=['日期', '宝贝id'])
|
1897
1898
|
df.drop(labels='宝贝id', axis=1, inplace=True)
|
1898
|
-
df.drop_duplicates(subset=['日期', '
|
1899
|
+
df.drop_duplicates(subset=['日期', '商品id', '花费', '销售额'], keep='last', inplace=True, ignore_index=True)
|
1899
1900
|
df.fillna(0, inplace=True)
|
1900
1901
|
df['成本价'] = df['成本价'].astype('float64')
|
1901
1902
|
df['销售额'] = df['销售额'].astype('float64')
|
@@ -2107,7 +2108,7 @@ def data_aggregation(months=1, is_juhe=True, less_dict=[]):
|
|
2107
2108
|
},
|
2108
2109
|
{
|
2109
2110
|
'数据库名': '聚合数据',
|
2110
|
-
'集合名': '
|
2111
|
+
'集合名': '生意经_宝贝指标',
|
2111
2112
|
'唯一主键': ['日期', '宝贝id'], # 不能加其他字段做主键,比如销售额,是变动的,不是唯一的
|
2112
2113
|
'数据主体': sdq.syj(),
|
2113
2114
|
},
|
@@ -2315,7 +2316,7 @@ def main():
|
|
2315
2316
|
|
2316
2317
|
if __name__ == '__main__':
|
2317
2318
|
data_aggregation(
|
2318
|
-
months=
|
2319
|
+
months=3,
|
2319
2320
|
is_juhe=True, # 生成聚合表
|
2320
2321
|
# less_dict=['多店推广场景_按日聚合'], # 单独聚合某一个数据库
|
2321
2322
|
)
|
mdbq/clean/clean_upload.py
CHANGED
@@ -487,22 +487,22 @@ class DataClean:
|
|
487
487
|
report_names = [
|
488
488
|
{
|
489
489
|
'文件简称': 'baobei',
|
490
|
-
'数据库名': '生意经
|
490
|
+
'数据库名': '生意经3',
|
491
491
|
'集合名称': '宝贝指标',
|
492
492
|
},
|
493
493
|
{
|
494
494
|
'文件简称': 'order',
|
495
|
-
'数据库名': '生意经
|
495
|
+
'数据库名': '生意经3',
|
496
496
|
'集合名称': '订单数据',
|
497
497
|
},
|
498
498
|
{
|
499
499
|
'文件简称': '省份城市分析',
|
500
|
-
'数据库名': '生意经
|
500
|
+
'数据库名': '生意经3',
|
501
501
|
'集合名称': '省份城市分析',
|
502
502
|
},
|
503
503
|
{
|
504
504
|
'文件简称': '店铺销售指标',
|
505
|
-
'数据库名': '生意经
|
505
|
+
'数据库名': '生意经3',
|
506
506
|
'集合名称': '店铺销售指标',
|
507
507
|
},
|
508
508
|
]
|
@@ -538,25 +538,23 @@ class DataClean:
|
|
538
538
|
if name.endswith('.csv') and 'baobei' in name:
|
539
539
|
encoding = self.get_encoding(file_path=os.path.join(root, name))
|
540
540
|
df = pd.read_csv(os.path.join(root, name), encoding=encoding, header=0, na_filter=False)
|
541
|
-
|
542
|
-
df
|
541
|
+
p = df.pop('日期')
|
542
|
+
df.insert(loc=0, column='日期', value=p)
|
543
|
+
df['日期'] = df['日期'].apply(lambda x: '-'.join(re.findall(r'(\d{4})(\d{2})(\d{2})', str(x))[0]) if int(x) > 0 else '')
|
543
544
|
df.replace(to_replace=['--'], value='', regex=False, inplace=True)
|
544
|
-
new_name = f'py_xg_
|
545
|
+
new_name = f'py_xg_{name}'
|
545
546
|
self.save_to_csv(df, root, new_name, encoding='utf-8_sig')
|
546
547
|
os.remove(os.path.join(root, name))
|
547
548
|
elif name.endswith('.csv') and 'order' in name:
|
548
|
-
"""
|
549
|
-
#
|
550
|
-
|
551
|
-
|
552
|
-
date1 ='-'.join(pattern[1:4])
|
553
|
-
date2 = '-'.join(pattern[4:7])
|
554
|
-
df.insert(loc=0, column='日期', value=date1)
|
555
|
-
df.insert(loc=1, column='数据周期', value=f'{date1}_{date2}')
|
549
|
+
""" 如果是手动下载的表格,这里不能使用表格原先的 gb2312, 会报错 """
|
550
|
+
# df = pd.read_csv(os.path.join(root, name), encoding='gb18030', header=0, na_filter=False)
|
551
|
+
encoding = self.get_encoding(file_path=os.path.join(root, name))
|
552
|
+
df = pd.read_csv(os.path.join(root, name), encoding=encoding, header=0, na_filter=False)
|
556
553
|
df.rename(columns={'宝贝标题': '商品标题', '宝贝链接': '商品链接'}, inplace=True)
|
557
|
-
df['
|
558
|
-
|
559
|
-
|
554
|
+
df['日期'] = df['日期'].apply(lambda x: '-'.join(re.findall(r'(\d{4})(\d{2})(\d{2})', str(x))[0]) if int(x) > 0 else '')
|
555
|
+
df['商品id'] = df.apply(lambda x: re.sub(r'.*id=', '', x['商品链接']), axis=1)
|
556
|
+
df = df[df['订单号'] != '']
|
557
|
+
new_name = f'py_xg_{name}'
|
560
558
|
self.save_to_csv(df, root, new_name, encoding='utf-8_sig')
|
561
559
|
os.remove(os.path.join(root, name))
|
562
560
|
elif name.endswith('.csv') and '省份城市分析' in name:
|
@@ -585,27 +583,15 @@ class DataClean:
|
|
585
583
|
os.remove(os.path.join(root, name))
|
586
584
|
elif name.endswith('.csv') and '店铺销售指标' in name:
|
587
585
|
# 生意经, 店铺指标,仅限月数据,实际日指标也可以
|
588
|
-
name_st = re.findall(r'([\u4e00-\u9fa5]+)\(分日', name)
|
589
|
-
if not name_st:
|
590
|
-
print(f'{name} 正则提取文件名失败')
|
591
|
-
os.remove(os.path.join(root, name))
|
592
|
-
continue
|
593
586
|
encoding = self.get_encoding(file_path=os.path.join(root, name))
|
594
587
|
df = pd.read_csv(os.path.join(root, name), encoding=encoding, header=0, na_filter=False)
|
595
588
|
if len(df) == 0:
|
596
589
|
print(f'{name} 报表数据为空')
|
597
590
|
os.remove(os.path.join(root, name))
|
598
591
|
continue
|
599
|
-
df['日期'] = df['日期'].
|
600
|
-
lambda x: '-'.join(re.findall(r'(\d{4})(\d{2})(\d{2})', x)[0]) if x else x)
|
601
|
-
df['日期'] = pd.to_datetime(df['日期'], format='%Y-%m-%d', errors='ignore') # 转换日期列
|
602
|
-
# min_clm = str(df.min()['日期']).split(' ')[0]
|
603
|
-
# max_clm = str(df.max()['日期']).split(' ')[0]
|
604
|
-
min_clm = str(df['日期'].min()).split(' ')[0]
|
605
|
-
max_clm = str(df['日期'].max()).split(' ')[0]
|
606
|
-
new_name = f'py_xg_天猫_{name_st[0]}-{min_clm}_{max_clm}.csv' # 保存时将(分日)去掉
|
592
|
+
df['日期'] = df['日期'].apply(lambda x: '-'.join(re.findall(r'(\d{4})(\d{2})(\d{2})', str(x))[0]) if int(x) > 0 else '')
|
607
593
|
df.replace(to_replace=['--'], value='', regex=False, inplace=True)
|
608
|
-
|
594
|
+
new_name = f'py_xg_{name}'
|
609
595
|
self.save_to_csv(df, root, new_name, encoding='utf-8_sig')
|
610
596
|
os.remove(os.path.join(root, name))
|
611
597
|
|
@@ -1100,29 +1086,17 @@ class DataClean:
|
|
1100
1086
|
if 'py_xg' not in name: # 排除非目标文件
|
1101
1087
|
continue
|
1102
1088
|
|
1103
|
-
if
|
1104
|
-
t_path = os.path.join(self.source_path, '
|
1105
|
-
bib(t_path, _as_month=True)
|
1106
|
-
elif '天猫' in name and name.endswith('.csv') and '省份城市分析' in name:
|
1107
|
-
t_path = os.path.join(self.source_path, '天猫_生意经', '省份城市分析')
|
1108
|
-
bib(t_path, _as_month=True)
|
1109
|
-
elif '天猫' in name and name.endswith('.csv') and '店铺销售指标' in name:
|
1110
|
-
t_path = os.path.join(self.source_path, '天猫_生意经', '店铺销售指标')
|
1111
|
-
bib(t_path, _as_month=False)
|
1112
|
-
elif '天猫' in name and name.endswith('.csv') and 'order' in name:
|
1113
|
-
t_path = os.path.join(self.source_path, '天猫_生意经', '订单数据')
|
1114
|
-
bib(t_path, _as_month=False)
|
1115
|
-
elif '淘宝' in name or '企业店' in name and name.endswith('.csv') and 'baobei' in name:
|
1116
|
-
t_path = os.path.join(self.source_path, '淘宝_生意经', '宝贝指标')
|
1089
|
+
if name.endswith('.csv') and 'baobei' in name:
|
1090
|
+
t_path = os.path.join(self.source_path, '生意经', '宝贝指标')
|
1117
1091
|
bib(t_path, _as_month=True)
|
1118
|
-
elif
|
1119
|
-
t_path = os.path.join(self.source_path, '
|
1092
|
+
elif name.endswith('.csv') and '省份城市分析' in name:
|
1093
|
+
t_path = os.path.join(self.source_path, '生意经', '省份城市分析')
|
1120
1094
|
bib(t_path, _as_month=True)
|
1121
|
-
elif
|
1122
|
-
t_path = os.path.join(self.source_path, '
|
1095
|
+
elif name.endswith('.csv') and '店铺销售指标' in name:
|
1096
|
+
t_path = os.path.join(self.source_path, '生意经', '店铺销售指标')
|
1123
1097
|
bib(t_path, _as_month=False)
|
1124
|
-
elif
|
1125
|
-
t_path = os.path.join(self.source_path, '
|
1098
|
+
elif name.endswith('.csv') and 'order' in name:
|
1099
|
+
t_path = os.path.join(self.source_path, '生意经', '订单数据')
|
1126
1100
|
bib(t_path, _as_month=False)
|
1127
1101
|
|
1128
1102
|
# @try_except
|
mdbq/company/copysh.py
CHANGED
@@ -324,7 +324,7 @@ def op_data(days: int =100):
|
|
324
324
|
'推广数据_淘宝店',
|
325
325
|
'爱库存2',
|
326
326
|
'生意参谋3',
|
327
|
-
'生意经
|
327
|
+
'生意经3',
|
328
328
|
# '聚合数据',
|
329
329
|
'达摩盘3',
|
330
330
|
],
|
@@ -407,6 +407,8 @@ def main():
|
|
407
407
|
)
|
408
408
|
# print(conf)
|
409
409
|
myconfig.write_back(datas=conf) # 写回文件生效
|
410
|
+
now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S ')
|
411
|
+
print(f'{now}数据完成!')
|
410
412
|
|
411
413
|
t.sleep_minutes = 5 # 同步前休眠时间
|
412
414
|
if socket.gethostname() == 'company' or socket.gethostname() == 'Mac2.local':
|
mdbq/mysql/mysql.py
CHANGED
@@ -68,7 +68,7 @@ class MysqlUpload:
|
|
68
68
|
|
69
69
|
return wrapper
|
70
70
|
|
71
|
-
@try_except
|
71
|
+
# @try_except
|
72
72
|
def df_to_mysql(self, df, table_name, db_name='远程数据源', icm_update=[], service_database={'xigua_lx': 'mysql'}, move_insert=False, df_sql=False, drop_duplicates=False, filename=None, count=None, json_path=None, reset_id=False):
|
73
73
|
"""
|
74
74
|
将 df 写入数据库
|
@@ -1,18 +1,18 @@
|
|
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=
|
4
|
+
mdbq/aggregation/aggregation.py,sha256=fLsYQO7LTUtVFaVOxXry4OZviiIpZMcTLplE-HXW9XY,71964
|
5
5
|
mdbq/aggregation/df_types.py,sha256=U9i3q2eRPTDY8qAPTw7irzu-Tlg4CIySW9uYro81wdk,8125
|
6
|
-
mdbq/aggregation/mysql_types.py,sha256=
|
6
|
+
mdbq/aggregation/mysql_types.py,sha256=YTGyrF9vcRgfkQbpT-e-JdJ7c7VF1dDHgyx9YZRES8w,10934
|
7
7
|
mdbq/aggregation/optimize_data.py,sha256=79uwiM2WqNNFxGpE2wKz742PRq-ZGgFjdOV0vgptHdY,3513
|
8
|
-
mdbq/aggregation/query_data.py,sha256=
|
8
|
+
mdbq/aggregation/query_data.py,sha256=e0KqmRsVxmeYRfys6MxNhx6KfO1wgMu7-bRF-nzso3o,100100
|
9
9
|
mdbq/bdup/__init__.py,sha256=AkhsGk81SkG1c8FqDH5tRq-8MZmFobVbN60DTyukYTY,28
|
10
10
|
mdbq/bdup/bdup.py,sha256=LAV0TgnQpc-LB-YuJthxb0U42_VkPidzQzAagan46lU,4234
|
11
11
|
mdbq/clean/__init__.py,sha256=A1d6x3L27j4NtLgiFV5TANwEkLuaDfPHDQNrPBbNWtU,41
|
12
|
-
mdbq/clean/clean_upload.py,sha256=
|
12
|
+
mdbq/clean/clean_upload.py,sha256=LRXcvsLqON5NJ5rj7RbeV0750N2Jrjtmr4J7sNPNPoM,81544
|
13
13
|
mdbq/clean/data_clean.py,sha256=ucfslhqXVZoH2QaXHSAWDky0GhIvH9f4GeNaHg4SrFE,104790
|
14
14
|
mdbq/company/__init__.py,sha256=qz8F_GsP_pMB5PblgJAUAMjasuZbOEp3qQOCB39E8f0,21
|
15
|
-
mdbq/company/copysh.py,sha256=
|
15
|
+
mdbq/company/copysh.py,sha256=gWaNgRe_rBHBBphch2AHkGAljZRdfqYBn_FC3m_l11A,20061
|
16
16
|
mdbq/company/copysh_bak.py,sha256=NvlXCBZBcO2GIT5nLRYYqhOyHWM1-1RE7DHvgbj6jmQ,19723
|
17
17
|
mdbq/company/home_sh.py,sha256=42CZ2tZIXHLl2mOl2gk2fZnjH2IHh1VJ1s3qHABjonY,18021
|
18
18
|
mdbq/config/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
@@ -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=
|
31
|
+
mdbq/mysql/mysql.py,sha256=5d-Uqikf1R1vszdRNd6dfTO46qlHg8T6rNZPUl9oUPM,45711
|
32
32
|
mdbq/mysql/recheck_mysql.py,sha256=jHQSlQy0PlQ_EYICQv_2nairUX3t6OIwPtSELKIpjkY,8702
|
33
33
|
mdbq/mysql/s_query.py,sha256=bgNNIqYLDCHjD5KTFcm6x4u74selpAGs5ouJYuqX86k,8447
|
34
34
|
mdbq/mysql/year_month_day.py,sha256=VgewoE2pJxK7ErjfviL_SMTN77ki8GVbTUcao3vFUCE,1523
|
@@ -45,7 +45,7 @@ mdbq/req_post/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
|
|
45
45
|
mdbq/req_post/req_tb.py,sha256=PexWSCPJNM6Tv0ol4lAWIhlOwsAr_frnjtcdSHCFiek,36179
|
46
46
|
mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
|
47
47
|
mdbq/spider/aikucun.py,sha256=jHrdGWBJQaSywx7V-U4YuM6vWkwC5SR5tTOOdB3YU_c,17306
|
48
|
-
mdbq-2.8.
|
49
|
-
mdbq-2.8.
|
50
|
-
mdbq-2.8.
|
51
|
-
mdbq-2.8.
|
48
|
+
mdbq-2.8.6.dist-info/METADATA,sha256=SMIdBPT6crxi8L5pr7RX8UpZiA6helJ9yvxZ2D0Hois,243
|
49
|
+
mdbq-2.8.6.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
|
50
|
+
mdbq-2.8.6.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
|
51
|
+
mdbq-2.8.6.dist-info/RECORD,,
|
File without changes
|
File without changes
|