re-common 10.0.6__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.6 → 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.6 → re_common-10.0.8}/re_common/v2/baselibrary/utils/string_clear.py +63 -1
  5. re_common-10.0.8/re_common/vip/proxy/__init__.py +0 -0
  6. {re_common-10.0.6 → re_common-10.0.8}/re_common.egg-info/PKG-INFO +1 -1
  7. {re_common-10.0.6 → re_common-10.0.8}/re_common.egg-info/SOURCES.txt +3 -0
  8. {re_common-10.0.6 → re_common-10.0.8}/setup.py +1 -1
  9. {re_common-10.0.6 → re_common-10.0.8}/LICENSE +0 -0
  10. {re_common-10.0.6 → re_common-10.0.8}/README.md +0 -0
  11. {re_common-10.0.6 → re_common-10.0.8}/re_common/__init__.py +0 -0
  12. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/__init__.py +0 -0
  13. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/baseabs/__init__.py +0 -0
  14. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/baseabs/baseabs.py +0 -0
  15. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/database/__init__.py +0 -0
  16. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/database/mbuilder.py +0 -0
  17. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/database/moudle.py +0 -0
  18. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/database/msqlite3.py +0 -0
  19. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/database/mysql.py +0 -0
  20. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/database/sql_factory.py +0 -0
  21. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/mthread/MThreadingRun.py +0 -0
  22. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/mthread/MThreadingRunEvent.py +0 -0
  23. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/mthread/__init__.py +0 -0
  24. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/mthread/mythreading.py +0 -0
  25. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/pakge_other/__init__.py +0 -0
  26. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/pakge_other/socks.py +0 -0
  27. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/readconfig/__init__.py +0 -0
  28. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/readconfig/config_factory.py +0 -0
  29. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/readconfig/ini_config.py +0 -0
  30. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/readconfig/toml_config.py +0 -0
  31. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/temporary/__init__.py +0 -0
  32. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/temporary/envdata.py +0 -0
  33. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/__init__.py +0 -0
  34. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/__init__.py +0 -0
  35. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/aiohttp_request.py +0 -0
  36. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/httpx_requet.py +0 -0
  37. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/mrequest.py +0 -0
  38. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/all_requests/requests_request.py +0 -0
  39. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/batch_compre/__init__.py +0 -0
  40. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/batch_compre/bijiao_batch.py +0 -0
  41. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/contrast_db3.py +0 -0
  42. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/copy_file.py +0 -0
  43. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/db3_2_sizedb3.py +0 -0
  44. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/foreachgz.py +0 -0
  45. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/get_attr.py +0 -0
  46. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/image_to_pdf.py +0 -0
  47. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/java_code_deal.py +0 -0
  48. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/javacode.py +0 -0
  49. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/mdb_db3.py +0 -0
  50. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/merge_file.py +0 -0
  51. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/merge_gz_file.py +0 -0
  52. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/mhdfstools/__init__.py +0 -0
  53. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/mhdfstools/down_hdfs_files.py +0 -0
  54. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/mhdfstools/hdfst.py +0 -0
  55. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/mhdfstools/up_hdfs_files.py +0 -0
  56. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/mongo_tools.py +0 -0
  57. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/move_file.py +0 -0
  58. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/__init__.py +0 -0
  59. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/mongo_table_to_file.py +0 -0
  60. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/move_mongo_table.py +0 -0
  61. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/use_mttf.py +0 -0
  62. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/move_mongo/use_mv.py +0 -0
  63. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/mpandas/__init__.py +0 -0
  64. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/mpandas/mpandasreadexcel.py +0 -0
  65. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/mpandas/pandas_visualization.py +0 -0
  66. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/myparsel.py +0 -0
  67. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/rename_dir_file.py +0 -0
  68. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/sequoiadb_utils.py +0 -0
  69. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/split_line_to_many.py +0 -0
  70. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/stringtodicts.py +0 -0
  71. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/tools/workwechant_bot.py +0 -0
  72. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/__init__.py +0 -0
  73. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseaiohttp.py +0 -0
  74. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseaiomysql.py +0 -0
  75. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseallstep.py +0 -0
  76. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseavro.py +0 -0
  77. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseboto3.py +0 -0
  78. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basecsv.py +0 -0
  79. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basedict.py +0 -0
  80. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basedir.py +0 -0
  81. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseencode.py +0 -0
  82. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseencoding.py +0 -0
  83. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseesdsl.py +0 -0
  84. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseexcel.py +0 -0
  85. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseexcept.py +0 -0
  86. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basefile.py +0 -0
  87. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseftp.py +0 -0
  88. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basegzip.py +0 -0
  89. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basehdfs.py +0 -0
  90. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basehttpx.py +0 -0
  91. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseip.py +0 -0
  92. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basejson.py +0 -0
  93. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baselist.py +0 -0
  94. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basemotor.py +0 -0
  95. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basemssql.py +0 -0
  96. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseodbc.py +0 -0
  97. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basepandas.py +0 -0
  98. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basepeewee.py +0 -0
  99. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basepika.py +0 -0
  100. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basepydash.py +0 -0
  101. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basepymongo.py +0 -0
  102. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basequeue.py +0 -0
  103. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baserar.py +0 -0
  104. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baserequest.py +0 -0
  105. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseset.py +0 -0
  106. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basesmb.py +0 -0
  107. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basestring.py +0 -0
  108. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basetime.py +0 -0
  109. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basetuple.py +0 -0
  110. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/baseurl.py +0 -0
  111. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/basezip.py +0 -0
  112. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/core/__init__.py +0 -0
  113. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/core/bottomutils.py +0 -0
  114. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/core/mdeprecated.py +0 -0
  115. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/core/mlamada.py +0 -0
  116. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/core/msginfo.py +0 -0
  117. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/core/requests_core.py +0 -0
  118. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/fateadm.py +0 -0
  119. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/importfun.py +0 -0
  120. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/mfaker.py +0 -0
  121. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/my_abc/__init__.py +0 -0
  122. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/my_abc/better_abc.py +0 -0
  123. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/mylogger.py +0 -0
  124. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/myredisclient.py +0 -0
  125. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/pipupgrade.py +0 -0
  126. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/ringlist.py +0 -0
  127. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/version_compare.py +0 -0
  128. {re_common-10.0.6 → re_common-10.0.8}/re_common/baselibrary/utils/ydmhttp.py +0 -0
  129. {re_common-10.0.6 → re_common-10.0.8}/re_common/facade/__init__.py +0 -0
  130. {re_common-10.0.6 → re_common-10.0.8}/re_common/facade/lazy_import.py +0 -0
  131. {re_common-10.0.6 → re_common-10.0.8}/re_common/facade/loggerfacade.py +0 -0
  132. {re_common-10.0.6 → re_common-10.0.8}/re_common/facade/mysqlfacade.py +0 -0
  133. {re_common-10.0.6 → re_common-10.0.8}/re_common/facade/now.py +0 -0
  134. {re_common-10.0.6 → re_common-10.0.8}/re_common/facade/sqlite3facade.py +0 -0
  135. {re_common-10.0.6 → re_common-10.0.8}/re_common/facade/use/__init__.py +0 -0
  136. {re_common-10.0.6 → re_common-10.0.8}/re_common/facade/use/mq_use_facade.py +0 -0
  137. {re_common-10.0.6 → re_common-10.0.8}/re_common/facade/use/proxy_use_facade.py +0 -0
  138. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/__init__.py +0 -0
  139. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/base_dict_test.py +0 -0
  140. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/baseavro_test.py +0 -0
  141. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/basefile_test.py +0 -0
  142. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/basemssql_test.py +0 -0
  143. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/baseodbc_test.py +0 -0
  144. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/basepandas_test.py +0 -0
  145. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/get_attr_test/__init__.py +0 -0
  146. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/get_attr_test/get_attr_test_settings.py +0 -0
  147. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/get_attr_test/settings.py +0 -0
  148. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/idencode_test.py +0 -0
  149. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/iniconfig_test.py +0 -0
  150. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/ip_test.py +0 -0
  151. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/merge_file_test.py +0 -0
  152. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/mfaker_test.py +0 -0
  153. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/mm3_test.py +0 -0
  154. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/mylogger_test.py +0 -0
  155. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/myparsel_test.py +0 -0
  156. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/mysql_test.py +0 -0
  157. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/pymongo_test.py +0 -0
  158. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/split_test.py +0 -0
  159. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/sqlite3_merge_test.py +0 -0
  160. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/sqlite3_test.py +0 -0
  161. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/tomlconfig_test.py +0 -0
  162. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/use_tools_test/__init__.py +0 -0
  163. {re_common-10.0.6 → re_common-10.0.8}/re_common/libtest/user/__init__.py +0 -0
  164. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/__init__.py +0 -0
  165. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/assignment_expressions.py +0 -0
  166. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/mydash/__init__.py +0 -0
  167. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/mydash/test1.py +0 -0
  168. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/pydashstudio/__init__.py +0 -0
  169. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/pydashstudio/first.py +0 -0
  170. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/streamlitstudio/__init__.py +0 -0
  171. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/streamlitstudio/first_app.py +0 -0
  172. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/streamlitstudio/uber_pickups.py +0 -0
  173. {re_common-10.0.6 → re_common-10.0.8}/re_common/studio/test.py +0 -0
  174. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/__init__.py +0 -0
  175. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/__init__.py +0 -0
  176. {re_common-10.0.6/re_common/v2/baselibrary/s3object → re_common-10.0.8/re_common/v2/baselibrary/helpers}/__init__.py +0 -0
  177. {re_common-10.0.6/re_common/v2/baselibrary/tools → re_common-10.0.8/re_common/v2/baselibrary/s3object}/__init__.py +0 -0
  178. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/s3object/baseboto3.py +0 -0
  179. {re_common-10.0.6/re_common/v2/baselibrary/utils → re_common-10.0.8/re_common/v2/baselibrary/tools}/__init__.py +0 -0
  180. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/tools/dict_tools.py +0 -0
  181. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/tools/list_tools.py +0 -0
  182. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/tools/search_hash_tools.py +0 -0
  183. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/tools/text_matcher.py +0 -0
  184. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/tools/unionfind_tools.py +0 -0
  185. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/utils/BusinessStringUtil.py +0 -0
  186. {re_common-10.0.6/re_common/vip → re_common-10.0.8/re_common/v2/baselibrary/utils}/__init__.py +0 -0
  187. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/utils/author_smi.py +0 -0
  188. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/utils/basedict.py +0 -0
  189. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/utils/basehdfs.py +0 -0
  190. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/utils/json_cls.py +0 -0
  191. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/utils/n_ary_expression_tree.py +0 -0
  192. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/utils/string_bool.py +0 -0
  193. {re_common-10.0.6 → re_common-10.0.8}/re_common/v2/baselibrary/utils/stringutils.py +0 -0
  194. {re_common-10.0.6/re_common/vip/proxy → re_common-10.0.8/re_common/vip}/__init__.py +0 -0
  195. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/base_step_process.py +0 -0
  196. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/baseencodeid.py +0 -0
  197. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/changetaskname.py +0 -0
  198. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/core_var.py +0 -0
  199. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/mmh3Hash.py +0 -0
  200. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/proxy/allproxys.py +0 -0
  201. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/proxy/allproxys_thread.py +0 -0
  202. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/proxy/cnki_proxy.py +0 -0
  203. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/proxy/kuaidaili.py +0 -0
  204. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/proxy/proxy_all.py +0 -0
  205. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/proxy/update_kuaidaili_0.py +0 -0
  206. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/proxy/wanfang_proxy.py +0 -0
  207. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/proxy/wp_proxy_all.py +0 -0
  208. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/read_rawid_to_txt.py +0 -0
  209. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/__init__.py +0 -0
  210. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/transform/TransformBookTitleToZt.py +0 -0
  211. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/transform/TransformConferenceTitleToZt.py +0 -0
  212. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/transform/TransformCstadTitleToZt.py +0 -0
  213. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/transform/TransformJournalTitleToZt.py +0 -0
  214. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/transform/TransformPatentTitleToZt.py +0 -0
  215. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/transform/TransformRegulationTitleToZt.py +0 -0
  216. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/transform/TransformStandardTitleToZt.py +0 -0
  217. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/transform/TransformThesisTitleToZt.py +0 -0
  218. {re_common-10.0.6 → re_common-10.0.8}/re_common/vip/title/transform/__init__.py +0 -0
  219. {re_common-10.0.6 → re_common-10.0.8}/re_common.egg-info/dependency_links.txt +0 -0
  220. {re_common-10.0.6 → re_common-10.0.8}/re_common.egg-info/top_level.txt +0 -0
  221. {re_common-10.0.6 → 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.6
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
@@ -67,9 +76,15 @@ class StringClear(object):
67
76
  return self
68
77
 
69
78
  def replace_dash_with_space(self):
79
+ # 横杆转空格
70
80
  self.obj_str = self.obj_str.replace("-", " ")
71
81
  return self
72
82
 
83
+ def strip_quotes(self):
84
+ # 清理 双引号
85
+ self.obj_str = self.obj_str.replace("\"", "")
86
+ return self
87
+
73
88
  def remove_diacritics(self):
74
89
  # 去除音标 转换成字母
75
90
  self.obj_str = get_diacritic_variant(self.obj_str)
@@ -110,3 +125,50 @@ def rel_clear(str_obj):
110
125
  .lower() # 小写
111
126
  .get_str() # 获取str
112
127
  .strip()) # 去掉空格
128
+
129
+
130
+ def clear_au_organ(str_obj):
131
+ """
132
+ 为作者机构定制的清理 与上面比除了不转小写外 还多了些特殊的清理
133
+ """
134
+ strs = (StringClear(str_obj)
135
+ .None_to_str() # None 转 空字符串
136
+ .to_str() # 防止其他类型传入 比如 int double
137
+ .qj_to_bj() # 全角转半角
138
+ .strip_quotes() # 清理 双引号
139
+ .clean_symbols() # 清理已知的符号
140
+ .collapse_spaces() # 移除多余空格,连续多个空格变一个
141
+ .get_str() # 获取str
142
+ .strip() # 去掉空格
143
+ )
144
+
145
+ strs = strs.replace("lt正gt", "").strip() # 特殊需求
146
+ return strs
147
+
148
+
149
+ def ref_clear(str_obj):
150
+ # 为 引文 数据定制的清理
151
+ strs = (StringClear(str_obj)
152
+ .None_to_str() # None 转 空字符串
153
+ .to_str() # 防止其他类型传入 比如 int double
154
+ .qj_to_bj() # 全角转半角
155
+ .strip_quotes() # 清理 双引号
156
+ .clean_symbols() # 清理已知的符号
157
+ .collapse_spaces() # 移除多余空格,连续多个空格变一个
158
+ .lower() # 小写
159
+ .get_str() # 获取str
160
+ .strip() # 去掉空格
161
+ )
162
+ return strs
163
+
164
+
165
+ def clear_obj(str_obj):
166
+ # 为对象化定制的清理
167
+ str_obj = clear_au_organ(str_obj)
168
+ str_obj = str_obj.replace("ß", "SS")
169
+ return (StringClear(str_obj)
170
+ .remove_diacritics() # 清理音标
171
+ .upper()
172
+ .get_str() # 获取str
173
+ .strip() # 去掉空格
174
+ )
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: re_common
3
- Version: 10.0.6
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
@@ -170,10 +170,13 @@ re_common/studio/streamlitstudio/first_app.py
170
170
  re_common/studio/streamlitstudio/uber_pickups.py
171
171
  re_common/v2/__init__.py
172
172
  re_common/v2/baselibrary/__init__.py
173
+ re_common/v2/baselibrary/helpers/__init__.py
173
174
  re_common/v2/baselibrary/s3object/__init__.py
174
175
  re_common/v2/baselibrary/s3object/baseboto3.py
176
+ re_common/v2/baselibrary/tools/WeChatRobot.py
175
177
  re_common/v2/baselibrary/tools/__init__.py
176
178
  re_common/v2/baselibrary/tools/dict_tools.py
179
+ re_common/v2/baselibrary/tools/dolphinscheduler.py
177
180
  re_common/v2/baselibrary/tools/list_tools.py
178
181
  re_common/v2/baselibrary/tools/search_hash_tools.py
179
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.6",
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