Spaces:
Sleeping
Sleeping
init of cloudflare kv
Browse files- .gitignore +2 -0
- app.py +132 -51
- bg.jpg +0 -0
- pdm.lock +272 -1
- project.drawio +199 -0
- pyproject.toml +3 -0
.gitignore
CHANGED
@@ -160,3 +160,5 @@ cython_debug/
|
|
160 |
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
161 |
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
162 |
#.idea/
|
|
|
|
|
|
160 |
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
161 |
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
162 |
#.idea/
|
163 |
+
demo.py
|
164 |
+
.vscode/settings.json
|
app.py
CHANGED
@@ -1,81 +1,162 @@
|
|
1 |
import gradio as gr
|
2 |
import pandas as pd
|
3 |
from datetime import datetime
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
|
6 |
-
|
7 |
-
|
8 |
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
fw.write(msg.lstrip().rstrip() + '\n')
|
13 |
-
return True
|
14 |
|
15 |
-
def does_record_exist(wallet, msg):
|
16 |
-
df_msg = load_msg()
|
17 |
-
existent = df_msg.query("钱包 == @wallet & 寄语 == @msg")
|
18 |
-
if existent.empty:
|
19 |
-
return False
|
20 |
-
return True
|
21 |
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
26 |
return True
|
27 |
-
return False
|
28 |
-
|
29 |
-
def handle_input(wallet, msg):
|
30 |
-
msg = msg.lstrip().rstrip().replace('|', '')
|
31 |
-
msg = msg[:200] # read the first 200bytes ONLY
|
32 |
-
if not msg:
|
33 |
-
gr.Warning('说点什么吧')
|
34 |
-
df_msg = load_msg()
|
35 |
-
return df_msg
|
36 |
-
|
37 |
-
import re
|
38 |
-
re_wallet = re.compile(r'[\da-z]{62}', re.IGNORECASE)
|
39 |
-
if not re_wallet.search(wallet):
|
40 |
-
gr.Warning('看起来不是一个63位钱包地址,请重新输入')
|
41 |
-
return load_msg()
|
42 |
-
|
43 |
-
if does_record_exist(wallet, msg):
|
44 |
-
gr.Info('看起来您登记过一模一样的寄语!')
|
45 |
-
return
|
46 |
|
47 |
-
|
48 |
-
|
49 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
50 |
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
return
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
55 |
|
56 |
-
with gr.Blocks(title='龙年吉祥') as demo:
|
57 |
header = gr.Markdown('# 龙年消灾')
|
58 |
sub_header = gr.Markdown('''### 龙年佳节之际,举行一次送灾活动。将gb2312的灾字打入黑洞地址,寓意消灾。留下你的钱包地址、写下寄语吧。所有信息汇总取sha256值后,会随UTXO信息寄送到黑洞地址。愿您龙年少灾多福!''')
|
59 |
footer = gr.Markdown('''
|
60 |
-
> Note
|
61 |
> 1. **务必** 不要贴钱包私钥地址或者助记词
|
62 |
-
> 2.
|
63 |
> 3. 截断读取前200个字
|
64 |
> 4. 本活动属于公益性质,不对提交者钱包地址设限且免费
|
65 |
-
> 5.
|
|
|
|
|
|
|
66 |
''')
|
67 |
-
|
|
|
68 |
with gr.Column():
|
69 |
wallet = gr.Textbox(max_lines=1, label='钱包地址', placeholder='务必不要输入私钥或助记词')
|
70 |
msg = gr.TextArea(label='写点什么吧', placeholder='少于200个字')
|
71 |
submit = gr.Button('点一下, 少灾多福!', elem_id='submit', elem_classes='button')
|
72 |
-
df = gr.Dataframe(
|
73 |
|
74 |
-
submit.click(
|
75 |
|
76 |
# demo = gr.Interface(handle_input, inputs=[wallet, msg], outputs=df)
|
77 |
|
78 |
|
79 |
if __name__ == '__main__':
|
80 |
demo.queue(max_size=5)
|
81 |
-
demo.launch(
|
|
|
1 |
import gradio as gr
|
2 |
import pandas as pd
|
3 |
from datetime import datetime
|
4 |
+
from cfkv import KVStore
|
5 |
+
from dotenv import load_dotenv
|
6 |
+
import os
|
7 |
+
from os.path import join, dirname
|
8 |
+
import json
|
9 |
+
import re
|
10 |
+
import json
|
11 |
+
re_wallet = re.compile(r'[\da-z]{62}', re.IGNORECASE)
|
12 |
|
13 |
|
14 |
+
dotenv_path = join(dirname(__file__), '.env')
|
15 |
+
load_dotenv(dotenv_path)
|
16 |
|
17 |
+
store = KVStore(namespace_id=os.environ.get("CFKV_NAMESPACE_ID"),
|
18 |
+
account_id=os.environ.get("CFKV_ACCOUNT_ID"),
|
19 |
+
api_key=os.environ.get("CFKV_API_KEY"))
|
|
|
|
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
|
22 |
+
|
23 |
+
def get_cfkv_messages(wallet):
|
24 |
+
'''
|
25 |
+
cloudflare kv structure:
|
26 |
+
key = wallet
|
27 |
+
value = messages
|
28 |
+
messages = [{message}...]
|
29 |
+
message = {"ts": datetime str, "message" str}
|
30 |
+
|
31 |
+
return value (messages)
|
32 |
+
'''
|
33 |
+
# get the existing msg
|
34 |
+
|
35 |
+
if the_existing:=store.get(wallet):
|
36 |
+
the_existing = json.loads(the_existing)
|
37 |
+
# return pd.DataFrame(the_existing, coumns=["时间(UTC)", "寄语"])
|
38 |
+
return the_existing
|
39 |
+
|
40 |
+
|
41 |
+
|
42 |
+
def handler_records_exist():
|
43 |
+
'''the record already exist'''
|
44 |
+
def decorator(func):
|
45 |
+
def wrapper(wallet, msg, the_existing, *args, **kwargs):
|
46 |
+
if the_existing:
|
47 |
+
messages = [item['message'] for item in the_existing]
|
48 |
+
if msg in messages:
|
49 |
+
gr.Info('这条寄语已经存在了')
|
50 |
+
return
|
51 |
+
return func(wallet, msg, the_existing)
|
52 |
+
return wrapper
|
53 |
+
return decorator
|
54 |
+
|
55 |
+
def handler_records_lt_6():
|
56 |
+
def decorator(func):
|
57 |
+
def wrapper(wallet, msg, the_existing, *args, **kwargs):
|
58 |
+
if the_existing:
|
59 |
+
messages = [item['message'] for item in the_existing]
|
60 |
+
if len(messages) >= 6:
|
61 |
+
gr.Info('看起来您已登记过六条寄语了,把机会留给其他群众吧')
|
62 |
+
return
|
63 |
+
return func(wallet, msg, the_existing)
|
64 |
+
return wrapper
|
65 |
+
return decorator
|
66 |
+
|
67 |
+
def handler_clean_msg():
|
68 |
+
def decorator(func):
|
69 |
+
def wrapper(wallet, msg, the_existing, *args, **kwargs):
|
70 |
+
msg = msg.lstrip().rstrip().replace('|', '')
|
71 |
+
|
72 |
+
if not msg:
|
73 |
+
gr.Warning('说点什么吧')
|
74 |
+
return
|
75 |
+
msg = msg[:200] # read the first 200bytes ONLY
|
76 |
+
return func(wallet, msg, the_existing)
|
77 |
+
return wrapper
|
78 |
+
return decorator
|
79 |
+
|
80 |
+
|
81 |
+
def handler_validate_wallet():
|
82 |
+
def decorator(func):
|
83 |
+
def wrapper(wallet, msg, the_existing, *args, **kwargs):
|
84 |
+
if not re_wallet.search(wallet):
|
85 |
+
gr.Warning('看起来不是一个63位钱包地址,请重新输入')
|
86 |
+
return
|
87 |
+
return func(wallet, msg, the_existing)
|
88 |
+
return wrapper
|
89 |
+
return decorator
|
90 |
+
|
91 |
+
@handler_validate_wallet()
|
92 |
+
@handler_clean_msg()
|
93 |
+
@handler_records_exist()
|
94 |
+
@handler_records_lt_6()
|
95 |
+
def write_msg(wallet, msg, the_existing):
|
96 |
+
# get the existing msg
|
97 |
+
message = dict(ts = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S'),
|
98 |
+
message = msg)
|
99 |
+
if the_existing := get_cfkv_messages(wallet):
|
100 |
+
the_existing.append(message)
|
101 |
+
messages = the_existing
|
102 |
+
else:
|
103 |
+
messages = [message]
|
104 |
+
|
105 |
+
if store.set(wallet, json.dumps(messages)):
|
106 |
+
gr.Info('已记录您的寄语, 预祝龙年大吉!')
|
107 |
return True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
|
109 |
+
|
110 |
+
def fn(wallet, msg):
|
111 |
+
the_existing = get_cfkv_messages(wallet)
|
112 |
+
# the_existing_msg = json.dumps(the_existing, indent=2)
|
113 |
+
|
114 |
+
try:
|
115 |
+
write_msg(wallet, msg, the_existing)
|
116 |
+
except Exception as e:
|
117 |
+
return f"```markdown\r\n{e}\r\n```"
|
118 |
|
119 |
+
# update the the_existing, not query cfkv to save query times
|
120 |
+
|
121 |
+
the_existing = get_cfkv_messages(wallet)
|
122 |
+
return f"```markdown\r\n{json.dumps(the_existing, ensure_ascii=False, indent=2)}\r\n```"
|
123 |
+
|
124 |
+
css = """
|
125 |
+
.gradio_container {
|
126 |
+
background: url('file=bg.png');
|
127 |
+
background-position: center; /* Center the image */
|
128 |
+
background-repeat: no-repeat; /* Do not repeat the image */
|
129 |
+
background-size: cover; /* Resize the background image to cover the entire container */
|
130 |
+
}
|
131 |
+
"""
|
132 |
|
133 |
+
with gr.Blocks(title='龙年吉祥', css=".gradio-container {background: url('https://huggingface.co/spaces/foobar999/bestwishgb2312/blob/main/bg.png)}") as demo:
|
134 |
header = gr.Markdown('# 龙年消灾')
|
135 |
sub_header = gr.Markdown('''### 龙年佳节之际,举行一次送灾活动。将gb2312的灾字打入黑洞地址,寓意消灾。留下你的钱包地址、写下寄语吧。所有信息汇总取sha256值后,会随UTXO信息寄送到黑洞地址。愿您龙年少灾多福!''')
|
136 |
footer = gr.Markdown('''
|
137 |
+
> **Note:**
|
138 |
> 1. **务必** 不要贴钱包私钥地址或者助记词
|
139 |
+
> 2. 地址信息 **公开可见**,寄语信息打入黑洞前仅自己钱包可见,打入黑洞后销毁写入hash值所有人不可见
|
140 |
> 3. 截断读取前200个字
|
141 |
> 4. 本活动属于公益性质,不对提交者钱包地址设限且免费
|
142 |
+
> 5. 提交无需任何授权和签名,输入自己的钱包地址即可
|
143 |
+
|
144 |
+
> **免责和法律声明: **
|
145 |
+
> 本活动不对任何提交者的钱包地址、资产丢失和寄语信息等任何负面影响负责,提交即视为同意本条款,请遵守当地、本国法律法规,如有违反,后果自负。
|
146 |
''')
|
147 |
+
|
148 |
+
# df_msg = load_msg()
|
149 |
with gr.Column():
|
150 |
wallet = gr.Textbox(max_lines=1, label='钱包地址', placeholder='务必不要输入私钥或助记词')
|
151 |
msg = gr.TextArea(label='写点什么吧', placeholder='少于200个字')
|
152 |
submit = gr.Button('点一下, 少灾多福!', elem_id='submit', elem_classes='button')
|
153 |
+
# df = gr.Dataframe()
|
154 |
|
155 |
+
submit.click(fn, inputs=[wallet,msg], outputs=gr.Markdown())
|
156 |
|
157 |
# demo = gr.Interface(handle_input, inputs=[wallet, msg], outputs=df)
|
158 |
|
159 |
|
160 |
if __name__ == '__main__':
|
161 |
demo.queue(max_size=5)
|
162 |
+
demo.launch()
|
bg.jpg
ADDED
pdm.lock
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
groups = ["default"]
|
6 |
strategy = ["cross_platform"]
|
7 |
lock_version = "4.4"
|
8 |
-
content_hash = "sha256:
|
9 |
|
10 |
[[package]]
|
11 |
name = "aiofiles"
|
@@ -17,6 +17,81 @@ files = [
|
|
17 |
{file = "aiofiles-23.2.1.tar.gz", hash = "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a"},
|
18 |
]
|
19 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
20 |
[[package]]
|
21 |
name = "altair"
|
22 |
version = "5.2.0"
|
@@ -62,6 +137,16 @@ files = [
|
|
62 |
{file = "anyio-4.2.0.tar.gz", hash = "sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f"},
|
63 |
]
|
64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
65 |
[[package]]
|
66 |
name = "attrs"
|
67 |
version = "23.2.0"
|
@@ -82,6 +167,14 @@ files = [
|
|
82 |
{file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"},
|
83 |
]
|
84 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
85 |
[[package]]
|
86 |
name = "charset-normalizer"
|
87 |
version = "3.3.2"
|
@@ -292,6 +385,61 @@ files = [
|
|
292 |
{file = "fonttools-4.47.2.tar.gz", hash = "sha256:7df26dd3650e98ca45f1e29883c96a0b9f5bb6af8d632a6a108bc744fa0bd9b3"},
|
293 |
]
|
294 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
295 |
[[package]]
|
296 |
name = "fsspec"
|
297 |
version = "2023.12.2"
|
@@ -652,6 +800,45 @@ files = [
|
|
652 |
{file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"},
|
653 |
]
|
654 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
655 |
[[package]]
|
656 |
name = "numpy"
|
657 |
version = "1.26.3"
|
@@ -966,6 +1153,16 @@ files = [
|
|
966 |
{file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
|
967 |
]
|
968 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
969 |
[[package]]
|
970 |
name = "python-multipart"
|
971 |
version = "0.0.6"
|
@@ -1375,3 +1572,77 @@ files = [
|
|
1375 |
{file = "websockets-11.0.3-py3-none-any.whl", hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6"},
|
1376 |
{file = "websockets-11.0.3.tar.gz", hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016"},
|
1377 |
]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
groups = ["default"]
|
6 |
strategy = ["cross_platform"]
|
7 |
lock_version = "4.4"
|
8 |
+
content_hash = "sha256:ada6d1697c526fcfb95d924f78359bc4469c63027875b0c8392f40fe65bad100"
|
9 |
|
10 |
[[package]]
|
11 |
name = "aiofiles"
|
|
|
17 |
{file = "aiofiles-23.2.1.tar.gz", hash = "sha256:84ec2218d8419404abcb9f0c02df3f34c6e0a68ed41072acfb1cef5cbc29051a"},
|
18 |
]
|
19 |
|
20 |
+
[[package]]
|
21 |
+
name = "aiohttp"
|
22 |
+
version = "3.9.1"
|
23 |
+
requires_python = ">=3.8"
|
24 |
+
summary = "Async http client/server framework (asyncio)"
|
25 |
+
dependencies = [
|
26 |
+
"aiosignal>=1.1.2",
|
27 |
+
"async-timeout<5.0,>=4.0; python_version < \"3.11\"",
|
28 |
+
"attrs>=17.3.0",
|
29 |
+
"frozenlist>=1.1.1",
|
30 |
+
"multidict<7.0,>=4.5",
|
31 |
+
"yarl<2.0,>=1.0",
|
32 |
+
]
|
33 |
+
files = [
|
34 |
+
{file = "aiohttp-3.9.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e1f80197f8b0b846a8d5cf7b7ec6084493950d0882cc5537fb7b96a69e3c8590"},
|
35 |
+
{file = "aiohttp-3.9.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c72444d17777865734aa1a4d167794c34b63e5883abb90356a0364a28904e6c0"},
|
36 |
+
{file = "aiohttp-3.9.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9b05d5cbe9dafcdc733262c3a99ccf63d2f7ce02543620d2bd8db4d4f7a22f83"},
|
37 |
+
{file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c4fa235d534b3547184831c624c0b7c1e262cd1de847d95085ec94c16fddcd5"},
|
38 |
+
{file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:289ba9ae8e88d0ba16062ecf02dd730b34186ea3b1e7489046fc338bdc3361c4"},
|
39 |
+
{file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bff7e2811814fa2271be95ab6e84c9436d027a0e59665de60edf44e529a42c1f"},
|
40 |
+
{file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:81b77f868814346662c96ab36b875d7814ebf82340d3284a31681085c051320f"},
|
41 |
+
{file = "aiohttp-3.9.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3b9c7426923bb7bd66d409da46c41e3fb40f5caf679da624439b9eba92043fa6"},
|
42 |
+
{file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:8d44e7bf06b0c0a70a20f9100af9fcfd7f6d9d3913e37754c12d424179b4e48f"},
|
43 |
+
{file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:22698f01ff5653fe66d16ffb7658f582a0ac084d7da1323e39fd9eab326a1f26"},
|
44 |
+
{file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ca7ca5abfbfe8d39e653870fbe8d7710be7a857f8a8386fc9de1aae2e02ce7e4"},
|
45 |
+
{file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:8d7f98fde213f74561be1d6d3fa353656197f75d4edfbb3d94c9eb9b0fc47f5d"},
|
46 |
+
{file = "aiohttp-3.9.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:5216b6082c624b55cfe79af5d538e499cd5f5b976820eac31951fb4325974501"},
|
47 |
+
{file = "aiohttp-3.9.1-cp310-cp310-win32.whl", hash = "sha256:0e7ba7ff228c0d9a2cd66194e90f2bca6e0abca810b786901a569c0de082f489"},
|
48 |
+
{file = "aiohttp-3.9.1-cp310-cp310-win_amd64.whl", hash = "sha256:c7e939f1ae428a86e4abbb9a7c4732bf4706048818dfd979e5e2839ce0159f23"},
|
49 |
+
{file = "aiohttp-3.9.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:df9cf74b9bc03d586fc53ba470828d7b77ce51b0582d1d0b5b2fb673c0baa32d"},
|
50 |
+
{file = "aiohttp-3.9.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ecca113f19d5e74048c001934045a2b9368d77b0b17691d905af18bd1c21275e"},
|
51 |
+
{file = "aiohttp-3.9.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8cef8710fb849d97c533f259103f09bac167a008d7131d7b2b0e3a33269185c0"},
|
52 |
+
{file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bea94403a21eb94c93386d559bce297381609153e418a3ffc7d6bf772f59cc35"},
|
53 |
+
{file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:91c742ca59045dce7ba76cab6e223e41d2c70d79e82c284a96411f8645e2afff"},
|
54 |
+
{file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6c93b7c2e52061f0925c3382d5cb8980e40f91c989563d3d32ca280069fd6a87"},
|
55 |
+
{file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee2527134f95e106cc1653e9ac78846f3a2ec1004cf20ef4e02038035a74544d"},
|
56 |
+
{file = "aiohttp-3.9.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11ff168d752cb41e8492817e10fb4f85828f6a0142b9726a30c27c35a1835f01"},
|
57 |
+
{file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:b8c3a67eb87394386847d188996920f33b01b32155f0a94f36ca0e0c635bf3e3"},
|
58 |
+
{file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c7b5d5d64e2a14e35a9240b33b89389e0035e6de8dbb7ffa50d10d8b65c57449"},
|
59 |
+
{file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:69985d50a2b6f709412d944ffb2e97d0be154ea90600b7a921f95a87d6f108a2"},
|
60 |
+
{file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:c9110c06eaaac7e1f5562caf481f18ccf8f6fdf4c3323feab28a93d34cc646bd"},
|
61 |
+
{file = "aiohttp-3.9.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d737e69d193dac7296365a6dcb73bbbf53bb760ab25a3727716bbd42022e8d7a"},
|
62 |
+
{file = "aiohttp-3.9.1-cp311-cp311-win32.whl", hash = "sha256:4ee8caa925aebc1e64e98432d78ea8de67b2272252b0a931d2ac3bd876ad5544"},
|
63 |
+
{file = "aiohttp-3.9.1-cp311-cp311-win_amd64.whl", hash = "sha256:a34086c5cc285be878622e0a6ab897a986a6e8bf5b67ecb377015f06ed316587"},
|
64 |
+
{file = "aiohttp-3.9.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:f800164276eec54e0af5c99feb9494c295118fc10a11b997bbb1348ba1a52065"},
|
65 |
+
{file = "aiohttp-3.9.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:500f1c59906cd142d452074f3811614be04819a38ae2b3239a48b82649c08821"},
|
66 |
+
{file = "aiohttp-3.9.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0b0a6a36ed7e164c6df1e18ee47afbd1990ce47cb428739d6c99aaabfaf1b3af"},
|
67 |
+
{file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69da0f3ed3496808e8cbc5123a866c41c12c15baaaead96d256477edf168eb57"},
|
68 |
+
{file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:176df045597e674fa950bf5ae536be85699e04cea68fa3a616cf75e413737eb5"},
|
69 |
+
{file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b796b44111f0cab6bbf66214186e44734b5baab949cb5fb56154142a92989aeb"},
|
70 |
+
{file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f27fdaadce22f2ef950fc10dcdf8048407c3b42b73779e48a4e76b3c35bca26c"},
|
71 |
+
{file = "aiohttp-3.9.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcb6532b9814ea7c5a6a3299747c49de30e84472fa72821b07f5a9818bce0f66"},
|
72 |
+
{file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:54631fb69a6e44b2ba522f7c22a6fb2667a02fd97d636048478db2fd8c4e98fe"},
|
73 |
+
{file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:4b4c452d0190c5a820d3f5c0f3cd8a28ace48c54053e24da9d6041bf81113183"},
|
74 |
+
{file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:cae4c0c2ca800c793cae07ef3d40794625471040a87e1ba392039639ad61ab5b"},
|
75 |
+
{file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:565760d6812b8d78d416c3c7cfdf5362fbe0d0d25b82fed75d0d29e18d7fc30f"},
|
76 |
+
{file = "aiohttp-3.9.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:54311eb54f3a0c45efb9ed0d0a8f43d1bc6060d773f6973efd90037a51cd0a3f"},
|
77 |
+
{file = "aiohttp-3.9.1-cp312-cp312-win32.whl", hash = "sha256:85c3e3c9cb1d480e0b9a64c658cd66b3cfb8e721636ab8b0e746e2d79a7a9eed"},
|
78 |
+
{file = "aiohttp-3.9.1-cp312-cp312-win_amd64.whl", hash = "sha256:11cb254e397a82efb1805d12561e80124928e04e9c4483587ce7390b3866d213"},
|
79 |
+
{file = "aiohttp-3.9.1.tar.gz", hash = "sha256:8fc49a87ac269d4529da45871e2ffb6874e87779c3d0e2ccd813c0899221239d"},
|
80 |
+
]
|
81 |
+
|
82 |
+
[[package]]
|
83 |
+
name = "aiosignal"
|
84 |
+
version = "1.3.1"
|
85 |
+
requires_python = ">=3.7"
|
86 |
+
summary = "aiosignal: a list of registered asynchronous callbacks"
|
87 |
+
dependencies = [
|
88 |
+
"frozenlist>=1.1.0",
|
89 |
+
]
|
90 |
+
files = [
|
91 |
+
{file = "aiosignal-1.3.1-py3-none-any.whl", hash = "sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17"},
|
92 |
+
{file = "aiosignal-1.3.1.tar.gz", hash = "sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc"},
|
93 |
+
]
|
94 |
+
|
95 |
[[package]]
|
96 |
name = "altair"
|
97 |
version = "5.2.0"
|
|
|
137 |
{file = "anyio-4.2.0.tar.gz", hash = "sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f"},
|
138 |
]
|
139 |
|
140 |
+
[[package]]
|
141 |
+
name = "async-timeout"
|
142 |
+
version = "4.0.3"
|
143 |
+
requires_python = ">=3.7"
|
144 |
+
summary = "Timeout context manager for asyncio programs"
|
145 |
+
files = [
|
146 |
+
{file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"},
|
147 |
+
{file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"},
|
148 |
+
]
|
149 |
+
|
150 |
[[package]]
|
151 |
name = "attrs"
|
152 |
version = "23.2.0"
|
|
|
167 |
{file = "certifi-2023.11.17.tar.gz", hash = "sha256:9b469f3a900bf28dc19b8cfbf8019bf47f7fdd1a65a1d4ffb98fc14166beb4d1"},
|
168 |
]
|
169 |
|
170 |
+
[[package]]
|
171 |
+
name = "cfkv"
|
172 |
+
version = "1.1.2"
|
173 |
+
summary = "A Python wrapper for the Cloudflare KV Store API"
|
174 |
+
files = [
|
175 |
+
{file = "cfkv-1.1.2.tar.gz", hash = "sha256:bc53f40c0b74aaebf07a07ed49ea467477bfc772c92dabc794a159be71731e0a"},
|
176 |
+
]
|
177 |
+
|
178 |
[[package]]
|
179 |
name = "charset-normalizer"
|
180 |
version = "3.3.2"
|
|
|
385 |
{file = "fonttools-4.47.2.tar.gz", hash = "sha256:7df26dd3650e98ca45f1e29883c96a0b9f5bb6af8d632a6a108bc744fa0bd9b3"},
|
386 |
]
|
387 |
|
388 |
+
[[package]]
|
389 |
+
name = "frozenlist"
|
390 |
+
version = "1.4.1"
|
391 |
+
requires_python = ">=3.8"
|
392 |
+
summary = "A list-like structure which implements collections.abc.MutableSequence"
|
393 |
+
files = [
|
394 |
+
{file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f9aa1878d1083b276b0196f2dfbe00c9b7e752475ed3b682025ff20c1c1f51ac"},
|
395 |
+
{file = "frozenlist-1.4.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:29acab3f66f0f24674b7dc4736477bcd4bc3ad4b896f5f45379a67bce8b96868"},
|
396 |
+
{file = "frozenlist-1.4.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:74fb4bee6880b529a0c6560885fce4dc95936920f9f20f53d99a213f7bf66776"},
|
397 |
+
{file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:590344787a90ae57d62511dd7c736ed56b428f04cd8c161fcc5e7232c130c69a"},
|
398 |
+
{file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:068b63f23b17df8569b7fdca5517edef76171cf3897eb68beb01341131fbd2ad"},
|
399 |
+
{file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5c849d495bf5154cd8da18a9eb15db127d4dba2968d88831aff6f0331ea9bd4c"},
|
400 |
+
{file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9750cc7fe1ae3b1611bb8cfc3f9ec11d532244235d75901fb6b8e42ce9229dfe"},
|
401 |
+
{file = "frozenlist-1.4.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a9b2de4cf0cdd5bd2dee4c4f63a653c61d2408055ab77b151c1957f221cabf2a"},
|
402 |
+
{file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:0633c8d5337cb5c77acbccc6357ac49a1770b8c487e5b3505c57b949b4b82e98"},
|
403 |
+
{file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:27657df69e8801be6c3638054e202a135c7f299267f1a55ed3a598934f6c0d75"},
|
404 |
+
{file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:f9a3ea26252bd92f570600098783d1371354d89d5f6b7dfd87359d669f2109b5"},
|
405 |
+
{file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:4f57dab5fe3407b6c0c1cc907ac98e8a189f9e418f3b6e54d65a718aaafe3950"},
|
406 |
+
{file = "frozenlist-1.4.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:e02a0e11cf6597299b9f3bbd3f93d79217cb90cfd1411aec33848b13f5c656cc"},
|
407 |
+
{file = "frozenlist-1.4.1-cp310-cp310-win32.whl", hash = "sha256:a828c57f00f729620a442881cc60e57cfcec6842ba38e1b19fd3e47ac0ff8dc1"},
|
408 |
+
{file = "frozenlist-1.4.1-cp310-cp310-win_amd64.whl", hash = "sha256:f56e2333dda1fe0f909e7cc59f021eba0d2307bc6f012a1ccf2beca6ba362439"},
|
409 |
+
{file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a0cb6f11204443f27a1628b0e460f37fb30f624be6051d490fa7d7e26d4af3d0"},
|
410 |
+
{file = "frozenlist-1.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b46c8ae3a8f1f41a0d2ef350c0b6e65822d80772fe46b653ab6b6274f61d4a49"},
|
411 |
+
{file = "frozenlist-1.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fde5bd59ab5357e3853313127f4d3565fc7dad314a74d7b5d43c22c6a5ed2ced"},
|
412 |
+
{file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:722e1124aec435320ae01ee3ac7bec11a5d47f25d0ed6328f2273d287bc3abb0"},
|
413 |
+
{file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2471c201b70d58a0f0c1f91261542a03d9a5e088ed3dc6c160d614c01649c106"},
|
414 |
+
{file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c757a9dd70d72b076d6f68efdbb9bc943665ae954dad2801b874c8c69e185068"},
|
415 |
+
{file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f146e0911cb2f1da549fc58fc7bcd2b836a44b79ef871980d605ec392ff6b0d2"},
|
416 |
+
{file = "frozenlist-1.4.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4f9c515e7914626b2a2e1e311794b4c35720a0be87af52b79ff8e1429fc25f19"},
|
417 |
+
{file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:c302220494f5c1ebeb0912ea782bcd5e2f8308037b3c7553fad0e48ebad6ad82"},
|
418 |
+
{file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:442acde1e068288a4ba7acfe05f5f343e19fac87bfc96d89eb886b0363e977ec"},
|
419 |
+
{file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:1b280e6507ea8a4fa0c0a7150b4e526a8d113989e28eaaef946cc77ffd7efc0a"},
|
420 |
+
{file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:fe1a06da377e3a1062ae5fe0926e12b84eceb8a50b350ddca72dc85015873f74"},
|
421 |
+
{file = "frozenlist-1.4.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:db9e724bebd621d9beca794f2a4ff1d26eed5965b004a97f1f1685a173b869c2"},
|
422 |
+
{file = "frozenlist-1.4.1-cp311-cp311-win32.whl", hash = "sha256:e774d53b1a477a67838a904131c4b0eef6b3d8a651f8b138b04f748fccfefe17"},
|
423 |
+
{file = "frozenlist-1.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:fb3c2db03683b5767dedb5769b8a40ebb47d6f7f45b1b3e3b4b51ec8ad9d9825"},
|
424 |
+
{file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1979bc0aeb89b33b588c51c54ab0161791149f2461ea7c7c946d95d5f93b56ae"},
|
425 |
+
{file = "frozenlist-1.4.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:cc7b01b3754ea68a62bd77ce6020afaffb44a590c2289089289363472d13aedb"},
|
426 |
+
{file = "frozenlist-1.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:c9c92be9fd329ac801cc420e08452b70e7aeab94ea4233a4804f0915c14eba9b"},
|
427 |
+
{file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5c3894db91f5a489fc8fa6a9991820f368f0b3cbdb9cd8849547ccfab3392d86"},
|
428 |
+
{file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ba60bb19387e13597fb059f32cd4d59445d7b18b69a745b8f8e5db0346f33480"},
|
429 |
+
{file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8aefbba5f69d42246543407ed2461db31006b0f76c4e32dfd6f42215a2c41d09"},
|
430 |
+
{file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:780d3a35680ced9ce682fbcf4cb9c2bad3136eeff760ab33707b71db84664e3a"},
|
431 |
+
{file = "frozenlist-1.4.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9acbb16f06fe7f52f441bb6f413ebae6c37baa6ef9edd49cdd567216da8600cd"},
|
432 |
+
{file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:23b701e65c7b36e4bf15546a89279bd4d8675faabc287d06bbcfac7d3c33e1e6"},
|
433 |
+
{file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:3e0153a805a98f5ada7e09826255ba99fb4f7524bb81bf6b47fb702666484ae1"},
|
434 |
+
{file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:dd9b1baec094d91bf36ec729445f7769d0d0cf6b64d04d86e45baf89e2b9059b"},
|
435 |
+
{file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:1a4471094e146b6790f61b98616ab8e44f72661879cc63fa1049d13ef711e71e"},
|
436 |
+
{file = "frozenlist-1.4.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5667ed53d68d91920defdf4035d1cdaa3c3121dc0b113255124bcfada1cfa1b8"},
|
437 |
+
{file = "frozenlist-1.4.1-cp312-cp312-win32.whl", hash = "sha256:beee944ae828747fd7cb216a70f120767fc9f4f00bacae8543c14a6831673f89"},
|
438 |
+
{file = "frozenlist-1.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:64536573d0a2cb6e625cf309984e2d873979709f2cf22839bf2d61790b448ad5"},
|
439 |
+
{file = "frozenlist-1.4.1-py3-none-any.whl", hash = "sha256:04ced3e6a46b4cfffe20f9ae482818e34eba9b5fb0ce4056e4cc9b6e212d09b7"},
|
440 |
+
{file = "frozenlist-1.4.1.tar.gz", hash = "sha256:c037a86e8513059a2613aaba4d817bb90b9d9b6b69aace3ce9c877e8c8ed402b"},
|
441 |
+
]
|
442 |
+
|
443 |
[[package]]
|
444 |
name = "fsspec"
|
445 |
version = "2023.12.2"
|
|
|
800 |
{file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"},
|
801 |
]
|
802 |
|
803 |
+
[[package]]
|
804 |
+
name = "multidict"
|
805 |
+
version = "6.0.4"
|
806 |
+
requires_python = ">=3.7"
|
807 |
+
summary = "multidict implementation"
|
808 |
+
files = [
|
809 |
+
{file = "multidict-6.0.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:0b1a97283e0c85772d613878028fec909f003993e1007eafa715b24b377cb9b8"},
|
810 |
+
{file = "multidict-6.0.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:eeb6dcc05e911516ae3d1f207d4b0520d07f54484c49dfc294d6e7d63b734171"},
|
811 |
+
{file = "multidict-6.0.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:d6d635d5209b82a3492508cf5b365f3446afb65ae7ebd755e70e18f287b0adf7"},
|
812 |
+
{file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c048099e4c9e9d615545e2001d3d8a4380bd403e1a0578734e0d31703d1b0c0b"},
|
813 |
+
{file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ea20853c6dbbb53ed34cb4d080382169b6f4554d394015f1bef35e881bf83547"},
|
814 |
+
{file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:16d232d4e5396c2efbbf4f6d4df89bfa905eb0d4dc5b3549d872ab898451f569"},
|
815 |
+
{file = "multidict-6.0.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:36c63aaa167f6c6b04ef2c85704e93af16c11d20de1d133e39de6a0e84582a93"},
|
816 |
+
{file = "multidict-6.0.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:64bdf1086b6043bf519869678f5f2757f473dee970d7abf6da91ec00acb9cb98"},
|
817 |
+
{file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:43644e38f42e3af682690876cff722d301ac585c5b9e1eacc013b7a3f7b696a0"},
|
818 |
+
{file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:7582a1d1030e15422262de9f58711774e02fa80df0d1578995c76214f6954988"},
|
819 |
+
{file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:ddff9c4e225a63a5afab9dd15590432c22e8057e1a9a13d28ed128ecf047bbdc"},
|
820 |
+
{file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:ee2a1ece51b9b9e7752e742cfb661d2a29e7bcdba2d27e66e28a99f1890e4fa0"},
|
821 |
+
{file = "multidict-6.0.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a2e4369eb3d47d2034032a26c7a80fcb21a2cb22e1173d761a162f11e562caa5"},
|
822 |
+
{file = "multidict-6.0.4-cp310-cp310-win32.whl", hash = "sha256:574b7eae1ab267e5f8285f0fe881f17efe4b98c39a40858247720935b893bba8"},
|
823 |
+
{file = "multidict-6.0.4-cp310-cp310-win_amd64.whl", hash = "sha256:4dcbb0906e38440fa3e325df2359ac6cb043df8e58c965bb45f4e406ecb162cc"},
|
824 |
+
{file = "multidict-6.0.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0dfad7a5a1e39c53ed00d2dd0c2e36aed4650936dc18fd9a1826a5ae1cad6f03"},
|
825 |
+
{file = "multidict-6.0.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:64da238a09d6039e3bd39bb3aee9c21a5e34f28bfa5aa22518581f910ff94af3"},
|
826 |
+
{file = "multidict-6.0.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ff959bee35038c4624250473988b24f846cbeb2c6639de3602c073f10410ceba"},
|
827 |
+
{file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01a3a55bd90018c9c080fbb0b9f4891db37d148a0a18722b42f94694f8b6d4c9"},
|
828 |
+
{file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c5cb09abb18c1ea940fb99360ea0396f34d46566f157122c92dfa069d3e0e982"},
|
829 |
+
{file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:666daae833559deb2d609afa4490b85830ab0dfca811a98b70a205621a6109fe"},
|
830 |
+
{file = "multidict-6.0.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:11bdf3f5e1518b24530b8241529d2050014c884cf18b6fc69c0c2b30ca248710"},
|
831 |
+
{file = "multidict-6.0.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7d18748f2d30f94f498e852c67d61261c643b349b9d2a581131725595c45ec6c"},
|
832 |
+
{file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:458f37be2d9e4c95e2d8866a851663cbc76e865b78395090786f6cd9b3bbf4f4"},
|
833 |
+
{file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:b1a2eeedcead3a41694130495593a559a668f382eee0727352b9a41e1c45759a"},
|
834 |
+
{file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:7d6ae9d593ef8641544d6263c7fa6408cc90370c8cb2bbb65f8d43e5b0351d9c"},
|
835 |
+
{file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:5979b5632c3e3534e42ca6ff856bb24b2e3071b37861c2c727ce220d80eee9ed"},
|
836 |
+
{file = "multidict-6.0.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dcfe792765fab89c365123c81046ad4103fcabbc4f56d1c1997e6715e8015461"},
|
837 |
+
{file = "multidict-6.0.4-cp311-cp311-win32.whl", hash = "sha256:3601a3cece3819534b11d4efc1eb76047488fddd0c85a3948099d5da4d504636"},
|
838 |
+
{file = "multidict-6.0.4-cp311-cp311-win_amd64.whl", hash = "sha256:81a4f0b34bd92df3da93315c6a59034df95866014ac08535fc819f043bfd51f0"},
|
839 |
+
{file = "multidict-6.0.4.tar.gz", hash = "sha256:3666906492efb76453c0e7b97f2cf459b0682e7402c0489a95484965dbc1da49"},
|
840 |
+
]
|
841 |
+
|
842 |
[[package]]
|
843 |
name = "numpy"
|
844 |
version = "1.26.3"
|
|
|
1153 |
{file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"},
|
1154 |
]
|
1155 |
|
1156 |
+
[[package]]
|
1157 |
+
name = "python-dotenv"
|
1158 |
+
version = "1.0.1"
|
1159 |
+
requires_python = ">=3.8"
|
1160 |
+
summary = "Read key-value pairs from a .env file and set them as environment variables"
|
1161 |
+
files = [
|
1162 |
+
{file = "python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca"},
|
1163 |
+
{file = "python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a"},
|
1164 |
+
]
|
1165 |
+
|
1166 |
[[package]]
|
1167 |
name = "python-multipart"
|
1168 |
version = "0.0.6"
|
|
|
1572 |
{file = "websockets-11.0.3-py3-none-any.whl", hash = "sha256:6681ba9e7f8f3b19440921e99efbb40fc89f26cd71bf539e45d8c8a25c976dc6"},
|
1573 |
{file = "websockets-11.0.3.tar.gz", hash = "sha256:88fc51d9a26b10fc331be344f1781224a375b78488fc343620184e95a4b27016"},
|
1574 |
]
|
1575 |
+
|
1576 |
+
[[package]]
|
1577 |
+
name = "workers-kv-py"
|
1578 |
+
version = "1.2.2"
|
1579 |
+
requires_python = ">=3.8"
|
1580 |
+
summary = "An api wrapper of Cloudflare Workers KV for Python"
|
1581 |
+
dependencies = [
|
1582 |
+
"aiohttp>=3.8.1",
|
1583 |
+
"requests>=2.25.1",
|
1584 |
+
]
|
1585 |
+
files = [
|
1586 |
+
{file = "workers-kv.py-1.2.2.tar.gz", hash = "sha256:f2f4df0719ef77262066a5bfb93960ede11a2d390218adb7692b23209915de3d"},
|
1587 |
+
{file = "workers_kv.py-1.2.2-py2.py3-none-any.whl", hash = "sha256:e13a34c9d0d6960bb99083dc6b76a12a7876c5755dbd04b44b8456b23a3edbda"},
|
1588 |
+
{file = "workers_kv.py-1.2.2-py3-none-any.whl", hash = "sha256:e351e80e3c1afa9bb3d3fa9d194ef55fdb5bdc25e794771bc22d1081580a3fde"},
|
1589 |
+
]
|
1590 |
+
|
1591 |
+
[[package]]
|
1592 |
+
name = "yarl"
|
1593 |
+
version = "1.9.4"
|
1594 |
+
requires_python = ">=3.7"
|
1595 |
+
summary = "Yet another URL library"
|
1596 |
+
dependencies = [
|
1597 |
+
"idna>=2.0",
|
1598 |
+
"multidict>=4.0",
|
1599 |
+
]
|
1600 |
+
files = [
|
1601 |
+
{file = "yarl-1.9.4-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a8c1df72eb746f4136fe9a2e72b0c9dc1da1cbd23b5372f94b5820ff8ae30e0e"},
|
1602 |
+
{file = "yarl-1.9.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3a6ed1d525bfb91b3fc9b690c5a21bb52de28c018530ad85093cc488bee2dd2"},
|
1603 |
+
{file = "yarl-1.9.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c38c9ddb6103ceae4e4498f9c08fac9b590c5c71b0370f98714768e22ac6fa66"},
|
1604 |
+
{file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d9e09c9d74f4566e905a0b8fa668c58109f7624db96a2171f21747abc7524234"},
|
1605 |
+
{file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8477c1ee4bd47c57d49621a062121c3023609f7a13b8a46953eb6c9716ca392"},
|
1606 |
+
{file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d5ff2c858f5f6a42c2a8e751100f237c5e869cbde669a724f2062d4c4ef93551"},
|
1607 |
+
{file = "yarl-1.9.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:357495293086c5b6d34ca9616a43d329317feab7917518bc97a08f9e55648455"},
|
1608 |
+
{file = "yarl-1.9.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:54525ae423d7b7a8ee81ba189f131054defdb122cde31ff17477951464c1691c"},
|
1609 |
+
{file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:801e9264d19643548651b9db361ce3287176671fb0117f96b5ac0ee1c3530d53"},
|
1610 |
+
{file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e516dc8baf7b380e6c1c26792610230f37147bb754d6426462ab115a02944385"},
|
1611 |
+
{file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:7d5aaac37d19b2904bb9dfe12cdb08c8443e7ba7d2852894ad448d4b8f442863"},
|
1612 |
+
{file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:54beabb809ffcacbd9d28ac57b0db46e42a6e341a030293fb3185c409e626b8b"},
|
1613 |
+
{file = "yarl-1.9.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:bac8d525a8dbc2a1507ec731d2867025d11ceadcb4dd421423a5d42c56818541"},
|
1614 |
+
{file = "yarl-1.9.4-cp310-cp310-win32.whl", hash = "sha256:7855426dfbddac81896b6e533ebefc0af2f132d4a47340cee6d22cac7190022d"},
|
1615 |
+
{file = "yarl-1.9.4-cp310-cp310-win_amd64.whl", hash = "sha256:848cd2a1df56ddbffeb375535fb62c9d1645dde33ca4d51341378b3f5954429b"},
|
1616 |
+
{file = "yarl-1.9.4-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:35a2b9396879ce32754bd457d31a51ff0a9d426fd9e0e3c33394bf4b9036b099"},
|
1617 |
+
{file = "yarl-1.9.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4c7d56b293cc071e82532f70adcbd8b61909eec973ae9d2d1f9b233f3d943f2c"},
|
1618 |
+
{file = "yarl-1.9.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d8a1c6c0be645c745a081c192e747c5de06e944a0d21245f4cf7c05e457c36e0"},
|
1619 |
+
{file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4b3c1ffe10069f655ea2d731808e76e0f452fc6c749bea04781daf18e6039525"},
|
1620 |
+
{file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:549d19c84c55d11687ddbd47eeb348a89df9cb30e1993f1b128f4685cd0ebbf8"},
|
1621 |
+
{file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a7409f968456111140c1c95301cadf071bd30a81cbd7ab829169fb9e3d72eae9"},
|
1622 |
+
{file = "yarl-1.9.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e23a6d84d9d1738dbc6e38167776107e63307dfc8ad108e580548d1f2c587f42"},
|
1623 |
+
{file = "yarl-1.9.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8b889777de69897406c9fb0b76cdf2fd0f31267861ae7501d93003d55f54fbe"},
|
1624 |
+
{file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:03caa9507d3d3c83bca08650678e25364e1843b484f19986a527630ca376ecce"},
|
1625 |
+
{file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e9035df8d0880b2f1c7f5031f33f69e071dfe72ee9310cfc76f7b605958ceb9"},
|
1626 |
+
{file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:c0ec0ed476f77db9fb29bca17f0a8fcc7bc97ad4c6c1d8959c507decb22e8572"},
|
1627 |
+
{file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:ee04010f26d5102399bd17f8df8bc38dc7ccd7701dc77f4a68c5b8d733406958"},
|
1628 |
+
{file = "yarl-1.9.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:49a180c2e0743d5d6e0b4d1a9e5f633c62eca3f8a86ba5dd3c471060e352ca98"},
|
1629 |
+
{file = "yarl-1.9.4-cp311-cp311-win32.whl", hash = "sha256:81eb57278deb6098a5b62e88ad8281b2ba09f2f1147c4767522353eaa6260b31"},
|
1630 |
+
{file = "yarl-1.9.4-cp311-cp311-win_amd64.whl", hash = "sha256:d1d2532b340b692880261c15aee4dc94dd22ca5d61b9db9a8a361953d36410b1"},
|
1631 |
+
{file = "yarl-1.9.4-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0d2454f0aef65ea81037759be5ca9947539667eecebca092733b2eb43c965a81"},
|
1632 |
+
{file = "yarl-1.9.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:44d8ffbb9c06e5a7f529f38f53eda23e50d1ed33c6c869e01481d3fafa6b8142"},
|
1633 |
+
{file = "yarl-1.9.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:aaaea1e536f98754a6e5c56091baa1b6ce2f2700cc4a00b0d49eca8dea471074"},
|
1634 |
+
{file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3777ce5536d17989c91696db1d459574e9a9bd37660ea7ee4d3344579bb6f129"},
|
1635 |
+
{file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9fc5fc1eeb029757349ad26bbc5880557389a03fa6ada41703db5e068881e5f2"},
|
1636 |
+
{file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea65804b5dc88dacd4a40279af0cdadcfe74b3e5b4c897aa0d81cf86927fee78"},
|
1637 |
+
{file = "yarl-1.9.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa102d6d280a5455ad6a0f9e6d769989638718e938a6a0a2ff3f4a7ff8c62cc4"},
|
1638 |
+
{file = "yarl-1.9.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:09efe4615ada057ba2d30df871d2f668af661e971dfeedf0c159927d48bbeff0"},
|
1639 |
+
{file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:008d3e808d03ef28542372d01057fd09168419cdc8f848efe2804f894ae03e51"},
|
1640 |
+
{file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6f5cb257bc2ec58f437da2b37a8cd48f666db96d47b8a3115c29f316313654ff"},
|
1641 |
+
{file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:992f18e0ea248ee03b5a6e8b3b4738850ae7dbb172cc41c966462801cbf62cf7"},
|
1642 |
+
{file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:0e9d124c191d5b881060a9e5060627694c3bdd1fe24c5eecc8d5d7d0eb6faabc"},
|
1643 |
+
{file = "yarl-1.9.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3986b6f41ad22988e53d5778f91855dc0399b043fc8946d4f2e68af22ee9ff10"},
|
1644 |
+
{file = "yarl-1.9.4-cp312-cp312-win32.whl", hash = "sha256:4b21516d181cd77ebd06ce160ef8cc2a5e9ad35fb1c5930882baff5ac865eee7"},
|
1645 |
+
{file = "yarl-1.9.4-cp312-cp312-win_amd64.whl", hash = "sha256:a9bd00dc3bc395a662900f33f74feb3e757429e545d831eef5bb280252631984"},
|
1646 |
+
{file = "yarl-1.9.4-py3-none-any.whl", hash = "sha256:928cecb0ef9d5a7946eb6ff58417ad2fe9375762382f1bf5c55e61645f2c43ad"},
|
1647 |
+
{file = "yarl-1.9.4.tar.gz", hash = "sha256:566db86717cf8080b99b58b083b773a908ae40f06681e87e589a976faf8246bf"},
|
1648 |
+
]
|
project.drawio
ADDED
@@ -0,0 +1,199 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<mxfile host="65bd71144e">
|
2 |
+
<diagram id="7aHxPFRqXuhLCqDjbLiV" name="Page-1">
|
3 |
+
<mxGraphModel dx="1737" dy="620" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
4 |
+
<root>
|
5 |
+
<mxCell id="0"/>
|
6 |
+
<mxCell id="1" parent="0"/>
|
7 |
+
<mxCell id="18" value="Some Notes" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="1" vertex="1">
|
8 |
+
<mxGeometry x="-610" y="140" width="490" height="70" as="geometry"/>
|
9 |
+
</mxCell>
|
10 |
+
<mxCell id="19" value="Some notes" style="html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rrect;rSize=5;html=1;strokeColor=#C8C8C8;fillColor=#ffffff;whiteSpace=wrap;verticalAlign=top;align=left;fontSize=18;spacing=15;spacingTop=-5;rounded=0;labelBorderColor=none;sketch=0;" parent="1" vertex="1">
|
11 |
+
<mxGeometry x="-640" y="70" width="550" height="590" as="geometry"/>
|
12 |
+
</mxCell>
|
13 |
+
<mxCell id="20" value="" style="shape=line;strokeColor=#dddddd;resizeWidth=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="19" vertex="1">
|
14 |
+
<mxGeometry width="550" height="10" relative="1" as="geometry">
|
15 |
+
<mxPoint y="50" as="offset"/>
|
16 |
+
</mxGeometry>
|
17 |
+
</mxCell>
|
18 |
+
<mxCell id="21" value="" style="html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.x;strokeColor=#868686;strokeWidth=2;rounded=0;labelBorderColor=none;sketch=0;" parent="19" vertex="1">
|
19 |
+
<mxGeometry x="1" width="8" height="8" relative="1" as="geometry">
|
20 |
+
<mxPoint x="-24" y="20" as="offset"/>
|
21 |
+
</mxGeometry>
|
22 |
+
</mxCell>
|
23 |
+
<mxCell id="22" value="Wallet" style="strokeColor=none;fillColor=none;resizeWidth=1;align=left;verticalAlign=top;spacing=10;fontSize=14;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="19" vertex="1">
|
24 |
+
<mxGeometry width="550" height="40" relative="1" as="geometry">
|
25 |
+
<mxPoint y="60" as="offset"/>
|
26 |
+
</mxGeometry>
|
27 |
+
</mxCell>
|
28 |
+
<mxCell id="23" value="@mdo" style="html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rrect;rSize=5;strokeColor=#CED4DA;fillColor=none;align=left;verticalAlign=middle;spacing=10;fontSize=14;whiteSpace=wrap;html=1;rounded=0;labelBorderColor=none;sketch=0;" parent="19" vertex="1">
|
29 |
+
<mxGeometry width="530" height="40" relative="1" as="geometry">
|
30 |
+
<mxPoint x="10" y="100" as="offset"/>
|
31 |
+
</mxGeometry>
|
32 |
+
</mxCell>
|
33 |
+
<mxCell id="24" value="Message:" style="strokeColor=none;fillColor=none;resizeWidth=1;align=left;verticalAlign=top;spacing=10;fontSize=14;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="19" vertex="1">
|
34 |
+
<mxGeometry width="550" height="40" relative="1" as="geometry">
|
35 |
+
<mxPoint y="160" as="offset"/>
|
36 |
+
</mxGeometry>
|
37 |
+
</mxCell>
|
38 |
+
<mxCell id="25" value="" style="html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rrect;rSize=5;strokeColor=#CED4DA;fillColor=none;align=left;verticalAlign=middle;spacing=10;fontSize=14;whiteSpace=wrap;html=1;rounded=0;labelBorderColor=none;sketch=0;" parent="19" vertex="1">
|
39 |
+
<mxGeometry width="530" height="110" relative="1" as="geometry">
|
40 |
+
<mxPoint x="10" y="200" as="offset"/>
|
41 |
+
</mxGeometry>
|
42 |
+
</mxCell>
|
43 |
+
<mxCell id="26" value="" style="shape=line;strokeColor=#dddddd;resizeWidth=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="19" vertex="1">
|
44 |
+
<mxGeometry width="550" height="10" relative="1" as="geometry">
|
45 |
+
<mxPoint y="320" as="offset"/>
|
46 |
+
</mxGeometry>
|
47 |
+
</mxCell>
|
48 |
+
<mxCell id="27" value="点击送出祝福" style="html=1;shadow=0;dashed=0;shape=mxgraph.bootstrap.rrect;rSize=5;fillColor=#0085FC;strokeColor=none;fontColor=#FFFFFF;fontSize=14;rounded=0;labelBorderColor=none;sketch=0;" parent="19" vertex="1">
|
49 |
+
<mxGeometry x="1" y="1" width="199" height="39" relative="1" as="geometry">
|
50 |
+
<mxPoint x="-374" y="-250" as="offset"/>
|
51 |
+
</mxGeometry>
|
52 |
+
</mxCell>
|
53 |
+
<mxCell id="29" value="Assets" style="childLayout=tableLayout;recursiveResize=0;strokeColor=#98bf21;fillColor=#A7C942;shadow=1;rounded=0;labelBorderColor=none;sketch=0;" parent="1" vertex="1">
|
54 |
+
<mxGeometry x="-610" y="480" width="480" height="160" as="geometry"/>
|
55 |
+
</mxCell>
|
56 |
+
<mxCell id="30" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;collapsible=0;recursiveResize=0;expand=0;fontStyle=0;strokeColor=inherit;fillColor=#ffffff;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="29" vertex="1">
|
57 |
+
<mxGeometry width="480" height="33" as="geometry"/>
|
58 |
+
</mxCell>
|
59 |
+
<mxCell id="31" value="wallet<span style="white-space: pre;">	</span>" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=#A7C942;align=center;fontStyle=1;fontColor=#FFFFFF;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="30" vertex="1">
|
60 |
+
<mxGeometry width="159" height="33" as="geometry">
|
61 |
+
<mxRectangle width="159" height="33" as="alternateBounds"/>
|
62 |
+
</mxGeometry>
|
63 |
+
</mxCell>
|
64 |
+
<mxCell id="32" value="Message" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=#A7C942;align=center;fontStyle=1;fontColor=#FFFFFF;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="30" vertex="1">
|
65 |
+
<mxGeometry x="159" width="162" height="33" as="geometry">
|
66 |
+
<mxRectangle width="162" height="33" as="alternateBounds"/>
|
67 |
+
</mxGeometry>
|
68 |
+
</mxCell>
|
69 |
+
<mxCell id="33" value="Datetime" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=#A7C942;align=center;fontStyle=1;fontColor=#FFFFFF;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="30" vertex="1">
|
70 |
+
<mxGeometry x="321" width="159" height="33" as="geometry">
|
71 |
+
<mxRectangle width="159" height="33" as="alternateBounds"/>
|
72 |
+
</mxGeometry>
|
73 |
+
</mxCell>
|
74 |
+
<mxCell id="34" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;collapsible=0;recursiveResize=0;expand=0;fontStyle=0;strokeColor=inherit;fillColor=#ffffff;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="29" vertex="1">
|
75 |
+
<mxGeometry y="33" width="480" height="32" as="geometry"/>
|
76 |
+
</mxCell>
|
77 |
+
<mxCell id="35" value="Value 1" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;align=center;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="34" vertex="1">
|
78 |
+
<mxGeometry width="159" height="32" as="geometry">
|
79 |
+
<mxRectangle width="159" height="32" as="alternateBounds"/>
|
80 |
+
</mxGeometry>
|
81 |
+
</mxCell>
|
82 |
+
<mxCell id="36" value="Value 2" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;align=center;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="34" vertex="1">
|
83 |
+
<mxGeometry x="159" width="162" height="32" as="geometry">
|
84 |
+
<mxRectangle width="162" height="32" as="alternateBounds"/>
|
85 |
+
</mxGeometry>
|
86 |
+
</mxCell>
|
87 |
+
<mxCell id="37" value="Value 3" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;align=center;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="34" vertex="1">
|
88 |
+
<mxGeometry x="321" width="159" height="32" as="geometry">
|
89 |
+
<mxRectangle width="159" height="32" as="alternateBounds"/>
|
90 |
+
</mxGeometry>
|
91 |
+
</mxCell>
|
92 |
+
<mxCell id="38" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;collapsible=0;recursiveResize=0;expand=0;fontStyle=1;strokeColor=inherit;fillColor=#EAF2D3;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="29" vertex="1">
|
93 |
+
<mxGeometry y="65" width="480" height="31" as="geometry"/>
|
94 |
+
</mxCell>
|
95 |
+
<mxCell id="39" value="Value 4" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="38" vertex="1">
|
96 |
+
<mxGeometry width="159" height="31" as="geometry">
|
97 |
+
<mxRectangle width="159" height="31" as="alternateBounds"/>
|
98 |
+
</mxGeometry>
|
99 |
+
</mxCell>
|
100 |
+
<mxCell id="40" value="Value 5" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="38" vertex="1">
|
101 |
+
<mxGeometry x="159" width="162" height="31" as="geometry">
|
102 |
+
<mxRectangle width="162" height="31" as="alternateBounds"/>
|
103 |
+
</mxGeometry>
|
104 |
+
</mxCell>
|
105 |
+
<mxCell id="41" value="Value 6" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="38" vertex="1">
|
106 |
+
<mxGeometry x="321" width="159" height="31" as="geometry">
|
107 |
+
<mxRectangle width="159" height="31" as="alternateBounds"/>
|
108 |
+
</mxGeometry>
|
109 |
+
</mxCell>
|
110 |
+
<mxCell id="42" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;collapsible=0;recursiveResize=0;expand=0;fontStyle=0;strokeColor=inherit;fillColor=#ffffff;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="29" vertex="1">
|
111 |
+
<mxGeometry y="96" width="480" height="33" as="geometry"/>
|
112 |
+
</mxCell>
|
113 |
+
<mxCell id="43" value="Value 7" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;fontStyle=0;align=center;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="42" vertex="1">
|
114 |
+
<mxGeometry width="159" height="33" as="geometry">
|
115 |
+
<mxRectangle width="159" height="33" as="alternateBounds"/>
|
116 |
+
</mxGeometry>
|
117 |
+
</mxCell>
|
118 |
+
<mxCell id="44" value="Value 8" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;fontStyle=0;align=center;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="42" vertex="1">
|
119 |
+
<mxGeometry x="159" width="162" height="33" as="geometry">
|
120 |
+
<mxRectangle width="162" height="33" as="alternateBounds"/>
|
121 |
+
</mxGeometry>
|
122 |
+
</mxCell>
|
123 |
+
<mxCell id="45" value="Value 9" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;fontStyle=0;align=center;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="42" vertex="1">
|
124 |
+
<mxGeometry x="321" width="159" height="33" as="geometry">
|
125 |
+
<mxRectangle width="159" height="33" as="alternateBounds"/>
|
126 |
+
</mxGeometry>
|
127 |
+
</mxCell>
|
128 |
+
<mxCell id="46" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;top=0;left=0;bottom=0;right=0;dropTarget=0;collapsible=0;recursiveResize=0;expand=0;fontStyle=1;strokeColor=inherit;fillColor=#EAF2D3;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="29" vertex="1">
|
129 |
+
<mxGeometry y="129" width="480" height="31" as="geometry"/>
|
130 |
+
</mxCell>
|
131 |
+
<mxCell id="47" value="Value 10" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="46" vertex="1">
|
132 |
+
<mxGeometry width="159" height="31" as="geometry">
|
133 |
+
<mxRectangle width="159" height="31" as="alternateBounds"/>
|
134 |
+
</mxGeometry>
|
135 |
+
</mxCell>
|
136 |
+
<mxCell id="48" value="Value 11" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="46" vertex="1">
|
137 |
+
<mxGeometry x="159" width="162" height="31" as="geometry">
|
138 |
+
<mxRectangle width="162" height="31" as="alternateBounds"/>
|
139 |
+
</mxGeometry>
|
140 |
+
</mxCell>
|
141 |
+
<mxCell id="49" value="Value 12" style="connectable=0;recursiveResize=0;strokeColor=inherit;fillColor=inherit;whiteSpace=wrap;html=1;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="46" vertex="1">
|
142 |
+
<mxGeometry x="321" width="159" height="31" as="geometry">
|
143 |
+
<mxRectangle width="159" height="31" as="alternateBounds"/>
|
144 |
+
</mxGeometry>
|
145 |
+
</mxCell>
|
146 |
+
<mxCell id="53" style="edgeStyle=none;html=1;entryX=0.998;entryY=0.475;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="50" target="51" edge="1">
|
147 |
+
<mxGeometry relative="1" as="geometry"/>
|
148 |
+
</mxCell>
|
149 |
+
<mxCell id="50" value="Actor" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="1" vertex="1">
|
150 |
+
<mxGeometry x="-150" y="820" width="30" height="60" as="geometry"/>
|
151 |
+
</mxCell>
|
152 |
+
<mxCell id="54" style="edgeStyle=none;html=1;" parent="1" source="51" target="52" edge="1">
|
153 |
+
<mxGeometry relative="1" as="geometry"/>
|
154 |
+
</mxCell>
|
155 |
+
<mxCell id="51" value="" style="points=[];aspect=fixed;html=1;align=center;shadow=0;dashed=0;image;image=img/lib/allied_telesis/computer_and_terminals/Server_Desktop.svg;rounded=0;labelBorderColor=none;sketch=0;" parent="1" vertex="1">
|
156 |
+
<mxGeometry x="-400" y="810" width="63.11" height="80" as="geometry"/>
|
157 |
+
</mxCell>
|
158 |
+
<mxCell id="52" value="" style="points=[];aspect=fixed;html=1;align=center;shadow=0;dashed=0;image;image=img/lib/allied_telesis/storage/Datacenter_Server_Storage_Unit_Large.svg;rounded=0;labelBorderColor=none;sketch=0;" parent="1" vertex="1">
|
159 |
+
<mxGeometry x="-620" y="810" width="76.8" height="79.2" as="geometry"/>
|
160 |
+
</mxCell>
|
161 |
+
<mxCell id="55" value="User" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="1" vertex="1">
|
162 |
+
<mxGeometry x="-170" y="770" width="60" height="30" as="geometry"/>
|
163 |
+
</mxCell>
|
164 |
+
<mxCell id="56" value="huggingface<br>gradio framework<br>open source<br>.env witth secret environment" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="1" vertex="1">
|
165 |
+
<mxGeometry x="-480" y="770" width="220" height="30" as="geometry"/>
|
166 |
+
</mxCell>
|
167 |
+
<mxCell id="57" value="cloudflare KV storage" style="text;strokeColor=none;align=center;fillColor=none;html=1;verticalAlign=middle;whiteSpace=wrap;rounded=0;shadow=0;labelBorderColor=none;sketch=0;" parent="1" vertex="1">
|
168 |
+
<mxGeometry x="-640" y="770" width="60" height="30" as="geometry"/>
|
169 |
+
</mxCell>
|
170 |
+
<mxCell id="65" value="bestwishesgb2312" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;rounded=0;shadow=0;labelBorderColor=none;swimlaneFillColor=none;" parent="1" vertex="1">
|
171 |
+
<mxGeometry x="-770" y="890" width="140" height="78" as="geometry">
|
172 |
+
<mxRectangle x="290" y="320" width="140" height="30" as="alternateBounds"/>
|
173 |
+
</mxGeometry>
|
174 |
+
</mxCell>
|
175 |
+
<mxCell id="66" value="+ wallet: str,63" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;labelBorderColor=none;swimlaneFillColor=none;" parent="65" vertex="1">
|
176 |
+
<mxGeometry y="26" width="140" height="26" as="geometry"/>
|
177 |
+
</mxCell>
|
178 |
+
<mxCell id="67" value="+ messages: list of" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rounded=0;shadow=0;labelBorderColor=none;swimlaneFillColor=none;" parent="65" vertex="1">
|
179 |
+
<mxGeometry y="52" width="140" height="26" as="geometry"/>
|
180 |
+
</mxCell>
|
181 |
+
<mxCell id="68" style="edgeStyle=none;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="1" source="67" target="69" edge="1">
|
182 |
+
<mxGeometry relative="1" as="geometry">
|
183 |
+
<mxPoint x="-510" y="1138" as="targetPoint"/>
|
184 |
+
<mxPoint x="-510" y="1153" as="sourcePoint"/>
|
185 |
+
</mxGeometry>
|
186 |
+
</mxCell>
|
187 |
+
<mxCell id="69" value="message" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=26;fillColor=none;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;" parent="1" vertex="1">
|
188 |
+
<mxGeometry x="-550" y="988" width="140" height="78" as="geometry"/>
|
189 |
+
</mxCell>
|
190 |
+
<mxCell id="70" value="+ ts: datetime.utcnow()" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="69" vertex="1">
|
191 |
+
<mxGeometry y="26" width="140" height="26" as="geometry"/>
|
192 |
+
</mxCell>
|
193 |
+
<mxCell id="71" value="+ message: str,200" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=top;spacingLeft=4;spacingRight=4;overflow=hidden;rotatable=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;" parent="69" vertex="1">
|
194 |
+
<mxGeometry y="52" width="140" height="26" as="geometry"/>
|
195 |
+
</mxCell>
|
196 |
+
</root>
|
197 |
+
</mxGraphModel>
|
198 |
+
</diagram>
|
199 |
+
</mxfile>
|
pyproject.toml
CHANGED
@@ -8,6 +8,9 @@ authors = [
|
|
8 |
dependencies = [
|
9 |
"gradio>=4.15.0",
|
10 |
"pandas>=2.2.0",
|
|
|
|
|
|
|
11 |
]
|
12 |
requires-python = ">=3.10"
|
13 |
readme = "README.md"
|
|
|
8 |
dependencies = [
|
9 |
"gradio>=4.15.0",
|
10 |
"pandas>=2.2.0",
|
11 |
+
"workers-kv-py>=1.2.2",
|
12 |
+
"cfkv>=1.1.2",
|
13 |
+
"python-dotenv>=1.0.1",
|
14 |
]
|
15 |
requires-python = ">=3.10"
|
16 |
readme = "README.md"
|