mns-common 1.2.5.3__py3-none-any.whl → 1.2.5.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.

Potentially problematic release.


This version of mns-common might be problematic. Click here for more details.

@@ -0,0 +1,7 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
@@ -0,0 +1,120 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 14
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+
9
+ import requests
10
+ from bs4 import BeautifulSoup
11
+ import pandas as pd
12
+ from loguru import logger
13
+
14
+
15
+ def get_hk_company_info(symbol, ths_cookie):
16
+ symbol = symbol[1:5]
17
+ symbol = "HK" + symbol
18
+ url = "https://basic.10jqka.com.cn/new/" + symbol + "/company.html"
19
+
20
+ headers = {
21
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
22
+ "Accept-Language": "zh-CN,zh;q=0.9",
23
+ "Cache-Control": "max-age=0",
24
+ "Connection": "keep-alive",
25
+ "Referer": "https://basic.10jqka.com.cn/new/HK1456/news.html",
26
+ "Sec-Fetch-Dest": "document",
27
+ "Sec-Fetch-Mode": "navigate",
28
+ "Sec-Fetch-Site": "same-origin",
29
+ "Sec-Fetch-User": "?1",
30
+ "Upgrade-Insecure-Requests": "1",
31
+ "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36",
32
+ "sec-ch-ua": "\"Google Chrome\";v=\"129\", \"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"129\"",
33
+ "sec-ch-ua-mobile": "?0",
34
+ "sec-ch-ua-platform": "\"macOS\"",
35
+ "cookie": ths_cookie
36
+ }
37
+ cookies = {
38
+ "Hm_lvt_722143063e4892925903024537075d0d": "1728263496",
39
+ "Hm_lvt_929f8b362150b1f77b477230541dbbc2": "1728263496",
40
+ "Hm_lvt_78c58f01938e4d85eaf619eae71b4ed1": "1728263496",
41
+ "u_ukey": "A10702B8689642C6BE607730E11E6E4A",
42
+ "u_uver": "1.0.0",
43
+ "u_dpass": "mZuXjNOJ5najLo9im8e7OFWfVDerAPcR%2F4NwI5iI52Z9Il1%2FHk%2FIWnu2ARoy1hTUHi80LrSsTFH9a%2B6rtRvqGg%3D%3D",
44
+ "u_did": "5DC9AE36023C4F578A90F6BD333F757C",
45
+ "u_ttype": "WEB",
46
+ "ttype": "WEB",
47
+ "user": "MDq%2BsNDQcE06Ok5vbmU6NTAwOjYxMzk4NTQ0ODo1LDEsMjM7NiwxLDIzOzcsMTExMTExMTExMTEwLDIzOzgsMTExMTAxMTEwMDAwMTExMTEwMDEwMDEwMDEwMDAwMDAsMjM7MzMsMDAwMTAwMDAwMDAwLDIzOzM2LDEwMDExMTExMDAwMDExMDAxMDExMTExMSwyMzs0NiwwMDAwMTExMTEwMDAwMDExMTExMTExMTEsMjM7NTEsMTEwMDAwMDAwMDAwMDAwMCwyMzs1OCwwMDAwMDAwMDAwMDAwMDAwMSwyMzs3OCwxLDIzOzg3LDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMCwyMzsxMTksMDAwMDAwMDAwMDAwMDAwMDAwMTAxMDAwMDAsMjM7MTI1LDExLDIzOzQ0LDExLDQwOzEsMTAxLDQwOzIsMSw0MDszLDEsNDA7MTAyLDEsNDA6Mjc6Ojo2MDM5ODU0NDg6MTcyODI2MzUyMjo6OjE2MzQ1NjY5ODA6NjA0ODAwOjA6MTI4OGMyYzVhNjQ4OTBmNDM2MDE0YWM4NDkzMjA3ODFmOmRlZmF1bHRfNDox",
48
+ "userid": "603985448",
49
+ "u_name": "%BE%B0%D0%D0pM",
50
+ "escapename": "%25u666f%25u884cpM",
51
+ "ticket": "0ace7c286307aca34a80cbe0fb1d75a6",
52
+ "user_status": "0",
53
+ "utk": "9f7d91056c3e5b72e2559a2b45ba1e17",
54
+ "reviewJump": "nojump",
55
+ "searchGuide": "sg",
56
+ "usersurvey": "1",
57
+ "v": "A1DK4qi1A9ChlN_UVszdo2J-J5WnGTRlVv2IZ0ohHKt-hf6L8ikE86YNWPSZ",
58
+ "reviewJumphk": "nojump"
59
+ }
60
+
61
+ response = requests.get(url, headers=headers, cookies=cookies)
62
+ soup = BeautifulSoup(response.text, "lxml")
63
+
64
+ table_data_list = soup.find(attrs={'class': 'm_table'}).find_all('td')
65
+ # 初始化一个空的字典,用于存储数据
66
+ data = {}
67
+ # 遍历每个单元格
68
+ for cell in table_data_list:
69
+ try:
70
+ # 提取标题和内容
71
+ strong_tag = cell.find('strong')
72
+ span_tag = cell.find('span')
73
+
74
+ if strong_tag and span_tag:
75
+ key = strong_tag.get_text(strip=True).replace(':', '') # 获取标题
76
+ value = span_tag.get_text(strip=True) # 获取内容
77
+
78
+ # 将数据添加到字典中
79
+ data[key] = value
80
+ except BaseException as e:
81
+ logger.error("转换公司信息异常:{}", e)
82
+
83
+ # 将字典转换为 DataFrame
84
+ company_hk_df = pd.DataFrame([data])
85
+ company_hk_df.rename(columns={
86
+ '公司名称': "company_name",
87
+ '注册地址': "registered_address",
88
+ '英文名称': "english_name",
89
+ '所属行业': "industry",
90
+ '公司成立日期 ': "list_date",
91
+ '公司网址': "company_web_site",
92
+ '主营业务': "main_business",
93
+ '董 事 长': "chairman",
94
+ '证券事务代表': "securities_representative",
95
+ '员工人数': "employees",
96
+ '核 数 师 ': "auditor",
97
+ '法律顾问': "legal_adviser",
98
+ '年 结 日 ': "closing_date",
99
+ '电\u3000\u3000话': "telephone",
100
+ '传\u3000\u3000真': "fax",
101
+ '电\u3000\u3000邮': "e_mail",
102
+ '办公地址': "office_address"
103
+ }, inplace=True)
104
+ company_detail = soup.find(attrs={'class': 'yellow tip lh24'})
105
+
106
+ soup = BeautifulSoup(company_detail.next, 'html.parser')
107
+ text = soup.text
108
+ company_hk_df['company_detail'] = text
109
+
110
+ return company_hk_df
111
+
112
+
113
+ from mns_common.db.MongodbUtil import MongodbUtil
114
+
115
+ mongodb_util = MongodbUtil('27017')
116
+ if __name__ == '__main__':
117
+ stock_account_info = mongodb_util.find_query_data('stock_account_info', {"type": "ths_cookie", })
118
+ ths_cookie_test = list(stock_account_info['cookie'])[0]
119
+ company_hk_df_test = get_hk_company_info('00839', ths_cookie_test)
120
+ print(company_hk_df_test)
@@ -53,6 +53,7 @@ def get_company_info(symbol: str = "688272") -> pd.DataFrame:
53
53
 
54
54
  # 获取股票详细信息
55
55
  # HK市场 https://basic.10jqka.com.cn/mobile/HK1456/profile.html https://basic.10jqka.com.cn/mobile/HK1456/company.html
56
+ # https://basic.10jqka.com.cn/new/HK1456/company.html
56
57
  # https://basic.10jqka.com.cn/astockph/briefinfo/index.html?showhead=0&fromshare=1&code=300430&marketid=33&client_userid=ESgcM&back_source=hyperlink&share_hxapp=isc&fontzoom=no#/company/ziliao
57
58
  def get_company_info_detail(symbol: str = "688272") -> pd.DataFrame:
58
59
  try:
@@ -273,6 +273,8 @@ def merge_zt_reason(now_zt_pool_df, str_day, last_trade_zt):
273
273
  logger.error("获取涨停原因异常:{}", e)
274
274
 
275
275
  last_trade_zt_copy = last_trade_zt.copy()
276
+ if "zt_reason" not in last_trade_zt.columns:
277
+ last_trade_zt_copy['zt_reason'] = '暂无'
276
278
  last_trade_zt_copy = last_trade_zt_copy[['symbol', 'zt_reason']]
277
279
 
278
280
  if data_frame_util.is_empty(zt_reason_df):
@@ -370,13 +372,13 @@ def zt_reason_group(zt_pool_df):
370
372
 
371
373
 
372
374
  if __name__ == '__main__':
373
- str_day_test = '2024-09-27'
375
+ str_day_test = '2024-09-30'
374
376
  em_now_zt_pool_test = stock_zt_pool_api.stock_em_zt_pool_df(date_handle_util.no_slash_date(str_day_test))
375
377
  ths_zt_pool_df = get_zt_reason(str_day_test)
376
378
 
377
379
  em_now_zt_pool_test.loc[~(em_now_zt_pool_test['symbol'].isin(ths_zt_pool_df['symbol']))]
378
380
 
379
381
  while True:
380
- result_zt_df_test = get_now_zt_pool_with_reason('2024-09-27')
382
+ result_zt_df_test = get_now_zt_pool_with_reason(str_day_test)
381
383
  zt_reason_group(result_zt_df_test)
382
384
  logger.info(1)
@@ -0,0 +1,7 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
@@ -23,3 +23,12 @@ def get_hk_company_info():
23
23
  'hk_ggt': 1}
24
24
  return mongodb_util.find_query_data_choose_field(db_name_constant.COMPANY_INFO_HK,
25
25
  {}, query_field)
26
+
27
+
28
+ @lru_cache(maxsize=None)
29
+ def get_hk_company_industry_info():
30
+ query_field = {'_id': 1,
31
+ 'industry': 1,
32
+ 'number': 1}
33
+ return mongodb_util.find_query_data_choose_field(db_name_constant.HK_COMPANY_INDUSTRY,
34
+ {}, query_field)
@@ -120,3 +120,6 @@ COMPANY_REMARK_INFO = 'company_remark_info'
120
120
  DA_BAN_SELF_CHOOSE = 'da_ban_self_choose'
121
121
  # 打板排除
122
122
  DA_BAN_SELF_EXCLUDE = 'da_ban_self_exclude'
123
+
124
+ # 港股公司行业列表
125
+ HK_COMPANY_INDUSTRY = 'hk_company_industry'
@@ -30,9 +30,9 @@ class MongodbUtil:
30
30
  elif mac_address is not None and mac_address == ip_util.WINDOWS_MAC_ADDRESS_CD:
31
31
  client = pymongo.MongoClient("mongodb://127.0.0.1:" + port + "/patience")
32
32
  elif '192.168.1' in ip_util.get_host_ip() and mac_address is not None and mac_address == ip_util.APPLE_AIR_MAC_ADDRESS:
33
- client = pymongo.MongoClient("mongodb://192.168.1.4:" + port + "/patience")
33
+ client = pymongo.MongoClient("mongodb://127.0.0.1:" + port + "/patience")
34
34
  else:
35
- client = pymongo.MongoClient("mongodb://100.87.2.149:" + port + "/patience")
35
+ client = pymongo.MongoClient("mongodb://127.0.0.1:" + port + "/patience")
36
36
  return client.patience
37
37
 
38
38
  def group(self, query, coll_name):
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns_common
3
- Version: 1.2.5.3
3
+ Version: 1.2.5.6
4
4
 
@@ -16,6 +16,8 @@ mns_common/api/em/east_money_stock_hk_api.py,sha256=JBMonPLMsz2YwsocCZtwEwtjqQ1f
16
16
  mns_common/api/em/east_money_stock_v2_api.py,sha256=HrvvQiKbIqhhiSBKSZV_hGlWHWFaUfzsHyfYb3oK8yk,14780
17
17
  mns_common/api/em/em_concept_index_api.py,sha256=lbW0emuCSlJ54Sj8o07AuTEfLmNfOPo3Cz4lwWiv4c8,8285
18
18
  mns_common/api/em/self_choose/__init__.py,sha256=vAy9qYgUgZL9Y0w3BBbqmZ9zES46pPnlJjO2hdtotp0,2673
19
+ mns_common/api/hk/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
20
+ mns_common/api/hk/ths_hk_company_info_api.py,sha256=YXedq5NScKxpbPQPPAvgQF5lt7u56F48T5f7u8A1ep4,5293
19
21
  mns_common/api/kpl/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
20
22
  mns_common/api/kpl/common/__init__.py,sha256=8b2PuXJM5fLoq71cWPXp695czQuaRtyR6OVHajGjDPc,161
21
23
  mns_common/api/kpl/common/kpl_common_api.py,sha256=leSgOCg5ClWbGCdIkeeMxUy_x1FcF7NlchaMvzvz1ow,6536
@@ -42,7 +44,7 @@ mns_common/api/ths/concept/app/ths_concept_detail_app.py,sha256=pPrpntV1tQlgdsSe
42
44
  mns_common/api/ths/concept/app/ths_concept_index_app.py,sha256=aXDiLxbr5CD_ULHaRv4fca6btvbjBCmsJFXuLce8eU8,7381
43
45
  mns_common/api/ths/concept/web/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
44
46
  mns_common/api/ths/concept/web/ths_common_js_api.py,sha256=ekU9BtSX0xFkeFDVn9QQG_qgQXhpSmZKGKpgkDbeYk4,381
45
- mns_common/api/ths/concept/web/ths_company_info_web.py,sha256=L8S11YSOWevJLlIQal7HuWW1mMKgulXPtRk9wG7dmAo,6615
47
+ mns_common/api/ths/concept/web/ths_company_info_web.py,sha256=Q_yofooG5ruwWQRDIieTqDiKWcfr8cGSLghLLsmoyVg,6670
46
48
  mns_common/api/ths/concept/web/ths_concept_detail_web.py,sha256=F7PIXPd1dbAR0VbqukeZYRWXEjZT-8Dxjj05lgdCSAc,8540
47
49
  mns_common/api/ths/concept/web/ths_concept_index_web.py,sha256=zULAWpnmpnwc2MOZt7fiMHuAFoJZoln50dunWCGCvHY,7300
48
50
  mns_common/api/ths/self_choose/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
@@ -51,7 +53,7 @@ mns_common/api/ths/wen_cai/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK
51
53
  mns_common/api/ths/wen_cai/ths_wen_cai_api.py,sha256=TiDbKIB57ARrnGb70vSJ7-c7lodQqivwlC2IWs95xFw,4718
52
54
  mns_common/api/ths/zt/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
53
55
  mns_common/api/ths/zt/ths_stock_zt_pool_api.py,sha256=GIYdc5J7ZrV25Elbf0n3bBZOc7x4OrlI0jFrO3du8lY,10756
54
- mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py,sha256=1qTDjmlsb4rc7Ev8Jtr0rvVXUcDCWGm4MFG7tt0KAoU,16429
56
+ mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py,sha256=fMlhhDG0RXAdZPOmAYp-r_2WOADVWj2Dk2OduMbXSG8,16531
55
57
  mns_common/component/__init__.py,sha256=8b2PuXJM5fLoq71cWPXp695czQuaRtyR6OVHajGjDPc,161
56
58
  mns_common/component/common_service_fun_api.py,sha256=71_w6mKAmdISumjlc5xPPMmO8W_nWeiw11arRohh9Ts,5211
57
59
  mns_common/component/cache/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
@@ -62,7 +64,6 @@ mns_common/component/classify/symbol_classify_param.py,sha256=ZOXoZeZ2grVACrpRCQ
62
64
  mns_common/component/company/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
63
65
  mns_common/component/company/company_common_service_api.py,sha256=HHnLkhMgaOk6ZZoOJ2-E_R7-WeX1q0HtLM2IPAk06WE,7992
64
66
  mns_common/component/company/company_common_service_new_api.py,sha256=r7pP88K5mK8t-TFzntdOh-HvsaEXE1_FUHZTq1QPPBw,4904
65
- mns_common/component/company/company_hk_service_api.py,sha256=mHe5eBHV6v-0s5bUg0RutlerHsHLzmULrMlMFGdlgqM,859
66
67
  mns_common/component/concept/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
67
68
  mns_common/component/concept/kpl_concept_common_service_api.py,sha256=Ruc3INOhVjB0X1LeMRX0zL3uhv9OLweG2hj6wkZffow,3235
68
69
  mns_common/component/concept/ths_concept_common_service_api.py,sha256=KkbEnBTz3HZs8mSJ-2FX-UrPSlJfMOd8xSXRmtDpqPc,9682
@@ -71,6 +72,8 @@ mns_common/component/data/data_init_api.py,sha256=MydFBrwP61pka9jK7rrMz3HF00meRU
71
72
  mns_common/component/deal/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
72
73
  mns_common/component/deal/deal_service_api.py,sha256=XV_L8qfeTPbojmNXFjnUe-5ZTp3ADT3ett0j-gPuPVI,3806
73
74
  mns_common/component/deal/terminal_enum.py,sha256=JUkSTXLQW1fob05PCCzIBg_VKlGmqaJEa0GOvrQH6e0,275
75
+ mns_common/component/hk/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
76
+ mns_common/component/hk/company_hk_service_api.py,sha256=qtkG2YZ2bWpXKR9eaCmpdCiSptQxLa_jXvH3nThJ2Gw,1187
74
77
  mns_common/component/industry/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
75
78
  mns_common/component/industry/ths_industry_index_api.py,sha256=boSEyRfCcUtCrsbeErckKKpTboo2UcaKiiCnWJHzvAU,3252
76
79
  mns_common/component/k_line/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
@@ -99,11 +102,11 @@ mns_common/component/zt/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3Hi
99
102
  mns_common/component/zt/zt_common_service_api.py,sha256=6pHRLLJjKcLLBA-xXkAU8SE6DZ5dgVFBRVjJmhkL0II,11945
100
103
  mns_common/constant/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
101
104
  mns_common/constant/black_list_classify_enum.py,sha256=I8U_DcltzYvlWjgn-TFLImgVgPuO0lxMnEJAQJBljdo,3995
102
- mns_common/constant/db_name_constant.py,sha256=4Lw2Q9m90-YspA3bSZa5-py57TXre2oc3E33pGt-gYo,3118
105
+ mns_common/constant/db_name_constant.py,sha256=wvS6UPGeopeCevSbnVCOha4Vks3vDTu-b9H8LId8LEk,3194
103
106
  mns_common/constant/price_enum.py,sha256=nhcPxk0AFdQAp8IsNr5EP9xURLqqJuSl6ljIzTp7Wyo,1093
104
107
  mns_common/constant/redis_msg_constant.py,sha256=fMtI_WbJ2IkMX4qGwvR5MkMO0NqU8XgUUZqQzHIRscU,501
105
108
  mns_common/constant/self_choose_constant.py,sha256=QJVSwUpnXvMYA62V3_8ptDqBdI2J8S5FqI5rYSJTwT0,496
106
- mns_common/db/MongodbUtil.py,sha256=9SRED0DJH-4_NzbVehdm2x07Ts68YYm87nEvCywHIf4,11750
109
+ mns_common/db/MongodbUtil.py,sha256=oO6t_kKiC13uS4M3OyyQkc_ktfOKhBgWLu49LVy4QQo,11745
107
110
  mns_common/db/MongodbUtilLocal.py,sha256=xLUTeeZ83BbqPtUEwy7QmPtkSfwPyNB_5ggkn-eMpBQ,7560
108
111
  mns_common/db/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
109
112
  mns_common/utils/__init__.py,sha256=xu36nA6MJTauswUWPfKIKH0E-lpOAHTw2TL5QI_6TeY,165
@@ -114,7 +117,7 @@ mns_common/utils/date_handle_util.py,sha256=qkEyKLYiVq6qpKVp32MLKwRtGKVBK6AY5at2
114
117
  mns_common/utils/db_util.py,sha256=hSmfNAN4vEeEaUva6_cicZEhb2jSnib-Gvk2reke1vc,2590
115
118
  mns_common/utils/file_util.py,sha256=egWu6PenGPRp_ixrNTHKarT4dAnOT6FETR82EHUZJnQ,1042
116
119
  mns_common/utils/ip_util.py,sha256=UTcYfz_uytB__6nlBf7T-izuI7hi4XdB6ET0sJgEel4,969
117
- mns_common-1.2.5.3.dist-info/METADATA,sha256=8nLtqcIdI1uJaXJuKT9_wsLa2dphLnV9SDPQWbfX0n8,61
118
- mns_common-1.2.5.3.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
119
- mns_common-1.2.5.3.dist-info/top_level.txt,sha256=ZC58kAR-8Hvc6U2xhYNBNLAh3mb6sZazbdj5nZpvEkQ,11
120
- mns_common-1.2.5.3.dist-info/RECORD,,
120
+ mns_common-1.2.5.6.dist-info/METADATA,sha256=Vfsvwcjuo4duIOGjfKgxXB6_MdYqO5e_xieX83yXnP8,61
121
+ mns_common-1.2.5.6.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
122
+ mns_common-1.2.5.6.dist-info/top_level.txt,sha256=ZC58kAR-8Hvc6U2xhYNBNLAh3mb6sZazbdj5nZpvEkQ,11
123
+ mns_common-1.2.5.6.dist-info/RECORD,,