lazysdk 0.1.120__tar.gz → 0.1.121__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.
Potentially problematic release.
This version of lazysdk might be problematic. Click here for more details.
- {lazysdk-0.1.120 → lazysdk-0.1.121}/PKG-INFO +1 -1
- lazysdk-0.1.121/lazysdk/lazyhash.py +60 -0
- lazysdk-0.1.121/lazysdk/lazyjson.py +54 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazytime.py +1 -1
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk.egg-info/PKG-INFO +1 -1
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk.egg-info/SOURCES.txt +1 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/setup.py +1 -1
- lazysdk-0.1.120/lazysdk/lazyjson.py +0 -33
- {lazysdk-0.1.120 → lazysdk-0.1.121}/LICENSE +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/README.md +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/__init__.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyCrypto.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazy_header.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazy_id_card.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazy_input.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazybase64.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazycache.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazychromedriver.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazydecode.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazydict.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyenv.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyexcel.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyfile.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyflask.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyhtml.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyid.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyinfo.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyip.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazylist.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazym3u8.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazymd5.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazypath.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyprocess.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyproxies.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyrandom.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyre.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyredis.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyrequests.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazytext.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyua.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyurl.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazywebhook.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazywifi.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/lazyxml.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk/showdata.py +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk.egg-info/dependency_links.txt +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk.egg-info/requires.txt +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/lazysdk.egg-info/top_level.txt +0 -0
- {lazysdk-0.1.120 → lazysdk-0.1.121}/setup.cfg +0 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# coding = utf8
|
|
3
|
+
"""
|
|
4
|
+
@ Author : ZeroSeeker
|
|
5
|
+
@ e-mail : zeroseeker@foxmail.com
|
|
6
|
+
@ GitHub : https://github.com/ZeroSeeker
|
|
7
|
+
@ Gitee : https://gitee.com/ZeroSeeker
|
|
8
|
+
"""
|
|
9
|
+
import requests
|
|
10
|
+
import hashlib
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
def md5_file(
|
|
14
|
+
file_path: str = None,
|
|
15
|
+
file_url: str = None
|
|
16
|
+
):
|
|
17
|
+
"""
|
|
18
|
+
计算文件的md5
|
|
19
|
+
:param file_path: 本地文件路径
|
|
20
|
+
:param file_url: 网络文件地址
|
|
21
|
+
"""
|
|
22
|
+
# 文件名不影响md5
|
|
23
|
+
d5 = hashlib.md5()
|
|
24
|
+
if file_path:
|
|
25
|
+
with open(r'%s' % file_path, 'rb') as f:
|
|
26
|
+
while True:
|
|
27
|
+
data = f.read(2048)
|
|
28
|
+
if not data:
|
|
29
|
+
break
|
|
30
|
+
d5.update(data) # update添加时会进行计算
|
|
31
|
+
return d5.hexdigest()
|
|
32
|
+
elif file_url:
|
|
33
|
+
resp = requests.get(file_url)
|
|
34
|
+
d5.update(resp.content) # update添加时会进行计算
|
|
35
|
+
return d5.hexdigest()
|
|
36
|
+
else:
|
|
37
|
+
return
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def md5_str(
|
|
41
|
+
content,
|
|
42
|
+
encoding='UTF-8'
|
|
43
|
+
):
|
|
44
|
+
d5 = hashlib.md5()
|
|
45
|
+
d5.update(content.encode(encoding=encoding)) # update添加时会进行计算
|
|
46
|
+
return d5.hexdigest()
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def calculate_sha256(
|
|
50
|
+
content,
|
|
51
|
+
encoding: str='UTF-8'
|
|
52
|
+
):
|
|
53
|
+
"""
|
|
54
|
+
计算文档的SHA-256哈希值
|
|
55
|
+
:param content:
|
|
56
|
+
:param encoding:
|
|
57
|
+
:return: SHA-256哈希字符串
|
|
58
|
+
"""
|
|
59
|
+
# 使用BSON的JSON工具确保一致的序列化
|
|
60
|
+
return hashlib.sha256(content.encode(encoding)).hexdigest()
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import json
|
|
2
|
+
import decimal
|
|
3
|
+
import datetime
|
|
4
|
+
import base64
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class LazyEncoder(json.JSONEncoder):
|
|
8
|
+
def default(self, obj):
|
|
9
|
+
if isinstance(obj, decimal.Decimal):
|
|
10
|
+
return float(obj)
|
|
11
|
+
elif isinstance(obj, datetime.datetime):
|
|
12
|
+
# # 将datetime对象转换为ISO格式字符串
|
|
13
|
+
return obj.isoformat()
|
|
14
|
+
elif isinstance(obj, datetime.date):
|
|
15
|
+
return obj.isoformat()
|
|
16
|
+
elif isinstance(obj, bytes):
|
|
17
|
+
# 将bytes转换为base64编码的字符串
|
|
18
|
+
try:
|
|
19
|
+
# 尝试将bytes解码为UTF-8字符串
|
|
20
|
+
return obj.decode('utf-8')
|
|
21
|
+
except UnicodeDecodeError:
|
|
22
|
+
# 如果UTF-8解码失败,回退到Base64编码
|
|
23
|
+
return base64.b64encode(obj).decode('utf-8')
|
|
24
|
+
# elif isinstance(obj, bson.timestamp.Timestamp):
|
|
25
|
+
# # # 将BSON时间戳转换为其时间表示的ISO格式字符串
|
|
26
|
+
# return obj.as_datetime().isoformat()
|
|
27
|
+
# elif isinstance(obj, bson.objectid.ObjectId):
|
|
28
|
+
# # # 将ObjectId转换为字符串
|
|
29
|
+
# return str(obj)
|
|
30
|
+
return super(LazyEncoder, self).default(obj)
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
def json2str(
|
|
34
|
+
data: json,
|
|
35
|
+
ensure_ascii: bool = False
|
|
36
|
+
):
|
|
37
|
+
"""
|
|
38
|
+
在将json数据反序列化为str时,会遇到一些格式无法转换
|
|
39
|
+
这里使用识别类型转换转为str
|
|
40
|
+
目前支持类型:
|
|
41
|
+
|
|
42
|
+
对于mongodb返回数据的处理:
|
|
43
|
+
from bson import json_util
|
|
44
|
+
default=json_util.default
|
|
45
|
+
|
|
46
|
+
decimal --> str
|
|
47
|
+
datetime.datetime --> str(%Y-%m-%d %H:%M:%S)
|
|
48
|
+
datetime.date --> str(%Y-%m-%d)
|
|
49
|
+
"""
|
|
50
|
+
return json.dumps(
|
|
51
|
+
data,
|
|
52
|
+
cls=LazyEncoder,
|
|
53
|
+
ensure_ascii=ensure_ascii
|
|
54
|
+
)
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import json
|
|
2
|
-
import decimal
|
|
3
|
-
import datetime
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class LazyEncoder(json.JSONEncoder):
|
|
7
|
-
def default(self, obj):
|
|
8
|
-
if isinstance(obj, decimal.Decimal):
|
|
9
|
-
return float(obj)
|
|
10
|
-
elif isinstance(obj, datetime.datetime):
|
|
11
|
-
return obj.strftime('%Y-%m-%d %H:%M:%S')
|
|
12
|
-
elif isinstance(obj, datetime.date):
|
|
13
|
-
return obj.strftime('%Y-%m-%d')
|
|
14
|
-
super(LazyEncoder, self).default(obj)
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
def json2str(
|
|
18
|
-
data: json,
|
|
19
|
-
ensure_ascii: bool = False
|
|
20
|
-
):
|
|
21
|
-
"""
|
|
22
|
-
在将json数据反序列化为str时,会遇到一些格式无法转换
|
|
23
|
-
这里使用识别类型转换转为str
|
|
24
|
-
目前支持类型:
|
|
25
|
-
decimal --> str
|
|
26
|
-
datetime.datetime --> str(%Y-%m-%d %H:%M:%S)
|
|
27
|
-
datetime.date --> str(%Y-%m-%d)
|
|
28
|
-
"""
|
|
29
|
-
return json.dumps(
|
|
30
|
-
data,
|
|
31
|
-
cls=LazyEncoder,
|
|
32
|
-
ensure_ascii=ensure_ascii
|
|
33
|
-
)
|
|
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
|