From e5a2e5f3f3148624644d404fda4a5347336d1c61 Mon Sep 17 00:00:00 2001 From: chenyongzhiaaron <262667641@qq.com> Date: Tue, 28 Mar 2023 10:59:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=89=93=E5=8D=B0=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E5=8F=8A=E5=8E=BB=E6=8E=89=E4=B8=80=E4=BA=9B=E9=87=8D?= =?UTF-8?q?=E5=A4=8D=E7=9A=84=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/api_project.iml | 2 +- .idea/misc.xml | 5 +- OutPut/Log/2023-03-28_info.log | 4 + Pipfile | 25 ++ Pipfile.lock | 554 +++++++++++++++++++++++++++++++ common/comparator/extractor.py | 11 +- common/encryption/FileAES.py | 6 +- common/functions/bif_datetime.py | 17 +- common/functions/bif_hashlib.py | 7 +- common/functions/bif_json.py | 8 +- common/functions/bif_list.py | 11 +- common/functions/bif_random.py | 11 +- common/functions/bif_re.py | 11 +- common/functions/bif_str.py | 12 +- common/functions/bif_time.py | 14 +- common/functions/random_tools.py | 57 +--- common/tools/logger_decorator.py | 44 --- common/tools/retry.py | 3 + 18 files changed, 660 insertions(+), 142 deletions(-) create mode 100644 OutPut/Log/2023-03-28_info.log create mode 100644 Pipfile create mode 100644 Pipfile.lock delete mode 100644 common/tools/logger_decorator.py diff --git a/.idea/api_project.iml b/.idea/api_project.iml index b1a81f5..74a9e7c 100644 --- a/.idea/api_project.iml +++ b/.idea/api_project.iml @@ -4,7 +4,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index f6104af..8978351 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,7 +1,10 @@ - + + + \ No newline at end of file diff --git a/OutPut/Log/2023-03-28_info.log b/OutPut/Log/2023-03-28_info.log new file mode 100644 index 0000000..91d68d5 --- /dev/null +++ b/OutPut/Log/2023-03-28_info.log @@ -0,0 +1,4 @@ +2023-03-28 10:47:38,228-INFO-logger.py-[ line:65 ] - 日志信息:执行方法:get_delta_time(0, 0, 0, 0, %Y-%m-%d %H:%M:%S) +2023-03-28 10:49:10,680-INFO-logger.py-[ line:65 ] - 日志信息:执行方法:get_delta_time(0, 0, 0, 0, %Y-%m-%d %H:%M:%S) +2023-03-28 10:49:28,187-INFO-logger.py-[ line:65 ] - 日志信息:执行方法:get_delta_time(4, 0, 0, 0, %Y-%m-%d %H:%M:%S) +2023-03-28 10:49:33,092-INFO-logger.py-[ line:65 ] - 日志信息:执行方法:get_delta_time(-4, 0, 0, 0, %Y-%m-%d %H:%M:%S) diff --git a/Pipfile b/Pipfile new file mode 100644 index 0000000..bb7f0a1 --- /dev/null +++ b/Pipfile @@ -0,0 +1,25 @@ +[[source]] +url = "https://mirrors.aliyun.com/pypi/simple/" +verify_ssl = true +name = "pip_conf_index_global" + +[packages] +jsonpath = "*" +pymongo = "*" +crypto = "*" +pytesseract = "*" +rsa = "*" +pydes = "*" +pycryptodome = "*" +jsonpath-ng = "*" +redis = "*" +pymysql = "*" +openpyxl = "*" +faker = "*" +pypinyin = "*" + +[dev-packages] + +[requires] +python_version = "3.9" +python_full_version = "3.9.5" diff --git a/Pipfile.lock b/Pipfile.lock new file mode 100644 index 0000000..ca7cc1c --- /dev/null +++ b/Pipfile.lock @@ -0,0 +1,554 @@ +{ + "_meta": { + "hash": { + "sha256": "22cbe5f42e6b541036cd4163f8cd4eb2ec000b3561391564312d93b574d1231f" + }, + "pipfile-spec": 6, + "requires": { + "python_full_version": "3.9.5", + "python_version": "3.9" + }, + "sources": [ + { + "name": "pip_conf_index_global", + "url": "https://mirrors.aliyun.com/pypi/simple/", + "verify_ssl": true + } + ] + }, + "default": { + "async-timeout": { + "hashes": [ + "sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15", + "sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c" + ], + "markers": "python_version < '3.11'", + "version": "==4.0.2" + }, + "certifi": { + "hashes": [ + "sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3", + "sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18" + ], + "markers": "python_version >= '3.6'", + "version": "==2022.12.7" + }, + "charset-normalizer": { + "hashes": [ + "sha256:04afa6387e2b282cf78ff3dbce20f0cc071c12dc8f685bd40960cc68644cfea6", + "sha256:04eefcee095f58eaabe6dc3cc2262f3bcd776d2c67005880894f447b3f2cb9c1", + "sha256:0be65ccf618c1e7ac9b849c315cc2e8a8751d9cfdaa43027d4f6624bd587ab7e", + "sha256:0c95f12b74681e9ae127728f7e5409cbbef9cd914d5896ef238cc779b8152373", + "sha256:0ca564606d2caafb0abe6d1b5311c2649e8071eb241b2d64e75a0d0065107e62", + "sha256:10c93628d7497c81686e8e5e557aafa78f230cd9e77dd0c40032ef90c18f2230", + "sha256:11d117e6c63e8f495412d37e7dc2e2fff09c34b2d09dbe2bee3c6229577818be", + "sha256:11d3bcb7be35e7b1bba2c23beedac81ee893ac9871d0ba79effc7fc01167db6c", + "sha256:12a2b561af122e3d94cdb97fe6fb2bb2b82cef0cdca131646fdb940a1eda04f0", + "sha256:12d1a39aa6b8c6f6248bb54550efcc1c38ce0d8096a146638fd4738e42284448", + "sha256:1435ae15108b1cb6fffbcea2af3d468683b7afed0169ad718451f8db5d1aff6f", + "sha256:1c60b9c202d00052183c9be85e5eaf18a4ada0a47d188a83c8f5c5b23252f649", + "sha256:1e8fcdd8f672a1c4fc8d0bd3a2b576b152d2a349782d1eb0f6b8e52e9954731d", + "sha256:20064ead0717cf9a73a6d1e779b23d149b53daf971169289ed2ed43a71e8d3b0", + "sha256:21fa558996782fc226b529fdd2ed7866c2c6ec91cee82735c98a197fae39f706", + "sha256:22908891a380d50738e1f978667536f6c6b526a2064156203d418f4856d6e86a", + "sha256:3160a0fd9754aab7d47f95a6b63ab355388d890163eb03b2d2b87ab0a30cfa59", + "sha256:322102cdf1ab682ecc7d9b1c5eed4ec59657a65e1c146a0da342b78f4112db23", + "sha256:34e0a2f9c370eb95597aae63bf85eb5e96826d81e3dcf88b8886012906f509b5", + "sha256:3573d376454d956553c356df45bb824262c397c6e26ce43e8203c4c540ee0acb", + "sha256:3747443b6a904001473370d7810aa19c3a180ccd52a7157aacc264a5ac79265e", + "sha256:38e812a197bf8e71a59fe55b757a84c1f946d0ac114acafaafaf21667a7e169e", + "sha256:3a06f32c9634a8705f4ca9946d667609f52cf130d5548881401f1eb2c39b1e2c", + "sha256:3a5fc78f9e3f501a1614a98f7c54d3969f3ad9bba8ba3d9b438c3bc5d047dd28", + "sha256:3d9098b479e78c85080c98e1e35ff40b4a31d8953102bb0fd7d1b6f8a2111a3d", + "sha256:3dc5b6a8ecfdc5748a7e429782598e4f17ef378e3e272eeb1340ea57c9109f41", + "sha256:4155b51ae05ed47199dc5b2a4e62abccb274cee6b01da5b895099b61b1982974", + "sha256:49919f8400b5e49e961f320c735388ee686a62327e773fa5b3ce6721f7e785ce", + "sha256:53d0a3fa5f8af98a1e261de6a3943ca631c526635eb5817a87a59d9a57ebf48f", + "sha256:5f008525e02908b20e04707a4f704cd286d94718f48bb33edddc7d7b584dddc1", + "sha256:628c985afb2c7d27a4800bfb609e03985aaecb42f955049957814e0491d4006d", + "sha256:65ed923f84a6844de5fd29726b888e58c62820e0769b76565480e1fdc3d062f8", + "sha256:6734e606355834f13445b6adc38b53c0fd45f1a56a9ba06c2058f86893ae8017", + "sha256:6baf0baf0d5d265fa7944feb9f7451cc316bfe30e8df1a61b1bb08577c554f31", + "sha256:6f4f4668e1831850ebcc2fd0b1cd11721947b6dc7c00bf1c6bd3c929ae14f2c7", + "sha256:6f5c2e7bc8a4bf7c426599765b1bd33217ec84023033672c1e9a8b35eaeaaaf8", + "sha256:6f6c7a8a57e9405cad7485f4c9d3172ae486cfef1344b5ddd8e5239582d7355e", + "sha256:7381c66e0561c5757ffe616af869b916c8b4e42b367ab29fedc98481d1e74e14", + "sha256:73dc03a6a7e30b7edc5b01b601e53e7fc924b04e1835e8e407c12c037e81adbd", + "sha256:74db0052d985cf37fa111828d0dd230776ac99c740e1a758ad99094be4f1803d", + "sha256:75f2568b4189dda1c567339b48cba4ac7384accb9c2a7ed655cd86b04055c795", + "sha256:78cacd03e79d009d95635e7d6ff12c21eb89b894c354bd2b2ed0b4763373693b", + "sha256:80d1543d58bd3d6c271b66abf454d437a438dff01c3e62fdbcd68f2a11310d4b", + "sha256:830d2948a5ec37c386d3170c483063798d7879037492540f10a475e3fd6f244b", + "sha256:891cf9b48776b5c61c700b55a598621fdb7b1e301a550365571e9624f270c203", + "sha256:8f25e17ab3039b05f762b0a55ae0b3632b2e073d9c8fc88e89aca31a6198e88f", + "sha256:9a3267620866c9d17b959a84dd0bd2d45719b817245e49371ead79ed4f710d19", + "sha256:a04f86f41a8916fe45ac5024ec477f41f886b3c435da2d4e3d2709b22ab02af1", + "sha256:aaf53a6cebad0eae578f062c7d462155eada9c172bd8c4d250b8c1d8eb7f916a", + "sha256:abc1185d79f47c0a7aaf7e2412a0eb2c03b724581139193d2d82b3ad8cbb00ac", + "sha256:ac0aa6cd53ab9a31d397f8303f92c42f534693528fafbdb997c82bae6e477ad9", + "sha256:ac3775e3311661d4adace3697a52ac0bab17edd166087d493b52d4f4f553f9f0", + "sha256:b06f0d3bf045158d2fb8837c5785fe9ff9b8c93358be64461a1089f5da983137", + "sha256:b116502087ce8a6b7a5f1814568ccbd0e9f6cfd99948aa59b0e241dc57cf739f", + "sha256:b82fab78e0b1329e183a65260581de4375f619167478dddab510c6c6fb04d9b6", + "sha256:bd7163182133c0c7701b25e604cf1611c0d87712e56e88e7ee5d72deab3e76b5", + "sha256:c36bcbc0d5174a80d6cccf43a0ecaca44e81d25be4b7f90f0ed7bcfbb5a00909", + "sha256:c3af8e0f07399d3176b179f2e2634c3ce9c1301379a6b8c9c9aeecd481da494f", + "sha256:c84132a54c750fda57729d1e2599bb598f5fa0344085dbde5003ba429a4798c0", + "sha256:cb7b2ab0188829593b9de646545175547a70d9a6e2b63bf2cd87a0a391599324", + "sha256:cca4def576f47a09a943666b8f829606bcb17e2bc2d5911a46c8f8da45f56755", + "sha256:cf6511efa4801b9b38dc5546d7547d5b5c6ef4b081c60b23e4d941d0eba9cbeb", + "sha256:d16fd5252f883eb074ca55cb622bc0bee49b979ae4e8639fff6ca3ff44f9f854", + "sha256:d2686f91611f9e17f4548dbf050e75b079bbc2a82be565832bc8ea9047b61c8c", + "sha256:d7fc3fca01da18fbabe4625d64bb612b533533ed10045a2ac3dd194bfa656b60", + "sha256:dd5653e67b149503c68c4018bf07e42eeed6b4e956b24c00ccdf93ac79cdff84", + "sha256:de5695a6f1d8340b12a5d6d4484290ee74d61e467c39ff03b39e30df62cf83a0", + "sha256:e0ac8959c929593fee38da1c2b64ee9778733cdf03c482c9ff1d508b6b593b2b", + "sha256:e1b25e3ad6c909f398df8921780d6a3d120d8c09466720226fc621605b6f92b1", + "sha256:e633940f28c1e913615fd624fcdd72fdba807bf53ea6925d6a588e84e1151531", + "sha256:e89df2958e5159b811af9ff0f92614dabf4ff617c03a4c1c6ff53bf1c399e0e1", + "sha256:ea9f9c6034ea2d93d9147818f17c2a0860d41b71c38b9ce4d55f21b6f9165a11", + "sha256:f645caaf0008bacf349875a974220f1f1da349c5dbe7c4ec93048cdc785a3326", + "sha256:f8303414c7b03f794347ad062c0516cee0e15f7a612abd0ce1e25caf6ceb47df", + "sha256:fca62a8301b605b954ad2e9c3666f9d97f63872aa4efcae5492baca2056b74ab" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.1.0" + }, + "crypto": { + "hashes": [ + "sha256:8f2ee9756a0265c18845ac097ae447c75cfbde158abe1361b7491619f866a9bd", + "sha256:985120aa86f71545388199f96a2a0e00f7ccfe5ecd14c56355eb399e1a63d164" + ], + "index": "pip_conf_index_global", + "version": "==1.4.1" + }, + "decorator": { + "hashes": [ + "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330", + "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186" + ], + "markers": "python_version >= '3.5'", + "version": "==5.1.1" + }, + "dnspython": { + "hashes": [ + "sha256:224e32b03eb46be70e12ef6d64e0be123a64e621ab4c0822ff6d450d52a540b9", + "sha256:89141536394f909066cabd112e3e1a37e4e654db00a25308b0f130bc3152eb46" + ], + "markers": "python_version >= '3.7' and python_version < '4.0'", + "version": "==2.3.0" + }, + "et-xmlfile": { + "hashes": [ + "sha256:8eb9e2bc2f8c97e37a2dc85a09ecdcdec9d8a396530a6d5a33b30b9a92da0c5c", + "sha256:a2ba85d1d6a74ef63837eed693bcb89c3f752169b0e3e7ae5b16ca5e1b3deada" + ], + "markers": "python_version >= '3.6'", + "version": "==1.1.0" + }, + "faker": { + "hashes": [ + "sha256:4c98c42984db54be2246d40e6407cd983db7b1511a70eaff64c3f383a51bace6", + "sha256:9bd71833146b844d848791b79720c7806108130c9603c7074123b3f77b4e97a1" + ], + "index": "pip_conf_index_global", + "version": "==18.3.1" + }, + "idna": { + "hashes": [ + "sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4", + "sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2" + ], + "markers": "python_version >= '3.5'", + "version": "==3.4" + }, + "jsonpath": { + "hashes": [ + "sha256:46d3fd2016cd5b842283d547877a02c418a0fe9aa7a6b0ae344115a2c990fef4" + ], + "index": "pip_conf_index_global", + "version": "==0.82" + }, + "jsonpath-ng": { + "hashes": [ + "sha256:292a93569d74029ba75ac2dc3d3630fc0e17b2df26119a165fa1d498ca47bf65", + "sha256:a273b182a82c1256daab86a313b937059261b5c5f8c4fa3fc38b882b344dd567", + "sha256:f75b95dbecb8a0f3b86fd2ead21c2b022c3f5770957492b9b6196ecccfeb10aa" + ], + "index": "pip_conf_index_global", + "version": "==1.5.3" + }, + "naked": { + "hashes": [ + "sha256:ea3d7eeada6b89bd8464ba0cfaa631867aaa68a3e2d5d6a6800cbe74f8941e5f", + "sha256:f81015107e3aefdc801d7144fbae214bdf3cb179c0020a1dc6d5acb3659d5d5c" + ], + "version": "==0.1.32" + }, + "openpyxl": { + "hashes": [ + "sha256:a6f5977418eff3b2d5500d54d9db50c8277a368436f4e4f8ddb1be3422870184", + "sha256:f91456ead12ab3c6c2e9491cf33ba6d08357d802192379bb482f1033ade496f5" + ], + "index": "pip_conf_index_global", + "version": "==3.1.2" + }, + "packaging": { + "hashes": [ + "sha256:714ac14496c3e68c99c29b00845f7a2b85f3bb6f1078fd9f72fd20f0570002b2", + "sha256:b6ad297f8907de0fa2fe1ccbd26fdaf387f5f47c7275fedf8cce89f99446cf97" + ], + "markers": "python_version >= '3.7'", + "version": "==23.0" + }, + "pillow": { + "hashes": [ + "sha256:013016af6b3a12a2f40b704677f8b51f72cb007dac785a9933d5c86a72a7fe33", + "sha256:0845adc64fe9886db00f5ab68c4a8cd933ab749a87747555cec1c95acea64b0b", + "sha256:0884ba7b515163a1a05440a138adeb722b8a6ae2c2b33aea93ea3118dd3a899e", + "sha256:09b89ddc95c248ee788328528e6a2996e09eaccddeeb82a5356e92645733be35", + "sha256:0dd4c681b82214b36273c18ca7ee87065a50e013112eea7d78c7a1b89a739153", + "sha256:0e51f608da093e5d9038c592b5b575cadc12fd748af1479b5e858045fff955a9", + "sha256:0f3269304c1a7ce82f1759c12ce731ef9b6e95b6df829dccd9fe42912cc48569", + "sha256:16a8df99701f9095bea8a6c4b3197da105df6f74e6176c5b410bc2df2fd29a57", + "sha256:19005a8e58b7c1796bc0167862b1f54a64d3b44ee5d48152b06bb861458bc0f8", + "sha256:1b4b4e9dda4f4e4c4e6896f93e84a8f0bcca3b059de9ddf67dac3c334b1195e1", + "sha256:28676836c7796805914b76b1837a40f76827ee0d5398f72f7dcc634bae7c6264", + "sha256:2968c58feca624bb6c8502f9564dd187d0e1389964898f5e9e1fbc8533169157", + "sha256:3f4cc516e0b264c8d4ccd6b6cbc69a07c6d582d8337df79be1e15a5056b258c9", + "sha256:3fa1284762aacca6dc97474ee9c16f83990b8eeb6697f2ba17140d54b453e133", + "sha256:43521ce2c4b865d385e78579a082b6ad1166ebed2b1a2293c3be1d68dd7ca3b9", + "sha256:451f10ef963918e65b8869e17d67db5e2f4ab40e716ee6ce7129b0cde2876eab", + "sha256:46c259e87199041583658457372a183636ae8cd56dbf3f0755e0f376a7f9d0e6", + "sha256:46f39cab8bbf4a384ba7cb0bc8bae7b7062b6a11cfac1ca4bc144dea90d4a9f5", + "sha256:519e14e2c49fcf7616d6d2cfc5c70adae95682ae20f0395e9280db85e8d6c4df", + "sha256:53dcb50fbdc3fb2c55431a9b30caeb2f7027fcd2aeb501459464f0214200a503", + "sha256:54614444887e0d3043557d9dbc697dbb16cfb5a35d672b7a0fcc1ed0cf1c600b", + "sha256:575d8912dca808edd9acd6f7795199332696d3469665ef26163cd090fa1f8bfa", + "sha256:5dd5a9c3091a0f414a963d427f920368e2b6a4c2f7527fdd82cde8ef0bc7a327", + "sha256:5f532a2ad4d174eb73494e7397988e22bf427f91acc8e6ebf5bb10597b49c493", + "sha256:60e7da3a3ad1812c128750fc1bc14a7ceeb8d29f77e0a2356a8fb2aa8925287d", + "sha256:653d7fb2df65efefbcbf81ef5fe5e5be931f1ee4332c2893ca638c9b11a409c4", + "sha256:6663977496d616b618b6cfa43ec86e479ee62b942e1da76a2c3daa1c75933ef4", + "sha256:6abfb51a82e919e3933eb137e17c4ae9c0475a25508ea88993bb59faf82f3b35", + "sha256:6c6b1389ed66cdd174d040105123a5a1bc91d0aa7059c7261d20e583b6d8cbd2", + "sha256:6d9dfb9959a3b0039ee06c1a1a90dc23bac3b430842dcb97908ddde05870601c", + "sha256:765cb54c0b8724a7c12c55146ae4647e0274a839fb6de7bcba841e04298e1011", + "sha256:7a21222644ab69ddd9967cfe6f2bb420b460dae4289c9d40ff9a4896e7c35c9a", + "sha256:7ac7594397698f77bce84382929747130765f66406dc2cd8b4ab4da68ade4c6e", + "sha256:7cfc287da09f9d2a7ec146ee4d72d6ea1342e770d975e49a8621bf54eaa8f30f", + "sha256:83125753a60cfc8c412de5896d10a0a405e0bd88d0470ad82e0869ddf0cb3848", + "sha256:847b114580c5cc9ebaf216dd8c8dbc6b00a3b7ab0131e173d7120e6deade1f57", + "sha256:87708d78a14d56a990fbf4f9cb350b7d89ee8988705e58e39bdf4d82c149210f", + "sha256:8a2b5874d17e72dfb80d917213abd55d7e1ed2479f38f001f264f7ce7bae757c", + "sha256:8f127e7b028900421cad64f51f75c051b628db17fb00e099eb148761eed598c9", + "sha256:94cdff45173b1919350601f82d61365e792895e3c3a3443cf99819e6fbf717a5", + "sha256:99d92d148dd03fd19d16175b6d355cc1b01faf80dae93c6c3eb4163709edc0a9", + "sha256:9a3049a10261d7f2b6514d35bbb7a4dfc3ece4c4de14ef5876c4b7a23a0e566d", + "sha256:9d9a62576b68cd90f7075876f4e8444487db5eeea0e4df3ba298ee38a8d067b0", + "sha256:9e5f94742033898bfe84c93c831a6f552bb629448d4072dd312306bab3bd96f1", + "sha256:a1c2d7780448eb93fbcc3789bf3916aa5720d942e37945f4056680317f1cd23e", + "sha256:a2e0f87144fcbbe54297cae708c5e7f9da21a4646523456b00cc956bd4c65815", + "sha256:a4dfdae195335abb4e89cc9762b2edc524f3c6e80d647a9a81bf81e17e3fb6f0", + "sha256:a96e6e23f2b79433390273eaf8cc94fec9c6370842e577ab10dabdcc7ea0a66b", + "sha256:aabdab8ec1e7ca7f1434d042bf8b1e92056245fb179790dc97ed040361f16bfd", + "sha256:b222090c455d6d1a64e6b7bb5f4035c4dff479e22455c9eaa1bdd4c75b52c80c", + "sha256:b52ff4f4e002f828ea6483faf4c4e8deea8d743cf801b74910243c58acc6eda3", + "sha256:b70756ec9417c34e097f987b4d8c510975216ad26ba6e57ccb53bc758f490dab", + "sha256:b8c2f6eb0df979ee99433d8b3f6d193d9590f735cf12274c108bd954e30ca858", + "sha256:b9b752ab91e78234941e44abdecc07f1f0d8f51fb62941d32995b8161f68cfe5", + "sha256:ba6612b6548220ff5e9df85261bddc811a057b0b465a1226b39bfb8550616aee", + "sha256:bd752c5ff1b4a870b7661234694f24b1d2b9076b8bf337321a814c612665f343", + "sha256:c3c4ed2ff6760e98d262e0cc9c9a7f7b8a9f61aa4d47c58835cdaf7b0b8811bb", + "sha256:c5c1362c14aee73f50143d74389b2c158707b4abce2cb055b7ad37ce60738d47", + "sha256:cb362e3b0976dc994857391b776ddaa8c13c28a16f80ac6522c23d5257156bed", + "sha256:d197df5489004db87d90b918033edbeee0bd6df3848a204bca3ff0a903bef837", + "sha256:d3b56206244dc8711f7e8b7d6cad4663917cd5b2d950799425076681e8766286", + "sha256:d5b2f8a31bd43e0f18172d8ac82347c8f37ef3e0b414431157718aa234991b28", + "sha256:d7081c084ceb58278dd3cf81f836bc818978c0ccc770cbbb202125ddabec6628", + "sha256:db74f5562c09953b2c5f8ec4b7dfd3f5421f31811e97d1dbc0a7c93d6e3a24df", + "sha256:df41112ccce5d47770a0c13651479fbcd8793f34232a2dd9faeccb75eb5d0d0d", + "sha256:e1339790c083c5a4de48f688b4841f18df839eb3c9584a770cbd818b33e26d5d", + "sha256:e621b0246192d3b9cb1dc62c78cfa4c6f6d2ddc0ec207d43c0dedecb914f152a", + "sha256:e8c5cf126889a4de385c02a2c3d3aba4b00f70234bfddae82a5eaa3ee6d5e3e6", + "sha256:e9d7747847c53a16a729b6ee5e737cf170f7a16611c143d95aa60a109a59c336", + "sha256:eaef5d2de3c7e9b21f1e762f289d17b726c2239a42b11e25446abf82b26ac132", + "sha256:ed3e4b4e1e6de75fdc16d3259098de7c6571b1a6cc863b1a49e7d3d53e036070", + "sha256:ef21af928e807f10bf4141cad4746eee692a0dd3ff56cfb25fce076ec3cc8abe", + "sha256:f09598b416ba39a8f489c124447b007fe865f786a89dbfa48bb5cf395693132a", + "sha256:f0caf4a5dcf610d96c3bd32932bfac8aee61c96e60481c2a0ea58da435e25acd", + "sha256:f6e78171be3fb7941f9910ea15b4b14ec27725865a73c15277bc39f5ca4f8391", + "sha256:f715c32e774a60a337b2bb8ad9839b4abf75b267a0f18806f6f4f5f1688c4b5a", + "sha256:fb5c1ad6bad98c57482236a21bf985ab0ef42bd51f7ad4e4538e89a997624e12" + ], + "markers": "python_version >= '3.7'", + "version": "==9.4.0" + }, + "ply": { + "hashes": [ + "sha256:00c7c1aaa88358b9c765b6d3000c6eec0ba42abca5351b095321aef446081da3", + "sha256:096f9b8350b65ebd2fd1346b12452efe5b9607f7482813ffca50c22722a807ce" + ], + "version": "==3.11" + }, + "pyasn1": { + "hashes": [ + "sha256:39c7e2ec30515947ff4e87fb6f456dfc6e84857d34be479c9d4a4ba4bf46aa5d", + "sha256:aef77c9fb94a3ac588e87841208bdec464471d9871bd5050a287cc9a475cd0ba" + ], + "version": "==0.4.8" + }, + "pycryptodome": { + "hashes": [ + "sha256:04779cc588ad8f13c80a060b0b1c9d1c203d051d8a43879117fe6b8aaf1cd3fa", + "sha256:121d61663267f73692e8bde5ec0d23c9146465a0d75cad75c34f75c752527b01", + "sha256:1a30f51b990994491cec2d7d237924e5b6bd0d445da9337d77de384ad7f254f9", + "sha256:2c5631204ebcc7ae33d11c43037b2dafe25e2ab9c1de6448eb6502ac69c19a56", + "sha256:333306eaea01fde50a73c4619e25631e56c4c61bd0fb0a2346479e67e3d3a820", + "sha256:38bbd6717eac084408b4094174c0805bdbaba1f57fc250fd0309ae5ec9ed7e09", + "sha256:3a232474cd89d3f51e4295abe248a8b95d0332d153bf46444e415409070aae1e", + "sha256:4992ec965606054e8326e83db1c8654f0549cdb26fce1898dc1a20bc7684ec1c", + "sha256:53068e33c74f3b93a8158dacaa5d0f82d254a81b1002e0cd342be89fcb3433eb", + "sha256:5587803d5b66dfd99e7caa31ed91fba0fdee3661c5d93684028ad6653fce725f", + "sha256:5a790bc045003d89d42e3b9cb3cc938c8561a57a88aaa5691512e8540d1ae79c", + "sha256:74794a2e2896cd0cf56fdc9db61ef755fa812b4a4900fa46c49045663a92b8d0", + "sha256:80ea8333b6a5f2d9e856ff2293dba2e3e661197f90bf0f4d5a82a0a6bc83a626", + "sha256:8198f2b04c39d817b206ebe0db25a6653bb5f463c2319d6f6d9a80d012ac1e37", + "sha256:87e2ca3aa557781447428c4b6c8c937f10ff215202ab40ece5c13a82555c10d6", + "sha256:909e36a43fe4a8a3163e9c7fc103867825d14a2ecb852a63d3905250b308a4e5", + "sha256:9453b4e21e752df8737fdffac619e93c9f0ec55ead9a45df782055eb95ef37d9", + "sha256:9ec565e89a6b400eca814f28d78a9ef3f15aea1df74d95b28b7720739b28f37f", + "sha256:a3228728a3808bc9f18c1797ec1179a0efb5068c817b2ffcf6bcd012494dffb2", + "sha256:a74f45aee8c5cc4d533e585e0e596e9f78521e1543a302870a27b0ae2106381e", + "sha256:afbcdb0eda20a0e1d44e3a1ad6d4ec3c959210f4b48cabc0e387a282f4c7deb8", + "sha256:ba2d4fcb844c6ba5df4bbfee9352ad5352c5ae939ac450e06cdceff653280450", + "sha256:bce2e2d8e82fcf972005652371a3e8731956a0c1fbb719cc897943b3695ad91b", + "sha256:c133f6721fba313722a018392a91e3c69d3706ae723484841752559e71d69dc6", + "sha256:ca1ceb6303be1282148f04ac21cebeebdb4152590842159877778f9cf1634f09", + "sha256:d086d46774e27b280e4cece8ab3d87299cf0d39063f00f1e9290d096adc5662a", + "sha256:dc22cc00f804485a3c2a7e2010d9f14a705555f67020eb083e833cabd5bd82e4", + "sha256:e1819b67bcf6ca48341e9b03c2e45b1c891fa8eb1a8458482d14c2805c9616f2", + "sha256:e7debd9c439e7b84f53be3cf4ba8b75b3d0b6e6015212355d6daf44ac672e210", + "sha256:f44c0d28716d950135ff21505f2c764498eda9d8806b7c78764165848aa419bc", + "sha256:f68d6c8ea2974a571cacb7014dbaada21063a0375318d88ac1f9300bc81e93c3", + "sha256:f812d58c5af06d939b2baccdda614a3ffd80531a26e5faca2c9f8b1770b2b7af", + "sha256:f8e550caf52472ae9126953415e4fc554ab53049a5691c45b8816895c632e4d7" + ], + "index": "pip_conf_index_global", + "version": "==3.17" + }, + "pydes": { + "hashes": [ + "sha256:e2ab8e21d2b83e90d90dbfdcb6fb8ac0000b813238b7ecaede04f8435c389012" + ], + "index": "pip_conf_index_global", + "version": "==2.0.1" + }, + "pymongo": { + "hashes": [ + "sha256:016c412118e1c23fef3a1eada4f83ae6e8844fd91986b2e066fc1b0013cdd9ae", + "sha256:01f7cbe88d22440b6594c955e37312d932fd632ffed1a86d0c361503ca82cc9d", + "sha256:08fc250b5552ee97ceeae0f52d8b04f360291285fc7437f13daa516ce38fdbc6", + "sha256:0c466710871d0026c190fc4141e810cf9d9affbf4935e1d273fbdc7d7cda6143", + "sha256:1074f1a6f23e28b983c96142f2d45be03ec55d93035b471c26889a7ad2365db3", + "sha256:12f3621a46cdc7a9ba8080422262398a91762a581d27e0647746588d3f995c88", + "sha256:2c2fdc855149efe7cdcc2a01ca02bfa24761c640203ea94df467f3baf19078be", + "sha256:316498b642c00401370b2156b5233b256f9b33799e0a8d9d0b8a7da217a20fca", + "sha256:341221e2f2866a5960e6f8610f4cbac0bb13097f3b1a289aa55aba984fc0d969", + "sha256:34b040e095e1671df0c095ec0b04fc4ebb19c4c160f87c2b55c079b16b1a6b00", + "sha256:34e95ffb0a68bffbc3b437f2d1f25fc916fef3df5cdeed0992da5f42fae9b807", + "sha256:39b03045c71f761aee96a12ebfbc2f4be89e724ff6f5e31c2574c1a0e2add8bd", + "sha256:3b93043b14ba7eb08c57afca19751658ece1cfa2f0b7b1fb5c7a41452fbb8482", + "sha256:47f7aa217b25833cd6f0e72b0d224be55393c2692b4f5e0561cb3beeb10296e9", + "sha256:49210feb0be8051a64d71691f0acbfbedc33e149f0a5d6e271fddf6a12493fed", + "sha256:4d00b91c77ceb064c9b0459f0d6ea5bfdbc53ea9e17cf75731e151ef25a830c7", + "sha256:4ed00f96e147f40b565fe7530d1da0b0f3ab803d5dd5b683834500fa5d195ec4", + "sha256:5134d33286c045393c7beb51be29754647cec5ebc051cf82799c5ce9820a2ca2", + "sha256:524d78673518dcd352a91541ecd2839c65af92dc883321c2109ef6e5cd22ef23", + "sha256:52896e22115c97f1c829db32aa2760b0d61839cfe08b168c2b1d82f31dbc5f55", + "sha256:54c377893f2cbbffe39abcff5ff2e917b082c364521fa079305f6f064e1a24a9", + "sha256:55b6163dac53ef1e5d834297810c178050bd0548a4136cd4e0f56402185916ca", + "sha256:599d3f6fbef31933b96e2d906b0f169b3371ff79ea6aaf6ecd76c947a3508a3d", + "sha256:5effd87c7d363890259eac16c56a4e8da307286012c076223997f8cc4a8c435b", + "sha256:66413c50d510e5bcb0afc79880d1693a2185bcea003600ed898ada31338c004e", + "sha256:695939036a320f4329ccf1627edefbbb67cc7892b8222d297b0dd2313742bfee", + "sha256:6c2216d8b6a6d019c6f4b1ad55f890e5e77eb089309ffc05b6911c09349e7474", + "sha256:6dd1cf2995fdbd64fc0802313e8323f5fa18994d51af059b5b8862b73b5e53f0", + "sha256:6fcfbf435eebf8a1765c6d1f46821740ebe9f54f815a05c8fc30d789ef43cb12", + "sha256:704d939656e21b073bfcddd7228b29e0e8a93dd27b54240eaafc0b9a631629a6", + "sha256:711bc52cb98e7892c03e9b669bebd89c0a890a90dbc6d5bb2c47f30239bac6e9", + "sha256:74731c9e423c93cbe791f60c27030b6af6a948cef67deca079da6cd1bb583a8e", + "sha256:7761cacb8745093062695b11574effea69db636c2fd0a9269a1f0183712927b4", + "sha256:7b16250238de8dafca225647608dddc7bbb5dce3dd53b4d8e63c1cc287394c2f", + "sha256:7c051fe37c96b9878f37fa58906cb53ecd13dcb7341d3a85f1e2e2f6b10782d9", + "sha256:7d43ac9c7eeda5100fb0a7152fab7099c9cf9e5abd3bb36928eb98c7d7a339c6", + "sha256:81d1a7303bd02ca1c5be4aacd4db73593f573ba8e0c543c04c6da6275fd7a47e", + "sha256:8a06a0c02f5606330e8f2e2f3b7949877ca7e4024fa2bff5a4506bec66c49ec7", + "sha256:8fd6e191b92a10310f5a6cfe10d6f839d79d192fb02480bda325286bd1c7b385", + "sha256:943f208840777f34312c103a2d1caab02d780c4e9be26b3714acf6c4715ba7e1", + "sha256:9b87b23570565a6ddaa9244d87811c2ee9cffb02a753c8a2da9c077283d85845", + "sha256:a6cd6f1db75eb07332bd3710f58f5fce4967eadbf751bad653842750a61bda62", + "sha256:a966d5304b7d90c45c404914e06bbf02c5bf7e99685c6c12f0047ef2aa837142", + "sha256:a9c2885b4a8e6e39db5662d8b02ca6dcec796a45e48c2de12552841f061692ba", + "sha256:b0cfe925610f2fd59555bb7fc37bd739e4b197d33f2a8b2fae7b9c0c6640318c", + "sha256:b38a96b3eed8edc515b38257f03216f382c4389d022a8834667e2bc63c0c0c31", + "sha256:b8a03af1ce79b902a43f5f694c4ca8d92c2a4195db0966f08f266549e2fc49bc", + "sha256:bb869707d8e30645ed6766e44098600ca6cdf7989c22a3ea2b7966bb1d98d4b2", + "sha256:be1d2ce7e269215c3ee9a215e296b7a744aff4f39233486d2c4d77f5f0c561a6", + "sha256:c0640b4e9d008e13956b004d1971a23377b3d45491f87082161c92efb1e6c0d6", + "sha256:c09956606c08c4a7c6178a04ba2dd9388fcc5db32002ade9c9bc865ab156ab6d", + "sha256:c184ec5be465c0319440734491e1aa4709b5f3ba75fdfc9dbbc2ae715a7f6829", + "sha256:c1a70c51da9fa95bd75c167edb2eb3f3c4d27bc4ddd29e588f21649d014ec0b7", + "sha256:c29e758f0e734e1e90357ae01ec9c6daf19ff60a051192fe110d8fb25c62600e", + "sha256:c6258a3663780ae47ba73d43eb63c79c40ffddfb764e09b56df33be2f9479837", + "sha256:cafa52873ae12baa512a8721afc20de67a36886baae6a5f394ddef0ce9391f91", + "sha256:cd6a4afb20fb3c26a7bfd4611a0bbb24d93cbd746f5eb881f114b5e38fd55501", + "sha256:cdb87309de97c63cb9a69132e1cb16be470e58cffdfbad68fdd1dc292b22a840", + "sha256:d07d06dba5b5f7d80f9cc45501456e440f759fe79f9895922ed486237ac378a8", + "sha256:d3a51901066696c4af38c6c63a1f0aeffd5e282367ff475de8c191ec9609b56d", + "sha256:d5571b6978750601f783cea07fb6b666837010ca57e5cefa389c1d456f6222e2", + "sha256:d86c35d94b5499689354ccbc48438a79f449481ee6300f3e905748edceed78e7", + "sha256:dc0cff74cd36d7e1edba91baa09622c35a8a57025f2f2b7a41e3f83b1db73186", + "sha256:dc24d245026a72d9b4953729d31813edd4bd4e5c13622d96e27c284942d33f24", + "sha256:dca34367a4e77fcab0693e603a959878eaf2351585e7d752cac544bc6b2dee46", + "sha256:e2961b05f9c04a53da8bfc72f1910b6aec7205fcf3ac9c036d24619979bbee4b", + "sha256:e7fac06a539daef4fcf5d8288d0d21b412f9b750454cd5a3cf90484665db442a", + "sha256:eac0a143ef4f28f49670bf89cb15847eb80b375d55eba401ca2f777cd425f338", + "sha256:ef888f48eb9203ee1e04b9fb27429017b290fb916f1e7826c2f7808c88798394", + "sha256:f3055510fdfdb1775bc8baa359783022f70bb553f2d46e153c094dfcb08578ff", + "sha256:fa7e202feb683dad74f00dea066690448d0cfa310f8a277db06ec8eb466601b5", + "sha256:fc28e8d85d392a06434e9a934908d97e2cf453d69488d2bcd0bfb881497fd975", + "sha256:fd7bb378d82b88387dc10227cfd964f6273eb083e05299e9b97cbe075da12d11", + "sha256:ffcc8394123ea8d43fff8e5d000095fe7741ce3f8988366c5c919c4f5eb179d3" + ], + "index": "pip_conf_index_global", + "version": "==4.3.3" + }, + "pymysql": { + "hashes": [ + "sha256:41fc3a0c5013d5f039639442321185532e3e2c8924687abe6537de157d403641", + "sha256:816927a350f38d56072aeca5dfb10221fe1dc653745853d30a216637f5d7ad36" + ], + "index": "pip_conf_index_global", + "version": "==1.0.2" + }, + "pypinyin": { + "hashes": [ + "sha256:38b8a478b4af17c5b4211482ea35c68eb0ca3a81661e5fb2abe6f9cc66d1634b", + "sha256:63d18b8f10dd38a3e57f26b6833a983d9176f2e9c4a53157c23e1343d0b3dbf8" + ], + "index": "pip_conf_index_global", + "version": "==0.48.0" + }, + "pytesseract": { + "hashes": [ + "sha256:8f22cc98f765bf13517ead0c70effedb46c153540d25783e04014f28b55a5fc6", + "sha256:f1c3a8b0f07fd01a1085d451f5b8315be6eec1d5577a6796d46dc7a62bd4120f" + ], + "index": "pip_conf_index_global", + "version": "==0.3.10" + }, + "python-dateutil": { + "hashes": [ + "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", + "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==2.8.2" + }, + "pyyaml": { + "hashes": [ + "sha256:01b45c0191e6d66c470b6cf1b9531a771a83c1c4208272ead47a3ae4f2f603bf", + "sha256:0283c35a6a9fbf047493e3a0ce8d79ef5030852c51e9d911a27badfde0605293", + "sha256:055d937d65826939cb044fc8c9b08889e8c743fdc6a32b33e2390f66013e449b", + "sha256:07751360502caac1c067a8132d150cf3d61339af5691fe9e87803040dbc5db57", + "sha256:0b4624f379dab24d3725ffde76559cff63d9ec94e1736b556dacdfebe5ab6d4b", + "sha256:0ce82d761c532fe4ec3f87fc45688bdd3a4c1dc5e0b4a19814b9009a29baefd4", + "sha256:1e4747bc279b4f613a09eb64bba2ba602d8a6664c6ce6396a4d0cd413a50ce07", + "sha256:213c60cd50106436cc818accf5baa1aba61c0189ff610f64f4a3e8c6726218ba", + "sha256:231710d57adfd809ef5d34183b8ed1eeae3f76459c18fb4a0b373ad56bedcdd9", + "sha256:277a0ef2981ca40581a47093e9e2d13b3f1fbbeffae064c1d21bfceba2030287", + "sha256:2cd5df3de48857ed0544b34e2d40e9fac445930039f3cfe4bcc592a1f836d513", + "sha256:40527857252b61eacd1d9af500c3337ba8deb8fc298940291486c465c8b46ec0", + "sha256:432557aa2c09802be39460360ddffd48156e30721f5e8d917f01d31694216782", + "sha256:473f9edb243cb1935ab5a084eb238d842fb8f404ed2193a915d1784b5a6b5fc0", + "sha256:48c346915c114f5fdb3ead70312bd042a953a8ce5c7106d5bfb1a5254e47da92", + "sha256:50602afada6d6cbfad699b0c7bb50d5ccffa7e46a3d738092afddc1f9758427f", + "sha256:68fb519c14306fec9720a2a5b45bc9f0c8d1b9c72adf45c37baedfcd949c35a2", + "sha256:77f396e6ef4c73fdc33a9157446466f1cff553d979bd00ecb64385760c6babdc", + "sha256:81957921f441d50af23654aa6c5e5eaf9b06aba7f0a19c18a538dc7ef291c5a1", + "sha256:819b3830a1543db06c4d4b865e70ded25be52a2e0631ccd2f6a47a2822f2fd7c", + "sha256:897b80890765f037df3403d22bab41627ca8811ae55e9a722fd0392850ec4d86", + "sha256:98c4d36e99714e55cfbaaee6dd5badbc9a1ec339ebfc3b1f52e293aee6bb71a4", + "sha256:9df7ed3b3d2e0ecfe09e14741b857df43adb5a3ddadc919a2d94fbdf78fea53c", + "sha256:9fa600030013c4de8165339db93d182b9431076eb98eb40ee068700c9c813e34", + "sha256:a80a78046a72361de73f8f395f1f1e49f956c6be882eed58505a15f3e430962b", + "sha256:afa17f5bc4d1b10afd4466fd3a44dc0e245382deca5b3c353d8b757f9e3ecb8d", + "sha256:b3d267842bf12586ba6c734f89d1f5b871df0273157918b0ccefa29deb05c21c", + "sha256:b5b9eccad747aabaaffbc6064800670f0c297e52c12754eb1d976c57e4f74dcb", + "sha256:bfaef573a63ba8923503d27530362590ff4f576c626d86a9fed95822a8255fd7", + "sha256:c5687b8d43cf58545ade1fe3e055f70eac7a5a1a0bf42824308d868289a95737", + "sha256:cba8c411ef271aa037d7357a2bc8f9ee8b58b9965831d9e51baf703280dc73d3", + "sha256:d15a181d1ecd0d4270dc32edb46f7cb7733c7c508857278d3d378d14d606db2d", + "sha256:d4b0ba9512519522b118090257be113b9468d804b19d63c71dbcf4a48fa32358", + "sha256:d4db7c7aef085872ef65a8fd7d6d09a14ae91f691dec3e87ee5ee0539d516f53", + "sha256:d4eccecf9adf6fbcc6861a38015c2a64f38b9d94838ac1810a9023a0609e1b78", + "sha256:d67d839ede4ed1b28a4e8909735fc992a923cdb84e618544973d7dfc71540803", + "sha256:daf496c58a8c52083df09b80c860005194014c3698698d1a57cbcfa182142a3a", + "sha256:dbad0e9d368bb989f4515da330b88a057617d16b6a8245084f1b05400f24609f", + "sha256:e61ceaab6f49fb8bdfaa0f92c4b57bcfbea54c09277b1b4f7ac376bfb7a7c174", + "sha256:f84fbc98b019fef2ee9a1cb3ce93e3187a6df0b2538a651bfb890254ba9f90b5" + ], + "markers": "python_version >= '3.6'", + "version": "==6.0" + }, + "redis": { + "hashes": [ + "sha256:56732e156fe31801c4f43396bd3ca0c2a7f6f83d7936798531b9848d103381aa", + "sha256:7df17a0a2b72a4c8895b462dd07616c51b1dcb48fdd7ecb7b6f4bf39ecb2e94e" + ], + "index": "pip_conf_index_global", + "version": "==4.5.3" + }, + "requests": { + "hashes": [ + "sha256:64299f4909223da747622c030b781c0d7811e359c37124b4bd368fb8c6518baa", + "sha256:98b1b2782e3c6c4904938b84c0eb932721069dfdb9134313beff7c83c2df24bf" + ], + "markers": "python_version >= '3.7' and python_version < '4'", + "version": "==2.28.2" + }, + "rsa": { + "hashes": [ + "sha256:90260d9058e514786967344d0ef75fa8727eed8a7d2e43ce9f4bcf1b536174f7", + "sha256:e38464a49c6c85d7f1351b0126661487a7e0a14a50f1675ec50eb34d4f20ef21" + ], + "index": "pip_conf_index_global", + "version": "==4.9" + }, + "shellescape": { + "hashes": [ + "sha256:40b310b30479be771bf3ab28bd8d40753778488bd46ea0969ba0b35038c3ec26", + "sha256:f17127e390fa3f9aaa80c69c16ea73615fd9b5318fd8309c1dca6168ae7d85bf" + ], + "version": "==3.8.1" + }, + "six": { + "hashes": [ + "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", + "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "version": "==1.16.0" + }, + "urllib3": { + "hashes": [ + "sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305", + "sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42" + ], + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'", + "version": "==1.26.15" + } + }, + "develop": {} +} diff --git a/common/comparator/extractor.py b/common/comparator/extractor.py index d34dccd..d86e99f 100644 --- a/common/comparator/extractor.py +++ b/common/comparator/extractor.py @@ -9,10 +9,11 @@ # ------------------------------------------------------------------------------- import json -import logging import jsonpath -logger = logging.getLogger(__name__) +from common.tools.logger import MyLog + +logger = MyLog() class Extractor(object): @@ -74,14 +75,14 @@ class Extractor(object): """ # logger.info('正在执行数据提取:提取数据源内容:{resp_obj}'.format(resp_obj=resp_obj)) - logger.info('正在执行数据提取:提取表达式:{expr}'.format(expr=expr)) + logger.my_log('正在执行数据提取:提取表达式:{expr}'.format(expr=expr), "info") result = jsonpath.jsonpath(resp_obj, expr) if result is False: # jsonpath没有匹配到数据 result = [] - logger.info(f'提取失败:提取表达式:{expr},没有提取到对应的值') + logger.my_log(f'提取失败:提取表达式:{expr},没有提取到对应的值') elif isinstance(result, list): if len(result) == 1: result = result[0] - logger.info(f'输出变量,提取表达式:{expr},提取结果:{result}') + logger.my_log(f'输出变量,提取表达式:{expr},提取结果:{result}', "info") return result diff --git a/common/encryption/FileAES.py b/common/encryption/FileAES.py index a2c987d..791a65c 100644 --- a/common/encryption/FileAES.py +++ b/common/encryption/FileAES.py @@ -13,6 +13,10 @@ import os class FileAES: + """ + AES 加密 + """ + def __init__(self, key): self.key = key # 将密钥转换为字符型数据 self.mode = AES.MODE_ECB # 操作模式选择ECB @@ -38,7 +42,7 @@ class FileAES: if __name__ == '__main__': # key = os.urandom(16) #随即产生n个字节的字符串,可以作为随机加密key使用 key = '2l4LoWczlWxlMZJAAp5N0g6EygZZd9A6' # 随即产生n个字节的字符串,可以作为随机加密key使用 - text = '1915' # 需要加密的内容 + text = '4534' # 需要加密的内容 aes_test = FileAES(key) cipher_text = aes_test.encrypt(text) init_text = aes_test.decrypt(cipher_text) diff --git a/common/functions/bif_datetime.py b/common/functions/bif_datetime.py index bf01421..b6a2105 100644 --- a/common/functions/bif_datetime.py +++ b/common/functions/bif_datetime.py @@ -7,10 +7,10 @@ # EMAIL: 2419352654@qq.com # Date: 2021/1/12 14:03 # ------------------------------------------------------------------------------- -import logging from datetime import datetime, timedelta +from common.tools.logger import MyLog -logger = logging.getLogger(__name__) +logger = MyLog() __all__ = ['get_current_date', 'get_current_time', 'get_delta_time'] @@ -24,7 +24,7 @@ def get_current_date(fmt="%Y-%m-%d"): Returns: """ - logger.info(f'执行方法:get_current_date({fmt})') + logger.my_log('执行方法:get_current_date({fmt})', "info") return datetime.now().strftime(fmt) @@ -37,7 +37,7 @@ def get_current_time(fmt="%Y-%m-%d %H:%M:%S"): Returns: """ - logger.info(f'执行方法:get_current_time({fmt})') + logger.my_log(f'执行方法:get_current_time({fmt})', "info") return datetime.now().strftime(fmt) @@ -54,5 +54,10 @@ def get_delta_time(days=0, hours=0, minutes=0, seconds=0, fmt="%Y-%m-%d %H:%M:%S Returns: """ - logger.info(f'执行方法:get_delta_time({days}, {hours}, {minutes}, {seconds}, {fmt})') - return (datetime.now() + timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)).strftime(fmt=fmt) + logger.my_log(f'执行方法:get_delta_time({days}, {hours}, {minutes}, {seconds}, {fmt})', "info") + return (datetime.now() + timedelta(days=days, hours=hours, minutes=minutes, seconds=seconds)).strftime(fmt) + + +if __name__ == '__main__': + t = get_delta_time(4) + print(t) diff --git a/common/functions/bif_hashlib.py b/common/functions/bif_hashlib.py index 23df966..292d8b0 100644 --- a/common/functions/bif_hashlib.py +++ b/common/functions/bif_hashlib.py @@ -8,11 +8,12 @@ # Date: 2021/1/12 15:16 # ------------------------------------------------------------------------------- import hashlib -import logging + +from common.tools.logger import MyLog __all__ = ['md5_encryption'] -logger = logging.getLogger(__name__) +logger = MyLog() def md5_encryption(raw_str, sha_str='', toupper=False): @@ -26,7 +27,7 @@ def md5_encryption(raw_str, sha_str='', toupper=False): Returns: 经md5加密后的字符串 """ - logger.info(f'执行方法:md5_encryption({raw_str}, {sha_str}, {toupper})') + logger.my_log(f'执行方法:md5_encryption({raw_str}, {sha_str}, {toupper})', "info") md5_obj = hashlib.md5(sha_str.encode('utf-8')) md5_obj.update(str(raw_str).encode('utf-8')) encrypted_str = md5_obj.hexdigest().upper() if toupper else md5_obj.hexdigest() diff --git a/common/functions/bif_json.py b/common/functions/bif_json.py index bf4fe3f..f6eb203 100644 --- a/common/functions/bif_json.py +++ b/common/functions/bif_json.py @@ -8,11 +8,11 @@ # Date: 2021/1/12 14:02 # ------------------------------------------------------------------------------- import json -import logging +from common.tools.logger import MyLog __all__ = ['json_dumps', 'json_loads'] -logger = logging.getLogger(__name__) +logger = MyLog() def json_dumps(obj): @@ -24,7 +24,7 @@ def json_dumps(obj): Returns: """ - logger.info(f'执行方法:json_dumps({obj})') + logger.my_log(f'执行方法:json_dumps({obj})', "info") return json.dumps(obj, ensure_ascii=False) @@ -37,5 +37,5 @@ def json_loads(obj): Returns: """ - logger.info(f'执行方法:json_loads({obj})') + logger.my_log(f'执行方法:json_loads({obj})', "info") return json.loads(obj) diff --git a/common/functions/bif_list.py b/common/functions/bif_list.py index 9542681..631977b 100644 --- a/common/functions/bif_list.py +++ b/common/functions/bif_list.py @@ -8,10 +8,11 @@ # Date: 2021/1/12 15:15 # ------------------------------------------------------------------------------- import logging +from common.tools.logger import MyLog __all__ = ['slice', 'sublist'] -logger = logging.getLogger(__name__) +logger = MyLog() def slice(obj, index=None, start=None, end=None, step=1): @@ -27,19 +28,19 @@ def slice(obj, index=None, start=None, end=None, step=1): Returns: """ - logger.info(f'执行方法:slice({obj}, {index}, {start}, {end}, {step})') + logger.my_log(f'执行方法:slice({obj}, {index}, {start}, {end}, {step})', "info") if isinstance(obj, (str, tuple, list)): if index != None: try: result = obj[index] except IndexError: - logger.error(f'列表{obj},下标{index},异常原因:下标越界') + logger.my_log(f'列表{obj},下标{index},异常原因:下标越界') result = None return result else: step = step or 1 return obj[start:end:step] - logger.error("obj参数格式不正确") + logger.my_log("obj参数格式不正确") return None @@ -54,7 +55,7 @@ def sublist(raw_list, start=None, end=None): Returns: 截取的字符串 """ - logger.info(f'执行方法:sublist({raw_list}, {start}, {end})') + logger.my_log(f'执行方法:sublist({raw_list}, {start}, {end})', "info") try: start = int(start) if (isinstance(start, str) and start.isdigit()) else start end = int(end) if (isinstance(end, str) and end.isdigit()) else end diff --git a/common/functions/bif_random.py b/common/functions/bif_random.py index 8c896c8..d0be781 100644 --- a/common/functions/bif_random.py +++ b/common/functions/bif_random.py @@ -7,11 +7,12 @@ # EMAIL: 2419352654@qq.com # Date: 2021/1/12 14:02 # ------------------------------------------------------------------------------- -import logging import random import string -logger = logging.getLogger(__name__) +from common.tools.logger import MyLog + +logger = MyLog() __all__ = ['random_choice', 'gen_random_num', 'gen_random_str'] @@ -25,7 +26,7 @@ def random_choice(args): Returns: """ - logger.info(f'执行方法:random_choice({args})') + logger.my_log(f'执行方法:random_choice({args})', "info") return random.choice(args) @@ -38,7 +39,7 @@ def gen_random_num(length): Returns: """ - logger.info(f'执行方法:gen_random_num({length})') + logger.my_log(f'执行方法:gen_random_num({length})', "info") return random.randint(int('1' + '0' * (length - 1)), int('9' * length)) @@ -51,5 +52,5 @@ def gen_random_str(length): Returns: """ - logger.info(f'执行方法:gen_random_str({length})') + logger.my_log(f'执行方法:gen_random_str({length})', "info") return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(length)) diff --git a/common/functions/bif_re.py b/common/functions/bif_re.py index acfc792..c3ed248 100644 --- a/common/functions/bif_re.py +++ b/common/functions/bif_re.py @@ -3,15 +3,16 @@ # ------------------------------------------------------------------------------- # Name: bif_re.py # Description: -# Author: XiangjunZhao -# EMAIL: 2419352654@qq.com +# Author: kira +# EMAIL: 262667641@qq.com # Date: 2021/1/12 15:11 # ------------------------------------------------------------------------------- import json -import logging import re -logger = logging.getLogger(__name__) +from common.tools.logger import MyLog + +logger = MyLog() __all__ = ['regex_extract'] @@ -27,7 +28,7 @@ def regex_extract(string, pattern, group=None): Returns: """ - logger.info(f'执行方法:regex_extract({string}, {pattern}, {group})') + logger.my_log(f'执行方法:regex_extract({string}, {pattern}, {group})', "info") if not isinstance(string, str): string = json.dumps(string, ensure_ascii=False) re_obj = re.search(pattern, string) diff --git a/common/functions/bif_str.py b/common/functions/bif_str.py index e1e486d..62201fd 100644 --- a/common/functions/bif_str.py +++ b/common/functions/bif_str.py @@ -3,15 +3,15 @@ # ------------------------------------------------------------------------------- # Name: bif_str.py # Description: -# Author: XiangjunZhao -# EMAIL: 2419352654@qq.com +# Author: kira +# EMAIL: 262667641@qq.com # Date: 2021/1/12 15:12 # ------------------------------------------------------------------------------- -import logging +from common.tools.logger import MyLog __all__ = ['substr', 'str_join'] -logger = logging.getLogger(__name__) +logger = MyLog() def substr(raw_str, start=None, end=None): @@ -25,7 +25,7 @@ def substr(raw_str, start=None, end=None): Returns: 截取的字符串 """ - logger.info(f'执行方法:substr({raw_str}, {start}, {end})') + logger.my_log(f'执行方法:substr({raw_str}, {start}, {end})', "info") try: start = int(start) if (isinstance(start, str) and start.isdigit()) else start end = int(end) if (isinstance(end, str) and end.isdigit()) else end @@ -44,7 +44,7 @@ def str_join(obj, connector=","): Returns: """ - logger.info(f'执行方法:str_join({obj}, {connector})') + logger.my_log(f'执行方法:str_join({obj}, {connector})', "info") if not isinstance(connector, str): connector = str(connector) if isinstance(obj, str): diff --git a/common/functions/bif_time.py b/common/functions/bif_time.py index ce16f24..a0c6a45 100644 --- a/common/functions/bif_time.py +++ b/common/functions/bif_time.py @@ -3,18 +3,20 @@ # ------------------------------------------------------------------------------- # Name: bif_time.py # Description: -# Author: XiangjunZhao -# EMAIL: 2419352654@qq.com +# Author: kira +# EMAIL: 262667641@qq.com # Date: 2021/1/12 14:03 # ------------------------------------------------------------------------------- -import logging import time -logger = logging.getLogger(__name__) +from common.tools.logger import MyLog + +logger = MyLog() __all__ = ['get_timestamp', 'ms_fmt_hms'] +@logger.decorator_log("错误原因:时间戳的长度只能在10到16位之间,默认返回长度为13位的时间戳") def get_timestamp(length=13): """ 获取时间戳字符串,长度最多为16位;默认13位 @@ -24,13 +26,13 @@ def get_timestamp(length=13): Returns: """ - logger.info(f'执行方法:get_timestamp({length})') + logger.my_log(f'执行方法:get_timestamp({length})', "info") if isinstance(length, (int,)) and 10 <= length <= 16: power = length - 10 timestamp = time.time() return int(timestamp * 10 ** power) else: - logger.error("错误原因:时间戳的长度只能在10到16位之间,默认返回长度为13位的时间戳") + # logger.error("错误原因:时间戳的长度只能在10到16位之间,默认返回长度为13位的时间戳") get_timestamp(13) diff --git a/common/functions/random_tools.py b/common/functions/random_tools.py index 02f54c5..76629db 100644 --- a/common/functions/random_tools.py +++ b/common/functions/random_tools.py @@ -2,10 +2,15 @@ import datetime import math import random -import time from faker import Faker -__all__ = ['random_phone', 'random_gps', "random_string", "random_ssn"] +__all__ = [ + 'random_phone', 'random_gps', + "random_string", "random_ssn", + "random_email", "random_id_card", + "random_int", "random_male_name", + "random_female_name", "random_current_time" +] f = Faker(locale='Zh-CN') @@ -50,54 +55,6 @@ def random_ssn(): return f.ssn() -def next_time(): - """ - - Returns: - - """ - c_time = time.time() # 获取当前时间,秒值输出 - yesterday_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(c_time - 86400)) - # 获取当前日期 带时分秒 - current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(c_time)) - # 獲取當前日期时间 0时0分开始 - c_date_start = time.strftime("%Y-%m-%d", time.localtime(c_time)) + ' 00:00:00' - c_date_end = time.strftime("%Y-%m-%d", time.localtime(c_time)) + ' 23:59:59' - # 获取昨天日期 - y_date = time.strftime("%Y-%m-%d", time.localtime(c_time - 86400)) - # 获取当前日期 - c_date = time.strftime("%Y-%m-%d", time.localtime(c_time)) - # 获取明天日期 - n_date = time.strftime("%Y-%m-%d", time.localtime(c_time + 86400)) - # 获取明日日期 - n_date_start = time.strftime("%Y-%m-%d", time.localtime(c_time + 86400)) + ' 00:00:00' - n_date_end = time.strftime("%Y-%m-%d", time.localtime(c_time + 86400)) + ' 23:59:59' - # 獲取過去日期 - p_time_start = time.strftime("%Y-%m-%d", time.localtime(c_time - 86400)) + ' 00:00:00' - p_time_end = time.strftime("%Y-%m-%d", time.localtime(c_time - 86400)) + ' 23:59:59' - # 獲取将来60天内的任意日期,不包含今天 - random_data = time.strftime( - "%Y-%m-%d", time.localtime(c_time + random.randint(86400, 5184000))) - # 获取当前时间戳 - timestamp = int(round(time.time() * 1000)) - res = { - "{{random_data}": random_data, - "{{n_date_start}}": n_date_start, - "{{n_date_end}}": n_date_end, - "{{p_time_start}}": p_time_start, - "{{p_time_end}}": p_time_end, - "{{c_date_start}}": c_date_start, - "{{c_date_end}}": c_date_end, - "{{timestamp}}": timestamp, - "{{current_time}}": current_time, - "{{yesterday_time}}": yesterday_time, - "{{c_date}}": c_date, - "{{n_date}}": n_date, - "{{y_date}}": y_date - } - return res - - def random_phone(self) -> int: """ :return: 随机生成手机号码 diff --git a/common/tools/logger_decorator.py b/common/tools/logger_decorator.py deleted file mode 100644 index 41056bf..0000000 --- a/common/tools/logger_decorator.py +++ /dev/null @@ -1,44 +0,0 @@ -#!/usr/bin/env python -# encoding: utf-8 -""" -@author: kira -@contact: 262667641@qq.com -@file: logger_decortor.py -@time: 2023/3/15 11:26 -@desc: -""" -import logging -import os - -""" -* %(asctime)s 即日志记录时间,精确到毫秒@breif: -* %(levelname)s 即此条日志级别@param[in]: -* %(filename)s 即触发日志记录的python文件名@retval: -* %(funcName)s 即触发日志记录的函数名 -* %(lineno)s 即触发日志记录代码的行号 -* %(message)s 即这项调用中的参数 -""" - -file_name = "../../OutPut/Log/log.log" -if not os.path.exists(file_name): - file = open(file_name, "w") - -logging.basicConfig( - filename=file_name, - format="%(asctime)s - %(levelname)s - %(filename)s - %(funcName)s - %(lineno)s - %(message)s" -) - -""" -* @breif: 日志修饰器,为函数添加日志记录服务 -* @param[in]: err -> 发生异常时返回的错误信息 -* @retval: 加载日志服务的功能函数 -""" - - -def logger(err): - def log(func): - def warp(): - - return warp - - return log diff --git a/common/tools/retry.py b/common/tools/retry.py index fc865f3..8f22a00 100644 --- a/common/tools/retry.py +++ b/common/tools/retry.py @@ -10,8 +10,11 @@ def retry(func): + "函数重跑" + def run_again(*args, **kwargs): try: func(*args, **kwargs) except: pass + return run_again() \ No newline at end of file