re-common 10.0.19__tar.gz → 10.0.21__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 (232) hide show
  1. {re_common-10.0.19/re_common.egg-info → re_common-10.0.21}/PKG-INFO +2 -10
  2. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/basehdfs.py +34 -0
  3. re_common-10.0.21/re_common/v2/baselibrary/utils/basetime.py +77 -0
  4. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/json_cls.py +6 -1
  5. {re_common-10.0.19 → re_common-10.0.21/re_common.egg-info}/PKG-INFO +2 -10
  6. {re_common-10.0.19 → re_common-10.0.21}/re_common.egg-info/SOURCES.txt +1 -0
  7. {re_common-10.0.19 → re_common-10.0.21}/setup.py +1 -1
  8. {re_common-10.0.19 → re_common-10.0.21}/LICENSE +0 -0
  9. {re_common-10.0.19 → re_common-10.0.21}/README.md +0 -0
  10. {re_common-10.0.19 → re_common-10.0.21}/pyproject.toml +0 -0
  11. {re_common-10.0.19 → re_common-10.0.21}/re_common/__init__.py +0 -0
  12. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/__init__.py +0 -0
  13. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/baseabs/__init__.py +0 -0
  14. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/baseabs/baseabs.py +0 -0
  15. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/database/__init__.py +0 -0
  16. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/database/mbuilder.py +0 -0
  17. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/database/moudle.py +0 -0
  18. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/database/msqlite3.py +0 -0
  19. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/database/mysql.py +0 -0
  20. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/database/sql_factory.py +0 -0
  21. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/mthread/MThreadingRun.py +0 -0
  22. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/mthread/MThreadingRunEvent.py +0 -0
  23. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/mthread/__init__.py +0 -0
  24. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/mthread/mythreading.py +0 -0
  25. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/pakge_other/__init__.py +0 -0
  26. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/pakge_other/socks.py +0 -0
  27. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/readconfig/__init__.py +0 -0
  28. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/readconfig/config_factory.py +0 -0
  29. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/readconfig/ini_config.py +0 -0
  30. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/readconfig/toml_config.py +0 -0
  31. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/temporary/__init__.py +0 -0
  32. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/temporary/envdata.py +0 -0
  33. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/__init__.py +0 -0
  34. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/__init__.py +0 -0
  35. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/aiohttp_request.py +0 -0
  36. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/httpx_requet.py +0 -0
  37. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/mrequest.py +0 -0
  38. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/requests_request.py +0 -0
  39. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/batch_compre/__init__.py +0 -0
  40. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/batch_compre/bijiao_batch.py +0 -0
  41. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/contrast_db3.py +0 -0
  42. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/copy_file.py +0 -0
  43. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/db3_2_sizedb3.py +0 -0
  44. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/foreachgz.py +0 -0
  45. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/get_attr.py +0 -0
  46. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/image_to_pdf.py +0 -0
  47. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/java_code_deal.py +0 -0
  48. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/javacode.py +0 -0
  49. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/mdb_db3.py +0 -0
  50. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/merge_file.py +0 -0
  51. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/merge_gz_file.py +0 -0
  52. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/__init__.py +0 -0
  53. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/down_hdfs_files.py +0 -0
  54. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/hdfst.py +0 -0
  55. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/up_hdfs_files.py +0 -0
  56. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/mongo_tools.py +0 -0
  57. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/move_file.py +0 -0
  58. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/__init__.py +0 -0
  59. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/mongo_table_to_file.py +0 -0
  60. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/move_mongo_table.py +0 -0
  61. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/use_mttf.py +0 -0
  62. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/use_mv.py +0 -0
  63. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/mpandas/__init__.py +0 -0
  64. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/mpandas/mpandasreadexcel.py +0 -0
  65. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/mpandas/pandas_visualization.py +0 -0
  66. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/myparsel.py +0 -0
  67. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/rename_dir_file.py +0 -0
  68. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/sequoiadb_utils.py +0 -0
  69. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/split_line_to_many.py +0 -0
  70. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/stringtodicts.py +0 -0
  71. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/tools/workwechant_bot.py +0 -0
  72. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/__init__.py +0 -0
  73. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseaiohttp.py +0 -0
  74. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseaiomysql.py +0 -0
  75. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseallstep.py +0 -0
  76. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseavro.py +0 -0
  77. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseboto3.py +0 -0
  78. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basecsv.py +0 -0
  79. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basedict.py +0 -0
  80. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basedir.py +0 -0
  81. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseencode.py +0 -0
  82. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseencoding.py +0 -0
  83. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseesdsl.py +0 -0
  84. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseexcel.py +0 -0
  85. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseexcept.py +0 -0
  86. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basefile.py +0 -0
  87. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseftp.py +0 -0
  88. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basegzip.py +0 -0
  89. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basehdfs.py +0 -0
  90. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basehttpx.py +0 -0
  91. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseip.py +0 -0
  92. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basejson.py +0 -0
  93. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baselist.py +0 -0
  94. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basemotor.py +0 -0
  95. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basemssql.py +0 -0
  96. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseodbc.py +0 -0
  97. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basepandas.py +0 -0
  98. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basepeewee.py +0 -0
  99. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basepika.py +0 -0
  100. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basepydash.py +0 -0
  101. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basepymongo.py +0 -0
  102. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basequeue.py +0 -0
  103. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baserar.py +0 -0
  104. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baserequest.py +0 -0
  105. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseset.py +0 -0
  106. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basesmb.py +0 -0
  107. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basestring.py +0 -0
  108. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basetime.py +0 -0
  109. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basetuple.py +0 -0
  110. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/baseurl.py +0 -0
  111. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/basezip.py +0 -0
  112. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/core/__init__.py +0 -0
  113. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/core/bottomutils.py +0 -0
  114. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/core/mdeprecated.py +0 -0
  115. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/core/mlamada.py +0 -0
  116. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/core/msginfo.py +0 -0
  117. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/core/requests_core.py +0 -0
  118. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/fateadm.py +0 -0
  119. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/importfun.py +0 -0
  120. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/mfaker.py +0 -0
  121. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/my_abc/__init__.py +0 -0
  122. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/my_abc/better_abc.py +0 -0
  123. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/mylogger.py +0 -0
  124. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/myredisclient.py +0 -0
  125. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/pipupgrade.py +0 -0
  126. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/ringlist.py +0 -0
  127. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/version_compare.py +0 -0
  128. {re_common-10.0.19 → re_common-10.0.21}/re_common/baselibrary/utils/ydmhttp.py +0 -0
  129. {re_common-10.0.19 → re_common-10.0.21}/re_common/facade/__init__.py +0 -0
  130. {re_common-10.0.19 → re_common-10.0.21}/re_common/facade/lazy_import.py +0 -0
  131. {re_common-10.0.19 → re_common-10.0.21}/re_common/facade/loggerfacade.py +0 -0
  132. {re_common-10.0.19 → re_common-10.0.21}/re_common/facade/mysqlfacade.py +0 -0
  133. {re_common-10.0.19 → re_common-10.0.21}/re_common/facade/now.py +0 -0
  134. {re_common-10.0.19 → re_common-10.0.21}/re_common/facade/sqlite3facade.py +0 -0
  135. {re_common-10.0.19 → re_common-10.0.21}/re_common/facade/use/__init__.py +0 -0
  136. {re_common-10.0.19 → re_common-10.0.21}/re_common/facade/use/mq_use_facade.py +0 -0
  137. {re_common-10.0.19 → re_common-10.0.21}/re_common/facade/use/proxy_use_facade.py +0 -0
  138. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/__init__.py +0 -0
  139. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/base_dict_test.py +0 -0
  140. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/baseavro_test.py +0 -0
  141. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/basefile_test.py +0 -0
  142. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/basemssql_test.py +0 -0
  143. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/baseodbc_test.py +0 -0
  144. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/basepandas_test.py +0 -0
  145. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/get_attr_test/__init__.py +0 -0
  146. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/get_attr_test/get_attr_test_settings.py +0 -0
  147. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/get_attr_test/settings.py +0 -0
  148. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/idencode_test.py +0 -0
  149. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/iniconfig_test.py +0 -0
  150. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/ip_test.py +0 -0
  151. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/merge_file_test.py +0 -0
  152. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/mfaker_test.py +0 -0
  153. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/mm3_test.py +0 -0
  154. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/mylogger_test.py +0 -0
  155. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/myparsel_test.py +0 -0
  156. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/mysql_test.py +0 -0
  157. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/pymongo_test.py +0 -0
  158. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/split_test.py +0 -0
  159. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/sqlite3_merge_test.py +0 -0
  160. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/sqlite3_test.py +0 -0
  161. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/tomlconfig_test.py +0 -0
  162. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/use_tools_test/__init__.py +0 -0
  163. {re_common-10.0.19 → re_common-10.0.21}/re_common/libtest/user/__init__.py +0 -0
  164. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/__init__.py +0 -0
  165. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/assignment_expressions.py +0 -0
  166. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/mydash/__init__.py +0 -0
  167. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/mydash/test1.py +0 -0
  168. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/pydashstudio/__init__.py +0 -0
  169. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/pydashstudio/first.py +0 -0
  170. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/streamlitstudio/__init__.py +0 -0
  171. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/streamlitstudio/first_app.py +0 -0
  172. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/streamlitstudio/uber_pickups.py +0 -0
  173. {re_common-10.0.19 → re_common-10.0.21}/re_common/studio/test.py +0 -0
  174. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/__init__.py +0 -0
  175. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/__init__.py +0 -0
  176. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/decorators/__init__.py +0 -0
  177. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/decorators/utils.py +0 -0
  178. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/helpers/__init__.py +0 -0
  179. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/s3object/__init__.py +0 -0
  180. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/s3object/baseboto3.py +0 -0
  181. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/WeChatRobot.py +0 -0
  182. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/__init__.py +0 -0
  183. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/ac_ahocorasick.py +0 -0
  184. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/dict_tools.py +0 -0
  185. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/dolphinscheduler.py +0 -0
  186. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/hdfs_data_processer.py +0 -0
  187. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/list_tools.py +0 -0
  188. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/search_hash_tools.py +0 -0
  189. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/text_matcher.py +0 -0
  190. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/tools/unionfind_tools.py +0 -0
  191. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/BusinessStringUtil.py +0 -0
  192. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/__init__.py +0 -0
  193. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/author_smi.py +0 -0
  194. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/base_string_similarity.py +0 -0
  195. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/basedict.py +0 -0
  196. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/basepika.py +0 -0
  197. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/db.py +0 -0
  198. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/mq.py +0 -0
  199. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/n_ary_expression_tree.py +0 -0
  200. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/string_bool.py +0 -0
  201. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/string_clear.py +0 -0
  202. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/string_smi.py +0 -0
  203. {re_common-10.0.19 → re_common-10.0.21}/re_common/v2/baselibrary/utils/stringutils.py +0 -0
  204. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/__init__.py +0 -0
  205. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/base_step_process.py +0 -0
  206. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/baseencodeid.py +0 -0
  207. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/changetaskname.py +0 -0
  208. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/core_var.py +0 -0
  209. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/mmh3Hash.py +0 -0
  210. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/proxy/__init__.py +0 -0
  211. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/proxy/allproxys.py +0 -0
  212. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/proxy/allproxys_thread.py +0 -0
  213. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/proxy/cnki_proxy.py +0 -0
  214. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/proxy/kuaidaili.py +0 -0
  215. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/proxy/proxy_all.py +0 -0
  216. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/proxy/update_kuaidaili_0.py +0 -0
  217. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/proxy/wanfang_proxy.py +0 -0
  218. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/proxy/wp_proxy_all.py +0 -0
  219. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/read_rawid_to_txt.py +0 -0
  220. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/__init__.py +0 -0
  221. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/transform/TransformBookTitleToZt.py +0 -0
  222. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/transform/TransformConferenceTitleToZt.py +0 -0
  223. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/transform/TransformCstadTitleToZt.py +0 -0
  224. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/transform/TransformJournalTitleToZt.py +0 -0
  225. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/transform/TransformPatentTitleToZt.py +0 -0
  226. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/transform/TransformRegulationTitleToZt.py +0 -0
  227. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/transform/TransformStandardTitleToZt.py +0 -0
  228. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/transform/TransformThesisTitleToZt.py +0 -0
  229. {re_common-10.0.19 → re_common-10.0.21}/re_common/vip/title/transform/__init__.py +0 -0
  230. {re_common-10.0.19 → re_common-10.0.21}/re_common.egg-info/dependency_links.txt +0 -0
  231. {re_common-10.0.19 → re_common-10.0.21}/re_common.egg-info/top_level.txt +0 -0
  232. {re_common-10.0.19 → re_common-10.0.21}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.1
2
2
  Name: re_common
3
- Version: 10.0.19
3
+ Version: 10.0.21
4
4
  Summary: a library about all python projects
5
5
  Home-page: https://gitee.com/xujiangios/re-common
6
6
  Author: vic
@@ -11,14 +11,6 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.6
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Dynamic: author
15
- Dynamic: author-email
16
- Dynamic: classifier
17
- Dynamic: description
18
- Dynamic: description-content-type
19
- Dynamic: home-page
20
- Dynamic: requires-python
21
- Dynamic: summary
22
14
 
23
15
 
24
16
  这是一个基础类,依赖很多的第三方包,是一个用得到的第三方库的封装,可以在此基础上迅速构建项目
@@ -107,6 +107,40 @@ class HDFSUtils(object):
107
107
  writer.write(content)
108
108
  print(f"文件写入成功: {hdfs_path}")
109
109
 
110
+ def write_file_kwargs(self, hdfs_path, content, **kwargs):
111
+ """
112
+ 向 HDFS 文件写入内容
113
+ 自定义参数实现更大的灵活性
114
+ """
115
+ with self.client.write(hdfs_path, **kwargs) as writer:
116
+ writer.write(content)
117
+ print(f"文件写入成功: {hdfs_path}")
118
+
119
+ def safe_append_hdfs(self, hdfs_path, content):
120
+ """
121
+ 更安全的追加写入方式,显式检查文件是否存在
122
+
123
+ :param content: 要写入的内容
124
+ :param hdfs_path: HDFS文件路径
125
+ """
126
+ try:
127
+ # 检查文件是否存在
128
+ file_exists = self.client.status(hdfs_path, strict=False) is not None
129
+
130
+ if not file_exists:
131
+ print(f"文件 {hdfs_path} 不存在,将创建新文件")
132
+ # 第一次写入不使用append模式
133
+ with self.client.write(hdfs_path, encoding='utf-8') as writer:
134
+ writer.write(content)
135
+ else:
136
+ # 追加模式写入
137
+ with self.client.write(hdfs_path, encoding='utf-8', append=True) as writer:
138
+ writer.write(content)
139
+
140
+ except Exception as e:
141
+ print(f"文件操作失败: {str(e)}")
142
+ raise
143
+
110
144
  def file_exists(self, hdfs_path):
111
145
  """
112
146
  检查 HDFS 文件或目录是否存在。
@@ -0,0 +1,77 @@
1
+ from datetime import datetime, timezone, timedelta
2
+ from typing import Optional
3
+
4
+
5
+ class BaseTime(object):
6
+ @staticmethod
7
+ def get_utc_now() -> datetime:
8
+ """获取当前UTC时间"""
9
+ return datetime.now(timezone.utc)
10
+
11
+ @staticmethod
12
+ def to_beijing_time(dt: datetime) -> datetime:
13
+ """将datetime对象转换为北京时间(UTC+8)"""
14
+ return dt.astimezone(timezone(timedelta(hours=8)))
15
+
16
+ @staticmethod
17
+ def get_current_beijing_time() -> datetime:
18
+ """获取当前北京时间"""
19
+ return BaseTime.to_beijing_time(BaseTime.get_utc_now())
20
+
21
+ @staticmethod
22
+ def get_beijing_time_str(format: str = "%Y-%m-%d %H:%M:%S") -> str:
23
+ """
24
+ 获取当前北京时间的字符串表示
25
+ :param format: 时间字符串的格式 格式为'YYYY-MM-DD HH:MM:SS'
26
+ """
27
+ beijing_time = BaseTime.get_current_beijing_time()
28
+ return beijing_time.strftime(format)
29
+
30
+ @staticmethod
31
+ def get_current_month_str() -> str:
32
+ """获取当前月份的字符串表示,格式为'YYYYMM'"""
33
+ beijing_time = BaseTime.get_current_beijing_time()
34
+ return beijing_time.strftime("%Y%m")
35
+
36
+ @staticmethod
37
+ def parse_beijing_time(time_str: str, format: str = "%Y-%m-%d %H:%M:%S") -> datetime:
38
+ """
39
+ 解析时间字符串为北京时间的datetime对象
40
+
41
+ :param time_str: 时间字符串
42
+ :param format: 时间字符串的格式
43
+ :return: 带有时区信息的datetime对象(UTC+8)
44
+ """
45
+ dt = datetime.strptime(time_str, format)
46
+ return dt.replace(tzinfo=timezone(timedelta(hours=8)))
47
+
48
+ @staticmethod
49
+ def get_time_difference(time_str: str) -> timedelta:
50
+ """
51
+ 计算当前时间与给定时间字符串的时间差
52
+
53
+ :param time_str: 时间字符串,格式为"YYYY-MM-DD HH:MM:SS"
54
+ :return: timedelta对象,表示时间差
55
+ """
56
+ current_time = BaseTime.get_current_beijing_time()
57
+ target_time = BaseTime.parse_beijing_time(time_str)
58
+ difference = current_time - target_time
59
+ # print(f"时间差: {difference}")
60
+ # print(f"总秒数: {difference.total_seconds()}秒")
61
+ # print(f"天数: {difference.days}天")
62
+ # print(f"小时数: {difference.total_seconds() / 3600:.2f}小时")
63
+ # print(f"分钟数: {difference.total_seconds() / 60:.2f}分钟")
64
+
65
+ return difference
66
+
67
+ @staticmethod
68
+ def is_hour_changed(last_time_str: str) -> bool:
69
+ """
70
+ 检查最后一次记录时间与当前时间是否跨越了小时边界
71
+
72
+ :param last_time_str: 最后一次记录的时间字符串,格式为"YYYY-MM-DD HH:MM:SS"
73
+ :return: True表示跨越了小时边界,False表示仍在同一小时内
74
+ """
75
+ current_time = BaseTime.get_current_beijing_time()
76
+ last_time = BaseTime.parse_beijing_time(last_time_str)
77
+ return current_time.hour != last_time.hour
@@ -1,6 +1,9 @@
1
1
  import base64
2
+ import functools
2
3
  import json
3
4
 
5
+ json_dumps = functools.partial(json.dumps, ensure_ascii=False)
6
+
4
7
 
5
8
  class BytesEncoder(json.JSONEncoder):
6
9
  def default(self, obj):
@@ -8,4 +11,6 @@ class BytesEncoder(json.JSONEncoder):
8
11
  return base64.b64encode(obj).decode('utf-8')
9
12
  return super().default(obj)
10
13
 
11
- # json.dumps(x, ensure_ascii=False, cls=BytesEncoder)
14
+
15
+ def base64_to_bytes(base64_str, encoding="utf-8") -> bytes:
16
+ return base64.b64decode(base64_str.encode(encoding))
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.1
2
2
  Name: re_common
3
- Version: 10.0.19
3
+ Version: 10.0.21
4
4
  Summary: a library about all python projects
5
5
  Home-page: https://gitee.com/xujiangios/re-common
6
6
  Author: vic
@@ -11,14 +11,6 @@ Classifier: Operating System :: OS Independent
11
11
  Requires-Python: >=3.6
12
12
  Description-Content-Type: text/markdown
13
13
  License-File: LICENSE
14
- Dynamic: author
15
- Dynamic: author-email
16
- Dynamic: classifier
17
- Dynamic: description
18
- Dynamic: description-content-type
19
- Dynamic: home-page
20
- Dynamic: requires-python
21
- Dynamic: summary
22
14
 
23
15
 
24
16
  这是一个基础类,依赖很多的第三方包,是一个用得到的第三方库的封装,可以在此基础上迅速构建项目
@@ -193,6 +193,7 @@ re_common/v2/baselibrary/utils/base_string_similarity.py
193
193
  re_common/v2/baselibrary/utils/basedict.py
194
194
  re_common/v2/baselibrary/utils/basehdfs.py
195
195
  re_common/v2/baselibrary/utils/basepika.py
196
+ re_common/v2/baselibrary/utils/basetime.py
196
197
  re_common/v2/baselibrary/utils/db.py
197
198
  re_common/v2/baselibrary/utils/json_cls.py
198
199
  re_common/v2/baselibrary/utils/mq.py
@@ -34,7 +34,7 @@ long_description = """
34
34
  """
35
35
  setuptools.setup(
36
36
  name="re_common",
37
- version="10.0.19",
37
+ version="10.0.21",
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
File without changes