re-common 2.0.0__py3-none-any.whl → 2.0.1__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.
Files changed (200) hide show
  1. re_common/v2/baselibrary/tools/search_hash_tools.py +33 -0
  2. re_common/v2/baselibrary/tools/text_matcher.py +223 -0
  3. re_common/v2/baselibrary/utils/BusinessStringUtil.py +2 -2
  4. re_common/v2/baselibrary/utils/author_smi.py +308 -0
  5. re_common/v2/baselibrary/utils/string_clear.py +15 -1
  6. re_common/v2/baselibrary/utils/stringutils.py +36 -1
  7. {re_common-2.0.0.dist-info → re_common-2.0.1.dist-info}/METADATA +1 -1
  8. re_common-2.0.1.dist-info/RECORD +25 -0
  9. re_common/baselibrary/__init__.py +0 -4
  10. re_common/baselibrary/baseabs/__init__.py +0 -7
  11. re_common/baselibrary/baseabs/baseabs.py +0 -26
  12. re_common/baselibrary/database/mbuilder.py +0 -132
  13. re_common/baselibrary/database/moudle.py +0 -93
  14. re_common/baselibrary/database/msqlite3.py +0 -194
  15. re_common/baselibrary/database/mysql.py +0 -169
  16. re_common/baselibrary/database/sql_factory.py +0 -26
  17. re_common/baselibrary/mthread/MThreadingRun.py +0 -486
  18. re_common/baselibrary/mthread/MThreadingRunEvent.py +0 -349
  19. re_common/baselibrary/mthread/__init__.py +0 -3
  20. re_common/baselibrary/mthread/mythreading.py +0 -695
  21. re_common/baselibrary/pakge_other/__init__.py +0 -0
  22. re_common/baselibrary/pakge_other/socks.py +0 -404
  23. re_common/baselibrary/readconfig/__init__.py +0 -0
  24. re_common/baselibrary/readconfig/config_factory.py +0 -18
  25. re_common/baselibrary/readconfig/ini_config.py +0 -317
  26. re_common/baselibrary/readconfig/toml_config.py +0 -49
  27. re_common/baselibrary/temporary/__init__.py +0 -0
  28. re_common/baselibrary/temporary/envdata.py +0 -36
  29. re_common/baselibrary/tools/__init__.py +0 -0
  30. re_common/baselibrary/tools/all_requests/__init__.py +0 -0
  31. re_common/baselibrary/tools/all_requests/aiohttp_request.py +0 -118
  32. re_common/baselibrary/tools/all_requests/httpx_requet.py +0 -102
  33. re_common/baselibrary/tools/all_requests/mrequest.py +0 -412
  34. re_common/baselibrary/tools/all_requests/requests_request.py +0 -81
  35. re_common/baselibrary/tools/batch_compre/__init__.py +0 -0
  36. re_common/baselibrary/tools/batch_compre/bijiao_batch.py +0 -31
  37. re_common/baselibrary/tools/contrast_db3.py +0 -123
  38. re_common/baselibrary/tools/copy_file.py +0 -39
  39. re_common/baselibrary/tools/db3_2_sizedb3.py +0 -102
  40. re_common/baselibrary/tools/foreachgz.py +0 -40
  41. re_common/baselibrary/tools/get_attr.py +0 -11
  42. re_common/baselibrary/tools/image_to_pdf.py +0 -62
  43. re_common/baselibrary/tools/java_code_deal.py +0 -139
  44. re_common/baselibrary/tools/javacode.py +0 -79
  45. re_common/baselibrary/tools/mdb_db3.py +0 -48
  46. re_common/baselibrary/tools/merge_file.py +0 -171
  47. re_common/baselibrary/tools/merge_gz_file.py +0 -165
  48. re_common/baselibrary/tools/mhdfstools/__init__.py +0 -0
  49. re_common/baselibrary/tools/mhdfstools/down_hdfs_files.py +0 -42
  50. re_common/baselibrary/tools/mhdfstools/hdfst.py +0 -42
  51. re_common/baselibrary/tools/mhdfstools/up_hdfs_files.py +0 -38
  52. re_common/baselibrary/tools/mongo_tools.py +0 -50
  53. re_common/baselibrary/tools/move_file.py +0 -170
  54. re_common/baselibrary/tools/move_mongo/__init__.py +0 -0
  55. re_common/baselibrary/tools/move_mongo/mongo_table_to_file.py +0 -63
  56. re_common/baselibrary/tools/move_mongo/move_mongo_table.py +0 -354
  57. re_common/baselibrary/tools/move_mongo/use_mttf.py +0 -18
  58. re_common/baselibrary/tools/move_mongo/use_mv.py +0 -93
  59. re_common/baselibrary/tools/mpandas/__init__.py +0 -0
  60. re_common/baselibrary/tools/mpandas/mpandasreadexcel.py +0 -125
  61. re_common/baselibrary/tools/mpandas/pandas_visualization.py +0 -8
  62. re_common/baselibrary/tools/myparsel.py +0 -104
  63. re_common/baselibrary/tools/rename_dir_file.py +0 -37
  64. re_common/baselibrary/tools/sequoiadb_utils.py +0 -398
  65. re_common/baselibrary/tools/split_line_to_many.py +0 -25
  66. re_common/baselibrary/tools/stringtodicts.py +0 -33
  67. re_common/baselibrary/tools/workwechant_bot.py +0 -84
  68. re_common/baselibrary/utils/__init__.py +0 -0
  69. re_common/baselibrary/utils/baseaiohttp.py +0 -296
  70. re_common/baselibrary/utils/baseaiomysql.py +0 -87
  71. re_common/baselibrary/utils/baseallstep.py +0 -191
  72. re_common/baselibrary/utils/baseavro.py +0 -19
  73. re_common/baselibrary/utils/baseboto3.py +0 -291
  74. re_common/baselibrary/utils/basecsv.py +0 -32
  75. re_common/baselibrary/utils/basedict.py +0 -133
  76. re_common/baselibrary/utils/basedir.py +0 -241
  77. re_common/baselibrary/utils/baseencode.py +0 -351
  78. re_common/baselibrary/utils/baseencoding.py +0 -29
  79. re_common/baselibrary/utils/baseesdsl.py +0 -86
  80. re_common/baselibrary/utils/baseexcel.py +0 -264
  81. re_common/baselibrary/utils/baseexcept.py +0 -109
  82. re_common/baselibrary/utils/basefile.py +0 -654
  83. re_common/baselibrary/utils/baseftp.py +0 -214
  84. re_common/baselibrary/utils/basegzip.py +0 -60
  85. re_common/baselibrary/utils/basehdfs.py +0 -135
  86. re_common/baselibrary/utils/basehttpx.py +0 -268
  87. re_common/baselibrary/utils/baseip.py +0 -87
  88. re_common/baselibrary/utils/basejson.py +0 -2
  89. re_common/baselibrary/utils/baselist.py +0 -32
  90. re_common/baselibrary/utils/basemotor.py +0 -190
  91. re_common/baselibrary/utils/basemssql.py +0 -98
  92. re_common/baselibrary/utils/baseodbc.py +0 -113
  93. re_common/baselibrary/utils/basepandas.py +0 -302
  94. re_common/baselibrary/utils/basepeewee.py +0 -11
  95. re_common/baselibrary/utils/basepika.py +0 -180
  96. re_common/baselibrary/utils/basepydash.py +0 -143
  97. re_common/baselibrary/utils/basepymongo.py +0 -230
  98. re_common/baselibrary/utils/basequeue.py +0 -22
  99. re_common/baselibrary/utils/baserar.py +0 -57
  100. re_common/baselibrary/utils/baserequest.py +0 -279
  101. re_common/baselibrary/utils/baseset.py +0 -8
  102. re_common/baselibrary/utils/basesmb.py +0 -403
  103. re_common/baselibrary/utils/basestring.py +0 -382
  104. re_common/baselibrary/utils/basetime.py +0 -320
  105. re_common/baselibrary/utils/basetuple.py +0 -0
  106. re_common/baselibrary/utils/baseurl.py +0 -121
  107. re_common/baselibrary/utils/basezip.py +0 -57
  108. re_common/baselibrary/utils/core/__init__.py +0 -8
  109. re_common/baselibrary/utils/core/bottomutils.py +0 -18
  110. re_common/baselibrary/utils/core/mdeprecated.py +0 -327
  111. re_common/baselibrary/utils/core/mlamada.py +0 -16
  112. re_common/baselibrary/utils/core/msginfo.py +0 -25
  113. re_common/baselibrary/utils/core/requests_core.py +0 -103
  114. re_common/baselibrary/utils/fateadm.py +0 -429
  115. re_common/baselibrary/utils/importfun.py +0 -123
  116. re_common/baselibrary/utils/mfaker.py +0 -57
  117. re_common/baselibrary/utils/my_abc/__init__.py +0 -3
  118. re_common/baselibrary/utils/my_abc/better_abc.py +0 -32
  119. re_common/baselibrary/utils/mylogger.py +0 -414
  120. re_common/baselibrary/utils/myredisclient.py +0 -861
  121. re_common/baselibrary/utils/pipupgrade.py +0 -21
  122. re_common/baselibrary/utils/ringlist.py +0 -85
  123. re_common/baselibrary/utils/version_compare.py +0 -36
  124. re_common/baselibrary/utils/ydmhttp.py +0 -126
  125. re_common/facade/__init__.py +0 -1
  126. re_common/facade/lazy_import.py +0 -11
  127. re_common/facade/loggerfacade.py +0 -25
  128. re_common/facade/mysqlfacade.py +0 -467
  129. re_common/facade/now.py +0 -31
  130. re_common/facade/sqlite3facade.py +0 -257
  131. re_common/facade/use/__init__.py +0 -0
  132. re_common/facade/use/mq_use_facade.py +0 -83
  133. re_common/facade/use/proxy_use_facade.py +0 -20
  134. re_common/libtest/__init__.py +0 -0
  135. re_common/libtest/base_dict_test.py +0 -19
  136. re_common/libtest/baseavro_test.py +0 -13
  137. re_common/libtest/basefile_test.py +0 -14
  138. re_common/libtest/basemssql_test.py +0 -77
  139. re_common/libtest/baseodbc_test.py +0 -8
  140. re_common/libtest/basepandas_test.py +0 -38
  141. re_common/libtest/get_attr_test/__init__.py +0 -0
  142. re_common/libtest/get_attr_test/get_attr_test_settings.py +0 -14
  143. re_common/libtest/get_attr_test/settings.py +0 -55
  144. re_common/libtest/idencode_test.py +0 -54
  145. re_common/libtest/iniconfig_test.py +0 -35
  146. re_common/libtest/ip_test.py +0 -35
  147. re_common/libtest/merge_file_test.py +0 -20
  148. re_common/libtest/mfaker_test.py +0 -9
  149. re_common/libtest/mm3_test.py +0 -32
  150. re_common/libtest/mylogger_test.py +0 -89
  151. re_common/libtest/myparsel_test.py +0 -28
  152. re_common/libtest/mysql_test.py +0 -151
  153. re_common/libtest/pymongo_test.py +0 -21
  154. re_common/libtest/split_test.py +0 -12
  155. re_common/libtest/sqlite3_merge_test.py +0 -6
  156. re_common/libtest/sqlite3_test.py +0 -34
  157. re_common/libtest/tomlconfig_test.py +0 -30
  158. re_common/libtest/use_tools_test/__init__.py +0 -3
  159. re_common/libtest/user/__init__.py +0 -5
  160. re_common/studio/__init__.py +0 -5
  161. re_common/studio/assignment_expressions.py +0 -37
  162. re_common/studio/mydash/__init__.py +0 -0
  163. re_common/studio/mydash/test1.py +0 -19
  164. re_common/studio/pydashstudio/__init__.py +0 -0
  165. re_common/studio/pydashstudio/first.py +0 -9
  166. re_common/studio/streamlitstudio/__init__.py +0 -0
  167. re_common/studio/streamlitstudio/first_app.py +0 -66
  168. re_common/studio/streamlitstudio/uber_pickups.py +0 -24
  169. re_common/studio/test.py +0 -19
  170. re_common/vip/__init__.py +0 -0
  171. re_common/vip/base_step_process.py +0 -11
  172. re_common/vip/baseencodeid.py +0 -91
  173. re_common/vip/changetaskname.py +0 -28
  174. re_common/vip/core_var.py +0 -24
  175. re_common/vip/mmh3Hash.py +0 -90
  176. re_common/vip/proxy/__init__.py +0 -0
  177. re_common/vip/proxy/allproxys.py +0 -127
  178. re_common/vip/proxy/allproxys_thread.py +0 -159
  179. re_common/vip/proxy/cnki_proxy.py +0 -153
  180. re_common/vip/proxy/kuaidaili.py +0 -87
  181. re_common/vip/proxy/proxy_all.py +0 -113
  182. re_common/vip/proxy/update_kuaidaili_0.py +0 -42
  183. re_common/vip/proxy/wanfang_proxy.py +0 -152
  184. re_common/vip/proxy/wp_proxy_all.py +0 -182
  185. re_common/vip/read_rawid_to_txt.py +0 -92
  186. re_common/vip/title/__init__.py +0 -5
  187. re_common/vip/title/transform/TransformBookTitleToZt.py +0 -125
  188. re_common/vip/title/transform/TransformConferenceTitleToZt.py +0 -139
  189. re_common/vip/title/transform/TransformCstadTitleToZt.py +0 -196
  190. re_common/vip/title/transform/TransformJournalTitleToZt.py +0 -203
  191. re_common/vip/title/transform/TransformPatentTitleToZt.py +0 -132
  192. re_common/vip/title/transform/TransformRegulationTitleToZt.py +0 -114
  193. re_common/vip/title/transform/TransformStandardTitleToZt.py +0 -135
  194. re_common/vip/title/transform/TransformThesisTitleToZt.py +0 -135
  195. re_common/vip/title/transform/__init__.py +0 -11
  196. re_common-2.0.0.dist-info/RECORD +0 -209
  197. /re_common/{baselibrary/database/__init__.py → v2/baselibrary/tools/list_tools.py} +0 -0
  198. {re_common-2.0.0.dist-info → re_common-2.0.1.dist-info}/LICENSE +0 -0
  199. {re_common-2.0.0.dist-info → re_common-2.0.1.dist-info}/WHEEL +0 -0
  200. {re_common-2.0.0.dist-info → re_common-2.0.1.dist-info}/top_level.txt +0 -0
@@ -1,35 +0,0 @@
1
- def test_BaseAbs_config():
2
- """
3
- 命令行下 在当前目录使用该命令测试
4
- pytest iniconfig_test.py::test_BaseAbs_config -s
5
- :return:
6
- """
7
- from re_common.baselibrary.baseabs import BaseAbs
8
- # get_conf_dict 参数
9
- # configfile 不传为前面配置好的路径 也可以给新的路径
10
- # encoding 指定编码
11
- # keep_keys_case 保持建大写,配置为Fasle会全部小写
12
- orderdicts = BaseAbs.get_config_factory().get_config_factory().ini_factory().set_config_path(
13
- "./config.ini").set_keep_keys_case(False).builder().get_config_dict()
14
-
15
- print(orderdicts)
16
- print(orderdicts["db"])
17
- print(orderdicts["db"]["psw"])
18
-
19
-
20
- def test_Iniconfig_config():
21
- """
22
- 第二种简便用法
23
- 命令行下 在当前目录使用该命令测试
24
- pytest iniconfig_test.py::test_Iniconfig_config -s
25
- :return:
26
- """
27
- from re_common.baselibrary import IniConfig
28
- orderdicts = IniConfig("./config.ini").set_keep_keys_case(False).builder().get_config_dict()
29
- print(orderdicts)
30
- print(orderdicts["db"])
31
- print(orderdicts["Db2"]["psw"])
32
-
33
- # 已经导如facade 可以通过 facade 直接导入
34
- # from facade import IniConfig
35
- # 建议外部使用导入时 全部通过facade 导入
@@ -1,35 +0,0 @@
1
- from re_common.baselibrary.utils.basehttpx import BaseHttpx
2
- from re_common.baselibrary.utils.baserequest import BaseRequest
3
- import re
4
-
5
- url = "https://www.ip.cn/"
6
-
7
-
8
- def basehttpx_test_ip(proxy):
9
- patten = "<code>(.*?)</code>"
10
- bshttpx = BaseHttpx()
11
- BoolResult, errString, r = bshttpx.base_sn_httpx(url=url,
12
- proxies=proxy,
13
- headers="")
14
- ip = re.findall(patten,r.text)
15
- if len(ip) == 0:
16
- print(r.text)
17
- else:
18
- print(ip)
19
-
20
- def baserequest_test_ip(proxy):
21
- patten = "Your IP</span>: (.*?)</span>"
22
- bsrequests = BaseRequest()
23
- bsrequests.is_use_proxy(True)
24
- bsrequests.set_proxy(proxy)
25
- BoolResult, errString, r = bsrequests.base_request(url=url)
26
- ip = re.findall(patten, r.text)
27
- if len(ip) == 0:
28
- print(r.text)
29
- else:
30
- print(ip)
31
-
32
-
33
- if __name__ == '__main__':
34
- basehttpx_test_ip("192.168.31.176:8012")
35
- baserequest_test_ip("192.168.31.176:8012")
@@ -1,20 +0,0 @@
1
- ###########################################
2
- # 同项目调用基础包
3
- import os
4
- import sys
5
-
6
- filepath = os.path.abspath(__file__)
7
- pathlist = filepath.split(os.sep)
8
- pathlist = pathlist[:-3]
9
- TopPath = os.sep.join(pathlist)
10
- sys.path.insert(0, TopPath)
11
- print(TopPath)
12
- ############################################
13
- from re_common.baselibrary.tools.merge_file import MergeFile
14
-
15
- if __name__ == '__main__':
16
- old_path = r'E:\work\pnasjournal\big_json\20200116'
17
- new_path = r'E:\work\pnasjournal\big_json\new'
18
- a = MergeFile()
19
- # a.line_all_2_one(old_path,new_path)
20
- a.block_all_2_one(old_path, new_path, dst_size=1024 * 1024 * 200, block_size=200 * 1024 * 1024)
@@ -1,9 +0,0 @@
1
- import time
2
-
3
- from re_common.baselibrary.utils.basefile import BaseFile
4
-
5
- with open(r"\\192.168.31.171\caiji\test.txt", 'w', encoding="utf-8") as f:
6
- while True:
7
- f.write("test\n")
8
- time.sleep(10)
9
- print("1")
@@ -1,32 +0,0 @@
1
- import platform
2
- import traceback
3
-
4
- import win32file
5
-
6
- from re_common.baselibrary.utils.basefile import BaseFile
7
-
8
-
9
- # aa = r"F:\cnipa_ftp\SIPO\CN-PA-IMGS-10-A 中国发明专利申请公布标准化全文图像数据\20211109\20211109-1-002.ZIP"
10
- # aa = r"F:\cnipa_ftp\SIPO\CN-PA-IMGS-10-A 中国发明专利申请公布标准化全文图像数据\20211109\20211109-1-001.ZIP"
11
- def is_used(file_name):
12
- if "Windows" == platform.system():
13
- import win32file
14
- try:
15
- vHandle = win32file.CreateFile(file_name, win32file.GENERIC_READ, 0, None, win32file.OPEN_EXISTING,
16
- win32file.FILE_ATTRIBUTE_NORMAL, None)
17
- return int(vHandle) == win32file.INVALID_HANDLE_VALUE
18
- except:
19
- if "另一个程序正在使用此文件,进程无法访问。" in traceback.format_exc():
20
- return True
21
- else:
22
- return False
23
- finally:
24
- try:
25
- win32file.CloseHandle(vHandle)
26
- except:
27
- pass
28
- else:
29
- raise Exception("不是windows系统,请不要调用该函数判断文件是否被打开")
30
-
31
- aa = is_used(r"\\192.168.31.171\caiji\test.txt")
32
- print(aa)
@@ -1,89 +0,0 @@
1
- import logging
2
-
3
- from re_common.baselibrary.utils.basedir import BaseDir
4
- from re_common.baselibrary import MLogger
5
- from re_common.baselibrary.utils.basefile import BaseFile
6
-
7
-
8
- def test_mlogger_streamlogger():
9
- """
10
- 只打印数据不计入文件
11
- pytest mylogger_test.py::test_mlogger_streamlogger -s
12
- :return:
13
- """
14
- streamlogger = MLogger().streamlogger
15
- streamlogger.setLevel(logging.DEBUG)
16
- streamlogger.info("mesg info")
17
- streamlogger.warning("msg warning")
18
- streamlogger.warn("msg warn")
19
- streamlogger.error("msg error")
20
- streamlogger.debug("msg debug")
21
- streamlogger.critical("msg critical")
22
- streamlogger.exception("msg exception")
23
-
24
-
25
- def test_mlogger_filelogger():
26
- """
27
- 测试将日志写入文件中 文件名以日期自动生成 如20200211.log
28
- pytest mylogger_test.py::test_mlogger_filelogger -s
29
- 文件流的logger
30
- :param filedir:
31
- :return:
32
- """
33
- filedir = BaseDir.get_file_dir_absolute(__file__)
34
- filelogger = MLogger(filedir).filelogger
35
- filelogger.setLevel(logging.DEBUG)
36
- filelogger.info("mesg info")
37
- filelogger.warning("msg warning")
38
- filelogger.warn("msg warn")
39
- filelogger.error("msg error")
40
- filelogger.debug("msg debug")
41
- filelogger.critical("msg critical")
42
- filelogger.exception("msg exception")
43
-
44
-
45
- def test_mlogger_allloger():
46
- """
47
- 测试将日志写入文件中 有一个以日期的总文件 以及每个级别的分文件
48
- pytest mylogger_test.py::test_mlogger_allloger -s
49
- 文件流的logger
50
- :param filedir:
51
- :return:
52
- """
53
- filedir = BaseDir.get_file_dir_absolute(__file__)
54
- filedir = BaseFile.get_new_path(filedir, "log")
55
- BaseDir.create_dir(filedir)
56
- filelogger = MLogger(filedir).alllogger
57
- filelogger.setLevel(logging.DEBUG)
58
- filelogger.info("mesg info")
59
- filelogger.warning("msg warning")
60
- filelogger.warn("msg warn")
61
- filelogger.error("msg error")
62
- filelogger.debug("msg debug")
63
- filelogger.critical("msg critical")
64
- filelogger.exception("msg exception")
65
-
66
-
67
- def test_mlogger_rotatingfilelogger():
68
- """
69
- 测试将日志写入文件中 文件名以日期自动生成 如20200211.log
70
- pytest mylogger_test.py::test_mlogger_rotatingfilelogger -s
71
- 文件流的logger
72
- :param filedir:
73
- :return:
74
- """
75
- filedir = BaseDir.get_file_dir_absolute(__file__)
76
- filelogger = MLogger(filedir).RotatingFileLogger(filedir, None, maxBytes=1*1024*1024,
77
- backupCount=10)
78
- filelogger.setLevel(logging.DEBUG)
79
- while True:
80
- print("**************")
81
- filelogger.info("mesg info")
82
- filelogger.warning("msg warning")
83
- filelogger.warn("msg warn")
84
- filelogger.error("msg error")
85
- filelogger.debug("msg debug")
86
- filelogger.critical("msg critical")
87
- filelogger.exception("msg exception")
88
-
89
- test_mlogger_rotatingfilelogger()
@@ -1,28 +0,0 @@
1
- from re_common.baselibrary.tools.myparsel import MParsel
2
-
3
- if __name__ == '__main__':
4
- htmlText = r'''
5
- <body>
6
- <div class="book">111</div>
7
- <div class="journal_name">222</div>
8
- <div class="title">333</div>
9
- <a class ="link">link1</a>
10
- <a class ="link">link2</a>
11
- <a class ="link">link3</a>
12
- </body>
13
- '''
14
- mc = MParsel()
15
- css_selector = {
16
- 'book':'div[class="book"]::text',
17
- 'journal_name':'div[class="journal_name"]::text',
18
- 'title':'div[class="title"]::text',
19
- 'link' :'a[class*="link"]::text'
20
-
21
- }
22
- xpath_selector = {
23
- 'book': "//div[@class='book']/text()",
24
- }
25
- bools,new_dict = mc.css_parsel_html(htmlText,css_selector=css_selector)
26
- print(new_dict)
27
- bools, new_dict = mc.xpath_parsel_html(htmlText, xpath_selector=xpath_selector)
28
- print(new_dict)
@@ -1,151 +0,0 @@
1
- from re_common.baselibrary.utils.basefile import BaseFile
2
-
3
- from re_common.facade.mysqlfacade import MysqlUtiles
4
-
5
- from re_common.baselibrary.utils.basedir import BaseDir
6
- from re_common.facade.loggerfacade import get_streamlogger
7
-
8
- curPath = BaseDir.get_file_dir_absolute(__file__)
9
-
10
-
11
- def test_mysql_create():
12
- """
13
- 创建表 pytest mysql_test.py::test_mysql_create -s
14
- :return:
15
- """
16
- mysqls = MysqlUtiles(BaseFile.get_new_path(curPath, "mysql.ini"), "db", get_streamlogger())
17
- sql = """
18
- CREATE TABLE `test1` (
19
- `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',
20
- `username` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名',
21
- `passwd` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '密码',
22
- `only` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '唯一性约束',
23
- PRIMARY KEY (`id`),
24
- UNIQUE KEY `only` (`only`)
25
- ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
26
- """
27
- bool, msg = mysqls.ExeSqlToDB(sql)
28
-
29
-
30
- def test_mysql_insert():
31
- """
32
- 插入表 更新删除都可以使用ExeSqlToDB这个函数
33
- pytest mysql_test.py::test_mysql_insert -s
34
- :return:
35
- """
36
- mysqls = MysqlUtiles(BaseFile.get_new_path(curPath, "mysql.ini"), "db", get_streamlogger())
37
- sql = "INSERT INTO mysqlltest.test1 (username, passwd, `only`) VALUES('test1', 'test1', 'test1');"
38
- bool, msg = mysqls.ExeSqlToDB(sql, errExit=False)
39
- print(bool)
40
- print(msg)
41
-
42
-
43
- def test_mysql_insert_list():
44
- """
45
- 插入表 pytest mysql_test.py::test_mysql_insert_list -s
46
- :return:
47
- """
48
- listsql = []
49
- mysqls = MysqlUtiles(BaseFile.get_new_path(curPath, "mysql.ini"), "db", get_streamlogger())
50
- sql = "INSERT INTO mysqlltest.test1 (username, passwd, `only`) VALUES('%s', '%s', '%s');"
51
- for i in range(100):
52
- temp = sql % (i, i, i)
53
- listsql.append(temp)
54
- bool, successcount, errcount = mysqls.ExeSqlListToDB(listsql, errExit=False)
55
- print(bool)
56
- print(successcount)
57
- print(errcount)
58
- bool, successcount, errcount = mysqls.ExeSqlListToDB(listsql, errExit=True)
59
- print(bool)
60
- print(successcount)
61
- print(errcount)
62
-
63
-
64
- def test_mysql_select():
65
- """
66
- 查询数据 pytest mysql_test.py::test_mysql_select -s
67
- :return:
68
- """
69
- listsql = []
70
- mysqls = MysqlUtiles(BaseFile.get_new_path(curPath, "mysql.ini"), "db", get_streamlogger())
71
- sql = "SELECT * FROM test1"
72
- bool, rows = mysqls.SelectFromDB(sql)
73
- print(bool)
74
- print(rows)
75
-
76
-
77
- def test_mysql_select_dicts():
78
- """
79
- 查询数据 返回dicts 形式的数据
80
- pytest mysql_test.py::test_mysql_select_dicts -s
81
- :return:
82
- """
83
- listsql = []
84
- mysqls = MysqlUtiles(BaseFile.get_new_path(curPath, "mysql.ini"), "db", get_streamlogger(), cursorsnum=1)
85
- sql = "SELECT * FROM test1"
86
- bool, rows = mysqls.SelectFromDB(sql)
87
- print(bool)
88
- print(rows)
89
-
90
-
91
- def test_mysql_select_one():
92
- """
93
- 查询数据只返回一条数据
94
- pytest mysql_test.py::test_mysql_select_one -s
95
- :return:
96
- """
97
- listsql = []
98
- mysqls = MysqlUtiles(BaseFile.get_new_path(curPath, "mysql.ini"), "db", get_streamlogger())
99
- sql = "SELECT * FROM test1"
100
- bool, rows = mysqls.SelectFromDBFetchOne_noyield(sql)
101
- print(bool)
102
- print(rows)
103
-
104
-
105
- def test_mysql_select_one_yeild():
106
- """
107
- 查询数据 以yeild循环返回
108
- pytest mysql_test.py::test_mysql_select_one_yeild -s
109
- :return:
110
- """
111
- listsql = []
112
- mysqls = MysqlUtiles(BaseFile.get_new_path(curPath, "mysql.ini"), "db", get_streamlogger())
113
- sql = "SELECT * FROM test1"
114
- for one in mysqls.SelectFromDBFetchOne(sql):
115
- print(one)
116
-
117
-
118
- def test_mysql_exesqlmany():
119
- """
120
- 同时插入多条数据
121
- pytest mysql_test.py::test_mysql_exesqlmany -s
122
- :return:
123
- """
124
- listpara = []
125
- mysqls = MysqlUtiles(BaseFile.get_new_path(curPath, "mysql.ini"), "db", get_streamlogger())
126
- sql = "INSERT INTO mysqlltest.test1 (username, passwd, `only`) VALUES(%s, %s, %s);"
127
- for i in range(101, 201):
128
- listpara.append((i, i, i))
129
- bool, rows = mysqls.ExeSqlMany(sql, listpara)
130
- print(bool)
131
- print(rows)
132
-
133
-
134
- test_mysql_exesqlmany()
135
-
136
-
137
- def test_dict_mysql():
138
- strings = """
139
- host = 192.168.31.209
140
- user = root
141
- passwd = vipdatacenter
142
- db = data_gather_record
143
- port = 3306
144
- chartset = utf8
145
- """
146
-
147
- dicts_change = {"key为原来的": "values为现在的"}
148
-
149
- from re_common.baselibrary.tools.stringtodicts import StringToDicts
150
- dicts = StringToDicts().string_to_dicts_by_equal(strings)
151
- mysqlutils = MysqlUtiles("", "", builder="MysqlBuilderForDicts", dicts=dicts)
@@ -1,21 +0,0 @@
1
- import time
2
-
3
- import pymongo
4
-
5
- from re_common.baselibrary.utils.basepymongo import BasePyMongo
6
-
7
- basemongo = BasePyMongo("mongodb://cjrw:vipdatacenter@192.168.31.166:27017/")
8
- basemongo.use_db("collection")
9
- basemongo.create_col("jss_w_f_panternt_page")
10
- starttime = time.time()
11
- print(basemongo.delete_col())
12
-
13
- print(time.time() - starttime)
14
- # dicts = {
15
- # "cid": "string",
16
- # "pagenum": "string",
17
- # "down_date": "string",
18
- # "html": "string",
19
- # "types": "string"
20
- # }
21
- # basemongo.insert_one(dicts)
@@ -1,12 +0,0 @@
1
- from re_common.baselibrary.tools.split_line_to_many import Split_2_lines
2
-
3
- def splite_test():
4
- infilepath = r'E:\download\cnkistandard\download\db3\cnki_bz_append.big_json'
5
- outfilepath = r'E:\download\cnkistandard\download\db3\cnki_bz_append_new.big_json'
6
- spli = Split_2_lines()
7
- spli.split_line(infilepath,
8
- "\"}",
9
- outfilepath)
10
-
11
- if __name__ == '__main__':
12
- splite_test()
@@ -1,6 +0,0 @@
1
- from re_common.baselibrary.database.msqlite3 import Sqlite3
2
- from re_common.baselibrary.utils.basedir import BaseDir
3
-
4
- onepath = r"F:\db32\test\base_obj_meta_a_qkwx.cnki_qk.20200527_000.db3"
5
- for file in BaseDir.get_dir_all_files(r"F:\db32\cnki"):
6
- Sqlite3.sqlite3_merge(onepath, file, tablename="base_obj_meta_a")
@@ -1,34 +0,0 @@
1
- onepath = r"F:\db3\ids\base_obj_meta_a.wf_qk.20201101_00000.db3"
2
-
3
- import sqlite3
4
-
5
-
6
- def dataMerge(inpath, attachpath):
7
- """
8
- 合并两个db3
9
- :param inpath:
10
- :param attachpath:
11
- :return:
12
- """
13
- conn = sqlite3.connect(inpath)
14
- conn.text_factory = str
15
- cur = conn.cursor()
16
- attach = 'attach database "' + attachpath + '" as w;'
17
- sql1 = 'insert into base_obj_meta_a select * from w.base_obj_meta_a;'
18
- cur.execute(attach)
19
- cur.execute(sql1)
20
- conn.commit()
21
- cur.close()
22
- conn.close()
23
-
24
-
25
- for i in range(0, 10):
26
- attachpath = r"F:\db3\ids\base_obj_meta_a.wf_qk.20201101_00%s.db3" % (str(i))
27
- dataMerge(onepath, attachpath)
28
- print(attachpath)
29
-
30
- # attachpath = r"\\192.168.31.177\down_data\cnkiwanfang\zt_wf_qk_20200323\db3\zt_wf_qk_20200323_0002.db3"
31
- # dataMerge(onepath, attachpath)
32
- # print(attachpath)
33
-
34
-
@@ -1,30 +0,0 @@
1
-
2
- def test_BaseAbs_config():
3
- """
4
- 命令行下 在当前目录使用该命令测试
5
- pytest tomlconfig_test.py::test_BaseAbs_config -s
6
- :return:
7
- """
8
- from re_common.baselibrary.baseabs import BaseAbs
9
- dicts = BaseAbs.get_config_factory().toml_factory().set_config_path(
10
- "./config_down.toml").read_file_remove_bom().get_dicts(encoding="utf-8")
11
-
12
- print(type(dicts))
13
- print(dicts)
14
-
15
-
16
- def test_Tomlconfig_config():
17
- """
18
- 第二种简便用法
19
- 命令行下 在当前目录使用该命令测试
20
- pytest tomlconfig_test.py::test_Tomlconfig_config -s
21
- :return:
22
- """
23
- from re_common.baselibrary.readconfig.toml_config import TomlConfig
24
- dicts = TomlConfig("./config_down.toml").read_file_remove_bom().get_dicts()
25
- print(type(dicts))
26
- print(dicts)
27
-
28
- # 已经导如facade 可以通过 facade 直接导入
29
- # from facade import IniConfig
30
- # 建议外部使用导入时 全部通过facade 导入
@@ -1,3 +0,0 @@
1
- """
2
- 对baselibrary下工具的使用
3
- """
@@ -1,5 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- # @Time : 2020/8/11 14:24
3
- # @Author : suhong
4
- # @File : __init__.py.py
5
- # @Software: PyCharm
@@ -1,5 +0,0 @@
1
- '''
2
- 改包下主要是一些python版本的特性介绍,比如某个特性是在哪个版本引入和废弃的
3
- 以及一些使用的样例和说明,方便查询和使用,以免一些因为版本问题引起的错误而
4
- 不知道,还有就是在某些版本发布的不常用语法举例。
5
- '''
@@ -1,37 +0,0 @@
1
- """
2
- 来自于 PEP572
3
-
4
- 在 python 3.8 中获取正式支持
5
-
6
- https://docs.python.org/3/whatsnew/3.8.html
7
-
8
- := (由于它与海象的眼睛和象牙很像,因此被亲切地称为“海象操作员” )
9
-
10
- """
11
-
12
- # 在此示例中,赋值表达式有助于避免调用 len()两次:
13
- import re
14
- import string
15
-
16
- a = "adahfhoifoigoiwfhoiwg"
17
- if (n := len(a)) > 10:
18
- print(f"List is too long ({n} elements, expected <= 10)")
19
-
20
- # 在正则表达式匹配期间会产生类似的好处,其中需要两次匹配对象,一次是测试是否发生匹配,另一次是提取子组:
21
- discount = 0.0
22
- advertisement = "a 50% discount"
23
- if mo := re.search(r'(\d+)% discount', advertisement):
24
- discount = float(mo.group(1)) / 100.0
25
- print(discount)
26
-
27
-
28
- # 该运算符还对while循环有用,该循环计算一个值来测试循环终止,然后在循环主体中再次需要相同的值:
29
- # Loop over fixed length blocks
30
- f = open("./__init__.py", 'rb')
31
- while len(block := f.read(256)) != 0:
32
- print(len(block))
33
-
34
- # 另一个具有启发性的用例出现在列表理解中,其中表达式主体中还需要在过滤条件下计算出的值:
35
- allowed_names = list(string.ascii_letters)
36
- names = list(string.ascii_letters)
37
- print([clean_name for name in names if (clean_name := name) in allowed_names])
File without changes
@@ -1,19 +0,0 @@
1
- import dash
2
- import dash_table
3
- import pandas as pd
4
- import dash_design_kit as ddk
5
-
6
- df = pd.read_csv("test.csv")
7
- app = dash.Dash(__name__)
8
-
9
- app.layout = ddk.App(show_editor=True, children=[
10
- ddk.DataTable(
11
- id='table',
12
- columns=[{"name": i, "id": i} for i in df.columns],
13
- data=df.to_dict('records'),
14
- editable=True
15
- )
16
- ])
17
-
18
- if __name__ == '__main__':
19
- app.run_server(debug=True)
File without changes
@@ -1,9 +0,0 @@
1
- import pydash
2
-
3
- users = [
4
- {'name': 'Michelangelo', 'active': False},
5
- {'name': 'Donatello', 'active': False},
6
- {'name': 'Leonardo', 'active': True}
7
- ]
8
- callback = lambda item: item["name"] == "Donatello"
9
- pydash.find_index(users, callback)
File without changes
@@ -1,66 +0,0 @@
1
- import time
2
-
3
- import streamlit as st
4
- # To make things easier later, we're also importing numpy and pandas for
5
- # working with sample data.
6
- import numpy as np
7
- import pandas as pd
8
-
9
- st.title('My first app')
10
- st.write("Here's our first attempt at using data to create a table:")
11
- st.write(pd.DataFrame({
12
- 'first column': [1, 2, 3, 4],
13
- 'second column': [10, 20, 30, 40]
14
- }))
15
-
16
-
17
- chart_data = pd.DataFrame(
18
- np.random.randn(20, 3),
19
- columns=['a', 'b', 'c'])
20
-
21
- st.line_chart(chart_data)
22
-
23
- # map_data = pd.DataFrame(
24
- # np.random.randn(1000, 2) / [50, 50] + [37.76, -122.4],
25
- # columns=['lat', 'lon'])
26
- #
27
- # st.map(map_data)
28
-
29
- if st.checkbox('Show dataframe'):
30
- chart_data = pd.DataFrame(
31
- np.random.randn(20, 3),
32
- columns=['a', 'b', 'c'])
33
- chart_data
34
-
35
- df = pd.DataFrame({
36
- 'first column': [1, 2, 3, 4],
37
- 'second column': [10, 20, 30, 40]
38
- })
39
-
40
- df
41
-
42
- option = st.selectbox(
43
- 'Which number do you like best?',
44
- df['first column'])
45
-
46
- 'You selected: ', option
47
-
48
- option2 = st.sidebar.selectbox(
49
- 'Which number do you like best??',
50
- df['first column'])
51
-
52
- 'You selected:', option2
53
-
54
- 'Starting a long computation...'
55
-
56
- # Add a placeholder
57
- latest_iteration = st.empty()
58
- bar = st.progress(0)
59
-
60
- for i in range(100):
61
- # Update the progress bar with each iteration.
62
- latest_iteration.text(f'Iteration {i+1}')
63
- bar.progress(i + 1)
64
- time.sleep(0.1)
65
-
66
- '...and now we\'re done!'