re-common 10.0.18__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.
- {re_common-10.0.18/re_common.egg-info → re_common-10.0.21}/PKG-INFO +2 -10
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/hdfs_data_processer.py +4 -4
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/basehdfs.py +34 -0
- re_common-10.0.21/re_common/v2/baselibrary/utils/basetime.py +77 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/json_cls.py +6 -1
- {re_common-10.0.18 → re_common-10.0.21/re_common.egg-info}/PKG-INFO +2 -10
- {re_common-10.0.18 → re_common-10.0.21}/re_common.egg-info/SOURCES.txt +1 -0
- {re_common-10.0.18 → re_common-10.0.21}/setup.py +1 -1
- {re_common-10.0.18 → re_common-10.0.21}/LICENSE +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/README.md +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/pyproject.toml +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/baseabs/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/baseabs/baseabs.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/database/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/database/mbuilder.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/database/moudle.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/database/msqlite3.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/database/mysql.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/database/sql_factory.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/mthread/MThreadingRun.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/mthread/MThreadingRunEvent.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/mthread/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/mthread/mythreading.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/pakge_other/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/pakge_other/socks.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/readconfig/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/readconfig/config_factory.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/readconfig/ini_config.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/readconfig/toml_config.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/temporary/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/temporary/envdata.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/aiohttp_request.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/httpx_requet.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/mrequest.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/requests_request.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/batch_compre/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/batch_compre/bijiao_batch.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/contrast_db3.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/copy_file.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/db3_2_sizedb3.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/foreachgz.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/get_attr.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/image_to_pdf.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/java_code_deal.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/javacode.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mdb_db3.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/merge_file.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/merge_gz_file.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/down_hdfs_files.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/hdfst.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/up_hdfs_files.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mongo_tools.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/move_file.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/mongo_table_to_file.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/move_mongo_table.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/use_mttf.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/use_mv.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mpandas/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mpandas/mpandasreadexcel.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mpandas/pandas_visualization.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/myparsel.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/rename_dir_file.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/sequoiadb_utils.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/split_line_to_many.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/stringtodicts.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/workwechant_bot.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseaiohttp.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseaiomysql.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseallstep.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseavro.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseboto3.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basecsv.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basedict.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basedir.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseencode.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseencoding.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseesdsl.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseexcel.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseexcept.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basefile.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseftp.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basegzip.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basehdfs.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basehttpx.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseip.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basejson.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baselist.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basemotor.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basemssql.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseodbc.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basepandas.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basepeewee.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basepika.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basepydash.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basepymongo.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basequeue.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baserar.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baserequest.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseset.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basesmb.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basestring.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basetime.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basetuple.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/baseurl.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/basezip.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/core/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/core/bottomutils.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/core/mdeprecated.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/core/mlamada.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/core/msginfo.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/core/requests_core.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/fateadm.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/importfun.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/mfaker.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/my_abc/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/my_abc/better_abc.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/mylogger.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/myredisclient.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/pipupgrade.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/ringlist.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/version_compare.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/utils/ydmhttp.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/facade/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/facade/lazy_import.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/facade/loggerfacade.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/facade/mysqlfacade.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/facade/now.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/facade/sqlite3facade.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/facade/use/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/facade/use/mq_use_facade.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/facade/use/proxy_use_facade.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/base_dict_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/baseavro_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/basefile_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/basemssql_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/baseodbc_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/basepandas_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/get_attr_test/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/get_attr_test/get_attr_test_settings.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/get_attr_test/settings.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/idencode_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/iniconfig_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/ip_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/merge_file_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/mfaker_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/mm3_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/mylogger_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/myparsel_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/mysql_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/pymongo_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/split_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/sqlite3_merge_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/sqlite3_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/tomlconfig_test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/use_tools_test/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/user/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/assignment_expressions.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/mydash/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/mydash/test1.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/pydashstudio/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/pydashstudio/first.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/streamlitstudio/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/streamlitstudio/first_app.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/streamlitstudio/uber_pickups.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/studio/test.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/decorators/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/decorators/utils.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/helpers/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/s3object/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/s3object/baseboto3.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/WeChatRobot.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/ac_ahocorasick.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/dict_tools.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/dolphinscheduler.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/list_tools.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/search_hash_tools.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/text_matcher.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/unionfind_tools.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/BusinessStringUtil.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/author_smi.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/base_string_similarity.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/basedict.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/basepika.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/db.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/mq.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/n_ary_expression_tree.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/string_bool.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/string_clear.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/string_smi.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/stringutils.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/base_step_process.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/baseencodeid.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/changetaskname.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/core_var.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/mmh3Hash.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/proxy/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/proxy/allproxys.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/proxy/allproxys_thread.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/proxy/cnki_proxy.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/proxy/kuaidaili.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/proxy/proxy_all.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/proxy/update_kuaidaili_0.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/proxy/wanfang_proxy.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/proxy/wp_proxy_all.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/read_rawid_to_txt.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformBookTitleToZt.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformConferenceTitleToZt.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformCstadTitleToZt.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformJournalTitleToZt.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformPatentTitleToZt.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformRegulationTitleToZt.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformStandardTitleToZt.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformThesisTitleToZt.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/__init__.py +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common.egg-info/dependency_links.txt +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/re_common.egg-info/top_level.txt +0 -0
- {re_common-10.0.18 → re_common-10.0.21}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
2
|
Name: re_common
|
|
3
|
-
Version: 10.0.
|
|
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
|
这是一个基础类,依赖很多的第三方包,是一个用得到的第三方库的封装,可以在此基础上迅速构建项目
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/tools/hdfs_data_processer.py
RENAMED
|
@@ -109,12 +109,12 @@ class HDFSDataProcessor:
|
|
|
109
109
|
retry_count = 0
|
|
110
110
|
while retry_count < self.retry_limit:
|
|
111
111
|
try:
|
|
112
|
-
return await process_func(data)
|
|
112
|
+
return await process_func(data) # 成功处理后退出
|
|
113
113
|
except Exception as e:
|
|
114
114
|
retry_count += 1
|
|
115
115
|
print(f"处理数据时发生错误: {e}, 正在重试 {retry_count}/{self.retry_limit}, data: {data}")
|
|
116
116
|
await asyncio.sleep(2**retry_count)
|
|
117
|
-
|
|
117
|
+
raise Exception(f"处理数据失败, 达到重试上限, data: {data}")
|
|
118
118
|
|
|
119
119
|
async def process_file(self, hdfs_file_path, process_func, write_dir: str):
|
|
120
120
|
"""处理单个 gz 文件"""
|
|
@@ -132,7 +132,7 @@ class HDFSDataProcessor:
|
|
|
132
132
|
data = json.loads(line)
|
|
133
133
|
tasks.append(self.process_data(data, process_func))
|
|
134
134
|
except json.JSONDecodeError as e:
|
|
135
|
-
|
|
135
|
+
raise Exception(f"解析JSON失败: {e}, 行内容: {line.strip()}")
|
|
136
136
|
|
|
137
137
|
# await AsyncTaskPool(self.batch_size).run(tasks) # AsyncTaskPool 适用于一次提交所有任务, 限制并发数执行
|
|
138
138
|
results.extend(await asyncio.gather(*tasks))
|
|
@@ -236,7 +236,7 @@ class HDFSDataProcessor:
|
|
|
236
236
|
data = json.loads(line)
|
|
237
237
|
batch_data.append(data)
|
|
238
238
|
except json.JSONDecodeError as e:
|
|
239
|
-
|
|
239
|
+
raise Exception(f"解析JSON失败: {e}, 行内容: {line.strip()}")
|
|
240
240
|
|
|
241
241
|
# 处理读取到的批次数据
|
|
242
242
|
if batch_data:
|
|
@@ -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
|
-
|
|
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.
|
|
1
|
+
Metadata-Version: 2.1
|
|
2
2
|
Name: re_common
|
|
3
|
-
Version: 10.0.
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/__init__.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/aiohttp_request.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/httpx_requet.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/mrequest.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/all_requests/requests_request.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/batch_compre/__init__.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/batch_compre/bijiao_batch.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/down_hdfs_files.py
RENAMED
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mhdfstools/up_hdfs_files.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/move_mongo/move_mongo_table.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mpandas/mpandasreadexcel.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/baselibrary/tools/mpandas/pandas_visualization.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/libtest/get_attr_test/get_attr_test_settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/BusinessStringUtil.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/base_string_similarity.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/v2/baselibrary/utils/n_ary_expression_tree.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformBookTitleToZt.py
RENAMED
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformCstadTitleToZt.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformJournalTitleToZt.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformPatentTitleToZt.py
RENAMED
|
File without changes
|
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformStandardTitleToZt.py
RENAMED
|
File without changes
|
{re_common-10.0.18 → re_common-10.0.21}/re_common/vip/title/transform/TransformThesisTitleToZt.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|