re-common 10.0.7__tar.gz → 10.0.8__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 (221) hide show
  1. {re_common-10.0.7 → re_common-10.0.8}/PKG-INFO +1 -1
  2. re_common-10.0.8/re_common/v2/baselibrary/tools/WeChatRobot.py +79 -0
  3. re_common-10.0.8/re_common/v2/baselibrary/tools/dolphinscheduler.py +187 -0
  4. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/string_clear.py +10 -1
  5. {re_common-10.0.7 → re_common-10.0.8}/re_common.egg-info/PKG-INFO +1 -1
  6. {re_common-10.0.7 → re_common-10.0.8}/re_common.egg-info/SOURCES.txt +2 -0
  7. {re_common-10.0.7 → re_common-10.0.8}/setup.py +1 -1
  8. {re_common-10.0.7 → re_common-10.0.8}/LICENSE +0 -0
  9. {re_common-10.0.7 → re_common-10.0.8}/README.md +0 -0
  10. {re_common-10.0.7 → re_common-10.0.8}/re_common/__init__.py +0 -0
  11. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/__init__.py +0 -0
  12. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/baseabs/__init__.py +0 -0
  13. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/baseabs/baseabs.py +0 -0
  14. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/database/__init__.py +0 -0
  15. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/database/mbuilder.py +0 -0
  16. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/database/moudle.py +0 -0
  17. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/database/msqlite3.py +0 -0
  18. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/database/mysql.py +0 -0
  19. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/database/sql_factory.py +0 -0
  20. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/mthread/MThreadingRun.py +0 -0
  21. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/mthread/MThreadingRunEvent.py +0 -0
  22. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/mthread/__init__.py +0 -0
  23. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/mthread/mythreading.py +0 -0
  24. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/pakge_other/__init__.py +0 -0
  25. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/pakge_other/socks.py +0 -0
  26. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/readconfig/__init__.py +0 -0
  27. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/readconfig/config_factory.py +0 -0
  28. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/readconfig/ini_config.py +0 -0
  29. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/readconfig/toml_config.py +0 -0
  30. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/temporary/__init__.py +0 -0
  31. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/temporary/envdata.py +0 -0
  32. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/__init__.py +0 -0
  33. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/__init__.py +0 -0
  34. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/aiohttp_request.py +0 -0
  35. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/httpx_requet.py +0 -0
  36. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/mrequest.py +0 -0
  37. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/requests_request.py +0 -0
  38. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/batch_compre/__init__.py +0 -0
  39. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/batch_compre/bijiao_batch.py +0 -0
  40. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/contrast_db3.py +0 -0
  41. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/copy_file.py +0 -0
  42. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/db3_2_sizedb3.py +0 -0
  43. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/foreachgz.py +0 -0
  44. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/get_attr.py +0 -0
  45. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/image_to_pdf.py +0 -0
  46. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/java_code_deal.py +0 -0
  47. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/javacode.py +0 -0
  48. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/mdb_db3.py +0 -0
  49. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/merge_file.py +0 -0
  50. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/merge_gz_file.py +0 -0
  51. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/mhdfstools/__init__.py +0 -0
  52. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/mhdfstools/down_hdfs_files.py +0 -0
  53. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/mhdfstools/hdfst.py +0 -0
  54. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/mhdfstools/up_hdfs_files.py +0 -0
  55. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/mongo_tools.py +0 -0
  56. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/move_file.py +0 -0
  57. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/__init__.py +0 -0
  58. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/mongo_table_to_file.py +0 -0
  59. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/move_mongo_table.py +0 -0
  60. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/use_mttf.py +0 -0
  61. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/use_mv.py +0 -0
  62. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/mpandas/__init__.py +0 -0
  63. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/mpandas/mpandasreadexcel.py +0 -0
  64. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/mpandas/pandas_visualization.py +0 -0
  65. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/myparsel.py +0 -0
  66. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/rename_dir_file.py +0 -0
  67. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/sequoiadb_utils.py +0 -0
  68. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/split_line_to_many.py +0 -0
  69. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/stringtodicts.py +0 -0
  70. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/tools/workwechant_bot.py +0 -0
  71. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/__init__.py +0 -0
  72. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseaiohttp.py +0 -0
  73. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseaiomysql.py +0 -0
  74. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseallstep.py +0 -0
  75. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseavro.py +0 -0
  76. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseboto3.py +0 -0
  77. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basecsv.py +0 -0
  78. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basedict.py +0 -0
  79. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basedir.py +0 -0
  80. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseencode.py +0 -0
  81. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseencoding.py +0 -0
  82. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseesdsl.py +0 -0
  83. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseexcel.py +0 -0
  84. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseexcept.py +0 -0
  85. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basefile.py +0 -0
  86. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseftp.py +0 -0
  87. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basegzip.py +0 -0
  88. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basehdfs.py +0 -0
  89. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basehttpx.py +0 -0
  90. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseip.py +0 -0
  91. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basejson.py +0 -0
  92. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baselist.py +0 -0
  93. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basemotor.py +0 -0
  94. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basemssql.py +0 -0
  95. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseodbc.py +0 -0
  96. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basepandas.py +0 -0
  97. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basepeewee.py +0 -0
  98. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basepika.py +0 -0
  99. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basepydash.py +0 -0
  100. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basepymongo.py +0 -0
  101. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basequeue.py +0 -0
  102. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baserar.py +0 -0
  103. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baserequest.py +0 -0
  104. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseset.py +0 -0
  105. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basesmb.py +0 -0
  106. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basestring.py +0 -0
  107. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basetime.py +0 -0
  108. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basetuple.py +0 -0
  109. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/baseurl.py +0 -0
  110. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/basezip.py +0 -0
  111. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/core/__init__.py +0 -0
  112. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/core/bottomutils.py +0 -0
  113. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/core/mdeprecated.py +0 -0
  114. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/core/mlamada.py +0 -0
  115. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/core/msginfo.py +0 -0
  116. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/core/requests_core.py +0 -0
  117. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/fateadm.py +0 -0
  118. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/importfun.py +0 -0
  119. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/mfaker.py +0 -0
  120. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/my_abc/__init__.py +0 -0
  121. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/my_abc/better_abc.py +0 -0
  122. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/mylogger.py +0 -0
  123. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/myredisclient.py +0 -0
  124. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/pipupgrade.py +0 -0
  125. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/ringlist.py +0 -0
  126. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/version_compare.py +0 -0
  127. {re_common-10.0.7 → re_common-10.0.8}/re_common/baselibrary/utils/ydmhttp.py +0 -0
  128. {re_common-10.0.7 → re_common-10.0.8}/re_common/facade/__init__.py +0 -0
  129. {re_common-10.0.7 → re_common-10.0.8}/re_common/facade/lazy_import.py +0 -0
  130. {re_common-10.0.7 → re_common-10.0.8}/re_common/facade/loggerfacade.py +0 -0
  131. {re_common-10.0.7 → re_common-10.0.8}/re_common/facade/mysqlfacade.py +0 -0
  132. {re_common-10.0.7 → re_common-10.0.8}/re_common/facade/now.py +0 -0
  133. {re_common-10.0.7 → re_common-10.0.8}/re_common/facade/sqlite3facade.py +0 -0
  134. {re_common-10.0.7 → re_common-10.0.8}/re_common/facade/use/__init__.py +0 -0
  135. {re_common-10.0.7 → re_common-10.0.8}/re_common/facade/use/mq_use_facade.py +0 -0
  136. {re_common-10.0.7 → re_common-10.0.8}/re_common/facade/use/proxy_use_facade.py +0 -0
  137. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/__init__.py +0 -0
  138. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/base_dict_test.py +0 -0
  139. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/baseavro_test.py +0 -0
  140. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/basefile_test.py +0 -0
  141. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/basemssql_test.py +0 -0
  142. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/baseodbc_test.py +0 -0
  143. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/basepandas_test.py +0 -0
  144. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/get_attr_test/__init__.py +0 -0
  145. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/get_attr_test/get_attr_test_settings.py +0 -0
  146. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/get_attr_test/settings.py +0 -0
  147. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/idencode_test.py +0 -0
  148. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/iniconfig_test.py +0 -0
  149. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/ip_test.py +0 -0
  150. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/merge_file_test.py +0 -0
  151. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/mfaker_test.py +0 -0
  152. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/mm3_test.py +0 -0
  153. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/mylogger_test.py +0 -0
  154. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/myparsel_test.py +0 -0
  155. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/mysql_test.py +0 -0
  156. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/pymongo_test.py +0 -0
  157. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/split_test.py +0 -0
  158. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/sqlite3_merge_test.py +0 -0
  159. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/sqlite3_test.py +0 -0
  160. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/tomlconfig_test.py +0 -0
  161. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/use_tools_test/__init__.py +0 -0
  162. {re_common-10.0.7 → re_common-10.0.8}/re_common/libtest/user/__init__.py +0 -0
  163. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/__init__.py +0 -0
  164. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/assignment_expressions.py +0 -0
  165. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/mydash/__init__.py +0 -0
  166. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/mydash/test1.py +0 -0
  167. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/pydashstudio/__init__.py +0 -0
  168. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/pydashstudio/first.py +0 -0
  169. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/streamlitstudio/__init__.py +0 -0
  170. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/streamlitstudio/first_app.py +0 -0
  171. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/streamlitstudio/uber_pickups.py +0 -0
  172. {re_common-10.0.7 → re_common-10.0.8}/re_common/studio/test.py +0 -0
  173. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/__init__.py +0 -0
  174. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/__init__.py +0 -0
  175. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/helpers/__init__.py +0 -0
  176. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/s3object/__init__.py +0 -0
  177. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/s3object/baseboto3.py +0 -0
  178. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/tools/__init__.py +0 -0
  179. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/tools/dict_tools.py +0 -0
  180. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/tools/list_tools.py +0 -0
  181. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/tools/search_hash_tools.py +0 -0
  182. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/tools/text_matcher.py +0 -0
  183. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/tools/unionfind_tools.py +0 -0
  184. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/BusinessStringUtil.py +0 -0
  185. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/__init__.py +0 -0
  186. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/author_smi.py +0 -0
  187. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/basedict.py +0 -0
  188. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/basehdfs.py +0 -0
  189. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/json_cls.py +0 -0
  190. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/n_ary_expression_tree.py +0 -0
  191. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/string_bool.py +0 -0
  192. {re_common-10.0.7 → re_common-10.0.8}/re_common/v2/baselibrary/utils/stringutils.py +0 -0
  193. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/__init__.py +0 -0
  194. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/base_step_process.py +0 -0
  195. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/baseencodeid.py +0 -0
  196. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/changetaskname.py +0 -0
  197. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/core_var.py +0 -0
  198. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/mmh3Hash.py +0 -0
  199. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/proxy/__init__.py +0 -0
  200. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/proxy/allproxys.py +0 -0
  201. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/proxy/allproxys_thread.py +0 -0
  202. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/proxy/cnki_proxy.py +0 -0
  203. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/proxy/kuaidaili.py +0 -0
  204. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/proxy/proxy_all.py +0 -0
  205. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/proxy/update_kuaidaili_0.py +0 -0
  206. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/proxy/wanfang_proxy.py +0 -0
  207. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/proxy/wp_proxy_all.py +0 -0
  208. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/read_rawid_to_txt.py +0 -0
  209. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/__init__.py +0 -0
  210. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/transform/TransformBookTitleToZt.py +0 -0
  211. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/transform/TransformConferenceTitleToZt.py +0 -0
  212. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/transform/TransformCstadTitleToZt.py +0 -0
  213. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/transform/TransformJournalTitleToZt.py +0 -0
  214. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/transform/TransformPatentTitleToZt.py +0 -0
  215. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/transform/TransformRegulationTitleToZt.py +0 -0
  216. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/transform/TransformStandardTitleToZt.py +0 -0
  217. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/transform/TransformThesisTitleToZt.py +0 -0
  218. {re_common-10.0.7 → re_common-10.0.8}/re_common/vip/title/transform/__init__.py +0 -0
  219. {re_common-10.0.7 → re_common-10.0.8}/re_common.egg-info/dependency_links.txt +0 -0
  220. {re_common-10.0.7 → re_common-10.0.8}/re_common.egg-info/top_level.txt +0 -0
  221. {re_common-10.0.7 → re_common-10.0.8}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: re_common
3
- Version: 10.0.7
3
+ Version: 10.0.8
4
4
  Summary: a library about all python projects
5
5
  Home-page: https://gitee.com/xujiangios/re-common
6
6
  Author: vic
@@ -0,0 +1,79 @@
1
+ import sqlite3
2
+ import requests
3
+ import pandas as pd
4
+ import os
5
+ import json
6
+ import traceback
7
+
8
+
9
+ # 发送消息到企业微信机器人
10
+ # vx_key: string类型,自己的企业微信机器人的key
11
+ # s:string类型,要发送的消息
12
+ def send_vx(vx_key, s):
13
+ vx_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=' + vx_key
14
+ headers = {"Content-Type": "text/plain"}
15
+ data = {
16
+ "msgtype": "text",
17
+ "text": {
18
+ "content": s,
19
+ }
20
+ }
21
+ try:
22
+ requests.post(url=vx_url, headers=headers, json=data, timeout=30)
23
+ except:
24
+ send_vx(vx_key, str(traceback.format_exc()))
25
+
26
+
27
+ # 发送文件到企业微信机器人
28
+ # vx_key: string类型,自己的企业微信机器人的key
29
+ # file_path: string类型,文件地址
30
+ def post_file(vx_key, file_path):
31
+ id_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/upload_media?key=' + vx_key + '&type=file'
32
+ wx_url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=' + vx_key
33
+ data = {'file': open(file_path, 'rb')}
34
+ response = requests.post(url=id_url, files=data)
35
+ json_res = response.json()
36
+ media_id = json_res['media_id']
37
+ data = {"msgtype": "file",
38
+ "file": {"media_id": media_id}
39
+ }
40
+ try:
41
+ requests.post(url=wx_url, json=data)
42
+ except:
43
+ send_vx(send_vx, str(traceback.format_exc()))
44
+
45
+
46
+ # data: dataframe|string|dict|list|tuple|array
47
+ # file_name: 带后缀的完整文件名
48
+ # file_type: 文件类型,包括csv、excel、txt、json、sql
49
+ def file_to_vx(vx_key, data, file_name):
50
+ file_type = file_name.split('.')[-1]
51
+ if file_type == "xls" or file_type == "xlsx":
52
+ file_type = "excel"
53
+ current_dir = os.getcwd()
54
+ temp_dir = os.path.join(os.getcwd(), "tmp")
55
+ if os.path.exists(temp_dir):
56
+ pass
57
+ else:
58
+ os.makedirs(temp_dir)
59
+ file_path = current_dir + "/" + file_name
60
+ try:
61
+ if isinstance(data, pd.DataFrame) and file_type != "txt":
62
+ if file_type == "db3":
63
+ conn = sqlite3.connect(file_path)
64
+ data.to_sql('base_table', conn, if_exists='replace', index=False)
65
+ post_file(vx_key, file_path)
66
+ else:
67
+ code_str = "data.to_" + file_type + "(file_path,index=False)"
68
+ eval(code_str)
69
+ post_file(vx_key, file_path)
70
+ os.system('rm ' + file_path + '')
71
+ else:
72
+ if isinstance(data, dict):
73
+ data_str = json.dumps(data, ensure_ascii=False)
74
+ else:
75
+ data_str = str(data)
76
+ with open(file_path, 'w', encoding='utf-8') as f:
77
+ f.write(data_str)
78
+ except:
79
+ send_vx(vx_key, str(traceback.format_exc()))
@@ -0,0 +1,187 @@
1
+ import requests
2
+
3
+
4
+ # 注意;basic_json是一个字典,存储一些平台基本信息,样例如下:
5
+ # {"user_name":"fuyu", # 用户名
6
+ # "token":"cce8747e20881dfasdf66b0511cdc9fb2", # 个人令牌
7
+ # "project_name":"project_name", # 项目名称
8
+ # "task_name":"project_name" # 任务名称
9
+ #}
10
+
11
+ # 用于获取项目代码和任务代码
12
+ def get_dolphin_scheduler_code(basic_json):
13
+ # 设置请求头,包含认证token
14
+ headers = {
15
+ "token": basic_json['token']
16
+ }
17
+
18
+ # 发送GET请求,获取项目列表
19
+ response = requests.get(url='http://192.168.98.21:12345/cqvip/projects/list',
20
+ headers=headers)
21
+
22
+ # 解析响应中的JSON数据,获取项目列表
23
+ project_list = response.json()['data']
24
+
25
+ # 遍历项目列表,查找与指定项目名称匹配的项目
26
+ projectCode=-1
27
+ for i in project_list:
28
+ if i['name'] == basic_json['project_name']:
29
+ projectCode = i['code'] # 获取匹配项目的代码
30
+ break
31
+
32
+ # 检查是否找到了匹配的项目代码
33
+ if projectCode!=-1:
34
+ # 发送GET请求,获取指定项目下的任务定义列表
35
+ response = requests.get(
36
+ url='http://192.168.98.21:12345/cqvip/projects/' + str(projectCode) + '/process-definition/list',
37
+ headers=headers)
38
+
39
+ # 解析响应中的JSON数据,获取任务定义列表
40
+ task_list = response.json()['data']
41
+
42
+ # 遍历任务定义列表,查找与指定任务名称匹配的任务
43
+ task_code=-1
44
+ for task in task_list:
45
+ if task['processDefinition']['name'] == basic_json['task_name']:
46
+ task_code = task['processDefinition']['code'] # 获取匹配任务的代码
47
+ break
48
+ if task_code==-1:
49
+ raise Exception('未找到', basic_json['task_name'], '任务')
50
+ else:
51
+ raise Exception('未找到',basic_json['project_name'],'项目')
52
+ return (str(projectCode),str(task_code))
53
+
54
+ # 定义一个函数dolphinscheduler_run,用于在DolphinScheduler中运行指定的任务
55
+ def dolphinscheduler_run(basic_json):
56
+ # 设置请求头,包含认证token
57
+ headers = {
58
+ "token": basic_json['token']
59
+ }
60
+ code=get_dolphin_scheduler_code(basic_json)
61
+ # 准备请求数据,用于启动任务实例
62
+ data = {
63
+ "projectCode": code[0], # 项目代码
64
+ "processDefinitionCode": code[1], # 任务定义代码
65
+ "tenantCode": basic_json['user_name'], # 用户名称
66
+ "scheduleTime": "", # 调度时间(留空表示立即执行)
67
+ "failureStrategy": "END", # 失败策略(END表示失败后结束)
68
+ "warningType": "NONE", # 警告类型(NONE表示不发送警告)
69
+ "processInstancePriority": "MEDIUM", # 任务实例优先级(MEDIUM表示中等)
70
+ }
71
+ # 发送POST请求,启动任务实例
72
+ r = requests.post(url='http://192.168.98.21:12345/cqvip/projects/' + str(
73
+ code[0]) + '/executors/start-process-instance',
74
+ headers=headers, params=data)
75
+
76
+ # 打印响应内容,通常包含任务启动的结果信息
77
+ print(r.text)
78
+
79
+ ## 修改 DolphinScheduler 平台上任务的上下线状态
80
+ def alter_dolphinscheduler_state(basic_json, releaseState):
81
+ """
82
+ 参数:
83
+ - basic_json (dict): 包含用户认证信息的字典,必须包含 'token'、'user_name','project_name'和'spark_test' 字段。
84
+ - releaseState (str): 任务的目标状态,'ONLINE' 表示上线,'OFFLINE' 表示下线。
85
+ """
86
+
87
+ # 设置请求头,包含认证 token
88
+ headers = {
89
+ "token": basic_json['token']
90
+ }
91
+
92
+ # 获取任务代码,假设 get_dolphin_scheduler_code 是一个函数,返回项目代码和任务代码
93
+ code = get_dolphin_scheduler_code(basic_json) # code[0] 是项目代码,code[1] 是任务代码
94
+
95
+ # 构建 API URL,用于修改任务的上下线状态
96
+ API_URL = "http://192.168.98.21:12345/cqvip/projects/" + code[0] + "/process-definition/" + code[1] + "/release"
97
+
98
+ # 准备请求数据,包含任务的目标状态
99
+ data = {
100
+ "releaseState": releaseState # 'OFFLINE' 表示下线状态,'ONLINE' 表示上线状态
101
+ }
102
+
103
+ # 发送 POST 请求,修改任务的上下线状态
104
+ # - url: API 地址
105
+ # - headers: 请求头,包含认证信息
106
+ # - params: 请求参数,包含任务的目标状态
107
+ r = requests.post(url=API_URL, headers=headers, params=data)
108
+
109
+ # 打印 API 响应内容,通常包含修改状态的结果信息
110
+ print(r.text)
111
+
112
+
113
+ # 修改 DolphinScheduler 平台上的文件内容
114
+ def alter_dolphinscheduler_file(basic_json, local_file_path, dolphin_scheduler_file_path):
115
+ """
116
+ 参数:
117
+ - basic_json (dict): 包含用户认证信息的字典,必须包含 'token' 和 'user_name' 字段。
118
+ - local_file_path (str): 本地文件的路径,用于读取更新后的内容。
119
+ - dolphin_scheduler_file_path (str): 需要修改的文件在 DolphinScheduler 中的路径(相对路径)。
120
+ """
121
+
122
+ # DolphinScheduler 的 API 地址,用于更新文件内容
123
+ URL = "http://192.168.98.21:12345/cqvip/resources/update-content"
124
+
125
+ # 打开本地文件,读取文件内容
126
+ with open(local_file_path, 'r', encoding='utf-8') as f:
127
+ content_text = f.read() # 读取文件的全部内容
128
+
129
+ # 设置请求头,包含认证 token
130
+ headers = {
131
+ "token": basic_json['token']
132
+ }
133
+
134
+ # 准备请求数据,包含文件内容、用户信息和文件路径
135
+ data = {
136
+ "content": content_text, # 更新后的文件内容
137
+ "tenantCode": basic_json['user_name'], # 用户名称
138
+ "fullName": "dolphinscheduler/" + basic_json['user_name'] + "/resources" + dolphin_scheduler_file_path
139
+ # 文件在 DolphinScheduler 中的完整路径
140
+ }
141
+
142
+ # 发送 PUT 请求,更新 DolphinScheduler 中的文件内容
143
+ # - url: API 地址
144
+ # - headers: 请求头,包含认证信息
145
+ # - data: 请求数据,包含文件内容和路径信息
146
+ r = requests.put(url=URL, headers=headers, data=data)
147
+
148
+ # 打印 API 响应内容,通常包含更新结果信息
149
+ print(r.text)
150
+
151
+
152
+ # 将本地文件上传到 DolphinScheduler 的资源目录中
153
+ def upload_dolphinscheduler_file(basic_json, local_file_path, file_name, dolphin_scheduler_file_path):
154
+ """
155
+ 参数:
156
+ - basic_json (dict): 包含用户认证信息的字典,必须包含 'token' 和 'user_name' 字段。
157
+ - local_file_path (str): 本地文件的路径。
158
+ - file_name (str): 上传到 DolphinScheduler 后的文件名。
159
+ - dolphin_scheduler_file_path (str): 文件在 DolphinScheduler 中的目标路径(相对路径)。
160
+ """
161
+
162
+ # DolphinScheduler 的 API 地址
163
+ API_URL = "http://192.168.98.21:12345/cqvip/resources"
164
+
165
+ # 设置请求头,包含认证 token
166
+ headers = {
167
+ "token": basic_json['token'],
168
+ }
169
+
170
+ # 准备请求数据,包含文件类型、文件名、描述和目标路径
171
+ data = {
172
+ "type": "FILE", # 文件类型
173
+ "name": file_name, # 上传后的文件名
174
+ "description": "undefined", # 文件描述(此处为默认值)
175
+ "currentDir": "dolphinscheduler/" + basic_json['user_name'] + "/resources" + dolphin_scheduler_file_path # 目标路径
176
+ }
177
+
178
+ # 发送 POST 请求,上传文件
179
+ # - url: API 地址
180
+ # - headers: 请求头,包含认证信息
181
+ # - files: 上传的文件内容,以二进制形式读取本地文件
182
+ # - params: 其他请求参数,包含文件信息和目标路径
183
+ r = requests.post(url=API_URL, headers=headers, files={'file': open(local_file_path, 'rb')}, params=data)
184
+
185
+ # 打印 API 响应内容,通常包含上传结果信息
186
+ print(r.text)
187
+
@@ -49,9 +49,18 @@ class StringClear(object):
49
49
  def clean_symbols(self):
50
50
  """
51
51
  清理已知的符号
52
+ 旧版: "[\\p{P}~`=¥×\\\\*#$^|+%&~!,:.;'/{}()\\[\\]?<> 《》”“\\-()。≤《〈〉》—、·―–‐‘’“”″…¨〔〕°■『』℃ⅠⅡⅢⅣⅤⅥⅦⅩⅪⅫ]"
52
53
  """
54
+ pattern = (
55
+ r"[\p{P}" # 所有 Unicode 标点符号
56
+ r"~`=¥×\\*#$^|+%&~<> " # 未被 \p{P} 覆盖的特殊符号
57
+ r"”“\-≤—―–‐‘’“”″…¨°■℃" # 其他未覆盖的标点和符号
58
+ r"ⅠⅡⅢⅣⅤⅥⅦⅩⅪⅫ" # 罗马数字
59
+ r"]"
60
+ )
61
+
53
62
  self.obj_str = regex.sub(
54
- "[\\p{P}+~$`^=|<>~`$^+=|<>¥×\\\\*#$^|+%&~!,:.;'/{}()\\[\\]?<> 《》”“-()。≤《〈〉》—、·―–‐‘’“”″…¨〔〕°■『』℃ⅠⅡⅢⅣⅤⅥⅦⅩⅪⅫ]",
63
+ pattern,
55
64
  "",
56
65
  self.obj_str) # \\p{P} 标点符号 后面的是一些其他符号, 也可以用 \p{S} 代替 但是这个很广 可能有误伤
57
66
  return self
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: re_common
3
- Version: 10.0.7
3
+ Version: 10.0.8
4
4
  Summary: a library about all python projects
5
5
  Home-page: https://gitee.com/xujiangios/re-common
6
6
  Author: vic
@@ -173,8 +173,10 @@ re_common/v2/baselibrary/__init__.py
173
173
  re_common/v2/baselibrary/helpers/__init__.py
174
174
  re_common/v2/baselibrary/s3object/__init__.py
175
175
  re_common/v2/baselibrary/s3object/baseboto3.py
176
+ re_common/v2/baselibrary/tools/WeChatRobot.py
176
177
  re_common/v2/baselibrary/tools/__init__.py
177
178
  re_common/v2/baselibrary/tools/dict_tools.py
179
+ re_common/v2/baselibrary/tools/dolphinscheduler.py
178
180
  re_common/v2/baselibrary/tools/list_tools.py
179
181
  re_common/v2/baselibrary/tools/search_hash_tools.py
180
182
  re_common/v2/baselibrary/tools/text_matcher.py
@@ -34,7 +34,7 @@ long_description = """
34
34
  """
35
35
  setuptools.setup(
36
36
  name="re_common",
37
- version="10.0.7",
37
+ version="10.0.8",
38
38
  author="vic",
39
39
  author_email="xujiang5@163.com",
40
40
  description="a library about all python projects",
File without changes
File without changes