mdbq 4.0.52__py3-none-any.whl → 4.0.53__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 = '4.0.52'
1
+ VERSION = '4.0.53'
@@ -247,7 +247,7 @@ class MysqlDatasQuery:
247
247
  df = df_shop_gmv.merge(df_real_sales, on=['日期', '店铺名称'], how='outer') # 平台数据合并销售数据
248
248
  df = df.merge(df_tg_data, on=['日期', '店铺名称'], how='outer') # 合并推广数据
249
249
  df.fillna(0, inplace=True)
250
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
250
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
251
251
  return df, {
252
252
  'db_name': db_name,
253
253
  'table_name': table_name,
@@ -451,7 +451,7 @@ class MysqlDatasQuery:
451
451
  }
452
452
  )
453
453
  df.insert(loc=1, column='推广渠道', value='万相台无界版')
454
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
454
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
455
455
  # 制作其他聚合表
456
456
  self.pf_datas.append(
457
457
  {
@@ -599,7 +599,7 @@ class MysqlDatasQuery:
599
599
  }
600
600
  )
601
601
  df.insert(loc=1, column='推广渠道', value='万相台无界版') # df中插入新列
602
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
602
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
603
603
  return df, {
604
604
  'db_name': db_name,
605
605
  'table_name': table_name,
@@ -690,7 +690,7 @@ class MysqlDatasQuery:
690
690
  }
691
691
  )
692
692
  df.insert(loc=1, column='推广渠道', value='万相台无界版') # df中插入新列
693
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
693
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
694
694
  return df, {
695
695
  'db_name': db_name,
696
696
  'table_name': table_name,
@@ -781,7 +781,7 @@ class MysqlDatasQuery:
781
781
  }
782
782
  )
783
783
  df.insert(loc=1, column='推广渠道', value='万相台无界版') # df中插入新列
784
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
784
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
785
785
  return df, {
786
786
  'db_name': db_name,
787
787
  'table_name': table_name,
@@ -841,7 +841,7 @@ class MysqlDatasQuery:
841
841
  else '300+' if x >= 300
842
842
  else '300以下'
843
843
  )
844
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
844
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
845
845
  return df, {
846
846
  'db_name': db_name,
847
847
  'table_name': table_name,
@@ -1030,7 +1030,7 @@ class MysqlDatasQuery:
1030
1030
  else x['人群分类'], axis=1
1031
1031
  )
1032
1032
  df['人群分类'] = df['人群分类'].apply(lambda x: str(x).upper() if x else x)
1033
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1033
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1034
1034
  df.fillna(0, inplace=True)
1035
1035
  return df, {
1036
1036
  'db_name': db_name,
@@ -1146,7 +1146,7 @@ class MysqlDatasQuery:
1146
1146
  )
1147
1147
  else:
1148
1148
  df['词分类'] = df['词名字_词包名字'].apply(lambda x: self.ret_keyword(keyword=str(x), as_file=False))
1149
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1149
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1150
1150
  return df, {
1151
1151
  'db_name': db_name,
1152
1152
  'table_name': table_name,
@@ -1295,7 +1295,7 @@ class MysqlDatasQuery:
1295
1295
  '数据主体': df[['日期', '店铺名称', '推广渠道', '营销场景', '花费', '展现量', '观看次数', '加购量', '成交笔数', '成交金额', '直接成交笔数', '直接成交金额']]
1296
1296
  },
1297
1297
  ) # 制作其他聚合表
1298
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1298
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1299
1299
  return df, {
1300
1300
  'db_name': db_name,
1301
1301
  'table_name': table_name,
@@ -1389,7 +1389,7 @@ class MysqlDatasQuery:
1389
1389
  '数据主体': df[['日期', '店铺名称', '推广渠道', '营销场景', '花费', '展现量', '点击量', '加购量', '成交笔数', '成交金额']]
1390
1390
  },
1391
1391
  ) # 制作其他聚合表
1392
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1392
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1393
1393
  logger.info('更新', {'主机': f'{host}:{port}', '库': db_name, '表': table_name})
1394
1394
  return df, {
1395
1395
  'db_name': db_name,
@@ -1430,7 +1430,7 @@ class MysqlDatasQuery:
1430
1430
  idx = df.groupby(['日期', '商品id'])['更新时间'].idxmax()
1431
1431
  df = df.loc[idx]
1432
1432
  df.rename(columns={'商品id': '宝贝id'}, inplace=True)
1433
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1433
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1434
1434
  logger.info('更新', {'主机': f'{host}:{port}', '库': db_name, '表': table_name})
1435
1435
  return df, {
1436
1436
  'db_name': db_name,
@@ -1472,7 +1472,7 @@ class MysqlDatasQuery:
1472
1472
  idx = df.groupby(['日期', 'sku_id'])['更新时间'].idxmax()
1473
1473
  df = df.loc[idx]
1474
1474
  df.rename(columns={'白底图': '商品图片'}, inplace=True)
1475
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1475
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1476
1476
  return df, {
1477
1477
  'db_name': db_name,
1478
1478
  'table_name': table_name,
@@ -1523,7 +1523,7 @@ class MysqlDatasQuery:
1523
1523
  return item['上市年份']
1524
1524
 
1525
1525
  df['上市年份'] = df['商品id'].apply(lambda x: check_year(x))
1526
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1526
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1527
1527
  return df, {
1528
1528
  'db_name': db_name,
1529
1529
  'table_name': table_name,
@@ -1603,7 +1603,7 @@ class MysqlDatasQuery:
1603
1603
  df['上市季节'] = df['上市年月'].apply(lambda x: check_jijie(x))
1604
1604
  p = df.pop('上市季节')
1605
1605
  df.insert(loc=9, column='上市季节', value=p)
1606
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1606
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1607
1607
  return df, {
1608
1608
  'db_name': db_name,
1609
1609
  'table_name': table_name,
@@ -1690,9 +1690,10 @@ class MysqlDatasQuery:
1690
1690
  df = pd.merge(df, df_visitor1, how='left', left_on='一级来源', right_on='一级来源')
1691
1691
  df = pd.merge(df, df_visitor2, how='left', left_on='二级来源', right_on='二级来源')
1692
1692
  df = pd.merge(df, df_visitor3, how='left', left_on='三级来源', right_on='三级来源')
1693
+
1693
1694
  for col in ['一级来源索引', '二级来源索引', '三级来源索引']:
1694
1695
  df[col] = df[col].apply(lambda x: 1000 if str(x) == 'nan' else x)
1695
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1696
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1696
1697
  return df, {
1697
1698
  'db_name': db_name,
1698
1699
  'table_name': table_name,
@@ -1721,7 +1722,7 @@ class MysqlDatasQuery:
1721
1722
  df = pd.DataFrame(data=data_values)
1722
1723
  df.sort_values(by=['款号', '日期'], ascending=[False, True], ignore_index=True, inplace=True)
1723
1724
  df.drop_duplicates(subset=['款号'], keep='last', inplace=True, ignore_index=True)
1724
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1725
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1725
1726
  return df, {
1726
1727
  'db_name': db_name,
1727
1728
  'table_name': table_name,
@@ -1813,7 +1814,7 @@ class MysqlDatasQuery:
1813
1814
  cols = list(df.columns)
1814
1815
  cols.insert(3, cols.pop(cols.index('spu_id')))
1815
1816
  df = df[cols]
1816
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1817
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1817
1818
  return df, {
1818
1819
  'db_name': db_name,
1819
1820
  'table_name': table_name,
@@ -1868,7 +1869,7 @@ class MysqlDatasQuery:
1868
1869
  }
1869
1870
  )
1870
1871
  df = df[df['花费'] > 0]
1871
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1872
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1872
1873
  return df, {
1873
1874
  'db_name': db_name,
1874
1875
  'table_name': table_name,
@@ -1944,7 +1945,7 @@ class MysqlDatasQuery:
1944
1945
  df['k_是否品牌词'] = df['k_是否品牌词'].apply(lambda x: '品牌词' if x else '-')
1945
1946
  df['s_是否品牌词'] = df['搜索词'].str.contains('万里马|wanlima', regex=True)
1946
1947
  df['s_是否品牌词'] = df['s_是否品牌词'].apply(lambda x: '品牌词' if x else '-')
1947
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1948
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1948
1949
  return df, {
1949
1950
  'db_name': db_name,
1950
1951
  'table_name': table_name,
@@ -1994,7 +1995,7 @@ class MysqlDatasQuery:
1994
1995
  idx = df.groupby(['日期', '店铺名称', '商品id', '货号', '访客数', '成交客户数', '加购商品件数', '加购人数'])['更新时间'].idxmax()
1995
1996
  df = df.loc[idx]
1996
1997
  df = df[['日期', '店铺名称', '商品id', '货号', '访客数', '成交客户数', '加购商品件数', '加购人数', '成交单量', '成交金额']]
1997
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
1998
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
1998
1999
  return df, {
1999
2000
  'db_name': db_name,
2000
2001
  'table_name': table_name,
@@ -2044,7 +2045,7 @@ class MysqlDatasQuery:
2044
2045
  idx = df.groupby(['日期', '店铺名称', '商品id', '货号', '访客数', '成交客户数', '加购商品件数', '加购人数'])['更新时间'].idxmax()
2045
2046
  df = df.loc[idx]
2046
2047
  df = df[['日期', '店铺名称', '商品id', '货号', '访客数', '成交客户数', '加购商品件数', '加购人数', '成交单量', '成交金额']]
2047
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
2048
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
2048
2049
  return df, {
2049
2050
  'db_name': db_name,
2050
2051
  'table_name': table_name,
@@ -2104,7 +2105,7 @@ class MysqlDatasQuery:
2104
2105
  idx = df.groupby(['日期', '店铺名称', '词类型', '搜索词'])['更新时间'].idxmax()
2105
2106
  df = df.loc[idx]
2106
2107
  df = df[['日期', '店铺名称', '词类型', '搜索词', '访客数', '加购人数', '支付金额', '支付转化率', '支付买家数', '客单价', 'uv价值']]
2107
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
2108
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
2108
2109
  return df, {
2109
2110
  'db_name': db_name,
2110
2111
  'table_name': table_name,
@@ -2133,7 +2134,7 @@ class MysqlDatasQuery:
2133
2134
  projection={},
2134
2135
  )
2135
2136
  df.drop_duplicates(subset=['场次id'], keep='first', inplace=True, ignore_index=True)
2136
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
2137
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
2137
2138
  ordered_columns = [
2138
2139
  '日期',
2139
2140
  '店铺名称',
@@ -2618,7 +2619,7 @@ class MysqlDatasQuery:
2618
2619
  }
2619
2620
  )
2620
2621
  df.sort_values(['日期', '店铺名称', '花费'], ascending=[False, False, False], ignore_index=True, inplace=True)
2621
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
2622
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
2622
2623
  return df, {
2623
2624
  'db_name': db_name,
2624
2625
  'table_name': table_name,
@@ -2694,7 +2695,7 @@ class MysqlDatasQuery:
2694
2695
  df = df[new_columns]
2695
2696
  df['更新时间'] = df.pop('更新时间')
2696
2697
  df = df.astype({'日期': 'datetime64[ns]'}, errors='ignore')
2697
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
2698
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
2698
2699
  return df, {
2699
2700
  'db_name': db_name,
2700
2701
  'table_name': table_name,
@@ -2723,7 +2724,7 @@ class MysqlDatasQuery:
2723
2724
  projection=projection,
2724
2725
  )
2725
2726
  df.drop_duplicates(subset=['日期', '人群类型', '店铺名称', '人群规模', '广告投入金额'], keep='last', inplace=True, ignore_index=True)
2726
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
2727
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
2727
2728
  return df, {
2728
2729
  'db_name': db_name,
2729
2730
  'table_name': table_name,
@@ -2762,7 +2763,7 @@ class MysqlDatasQuery:
2762
2763
  df.rename(columns={'起始日期': '日期'}, inplace=True)
2763
2764
 
2764
2765
  # df.drop_duplicates(subset=['日期', '店铺名称', '场景id', '父渠道id'], keep='last', inplace=True, ignore_index=True)
2765
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
2766
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
2766
2767
  return df, {
2767
2768
  'db_name': db_name,
2768
2769
  'table_name': table_name,
@@ -2822,7 +2823,7 @@ class MysqlDatasQuery:
2822
2823
  df['用户年龄'] = df['用户年龄'].apply(lambda x: '~'.join(re.findall(r'^(\d+).*-(\d+)岁$', str(x))[0]) if '岁' in str(x) else x)
2823
2824
  df['消费能力等级'] = df['消费能力等级'].apply(lambda x: f'L{''.join(re.findall(r'(\d)', str(x)))}' if '购买力' in str(x) else x)
2824
2825
  df.rename(columns={'消耗_元': '消耗'}, inplace=True)
2825
- set_typ = SET_TYP_DICT[f'{db_name}_{table_name}']
2826
+ set_typ = SET_TYP_DICT.get(f'{db_name}_{table_name}', {})
2826
2827
  return df, {
2827
2828
  'db_name': db_name,
2828
2829
  'table_name': table_name,
@@ -3395,4 +3396,4 @@ if __name__ == '__main__':
3395
3396
  )
3396
3397
  sdq = MysqlDatasQuery(download_manager=download_manager)
3397
3398
  sdq.months = 1
3398
- sdq.shops_concat(db_name='聚合数据', table_name='多店聚合_日报')
3399
+ sdq.dplyd(db_name='聚合数据', table_name='店铺流量来源构成')
@@ -38,7 +38,7 @@ SET_TYP_DICT = {
38
38
  '直接成交笔数': 'int',
39
39
  '直接成交金额': 'decimal(12,2)',
40
40
  },
41
- '聚合数据_奥莱_主体报表': {
41
+ '聚合数据_奥莱店_主体报表': {
42
42
  '日期': 'date',
43
43
  '推广渠道': 'varchar(100)',
44
44
  '店铺名称': 'varchar(255)',
@@ -582,6 +582,27 @@ SET_TYP_DICT = {
582
582
  '实际消耗': 'decimal(10,2)',
583
583
  '推广成交金额': 'decimal(12,2)',
584
584
  },
585
+ '聚合数据_店铺流量来源构成': {
586
+ '日期': 'DATE',
587
+ '店铺名称': 'varchar(255)',
588
+ '类别': 'varchar(100)',
589
+ '来源构成': 'varchar(100)',
590
+ '一级来源': 'varchar(100)',
591
+ '二级来源': 'varchar(100)',
592
+ '三级来源': 'varchar(100)',
593
+ '访客数': 'int',
594
+ '支付金额': 'decimal(12,2)',
595
+ '支付买家数': 'smallint',
596
+ '支付转化率': 'decimal(10,4)',
597
+ '加购人数': 'smallint',
598
+ '加购件数': 'smallint',
599
+ '下单买家数': 'smallint',
600
+ '关注店铺人数': 'smallint',
601
+ '一级来源索引': 'smallint',
602
+ '二级来源索引': 'smallint',
603
+ '三级来源索引': 'smallint',
604
+ '更新时间': 'timestamp',
605
+ },
585
606
  }
586
607
 
587
608
 
mdbq/mysql/uploader.py CHANGED
@@ -1071,6 +1071,10 @@ class MySQLUploader:
1071
1071
  # 统一处理原始数据中列名的特殊字符
1072
1072
  data = self.normalize_column_names(data)
1073
1073
 
1074
+ if not set_typ:
1075
+ logger.warning('set_typ为空, 将自动推断数据类型, 可能存在数据类型识别错误', {
1076
+ 'func': sys._getframe().f_code.co_name,
1077
+ })
1074
1078
  # set_typ的键清洗
1075
1079
  if not set_typ:
1076
1080
  set_typ = {}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mdbq
3
- Version: 4.0.52
3
+ Version: 4.0.53
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1,8 +1,8 @@
1
1
  mdbq/__init__.py,sha256=Il5Q9ATdX8yXqVxtP_nYqUhExzxPC_qk_WXQ_4h0exg,16
2
- mdbq/__version__.py,sha256=oRmzDEkmmyAlXwpbKoDeVNJzH0P6pghSjKc3gq_WNa4,18
2
+ mdbq/__version__.py,sha256=9vyZ4I0j81_4JlQheKzGIaKvwj8TSxiPWOQMlewc28A,18
3
3
  mdbq/aggregation/__init__.py,sha256=EeDqX2Aml6SPx8363J-v1lz0EcZtgwIBYyCJV6CcEDU,40
4
- mdbq/aggregation/query_data.py,sha256=83-CR2jFFrMJMwkuZm43Kn7P3mjTvjP6i4Av6eEudT8,157236
5
- mdbq/aggregation/set_typ_dict.py,sha256=Cax8i6My6xuTC8l-eB0AJ-kOZQwPRcZj-P9dhiiaTj0,21078
4
+ mdbq/aggregation/query_data.py,sha256=-LNj3I1i2pewncAfJ77CLxbxlTcJmF-UgAbdU0FTLbE,157460
5
+ mdbq/aggregation/set_typ_dict.py,sha256=wR-j7odh53htOLsUwXb2zHN2w_vU7-6rL3smBLk5hEo,21863
6
6
  mdbq/log/__init__.py,sha256=Mpbrav0s0ifLL7lVDAuePEi1hJKiSHhxcv1byBKDl5E,15
7
7
  mdbq/log/mylogger.py,sha256=kPe3wsQNaB1slfX-Z7VMqzZoMoqPfc7ylYXZDBeFzzI,24945
8
8
  mdbq/myconf/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
@@ -12,7 +12,7 @@ mdbq/mysql/deduplicator.py,sha256=AB3gL7ZwhcmzGHSu4UY4M6YZVPFZ2wlAN3BCcwAhegQ,73
12
12
  mdbq/mysql/mysql.py,sha256=pDg771xBugCMSTWeskIFTi3pFLgaqgyG3smzf-86Wn8,56772
13
13
  mdbq/mysql/s_query.py,sha256=1wJ3HVjHEF6FA-bVeeesRlsf73CZSvVTEQ51CF1OsE4,46786
14
14
  mdbq/mysql/unique_.py,sha256=MaztT-WIyEQUs-OOYY4pFulgHVcXR1BfCy3QUz0XM_U,21127
15
- mdbq/mysql/uploader.py,sha256=Y5gCXuhZR-Oo89xaU4wRlcrzDtarABEyJLt43GvDhcI,88718
15
+ mdbq/mysql/uploader.py,sha256=dJRAtj-IebPgOHvKKeu-CqoeqfSaRqusSBgt_hXgNdw,88926
16
16
  mdbq/other/__init__.py,sha256=jso1oHcy6cJEfa7udS_9uO5X6kZLoPBF8l3wCYmr5dM,18
17
17
  mdbq/other/download_sku_picture.py,sha256=X66sVdvVgzoNzmgVJyPtd7bjEvctEKtLPblEPF65EWc,46940
18
18
  mdbq/other/error_handler.py,sha256=4p5haAXSY-P78stp4Xwo_MwAngWYqyKj5ogWIuYXMeY,12631
@@ -25,7 +25,7 @@ mdbq/pbix/refresh_all.py,sha256=OBT9EewSZ0aRS9vL_FflVn74d4l2G00wzHiikCC4TC0,5926
25
25
  mdbq/redis/__init__.py,sha256=YtgBlVSMDphtpwYX248wGge1x-Ex_mMufz4-8W0XRmA,12
26
26
  mdbq/redis/getredis.py,sha256=vpBuNc22uj9Vr-_Dh25_wpwWM1e-072EAAIBdB_IpL0,23494
27
27
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
28
- mdbq-4.0.52.dist-info/METADATA,sha256=OLb8hSRm0jr5HU-n2MJ0JILsojpcmcbGBCJCaPdZHN4,364
29
- mdbq-4.0.52.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
30
- mdbq-4.0.52.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
31
- mdbq-4.0.52.dist-info/RECORD,,
28
+ mdbq-4.0.53.dist-info/METADATA,sha256=EAXK83_DJ3401B7lKmpSDmLCCUb_08DOxKmTBOG6WoM,364
29
+ mdbq-4.0.53.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
30
+ mdbq-4.0.53.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
31
+ mdbq-4.0.53.dist-info/RECORD,,
File without changes