re-common 10.0.10__tar.gz → 10.0.12__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 (223) hide show
  1. {re_common-10.0.10 → re_common-10.0.12}/PKG-INFO +1 -1
  2. re_common-10.0.12/re_common/v2/baselibrary/tools/list_tools.py +9 -0
  3. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/BusinessStringUtil.py +59 -0
  4. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/basedict.py +13 -1
  5. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/string_clear.py +9 -1
  6. re_common-10.0.12/re_common/v2/baselibrary/utils/string_smi.py +18 -0
  7. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/stringutils.py +66 -0
  8. {re_common-10.0.10 → re_common-10.0.12}/re_common.egg-info/PKG-INFO +1 -1
  9. {re_common-10.0.10 → re_common-10.0.12}/re_common.egg-info/SOURCES.txt +1 -0
  10. {re_common-10.0.10 → re_common-10.0.12}/setup.py +1 -1
  11. re_common-10.0.10/re_common/v2/baselibrary/tools/list_tools.py +0 -0
  12. {re_common-10.0.10 → re_common-10.0.12}/LICENSE +0 -0
  13. {re_common-10.0.10 → re_common-10.0.12}/README.md +0 -0
  14. {re_common-10.0.10 → re_common-10.0.12}/re_common/__init__.py +0 -0
  15. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/__init__.py +0 -0
  16. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/baseabs/__init__.py +0 -0
  17. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/baseabs/baseabs.py +0 -0
  18. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/database/__init__.py +0 -0
  19. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/database/mbuilder.py +0 -0
  20. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/database/moudle.py +0 -0
  21. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/database/msqlite3.py +0 -0
  22. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/database/mysql.py +0 -0
  23. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/database/sql_factory.py +0 -0
  24. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/mthread/MThreadingRun.py +0 -0
  25. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/mthread/MThreadingRunEvent.py +0 -0
  26. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/mthread/__init__.py +0 -0
  27. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/mthread/mythreading.py +0 -0
  28. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/pakge_other/__init__.py +0 -0
  29. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/pakge_other/socks.py +0 -0
  30. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/readconfig/__init__.py +0 -0
  31. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/readconfig/config_factory.py +0 -0
  32. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/readconfig/ini_config.py +0 -0
  33. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/readconfig/toml_config.py +0 -0
  34. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/temporary/__init__.py +0 -0
  35. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/temporary/envdata.py +0 -0
  36. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/__init__.py +0 -0
  37. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/all_requests/__init__.py +0 -0
  38. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/all_requests/aiohttp_request.py +0 -0
  39. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/all_requests/httpx_requet.py +0 -0
  40. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/all_requests/mrequest.py +0 -0
  41. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/all_requests/requests_request.py +0 -0
  42. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/batch_compre/__init__.py +0 -0
  43. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/batch_compre/bijiao_batch.py +0 -0
  44. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/contrast_db3.py +0 -0
  45. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/copy_file.py +0 -0
  46. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/db3_2_sizedb3.py +0 -0
  47. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/foreachgz.py +0 -0
  48. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/get_attr.py +0 -0
  49. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/image_to_pdf.py +0 -0
  50. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/java_code_deal.py +0 -0
  51. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/javacode.py +0 -0
  52. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/mdb_db3.py +0 -0
  53. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/merge_file.py +0 -0
  54. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/merge_gz_file.py +0 -0
  55. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/mhdfstools/__init__.py +0 -0
  56. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/mhdfstools/down_hdfs_files.py +0 -0
  57. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/mhdfstools/hdfst.py +0 -0
  58. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/mhdfstools/up_hdfs_files.py +0 -0
  59. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/mongo_tools.py +0 -0
  60. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/move_file.py +0 -0
  61. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/move_mongo/__init__.py +0 -0
  62. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/move_mongo/mongo_table_to_file.py +0 -0
  63. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/move_mongo/move_mongo_table.py +0 -0
  64. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/move_mongo/use_mttf.py +0 -0
  65. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/move_mongo/use_mv.py +0 -0
  66. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/mpandas/__init__.py +0 -0
  67. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/mpandas/mpandasreadexcel.py +0 -0
  68. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/mpandas/pandas_visualization.py +0 -0
  69. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/myparsel.py +0 -0
  70. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/rename_dir_file.py +0 -0
  71. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/sequoiadb_utils.py +0 -0
  72. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/split_line_to_many.py +0 -0
  73. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/stringtodicts.py +0 -0
  74. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/tools/workwechant_bot.py +0 -0
  75. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/__init__.py +0 -0
  76. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseaiohttp.py +0 -0
  77. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseaiomysql.py +0 -0
  78. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseallstep.py +0 -0
  79. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseavro.py +0 -0
  80. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseboto3.py +0 -0
  81. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basecsv.py +0 -0
  82. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basedict.py +0 -0
  83. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basedir.py +0 -0
  84. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseencode.py +0 -0
  85. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseencoding.py +0 -0
  86. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseesdsl.py +0 -0
  87. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseexcel.py +0 -0
  88. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseexcept.py +0 -0
  89. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basefile.py +0 -0
  90. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseftp.py +0 -0
  91. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basegzip.py +0 -0
  92. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basehdfs.py +0 -0
  93. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basehttpx.py +0 -0
  94. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseip.py +0 -0
  95. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basejson.py +0 -0
  96. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baselist.py +0 -0
  97. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basemotor.py +0 -0
  98. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basemssql.py +0 -0
  99. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseodbc.py +0 -0
  100. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basepandas.py +0 -0
  101. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basepeewee.py +0 -0
  102. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basepika.py +0 -0
  103. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basepydash.py +0 -0
  104. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basepymongo.py +0 -0
  105. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basequeue.py +0 -0
  106. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baserar.py +0 -0
  107. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baserequest.py +0 -0
  108. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseset.py +0 -0
  109. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basesmb.py +0 -0
  110. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basestring.py +0 -0
  111. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basetime.py +0 -0
  112. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basetuple.py +0 -0
  113. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/baseurl.py +0 -0
  114. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/basezip.py +0 -0
  115. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/core/__init__.py +0 -0
  116. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/core/bottomutils.py +0 -0
  117. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/core/mdeprecated.py +0 -0
  118. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/core/mlamada.py +0 -0
  119. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/core/msginfo.py +0 -0
  120. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/core/requests_core.py +0 -0
  121. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/fateadm.py +0 -0
  122. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/importfun.py +0 -0
  123. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/mfaker.py +0 -0
  124. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/my_abc/__init__.py +0 -0
  125. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/my_abc/better_abc.py +0 -0
  126. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/mylogger.py +0 -0
  127. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/myredisclient.py +0 -0
  128. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/pipupgrade.py +0 -0
  129. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/ringlist.py +0 -0
  130. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/version_compare.py +0 -0
  131. {re_common-10.0.10 → re_common-10.0.12}/re_common/baselibrary/utils/ydmhttp.py +0 -0
  132. {re_common-10.0.10 → re_common-10.0.12}/re_common/facade/__init__.py +0 -0
  133. {re_common-10.0.10 → re_common-10.0.12}/re_common/facade/lazy_import.py +0 -0
  134. {re_common-10.0.10 → re_common-10.0.12}/re_common/facade/loggerfacade.py +0 -0
  135. {re_common-10.0.10 → re_common-10.0.12}/re_common/facade/mysqlfacade.py +0 -0
  136. {re_common-10.0.10 → re_common-10.0.12}/re_common/facade/now.py +0 -0
  137. {re_common-10.0.10 → re_common-10.0.12}/re_common/facade/sqlite3facade.py +0 -0
  138. {re_common-10.0.10 → re_common-10.0.12}/re_common/facade/use/__init__.py +0 -0
  139. {re_common-10.0.10 → re_common-10.0.12}/re_common/facade/use/mq_use_facade.py +0 -0
  140. {re_common-10.0.10 → re_common-10.0.12}/re_common/facade/use/proxy_use_facade.py +0 -0
  141. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/__init__.py +0 -0
  142. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/base_dict_test.py +0 -0
  143. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/baseavro_test.py +0 -0
  144. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/basefile_test.py +0 -0
  145. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/basemssql_test.py +0 -0
  146. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/baseodbc_test.py +0 -0
  147. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/basepandas_test.py +0 -0
  148. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/get_attr_test/__init__.py +0 -0
  149. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/get_attr_test/get_attr_test_settings.py +0 -0
  150. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/get_attr_test/settings.py +0 -0
  151. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/idencode_test.py +0 -0
  152. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/iniconfig_test.py +0 -0
  153. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/ip_test.py +0 -0
  154. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/merge_file_test.py +0 -0
  155. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/mfaker_test.py +0 -0
  156. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/mm3_test.py +0 -0
  157. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/mylogger_test.py +0 -0
  158. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/myparsel_test.py +0 -0
  159. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/mysql_test.py +0 -0
  160. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/pymongo_test.py +0 -0
  161. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/split_test.py +0 -0
  162. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/sqlite3_merge_test.py +0 -0
  163. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/sqlite3_test.py +0 -0
  164. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/tomlconfig_test.py +0 -0
  165. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/use_tools_test/__init__.py +0 -0
  166. {re_common-10.0.10 → re_common-10.0.12}/re_common/libtest/user/__init__.py +0 -0
  167. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/__init__.py +0 -0
  168. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/assignment_expressions.py +0 -0
  169. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/mydash/__init__.py +0 -0
  170. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/mydash/test1.py +0 -0
  171. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/pydashstudio/__init__.py +0 -0
  172. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/pydashstudio/first.py +0 -0
  173. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/streamlitstudio/__init__.py +0 -0
  174. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/streamlitstudio/first_app.py +0 -0
  175. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/streamlitstudio/uber_pickups.py +0 -0
  176. {re_common-10.0.10 → re_common-10.0.12}/re_common/studio/test.py +0 -0
  177. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/__init__.py +0 -0
  178. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/__init__.py +0 -0
  179. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/helpers/__init__.py +0 -0
  180. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/s3object/__init__.py +0 -0
  181. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/s3object/baseboto3.py +0 -0
  182. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/tools/WeChatRobot.py +0 -0
  183. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/tools/__init__.py +0 -0
  184. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/tools/dict_tools.py +0 -0
  185. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/tools/dolphinscheduler.py +0 -0
  186. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/tools/search_hash_tools.py +0 -0
  187. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/tools/text_matcher.py +0 -0
  188. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/tools/unionfind_tools.py +0 -0
  189. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/__init__.py +0 -0
  190. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/author_smi.py +0 -0
  191. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/basehdfs.py +0 -0
  192. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/json_cls.py +0 -0
  193. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/n_ary_expression_tree.py +0 -0
  194. {re_common-10.0.10 → re_common-10.0.12}/re_common/v2/baselibrary/utils/string_bool.py +0 -0
  195. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/__init__.py +0 -0
  196. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/base_step_process.py +0 -0
  197. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/baseencodeid.py +0 -0
  198. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/changetaskname.py +0 -0
  199. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/core_var.py +0 -0
  200. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/mmh3Hash.py +0 -0
  201. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/proxy/__init__.py +0 -0
  202. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/proxy/allproxys.py +0 -0
  203. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/proxy/allproxys_thread.py +0 -0
  204. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/proxy/cnki_proxy.py +0 -0
  205. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/proxy/kuaidaili.py +0 -0
  206. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/proxy/proxy_all.py +0 -0
  207. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/proxy/update_kuaidaili_0.py +0 -0
  208. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/proxy/wanfang_proxy.py +0 -0
  209. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/proxy/wp_proxy_all.py +0 -0
  210. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/read_rawid_to_txt.py +0 -0
  211. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/__init__.py +0 -0
  212. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/transform/TransformBookTitleToZt.py +0 -0
  213. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/transform/TransformConferenceTitleToZt.py +0 -0
  214. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/transform/TransformCstadTitleToZt.py +0 -0
  215. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/transform/TransformJournalTitleToZt.py +0 -0
  216. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/transform/TransformPatentTitleToZt.py +0 -0
  217. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/transform/TransformRegulationTitleToZt.py +0 -0
  218. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/transform/TransformStandardTitleToZt.py +0 -0
  219. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/transform/TransformThesisTitleToZt.py +0 -0
  220. {re_common-10.0.10 → re_common-10.0.12}/re_common/vip/title/transform/__init__.py +0 -0
  221. {re_common-10.0.10 → re_common-10.0.12}/re_common.egg-info/dependency_links.txt +0 -0
  222. {re_common-10.0.10 → re_common-10.0.12}/re_common.egg-info/top_level.txt +0 -0
  223. {re_common-10.0.10 → re_common-10.0.12}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: re_common
3
- Version: 10.0.10
3
+ Version: 10.0.12
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,9 @@
1
+
2
+ def check_no_duplicates_2d(lst_2d):
3
+ """检查二维列表的每一行是否无重复"""
4
+ for row in lst_2d:
5
+ # 将行转为集合,比较长度
6
+ if len(row) != len(set(row)):
7
+ return False
8
+ return True
9
+
@@ -114,3 +114,62 @@ def get_wos_author_abbr(author_row: str):
114
114
  abbr_list = [author.strip() for author in abbr_list if
115
115
  author.strip() and author.strip().lower() not in ("*", "and")]
116
116
  return ";".join(abbr_list)
117
+
118
+
119
+ def deal_rel_vol(vol_str: str):
120
+ """
121
+ 处理 期刊融合时的卷处理逻辑
122
+ """
123
+ if vol_str.replace(".", "").isdigit():
124
+ try:
125
+ float_num = float(vol_str)
126
+ if int(float_num) == float_num:
127
+ return str(int(float_num))
128
+ except:
129
+ pass
130
+
131
+ if vol_str.lower().startswith("v "):
132
+ vol_str = vol_str.lower().replace("v ", "").strip()
133
+ return vol_str
134
+ if vol_str.lower().startswith("volume "):
135
+ vol_str = vol_str.lower().replace("volume ", "").strip()
136
+ return vol_str
137
+ if vol_str.lower().startswith("vol. "):
138
+ vol_str = vol_str.lower().replace("vol. ", "").strip()
139
+ return vol_str
140
+ if vol_str.lower().startswith("vol "):
141
+ vol_str = vol_str.lower().replace("vol ", "").strip()
142
+ return vol_str
143
+ return vol_str
144
+
145
+
146
+ def deal_num_strs(input_str):
147
+ """
148
+ int后在str 防止有浮点型的表达方式
149
+ """
150
+ number_list = re.findall(r'\d+', input_str)
151
+ transformed_numbers = [str(int(num)) for num in number_list]
152
+
153
+ # 替换原字符串中的数字为转换后的数字
154
+ for num, transformed_num in zip(number_list, transformed_numbers):
155
+ input_str = input_str.replace(num, transformed_num)
156
+ return input_str
157
+
158
+
159
+ def deal_num(strs):
160
+ """
161
+ 将 期格式化 方便 group尤其是有横杆的数据
162
+ 该方法 为融合二次分割时使用,如果场景合适也可以用于其他地方
163
+ :param strs:
164
+ :return:
165
+ """
166
+ strs = strs.replace("-", "_").replace(".", "_").upper()
167
+ if strs.find("_") > -1:
168
+ start, end = strs.split("_")
169
+ start = deal_num_strs(start)
170
+ end = deal_num_strs(end)
171
+ strs = start + "_" + end
172
+ else:
173
+ strs = deal_num_strs(strs)
174
+
175
+ return strs
@@ -1,11 +1,12 @@
1
1
  import logging
2
+ from itertools import groupby
2
3
 
3
4
  logger = logging.getLogger(__name__) # 创建 logger 实例
4
5
 
5
6
 
6
7
  class BaseDict(object):
7
8
  @classmethod
8
- def flip_dict(cls, original_dict, raise_on_conflict=False):
9
+ def flip_dict(cls, original_dict, raise_on_conflict=True):
9
10
  """
10
11
  翻转字典:将 key 是字符串、value 是列表的字典,转换为 key 是原 value 列表中的元素、value 是原 key 的字典。
11
12
  :param original_dict: 原始字典
@@ -24,3 +25,14 @@ class BaseDict(object):
24
25
  f"Warning: Key conflict detected for {value}. Overwriting with new value: {key}.")
25
26
  flipped_dict[value] = key
26
27
  return flipped_dict
28
+
29
+ @classmethod
30
+ def get_temp_gid_dicts(cls,lists,key_name):
31
+ """
32
+ 对 列表字典 分组 组成 分组id的字典
33
+ """
34
+ dicts = {}
35
+ for group_id, group_tmp in groupby(sorted(lists, key=lambda x: x[key_name]),
36
+ key=lambda x: x[key_name]):
37
+ dicts[group_id] = group_tmp
38
+ return dicts
@@ -1,7 +1,8 @@
1
1
  import re
2
2
  import regex
3
3
 
4
- from re_common.v2.baselibrary.utils.stringutils import qj2bj, bj2qj, get_diacritic_variant, clean_html
4
+ from re_common.v2.baselibrary.utils.stringutils import qj2bj, bj2qj, get_diacritic_variant, clean_html, \
5
+ remove_spaces_between_chinese_characters
5
6
 
6
7
 
7
8
  class StringClear(object):
@@ -101,6 +102,7 @@ class StringClear(object):
101
102
  return self
102
103
 
103
104
  def remove_html_tag(self):
105
+ # 去除 html 标签
104
106
  import html
105
107
 
106
108
  self.obj_str = html.unescape(self.obj_str)
@@ -109,6 +111,11 @@ class StringClear(object):
109
111
 
110
112
  return self
111
113
 
114
+ def remove_spaces_in_chinese_characters(self):
115
+ # 匹配中文间的空格并替换为空字符串
116
+ self.obj_str = remove_spaces_between_chinese_characters(self.obj_str)
117
+ return self
118
+
112
119
  def get_str(self):
113
120
  return self.obj_str
114
121
 
@@ -122,6 +129,7 @@ def rel_clear(str_obj):
122
129
  .remove_html_tag() # html标签清理
123
130
  .remove_special_chars() # 移除特殊字符,仅保留字母、数字、空格和汉字 \w 已经包括所有 Unicode 字母 下划线 _ 会被保留
124
131
  .collapse_spaces() # 移除多余空格,连续多个空格变一个
132
+ .remove_spaces_in_chinese_characters() # 匹配中文间的空格并替换为空字符串
125
133
  .lower() # 小写
126
134
  .get_str() # 获取str
127
135
  .strip()) # 去掉空格
@@ -0,0 +1,18 @@
1
+ import jellyfish
2
+ from rapidfuzz.distance import DamerauLevenshtein
3
+
4
+
5
+ class JaroDamerauLevenshteinMaxSim(object):
6
+ """
7
+ jaro_similarity 有缺陷 以下样例数据会导致分很低
8
+ s1 = "in situ monitoring of semiconductor wafer temperature using infrared interfe rometry"
9
+ s2 = "insitu monitoring of semiconductor wafer temperature using infrared interferometry"
10
+ """
11
+
12
+ def get_sim(self, str1: str, str2: str) -> float:
13
+ similarity1 = jellyfish.jaro_similarity(str1, str2)
14
+ if str1.strip() == "" and str2.strip() == "":
15
+ similarity2 = 0
16
+ else:
17
+ similarity2 = 1 - DamerauLevenshtein.normalized_distance(str1, str2)
18
+ return max(similarity1, similarity2)
@@ -1,10 +1,14 @@
1
1
  import re
2
2
  import threading
3
+ from itertools import combinations
3
4
 
4
5
  import regex
5
6
  import unicodedata
6
7
  from html.parser import HTMLParser
7
8
 
9
+ from re_common.v2.baselibrary.utils.string_clear import rel_clear
10
+ from re_common.v2.baselibrary.utils.string_smi import JaroDamerauLevenshteinMaxSim
11
+
8
12
 
9
13
  def bj2qj(src):
10
14
  if src is None:
@@ -143,4 +147,66 @@ def clean_html(html):
143
147
  return parser.get_text()
144
148
 
145
149
 
150
+ def remove_spaces_between_chinese_characters(text):
151
+ """
152
+ 匹配中文间的空格并替换为空字符串
153
+
154
+ 这里没有选取 后面的一些扩展分区 是那些分区比较分散 都写进来消耗性能,
155
+ 认为只包含这些也够用了
156
+ """
157
+ pattern = r'(?<=[\u3400-\u9fff])\s+(?=[\u3400-\u9fff])'
158
+ return re.sub(pattern, '', text)
159
+
160
+
161
+
162
+ sim_utils = JaroDamerauLevenshteinMaxSim()
163
+
164
+ def group_similar_texts(texts, threshold=0.9):
165
+ """根据相似度对文本进行分组"""
166
+ n = len(texts)
167
+ # 创建邻接表表示图
168
+ graph = [[] for _ in range(n)]
169
+ # 计算所有文本对的相似度并构建图
170
+ for i, j in combinations(range(n), 2):
171
+ similarity = sim_utils.get_sim(rel_clear(texts[i]), rel_clear(texts[j]))
172
+ if similarity >= threshold:
173
+ graph[i].append(j)
174
+ graph[j].append(i)
146
175
 
176
+ visited = [False] * n
177
+ groups = []
178
+
179
+ # 使用DFS找到连通分量
180
+ def dfs(node, group):
181
+ visited[node] = True
182
+ group.append(node)
183
+ for neighbor in graph[node]:
184
+ if not visited[neighbor]:
185
+ dfs(neighbor, group)
186
+
187
+ # 找到所有连通分量
188
+ for i in range(n):
189
+ if not visited[i]:
190
+ current_group = []
191
+ dfs(i, current_group)
192
+ groups.append(current_group)
193
+
194
+ return groups
195
+
196
+
197
+ def get_group_abstract(lists):
198
+ """
199
+ 这是一个 分组程序 ,会根据简单的连通图分组
200
+ lists: [(id,txt),...]
201
+ return: all_list 返回一个二维列表 每个列表里面是id 每个列表为一个分组
202
+ """
203
+ abstract_list = [i[1] for i in lists]
204
+ keyid_list = [i[0] for i in lists]
205
+ groups = group_similar_texts(abstract_list, threshold=0.9)
206
+ all_list = []
207
+ for group in groups:
208
+ t_list = []
209
+ for text_idx in group:
210
+ t_list.append(keyid_list[text_idx])
211
+ all_list.append(t_list)
212
+ return all_list
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: re_common
3
- Version: 10.0.10
3
+ Version: 10.0.12
4
4
  Summary: a library about all python projects
5
5
  Home-page: https://gitee.com/xujiangios/re-common
6
6
  Author: vic
@@ -190,6 +190,7 @@ re_common/v2/baselibrary/utils/json_cls.py
190
190
  re_common/v2/baselibrary/utils/n_ary_expression_tree.py
191
191
  re_common/v2/baselibrary/utils/string_bool.py
192
192
  re_common/v2/baselibrary/utils/string_clear.py
193
+ re_common/v2/baselibrary/utils/string_smi.py
193
194
  re_common/v2/baselibrary/utils/stringutils.py
194
195
  re_common/vip/__init__.py
195
196
  re_common/vip/base_step_process.py
@@ -34,7 +34,7 @@ long_description = """
34
34
  """
35
35
  setuptools.setup(
36
36
  name="re_common",
37
- version="10.0.10",
37
+ version="10.0.12",
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
File without changes