re-common 10.0.25__tar.gz → 10.0.27__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 (243) hide show
  1. {re_common-10.0.25/re_common.egg-info → re_common-10.0.27}/PKG-INFO +1 -1
  2. re_common-10.0.27/re_common/v2/baselibrary/business_utils/baseencodeid.py +100 -0
  3. re_common-10.0.27/re_common/v2/baselibrary/business_utils/full_doi_path.py +116 -0
  4. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/db.py +19 -2
  5. {re_common-10.0.25 → re_common-10.0.27/re_common.egg-info}/PKG-INFO +1 -1
  6. {re_common-10.0.25 → re_common-10.0.27}/re_common.egg-info/SOURCES.txt +2 -0
  7. {re_common-10.0.25 → re_common-10.0.27}/setup.py +1 -1
  8. {re_common-10.0.25 → re_common-10.0.27}/LICENSE +0 -0
  9. {re_common-10.0.25 → re_common-10.0.27}/README.md +0 -0
  10. {re_common-10.0.25 → re_common-10.0.27}/pyproject.toml +0 -0
  11. {re_common-10.0.25 → re_common-10.0.27}/re_common/__init__.py +0 -0
  12. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/__init__.py +0 -0
  13. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/baseabs/__init__.py +0 -0
  14. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/baseabs/baseabs.py +0 -0
  15. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/database/__init__.py +0 -0
  16. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/database/mbuilder.py +0 -0
  17. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/database/moudle.py +0 -0
  18. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/database/msqlite3.py +0 -0
  19. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/database/mysql.py +0 -0
  20. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/database/sql_factory.py +0 -0
  21. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/mthread/MThreadingRun.py +0 -0
  22. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/mthread/MThreadingRunEvent.py +0 -0
  23. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/mthread/__init__.py +0 -0
  24. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/mthread/mythreading.py +0 -0
  25. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/pakge_other/__init__.py +0 -0
  26. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/pakge_other/socks.py +0 -0
  27. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/readconfig/__init__.py +0 -0
  28. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/readconfig/config_factory.py +0 -0
  29. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/readconfig/ini_config.py +0 -0
  30. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/readconfig/toml_config.py +0 -0
  31. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/temporary/__init__.py +0 -0
  32. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/temporary/envdata.py +0 -0
  33. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/__init__.py +0 -0
  34. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/all_requests/__init__.py +0 -0
  35. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/all_requests/aiohttp_request.py +0 -0
  36. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/all_requests/httpx_requet.py +0 -0
  37. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/all_requests/mrequest.py +0 -0
  38. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/all_requests/requests_request.py +0 -0
  39. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/batch_compre/__init__.py +0 -0
  40. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/batch_compre/bijiao_batch.py +0 -0
  41. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/contrast_db3.py +0 -0
  42. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/copy_file.py +0 -0
  43. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/db3_2_sizedb3.py +0 -0
  44. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/foreachgz.py +0 -0
  45. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/get_attr.py +0 -0
  46. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/image_to_pdf.py +0 -0
  47. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/java_code_deal.py +0 -0
  48. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/javacode.py +0 -0
  49. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/mdb_db3.py +0 -0
  50. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/merge_file.py +0 -0
  51. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/merge_gz_file.py +0 -0
  52. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/mhdfstools/__init__.py +0 -0
  53. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/mhdfstools/down_hdfs_files.py +0 -0
  54. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/mhdfstools/hdfst.py +0 -0
  55. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/mhdfstools/up_hdfs_files.py +0 -0
  56. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/mongo_tools.py +0 -0
  57. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/move_file.py +0 -0
  58. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/move_mongo/__init__.py +0 -0
  59. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/move_mongo/mongo_table_to_file.py +0 -0
  60. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/move_mongo/move_mongo_table.py +0 -0
  61. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/move_mongo/use_mttf.py +0 -0
  62. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/move_mongo/use_mv.py +0 -0
  63. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/mpandas/__init__.py +0 -0
  64. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/mpandas/mpandasreadexcel.py +0 -0
  65. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/mpandas/pandas_visualization.py +0 -0
  66. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/myparsel.py +0 -0
  67. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/rename_dir_file.py +0 -0
  68. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/sequoiadb_utils.py +0 -0
  69. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/split_line_to_many.py +0 -0
  70. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/stringtodicts.py +0 -0
  71. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/tools/workwechant_bot.py +0 -0
  72. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/__init__.py +0 -0
  73. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseaiohttp.py +0 -0
  74. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseaiomysql.py +0 -0
  75. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseallstep.py +0 -0
  76. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseavro.py +0 -0
  77. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseboto3.py +0 -0
  78. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basecsv.py +0 -0
  79. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basedict.py +0 -0
  80. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basedir.py +0 -0
  81. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseencode.py +0 -0
  82. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseencoding.py +0 -0
  83. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseesdsl.py +0 -0
  84. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseexcel.py +0 -0
  85. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseexcept.py +0 -0
  86. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basefile.py +0 -0
  87. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseftp.py +0 -0
  88. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basegzip.py +0 -0
  89. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basehdfs.py +0 -0
  90. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basehttpx.py +0 -0
  91. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseip.py +0 -0
  92. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basejson.py +0 -0
  93. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baselist.py +0 -0
  94. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basemotor.py +0 -0
  95. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basemssql.py +0 -0
  96. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseodbc.py +0 -0
  97. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basepandas.py +0 -0
  98. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basepeewee.py +0 -0
  99. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basepika.py +0 -0
  100. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basepydash.py +0 -0
  101. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basepymongo.py +0 -0
  102. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basequeue.py +0 -0
  103. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baserar.py +0 -0
  104. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baserequest.py +0 -0
  105. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseset.py +0 -0
  106. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basesmb.py +0 -0
  107. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basestring.py +0 -0
  108. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basetime.py +0 -0
  109. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basetuple.py +0 -0
  110. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/baseurl.py +0 -0
  111. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/basezip.py +0 -0
  112. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/core/__init__.py +0 -0
  113. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/core/bottomutils.py +0 -0
  114. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/core/mdeprecated.py +0 -0
  115. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/core/mlamada.py +0 -0
  116. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/core/msginfo.py +0 -0
  117. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/core/requests_core.py +0 -0
  118. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/fateadm.py +0 -0
  119. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/importfun.py +0 -0
  120. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/mfaker.py +0 -0
  121. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/my_abc/__init__.py +0 -0
  122. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/my_abc/better_abc.py +0 -0
  123. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/mylogger.py +0 -0
  124. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/myredisclient.py +0 -0
  125. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/pipupgrade.py +0 -0
  126. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/ringlist.py +0 -0
  127. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/version_compare.py +0 -0
  128. {re_common-10.0.25 → re_common-10.0.27}/re_common/baselibrary/utils/ydmhttp.py +0 -0
  129. {re_common-10.0.25 → re_common-10.0.27}/re_common/facade/__init__.py +0 -0
  130. {re_common-10.0.25 → re_common-10.0.27}/re_common/facade/lazy_import.py +0 -0
  131. {re_common-10.0.25 → re_common-10.0.27}/re_common/facade/loggerfacade.py +0 -0
  132. {re_common-10.0.25 → re_common-10.0.27}/re_common/facade/mysqlfacade.py +0 -0
  133. {re_common-10.0.25 → re_common-10.0.27}/re_common/facade/now.py +0 -0
  134. {re_common-10.0.25 → re_common-10.0.27}/re_common/facade/sqlite3facade.py +0 -0
  135. {re_common-10.0.25 → re_common-10.0.27}/re_common/facade/use/__init__.py +0 -0
  136. {re_common-10.0.25 → re_common-10.0.27}/re_common/facade/use/mq_use_facade.py +0 -0
  137. {re_common-10.0.25 → re_common-10.0.27}/re_common/facade/use/proxy_use_facade.py +0 -0
  138. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/__init__.py +0 -0
  139. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/base_dict_test.py +0 -0
  140. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/baseavro_test.py +0 -0
  141. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/basefile_test.py +0 -0
  142. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/basemssql_test.py +0 -0
  143. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/baseodbc_test.py +0 -0
  144. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/basepandas_test.py +0 -0
  145. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/get_attr_test/__init__.py +0 -0
  146. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/get_attr_test/get_attr_test_settings.py +0 -0
  147. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/get_attr_test/settings.py +0 -0
  148. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/idencode_test.py +0 -0
  149. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/iniconfig_test.py +0 -0
  150. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/ip_test.py +0 -0
  151. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/merge_file_test.py +0 -0
  152. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/mfaker_test.py +0 -0
  153. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/mm3_test.py +0 -0
  154. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/mylogger_test.py +0 -0
  155. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/myparsel_test.py +0 -0
  156. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/mysql_test.py +0 -0
  157. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/pymongo_test.py +0 -0
  158. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/split_test.py +0 -0
  159. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/sqlite3_merge_test.py +0 -0
  160. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/sqlite3_test.py +0 -0
  161. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/tomlconfig_test.py +0 -0
  162. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/use_tools_test/__init__.py +0 -0
  163. {re_common-10.0.25 → re_common-10.0.27}/re_common/libtest/user/__init__.py +0 -0
  164. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/__init__.py +0 -0
  165. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/assignment_expressions.py +0 -0
  166. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/mydash/__init__.py +0 -0
  167. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/mydash/test1.py +0 -0
  168. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/pydashstudio/__init__.py +0 -0
  169. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/pydashstudio/first.py +0 -0
  170. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/streamlitstudio/__init__.py +0 -0
  171. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/streamlitstudio/first_app.py +0 -0
  172. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/streamlitstudio/uber_pickups.py +0 -0
  173. {re_common-10.0.25 → re_common-10.0.27}/re_common/studio/test.py +0 -0
  174. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/__init__.py +0 -0
  175. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/__init__.py +0 -0
  176. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/business_utils/BusinessStringUtil.py +0 -0
  177. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/business_utils/__init__.py +0 -0
  178. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/business_utils/rel_tools.py +0 -0
  179. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/decorators/__init__.py +0 -0
  180. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/decorators/utils.py +0 -0
  181. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/helpers/__init__.py +0 -0
  182. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/s3object/__init__.py +0 -0
  183. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/s3object/baseboto3.py +0 -0
  184. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/WeChatRobot.py +0 -0
  185. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/__init__.py +0 -0
  186. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/ac_ahocorasick.py +0 -0
  187. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/data_processer/__init__.py +0 -0
  188. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/data_processer/base.py +0 -0
  189. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/data_processer/data_processer.py +0 -0
  190. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/data_processer/data_reader.py +0 -0
  191. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/data_processer/data_writer.py +0 -0
  192. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/dict_tools.py +0 -0
  193. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/dolphinscheduler.py +0 -0
  194. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/hdfs_data_processer.py +0 -0
  195. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/list_tools.py +0 -0
  196. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/search_hash_tools.py +0 -0
  197. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/text_matcher.py +0 -0
  198. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/tools/unionfind_tools.py +0 -0
  199. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/BusinessStringUtil.py +0 -0
  200. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/__init__.py +0 -0
  201. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/api_net_utils.py +0 -0
  202. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/author_smi.py +0 -0
  203. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/base_string_similarity.py +0 -0
  204. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/basedict.py +0 -0
  205. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/basehdfs.py +0 -0
  206. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/basepika.py +0 -0
  207. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/basetime.py +0 -0
  208. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/json_cls.py +0 -0
  209. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/mq.py +0 -0
  210. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/n_ary_expression_tree.py +0 -0
  211. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/string_bool.py +0 -0
  212. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/string_clear.py +0 -0
  213. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/string_smi.py +0 -0
  214. {re_common-10.0.25 → re_common-10.0.27}/re_common/v2/baselibrary/utils/stringutils.py +0 -0
  215. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/__init__.py +0 -0
  216. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/base_step_process.py +0 -0
  217. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/baseencodeid.py +0 -0
  218. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/changetaskname.py +0 -0
  219. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/core_var.py +0 -0
  220. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/mmh3Hash.py +0 -0
  221. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/proxy/__init__.py +0 -0
  222. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/proxy/allproxys.py +0 -0
  223. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/proxy/allproxys_thread.py +0 -0
  224. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/proxy/cnki_proxy.py +0 -0
  225. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/proxy/kuaidaili.py +0 -0
  226. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/proxy/proxy_all.py +0 -0
  227. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/proxy/update_kuaidaili_0.py +0 -0
  228. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/proxy/wanfang_proxy.py +0 -0
  229. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/proxy/wp_proxy_all.py +0 -0
  230. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/read_rawid_to_txt.py +0 -0
  231. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/__init__.py +0 -0
  232. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/transform/TransformBookTitleToZt.py +0 -0
  233. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/transform/TransformConferenceTitleToZt.py +0 -0
  234. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/transform/TransformCstadTitleToZt.py +0 -0
  235. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/transform/TransformJournalTitleToZt.py +0 -0
  236. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/transform/TransformPatentTitleToZt.py +0 -0
  237. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/transform/TransformRegulationTitleToZt.py +0 -0
  238. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/transform/TransformStandardTitleToZt.py +0 -0
  239. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/transform/TransformThesisTitleToZt.py +0 -0
  240. {re_common-10.0.25 → re_common-10.0.27}/re_common/vip/title/transform/__init__.py +0 -0
  241. {re_common-10.0.25 → re_common-10.0.27}/re_common.egg-info/dependency_links.txt +0 -0
  242. {re_common-10.0.25 → re_common-10.0.27}/re_common.egg-info/top_level.txt +0 -0
  243. {re_common-10.0.25 → re_common-10.0.27}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: re_common
3
- Version: 10.0.25
3
+ Version: 10.0.27
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,100 @@
1
+ import base64
2
+ import hashlib
3
+
4
+ """
5
+ VIP编码lngid生成
6
+ """
7
+
8
+
9
+ class BaseLngid(object):
10
+ def __int__(self):
11
+ pass
12
+
13
+ def BaseEncodeID(self, strRaw):
14
+ r""" 自定义base编码 """
15
+
16
+ strEncode = base64.b32encode(strRaw.encode('utf8')).decode('utf8')
17
+
18
+ if strEncode.endswith('======'):
19
+ strEncode = '%s%s' % (strEncode[0:-6], '0')
20
+ elif strEncode.endswith('===='):
21
+ strEncode = '%s%s' % (strEncode[0:-4], '1')
22
+ elif strEncode.endswith('==='):
23
+ strEncode = '%s%s' % (strEncode[0:-3], '8')
24
+ elif strEncode.endswith('='):
25
+ strEncode = '%s%s' % (strEncode[0:-1], '9')
26
+
27
+ table = str.maketrans('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'ZYXWVUTSRQPONMLKJIHGFEDCBA9876543210')
28
+ strEncode = strEncode.translate(table)
29
+
30
+ return strEncode
31
+
32
+ def BaseDecodeID(self, strEncode):
33
+ r""" 自定义base解码 """
34
+
35
+ table = str.maketrans('ZYXWVUTSRQPONMLKJIHGFEDCBA9876543210', '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ')
36
+ strEncode = strEncode.translate(table)
37
+
38
+ if strEncode.endswith('0'):
39
+ strEncode = '%s%s' % (strEncode[0:-1], '======')
40
+ elif strEncode.endswith('1'):
41
+ strEncode = '%s%s' % (strEncode[0:-1], '====')
42
+ elif strEncode.endswith('8'):
43
+ strEncode = '%s%s' % (strEncode[0:-1], '===')
44
+ elif strEncode.endswith('9'):
45
+ strEncode = '%s%s' % (strEncode[0:-1], '=')
46
+
47
+ strRaw = base64.b32decode(strEncode.encode('utf8')).decode('utf8')
48
+
49
+ return strRaw
50
+
51
+ def GetLngid(self, sub_db_id, rawid, case_insensitive=False):
52
+ """
53
+ :param sub_db_id:
54
+ :param rawid:
55
+ 由 sub_db_id 和 rawid 得到 lngid。
56
+ :param case_insensitive: 标识源网站的 rawid 是否区分大小写
57
+ :return: lngid
58
+ """
59
+ uppercase_rawid = '' # 大写版 rawid
60
+ if case_insensitive: # 源网站的 rawid 区分大小写
61
+ for ch in rawid:
62
+ if ch.upper() == ch:
63
+ uppercase_rawid += ch
64
+ else:
65
+ uppercase_rawid += ch.upper() + '_'
66
+ else:
67
+ uppercase_rawid = rawid.upper()
68
+
69
+ limited_id = uppercase_rawid # 限长ID
70
+ if len(uppercase_rawid) > 20:
71
+ limited_id = hashlib.md5(uppercase_rawid.encode('utf8')).hexdigest().upper()
72
+ else:
73
+ limited_id = self.BaseEncodeID(uppercase_rawid)
74
+
75
+ lngid = sub_db_id + limited_id
76
+
77
+ return lngid
78
+
79
+ def getDoiid(self, doi):
80
+ doi_upper = doi.upper()
81
+ limited_id = self.BaseEncodeID(doi_upper)
82
+ if len(limited_id) > 240:
83
+ limited_id = hashlib.md5(doi_upper.encode('utf8')).hexdigest().upper()
84
+ return limited_id
85
+
86
+ def GetRawid(self, limited_id, case_insensitive=False):
87
+ try:
88
+ uppercase_rawid = self.BaseDecodeID(limited_id)
89
+ if case_insensitive:
90
+ str_ = "_"
91
+ uppercase_rawid_list = list(uppercase_rawid)
92
+ for num, li in enumerate(uppercase_rawid_list):
93
+ if li == str_:
94
+ old_str = "".join(uppercase_rawid_list[num - 1:num + 1])
95
+ uppercase_rawid = uppercase_rawid.replace(old_str, uppercase_rawid_list[num - 1].lower())
96
+ except Exception as e:
97
+ raise Exception("长度超过20,不可逆")
98
+
99
+ return uppercase_rawid
100
+
@@ -0,0 +1,116 @@
1
+ import base64
2
+ import hashlib
3
+ import os
4
+
5
+ from re_common.v2.baselibrary.business_utils.baseencodeid import BaseLngid
6
+
7
+ import os
8
+ import base64
9
+ import hashlib
10
+
11
+ """
12
+ DOI-文件路径 转换工具
13
+
14
+ 设计目标:
15
+ 1. 将任意DOI字符串转换为可逆、稳定的文件路径
16
+ 2. 提供高效的目录分散方案(65,536个子目录)
17
+ 3. 支持带文件扩展名的存储
18
+ 4. 完全可逆转换
19
+
20
+ 工作原理:
21
+ 1. DOI编码:
22
+ - 使用URL安全的Base64编码(RFC 3548)
23
+ - 移除Base64填充的'='字符
24
+ - 文件名长度 ≈ 原始DOI长度 × 4/3
25
+
26
+ 2. 目录分散:
27
+ - 使用MD5哈希创建两级目录结构
28
+ - 目录层级:/MD5[0:2]/MD5[2:4]/
29
+ - 支持65,536个目录(256×256),每目录约1,525个文件(假设10亿文件)
30
+
31
+ 3. 扩展名处理:
32
+ - 保持原始扩展名不变
33
+ - 解码时自动忽略扩展名
34
+
35
+ 典型转换示例:
36
+ DOI: "10.1000/xyz123" -> 路径: "a1/b2/QTMuMTAwMC94eXoxMjM.pdf"
37
+ 路径: "a1/b2/QTMuMTAwMC94eXoxMjM.pdf" -> DOI: "10.1000/xyz123"
38
+ """
39
+
40
+ base_lngid = BaseLngid()
41
+
42
+
43
+ # 以后需要启用
44
+ def doi_to_path(doi: str, ext: str = "") -> str:
45
+ """
46
+ 将 DOI 转换为可逆的存储路径:
47
+ 1. 对 DOI 进行 URL 安全的 Base64 编码(可逆)
48
+ 2. 生成 DOI 的 MD5 哈希用于目录分散
49
+ 3. 目录结构:MD5前2字符/次2字符/
50
+ 4. 文件名:Base64编码的DOI + 扩展名
51
+
52
+ Args:
53
+ doi: 文件 DOI 标识符
54
+ ext: 文件扩展名(如 '.pdf')
55
+
56
+ Returns:
57
+ 相对文件路径(如 'a1/b2/QTMuMTAwMC94eXoxMjM=.pdf')
58
+ """
59
+ # URL安全的Base64编码(可逆)
60
+ doi_b64 = base64.urlsafe_b64encode(doi.encode("utf-8")).decode("ascii").rstrip("=")
61
+
62
+ # 生成MD5哈希用于目录分配
63
+ hash_md5 = hashlib.md5(doi.encode("utf-8")).hexdigest()
64
+ dir_level1 = hash_md5[0:2]
65
+ dir_level2 = hash_md5[2:4]
66
+
67
+ return os.path.join(dir_level1, dir_level2, f"{doi_b64}{ext}")
68
+
69
+
70
+ # 以后需要启用
71
+ def path_to_doi(path: str) -> str:
72
+ """
73
+ 从文件路径反推原始DOI
74
+ Args:
75
+ path: 文件路径(如 'a1/b2/QTMuMTAwMC94eXoxMjM=.pdf')
76
+
77
+ Returns:
78
+ 原始DOI字符串
79
+ """
80
+ # 提取文件名并移除扩展名
81
+ filename = os.path.basename(path)
82
+ base_name = os.path.splitext(filename)[0]
83
+
84
+ # 补齐Base64填充字符
85
+ padding = 4 - (len(base_name) % 4)
86
+ if padding != 4: # 不需要补齐
87
+ base_name += "=" * padding
88
+
89
+ # Base64解码还原DOI
90
+ return base64.urlsafe_b64decode(base_name.encode("ascii")).decode("utf-8")
91
+
92
+
93
+ def doi_to_dir(doi):
94
+ """生成文件的存储路径和可解码的文件名
95
+
96
+ Args:
97
+ doi (str): 文件的唯一DOI标识
98
+
99
+ Returns:
100
+ str: 文件相对路径,如 "ab/cd/Base64EncodedFileName"
101
+ """
102
+ # 计算DOI的MD5哈希
103
+ hash_md5 = hashlib.md5(doi.encode('utf-8')).hexdigest().lower()
104
+
105
+ # 提取目录层级:前2位作为一级目录,3-4位作为二级目录
106
+ first_dir = hash_md5[0:2].upper()
107
+ second_dir = hash_md5[2:4].upper()
108
+
109
+ return first_dir + "/" + second_dir
110
+
111
+
112
+ def get_doi_path(doi):
113
+ # 目前使用
114
+ dir_path = doi_to_dir(doi)
115
+ file_name = base_lngid.getDoiid(doi) + ".pdf"
116
+ return dir_path + "/" + file_name
@@ -19,10 +19,27 @@ DB_CONFIG = {
19
19
  'echo': False, # 打印SQL语句
20
20
  }
21
21
 
22
+ DB_CONFIG1 = {
23
+ 'host': '192.168.98.55',
24
+ 'port': 4000,
25
+ 'user': 'foreign_fulltextUser',
26
+ 'password': 'i4hIeasw1qpmhGN2nwL7',
27
+ 'db': 'foreign_fulltext',
28
+ 'charset': 'utf8mb4',
29
+ 'minsize': 16, # 最小连接数
30
+ 'maxsize': 128, # 最大连接数
31
+ 'autocommit': False, # 自动提交事务
32
+ 'pool_recycle': 3600, # 每个连接的回收时间(秒),超过此时间后连接将被关闭并重新创建,避免失效连接
33
+ 'echo': False, # 打印SQL语句
34
+ }
35
+
22
36
 
23
37
  @asynccontextmanager
24
- async def get_db_pool():
38
+ async def get_db_pool(_DB_CONFIG: dict = None):
25
39
  """异步数据库连接池管理工具"""
40
+ global DB_CONFIG
41
+ if _DB_CONFIG is not None:
42
+ DB_CONFIG = _DB_CONFIG
26
43
  pool: Pool = await aiomysql.create_pool(**DB_CONFIG)
27
44
  try:
28
45
  yield pool
@@ -54,4 +71,4 @@ async def init_aiomysql_pool_async():
54
71
  if aiomysql_pool is None:
55
72
  print(f"[{os.getpid()}] Initializing aiomysql pool...")
56
73
  aiomysql_pool = await aiomysql.create_pool(**DB_CONFIG)
57
- return aiomysql_pool
74
+ return aiomysql_pool
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: re_common
3
- Version: 10.0.25
3
+ Version: 10.0.27
4
4
  Summary: a library about all python projects
5
5
  Home-page: https://gitee.com/xujiangios/re-common
6
6
  Author: vic
@@ -173,6 +173,8 @@ re_common/v2/__init__.py
173
173
  re_common/v2/baselibrary/__init__.py
174
174
  re_common/v2/baselibrary/business_utils/BusinessStringUtil.py
175
175
  re_common/v2/baselibrary/business_utils/__init__.py
176
+ re_common/v2/baselibrary/business_utils/baseencodeid.py
177
+ re_common/v2/baselibrary/business_utils/full_doi_path.py
176
178
  re_common/v2/baselibrary/business_utils/rel_tools.py
177
179
  re_common/v2/baselibrary/decorators/__init__.py
178
180
  re_common/v2/baselibrary/decorators/utils.py
@@ -34,7 +34,7 @@ long_description = """
34
34
  """
35
35
  setuptools.setup(
36
36
  name="re_common",
37
- version="10.0.25",
37
+ version="10.0.27",
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