Spaces:
Running
Running
Streamlit works.
Browse files- app/gradio_sample_generator.py +177 -0
- app/streamlit_sample_generator.py +179 -0
- demo/gradio_demo.ipynb +186 -0
- demo/sample_generator.ipynb +0 -15
- meta_prompt/sample_generator.py +234 -0
- poetry.lock +863 -6
- pyproject.toml +3 -0
- tests/task_example_generator_test.py +48 -0
app/gradio_sample_generator.py
ADDED
@@ -0,0 +1,177 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from langchain_community.chat_models import ChatOpenAI
|
3 |
+
from meta_prompt.sample_generator import TaskDescriptionGenerator
|
4 |
+
|
5 |
+
def process_json(input_json, model_name, generating_batch_size, temperature):
|
6 |
+
try:
|
7 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
8 |
+
generator = TaskDescriptionGenerator(model)
|
9 |
+
result = generator.process(input_json, generating_batch_size)
|
10 |
+
description = result["description"]
|
11 |
+
examples_directly = [[example["input"], example["output"]] for example in result["examples_directly"]["examples"]]
|
12 |
+
input_analysis = result["examples_from_briefs"]["input_analysis"]
|
13 |
+
new_example_briefs = result["examples_from_briefs"]["new_example_briefs"]
|
14 |
+
examples_from_briefs = [[example["input"], example["output"]] for example in result["examples_from_briefs"]["examples"]]
|
15 |
+
examples = [[example["input"], example["output"]] for example in result["additional_examples"]]
|
16 |
+
return description, examples_directly, input_analysis, new_example_briefs, examples_from_briefs, examples
|
17 |
+
except Exception as e:
|
18 |
+
raise gr.Error(f"An error occurred: {str(e)}")
|
19 |
+
|
20 |
+
def generate_description_only(input_json, model_name, temperature):
|
21 |
+
try:
|
22 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
23 |
+
generator = TaskDescriptionGenerator(model)
|
24 |
+
description = generator.generate_description(input_json)
|
25 |
+
return description
|
26 |
+
except Exception as e:
|
27 |
+
raise gr.Error(f"An error occurred: {str(e)}")
|
28 |
+
|
29 |
+
def analyze_input(description, model_name, temperature):
|
30 |
+
try:
|
31 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
32 |
+
generator = TaskDescriptionGenerator(model)
|
33 |
+
input_analysis = generator.analyze_input(description)
|
34 |
+
return input_analysis
|
35 |
+
except Exception as e:
|
36 |
+
raise gr.Error(f"An error occurred: {str(e)}")
|
37 |
+
|
38 |
+
def generate_briefs(description, input_analysis, generating_batch_size, model_name, temperature):
|
39 |
+
try:
|
40 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
41 |
+
generator = TaskDescriptionGenerator(model)
|
42 |
+
briefs = generator.generate_briefs(description, input_analysis, generating_batch_size)
|
43 |
+
return briefs
|
44 |
+
except Exception as e:
|
45 |
+
raise gr.Error(f"An error occurred: {str(e)}")
|
46 |
+
|
47 |
+
def generate_examples_from_briefs(description, new_example_briefs, input_str, generating_batch_size, model_name, temperature):
|
48 |
+
try:
|
49 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
50 |
+
generator = TaskDescriptionGenerator(model)
|
51 |
+
result = generator.generate_examples_from_briefs(description, new_example_briefs, input_str, generating_batch_size)
|
52 |
+
examples = [[example["input"], example["output"]] for example in result["examples"]]
|
53 |
+
return examples
|
54 |
+
except Exception as e:
|
55 |
+
raise gr.Error(f"An error occurred: {str(e)}")
|
56 |
+
|
57 |
+
def generate_examples_directly(description, raw_example, generating_batch_size, model_name, temperature):
|
58 |
+
try:
|
59 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
60 |
+
generator = TaskDescriptionGenerator(model)
|
61 |
+
result = generator.generate_examples_directly(description, raw_example, generating_batch_size)
|
62 |
+
examples = [[example["input"], example["output"]] for example in result["examples"]]
|
63 |
+
return examples
|
64 |
+
except Exception as e:
|
65 |
+
raise gr.Error(f"An error occurred: {str(e)}")
|
66 |
+
|
67 |
+
def format_selected_example(evt: gr.SelectData, examples):
|
68 |
+
if evt.index[0] < len(examples):
|
69 |
+
selected_example = examples.iloc[evt.index[0]] # Use iloc to access by integer position
|
70 |
+
json_example = json.dumps({"input": selected_example.iloc[0], "output": selected_example.iloc[1]}, indent=2, ensure_ascii=False)
|
71 |
+
return json_example
|
72 |
+
return ""
|
73 |
+
|
74 |
+
with gr.Blocks(title="Task Description Generator") as demo:
|
75 |
+
gr.Markdown("# Task Description Generator")
|
76 |
+
gr.Markdown("Enter a JSON object with 'input' and 'output' fields to generate a task description and additional examples.")
|
77 |
+
|
78 |
+
with gr.Row():
|
79 |
+
with gr.Column(scale=1): # Inputs column
|
80 |
+
input_json = gr.Textbox(label="Input JSON", lines=10, show_copy_button=True)
|
81 |
+
model_name = gr.Dropdown(
|
82 |
+
label="Model Name",
|
83 |
+
choices=["llama3-70b-8192", "llama3-8b-8192", "llama-3.1-70b-versatile", "llama-3.1-8b-instant", "gemma2-9b-it"],
|
84 |
+
value="llama3-70b-8192"
|
85 |
+
)
|
86 |
+
temperature = gr.Slider(label="Temperature", value=1.0, minimum=0.0, maximum=1.0, step=0.1)
|
87 |
+
generating_batch_size = gr.Slider(label="Generating Batch Size", value=3, minimum=1, maximum=10, step=1)
|
88 |
+
with gr.Row():
|
89 |
+
submit_button = gr.Button("Generate", variant="primary")
|
90 |
+
generate_description_button = gr.Button("Generate Description", variant="secondary")
|
91 |
+
|
92 |
+
with gr.Column(scale=1): # Outputs column
|
93 |
+
description_output = gr.Textbox(label="Description", lines=5, show_copy_button=True)
|
94 |
+
with gr.Row():
|
95 |
+
generate_examples_directly_button = gr.Button("Generate Examples Directly", variant="secondary")
|
96 |
+
analyze_input_button = gr.Button("Analyze Input", variant="secondary")
|
97 |
+
examples_directly_output = gr.DataFrame(label="Examples Directly", headers=["Input", "Output"], interactive=False)
|
98 |
+
input_analysis_output = gr.Textbox(label="Input Analysis", lines=5, show_copy_button=True)
|
99 |
+
generate_briefs_button = gr.Button("Generate Briefs", variant="secondary")
|
100 |
+
example_briefs_output = gr.Textbox(label="Example Briefs", lines=5, show_copy_button=True)
|
101 |
+
generate_examples_from_briefs_button = gr.Button("Generate Examples from Briefs", variant="secondary")
|
102 |
+
examples_from_briefs_output = gr.DataFrame(label="Examples from Briefs", headers=["Input", "Output"], interactive=False)
|
103 |
+
examples_output = gr.DataFrame(label="Examples", headers=["Input", "Output"], interactive=False)
|
104 |
+
new_example_json = gr.Textbox(label="New Example JSON", lines=5, show_copy_button=True)
|
105 |
+
|
106 |
+
clear_button = gr.ClearButton([input_json, description_output, input_analysis_output,
|
107 |
+
example_briefs_output, examples_from_briefs_output,
|
108 |
+
examples_output, new_example_json])
|
109 |
+
|
110 |
+
submit_button.click(
|
111 |
+
fn=process_json,
|
112 |
+
inputs=[input_json, model_name, generating_batch_size, temperature],
|
113 |
+
outputs=[description_output, examples_directly_output, input_analysis_output, example_briefs_output, examples_from_briefs_output, examples_output]
|
114 |
+
)
|
115 |
+
|
116 |
+
generate_description_button.click(
|
117 |
+
fn=generate_description_only,
|
118 |
+
inputs=[input_json, model_name, temperature],
|
119 |
+
outputs=[description_output]
|
120 |
+
)
|
121 |
+
|
122 |
+
generate_examples_directly_button.click(
|
123 |
+
fn=generate_examples_directly,
|
124 |
+
inputs=[description_output, input_json, generating_batch_size, model_name, temperature],
|
125 |
+
outputs=[examples_directly_output]
|
126 |
+
)
|
127 |
+
|
128 |
+
analyze_input_button.click(
|
129 |
+
fn=analyze_input,
|
130 |
+
inputs=[description_output, model_name, temperature],
|
131 |
+
outputs=[input_analysis_output]
|
132 |
+
)
|
133 |
+
|
134 |
+
generate_briefs_button.click(
|
135 |
+
fn=generate_briefs,
|
136 |
+
inputs=[description_output, input_analysis_output, generating_batch_size, model_name, temperature],
|
137 |
+
outputs=[example_briefs_output]
|
138 |
+
)
|
139 |
+
|
140 |
+
generate_examples_from_briefs_button.click(
|
141 |
+
fn=generate_examples_from_briefs,
|
142 |
+
inputs=[description_output, example_briefs_output, input_json, generating_batch_size, model_name, temperature],
|
143 |
+
outputs=[examples_from_briefs_output]
|
144 |
+
)
|
145 |
+
|
146 |
+
examples_directly_output.select(
|
147 |
+
fn=format_selected_example,
|
148 |
+
inputs=[examples_directly_output],
|
149 |
+
outputs=[new_example_json]
|
150 |
+
)
|
151 |
+
|
152 |
+
examples_from_briefs_output.select(
|
153 |
+
fn=format_selected_example,
|
154 |
+
inputs=[examples_from_briefs_output],
|
155 |
+
outputs=[new_example_json]
|
156 |
+
)
|
157 |
+
|
158 |
+
examples_output.select(
|
159 |
+
fn=format_selected_example,
|
160 |
+
inputs=[examples_output],
|
161 |
+
outputs=[new_example_json]
|
162 |
+
)
|
163 |
+
|
164 |
+
gr.Markdown("### Manual Flagging")
|
165 |
+
with gr.Row():
|
166 |
+
flag_button = gr.Button("Flag")
|
167 |
+
flag_reason = gr.Textbox(label="Reason for flagging")
|
168 |
+
|
169 |
+
flagging_callback = gr.CSVLogger()
|
170 |
+
flag_button.click(
|
171 |
+
lambda *args: flagging_callback.flag(args),
|
172 |
+
inputs=[input_json, model_name, generating_batch_size, description_output, examples_output, flag_reason],
|
173 |
+
outputs=[]
|
174 |
+
)
|
175 |
+
|
176 |
+
if __name__ == "__main__":
|
177 |
+
demo.launch()
|
app/streamlit_sample_generator.py
ADDED
@@ -0,0 +1,179 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import streamlit as st
|
3 |
+
import json
|
4 |
+
from langchain_community.chat_models import ChatOpenAI
|
5 |
+
from meta_prompt.sample_generator import TaskDescriptionGenerator
|
6 |
+
|
7 |
+
def process_json(input_json, model_name, generating_batch_size, temperature):
|
8 |
+
try:
|
9 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
10 |
+
generator = TaskDescriptionGenerator(model)
|
11 |
+
result = generator.process(input_json, generating_batch_size)
|
12 |
+
description = result["description"]
|
13 |
+
examples_directly = [[example["input"], example["output"]] for example in result["examples_directly"]["examples"]]
|
14 |
+
input_analysis = result["examples_from_briefs"]["input_analysis"]
|
15 |
+
new_example_briefs = result["examples_from_briefs"]["new_example_briefs"]
|
16 |
+
examples_from_briefs = [[example["input"], example["output"]] for example in result["examples_from_briefs"]["examples"]]
|
17 |
+
examples = [[example["input"], example["output"]] for example in result["additional_examples"]]
|
18 |
+
return description, examples_directly, input_analysis, new_example_briefs, examples_from_briefs, examples
|
19 |
+
except Exception as e:
|
20 |
+
st.error(f"An error occurred: {str(e)}")
|
21 |
+
|
22 |
+
def generate_description_only(input_json, model_name, temperature):
|
23 |
+
try:
|
24 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
25 |
+
generator = TaskDescriptionGenerator(model)
|
26 |
+
description = generator.generate_description(input_json)
|
27 |
+
return description
|
28 |
+
except Exception as e:
|
29 |
+
st.error(f"An error occurred: {str(e)}")
|
30 |
+
|
31 |
+
def analyze_input(description, model_name, temperature):
|
32 |
+
try:
|
33 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
34 |
+
generator = TaskDescriptionGenerator(model)
|
35 |
+
input_analysis = generator.analyze_input(description)
|
36 |
+
return input_analysis
|
37 |
+
except Exception as e:
|
38 |
+
st.error(f"An error occurred: {str(e)}")
|
39 |
+
|
40 |
+
def generate_briefs(description, input_analysis, generating_batch_size, model_name, temperature):
|
41 |
+
try:
|
42 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
43 |
+
generator = TaskDescriptionGenerator(model)
|
44 |
+
briefs = generator.generate_briefs(description, input_analysis, generating_batch_size)
|
45 |
+
return briefs
|
46 |
+
except Exception as e:
|
47 |
+
st.error(f"An error occurred: {str(e)}")
|
48 |
+
|
49 |
+
def generate_examples_from_briefs(description, new_example_briefs, input_str, generating_batch_size, model_name, temperature):
|
50 |
+
try:
|
51 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
52 |
+
generator = TaskDescriptionGenerator(model)
|
53 |
+
result = generator.generate_examples_from_briefs(description, new_example_briefs, input_str, generating_batch_size)
|
54 |
+
examples = [[example["input"], example["output"]] for example in result["examples"]]
|
55 |
+
return examples
|
56 |
+
except Exception as e:
|
57 |
+
st.error(f"An error occurred: {str(e)}")
|
58 |
+
|
59 |
+
def generate_examples_directly(description, raw_example, generating_batch_size, model_name, temperature):
|
60 |
+
try:
|
61 |
+
model = ChatOpenAI(model=model_name, temperature=temperature, max_retries=3)
|
62 |
+
generator = TaskDescriptionGenerator(model)
|
63 |
+
result = generator.generate_examples_directly(description, raw_example, generating_batch_size)
|
64 |
+
examples = [[example["input"], example["output"]] for example in result["examples"]]
|
65 |
+
return examples
|
66 |
+
except Exception as e:
|
67 |
+
st.error(f"An error occurred: {str(e)}")
|
68 |
+
|
69 |
+
# Session State
|
70 |
+
if 'description_output_text' not in st.session_state:
|
71 |
+
st.session_state.description_output_text = ''
|
72 |
+
|
73 |
+
if 'input_analysis_output_text' not in st.session_state:
|
74 |
+
st.session_state.input_analysis_output_text = ''
|
75 |
+
|
76 |
+
if 'example_briefs_output_text' not in st.session_state:
|
77 |
+
st.session_state.example_briefs_output_text = ''
|
78 |
+
|
79 |
+
if 'examples_from_briefs_dataframe' not in st.session_state:
|
80 |
+
st.session_state.examples_from_briefs_dataframe = pd.DataFrame(columns=["Input", "Output"])
|
81 |
+
|
82 |
+
if 'examples_directly_dataframe' not in st.session_state:
|
83 |
+
st.session_state.examples_directly_dataframe = pd.DataFrame(columns=["Input", "Output"])
|
84 |
+
|
85 |
+
if 'examples_dataframe' not in st.session_state:
|
86 |
+
st.session_state.examples_dataframe = pd.DataFrame(columns=["Input", "Output"])
|
87 |
+
|
88 |
+
def update_description_output_text():
|
89 |
+
st.session_state.description_output_text = generate_description_only(input_json, model_name, temperature)
|
90 |
+
|
91 |
+
def update_input_analysis_output_text():
|
92 |
+
st.session_state.input_analysis_output_text = analyze_input(description_output, model_name, temperature)
|
93 |
+
|
94 |
+
def update_example_briefs_output_text():
|
95 |
+
st.session_state.example_briefs_output_text = generate_briefs(description_output, input_analysis_output, generating_batch_size, model_name, temperature)
|
96 |
+
|
97 |
+
def update_examples_from_briefs_dataframe():
|
98 |
+
st.session_state.examples_from_briefs_dataframe = generate_examples_from_briefs(description_output, example_briefs_output, input_json, generating_batch_size, model_name, temperature)
|
99 |
+
|
100 |
+
def update_examples_directly_dataframe():
|
101 |
+
st.session_state.examples_directly_dataframe = generate_examples_directly(description_output, input_json, generating_batch_size, model_name, temperature)
|
102 |
+
|
103 |
+
def generate_examples_dataframe():
|
104 |
+
result = process_json(input_json, model_name, generating_batch_size, temperature)
|
105 |
+
description, examples_directly, input_analysis, new_example_briefs, examples_from_briefs, examples = result
|
106 |
+
st.session_state.description_output_text = description
|
107 |
+
st.session_state.examples_directly_dataframe = examples_directly
|
108 |
+
st.session_state.input_analysis_output_text = input_analysis
|
109 |
+
st.session_state.example_briefs_output_text = new_example_briefs
|
110 |
+
st.session_state.examples_from_briefs_dataframe = examples_from_briefs
|
111 |
+
st.session_state.examples_dataframe = examples
|
112 |
+
|
113 |
+
# Streamlit UI
|
114 |
+
st.title("Task Description Generator")
|
115 |
+
st.markdown("Enter a JSON object with 'input' and 'output' fields to generate a task description and additional examples.")
|
116 |
+
|
117 |
+
# Input column
|
118 |
+
input_json = st.text_area("Input JSON", height=200)
|
119 |
+
model_name = st.selectbox(
|
120 |
+
"Model Name",
|
121 |
+
["llama3-70b-8192", "llama3-8b-8192", "llama-3.1-70b-versatile", "llama-3.1-8b-instant", "gemma2-9b-it"],
|
122 |
+
index=0
|
123 |
+
)
|
124 |
+
temperature = st.slider("Temperature", 0.0, 1.0, 1.0, 0.1)
|
125 |
+
generating_batch_size = st.slider("Generating Batch Size", 1, 10, 3, 1)
|
126 |
+
|
127 |
+
# Buttons
|
128 |
+
col1, col2 = st.columns(2)
|
129 |
+
with col1:
|
130 |
+
submit_button = st.button("Generate", type="primary", on_click=generate_examples_dataframe)
|
131 |
+
with col2:
|
132 |
+
generate_description_button = st.button("Generate Description", on_click=update_description_output_text)
|
133 |
+
|
134 |
+
# Output column
|
135 |
+
|
136 |
+
description_output = st.text_area("Description", value=st.session_state.description_output_text, height=100)
|
137 |
+
|
138 |
+
col3, col4 = st.columns(2)
|
139 |
+
with col3:
|
140 |
+
generate_examples_directly_button = st.button("Generate Examples Directly", on_click=update_examples_directly_dataframe)
|
141 |
+
with col4:
|
142 |
+
analyze_input_button = st.button("Analyze Input", on_click=update_input_analysis_output_text)
|
143 |
+
|
144 |
+
examples_directly_output = st.dataframe(st.session_state.examples_directly_dataframe, use_container_width=True)
|
145 |
+
input_analysis_output = st.text_area("Input Analysis", value=st.session_state.input_analysis_output_text, height=100)
|
146 |
+
generate_briefs_button = st.button("Generate Briefs", on_click=update_example_briefs_output_text)
|
147 |
+
example_briefs_output = st.text_area("Example Briefs", value=st.session_state.example_briefs_output_text, height=100)
|
148 |
+
generate_examples_from_briefs_button = st.button("Generate Examples from Briefs", on_click=update_examples_from_briefs_dataframe)
|
149 |
+
examples_from_briefs_output = st.dataframe(st.session_state.examples_from_briefs_dataframe, use_container_width=True)
|
150 |
+
examples_output = st.dataframe(st.session_state.examples_dataframe, use_container_width=True)
|
151 |
+
new_example_json = st.text_area("New Example JSON", height=100)
|
152 |
+
|
153 |
+
# Button actions
|
154 |
+
if submit_button:
|
155 |
+
try:
|
156 |
+
result = process_json(
|
157 |
+
input_json, model_name, generating_batch_size, temperature
|
158 |
+
)
|
159 |
+
description, examples_directly, input_analysis, new_example_briefs, examples_from_briefs, examples = result
|
160 |
+
description_output = description
|
161 |
+
examples_directly_output = examples_directly
|
162 |
+
input_analysis_output = input_analysis
|
163 |
+
example_briefs_output = new_example_briefs
|
164 |
+
examples_from_briefs_output = examples_from_briefs
|
165 |
+
examples_output = examples
|
166 |
+
except Exception as e:
|
167 |
+
st.error(f"An error occurred: {str(e)}")
|
168 |
+
|
169 |
+
if generate_examples_directly_button:
|
170 |
+
examples_directly_output = generate_examples_directly(description_output, input_json, generating_batch_size, model_name, temperature)
|
171 |
+
|
172 |
+
if analyze_input_button:
|
173 |
+
input_analysis_output = analyze_input(description_output, model_name, temperature)
|
174 |
+
|
175 |
+
if generate_briefs_button:
|
176 |
+
example_briefs_output = generate_briefs(description_output, input_analysis_output, generating_batch_size, model_name, temperature)
|
177 |
+
|
178 |
+
if generate_examples_from_briefs_button:
|
179 |
+
examples_from_briefs_output = generate_examples_from_briefs(description_output, example_briefs_output, input_json, generating_batch_size, model_name, temperature)
|
demo/gradio_demo.ipynb
ADDED
@@ -0,0 +1,186 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": null,
|
6 |
+
"metadata": {},
|
7 |
+
"outputs": [],
|
8 |
+
"source": [
|
9 |
+
"import gradio as gr\n",
|
10 |
+
"\n",
|
11 |
+
"def greet(name):\n",
|
12 |
+
" return f\"Hello, {name}!\"\n",
|
13 |
+
"\n",
|
14 |
+
"iface = gr.Interface(fn=greet, inputs=\"text\", outputs=\"text\", title=\"Greeting Demo\")\n",
|
15 |
+
"iface.launch()"
|
16 |
+
]
|
17 |
+
},
|
18 |
+
{
|
19 |
+
"cell_type": "code",
|
20 |
+
"execution_count": null,
|
21 |
+
"metadata": {},
|
22 |
+
"outputs": [],
|
23 |
+
"source": [
|
24 |
+
"import gradio as gr\n",
|
25 |
+
"\n",
|
26 |
+
"def greet(name):\n",
|
27 |
+
" return f\"Hello, {name}!\"\n",
|
28 |
+
"\n",
|
29 |
+
"def add_example(name, examples):\n",
|
30 |
+
" new_example = [name]\n",
|
31 |
+
" examples.append(new_example)\n",
|
32 |
+
" return examples\n",
|
33 |
+
"\n",
|
34 |
+
"with gr.Blocks() as demo:\n",
|
35 |
+
" name_input = gr.Textbox(label=\"Name\")\n",
|
36 |
+
" output = gr.Textbox(label=\"Greeting\")\n",
|
37 |
+
" greet_btn = gr.Button(\"Greet\")\n",
|
38 |
+
" \n",
|
39 |
+
" examples = gr.Examples(\n",
|
40 |
+
" examples=[],\n",
|
41 |
+
" inputs=[name_input],\n",
|
42 |
+
" label=\"Dynamic Examples\"\n",
|
43 |
+
" )\n",
|
44 |
+
" \n",
|
45 |
+
" add_example_input = gr.Textbox(label=\"New Example Name\")\n",
|
46 |
+
" add_example_btn = gr.Button(\"Add Example\")\n",
|
47 |
+
" \n",
|
48 |
+
" greet_btn.click(fn=greet, inputs=name_input, outputs=output)\n",
|
49 |
+
" add_example_btn.click(\n",
|
50 |
+
" fn=add_example,\n",
|
51 |
+
" inputs=[add_example_input, examples],\n",
|
52 |
+
" outputs=examples\n",
|
53 |
+
" )\n",
|
54 |
+
"\n",
|
55 |
+
"demo.launch()"
|
56 |
+
]
|
57 |
+
},
|
58 |
+
{
|
59 |
+
"cell_type": "code",
|
60 |
+
"execution_count": 1,
|
61 |
+
"metadata": {},
|
62 |
+
"outputs": [
|
63 |
+
{
|
64 |
+
"name": "stderr",
|
65 |
+
"output_type": "stream",
|
66 |
+
"text": [
|
67 |
+
"/home/yale/work/meta-prompt/.venv/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
|
68 |
+
" from .autonotebook import tqdm as notebook_tqdm\n"
|
69 |
+
]
|
70 |
+
},
|
71 |
+
{
|
72 |
+
"name": "stdout",
|
73 |
+
"output_type": "stream",
|
74 |
+
"text": [
|
75 |
+
"JSON Array: [1, 2, 3, 4, 5]\n",
|
76 |
+
"YAML Array: [1, 2, 3, 4, 5]\n",
|
77 |
+
"Running on local URL: http://127.0.0.1:7862\n",
|
78 |
+
"\n",
|
79 |
+
"To create a public link, set `share=True` in `launch()`.\n"
|
80 |
+
]
|
81 |
+
},
|
82 |
+
{
|
83 |
+
"data": {
|
84 |
+
"text/html": [
|
85 |
+
"<div><iframe src=\"http://127.0.0.1:7862/\" width=\"100%\" height=\"500\" allow=\"autoplay; camera; microphone; clipboard-read; clipboard-write;\" frameborder=\"0\" allowfullscreen></iframe></div>"
|
86 |
+
],
|
87 |
+
"text/plain": [
|
88 |
+
"<IPython.core.display.HTML object>"
|
89 |
+
]
|
90 |
+
},
|
91 |
+
"metadata": {},
|
92 |
+
"output_type": "display_data"
|
93 |
+
},
|
94 |
+
{
|
95 |
+
"data": {
|
96 |
+
"text/plain": []
|
97 |
+
},
|
98 |
+
"execution_count": 1,
|
99 |
+
"metadata": {},
|
100 |
+
"output_type": "execute_result"
|
101 |
+
},
|
102 |
+
{
|
103 |
+
"name": "stdout",
|
104 |
+
"output_type": "stream",
|
105 |
+
"text": [
|
106 |
+
"Error loading JSON: Expecting value: line 1 column 1 (char 0)\n",
|
107 |
+
"Error loading JSON: Expecting value: line 1 column 1 (char 0)\n"
|
108 |
+
]
|
109 |
+
}
|
110 |
+
],
|
111 |
+
"source": [
|
112 |
+
"import gradio as gr\n",
|
113 |
+
"import json\n",
|
114 |
+
"import yaml\n",
|
115 |
+
"\n",
|
116 |
+
"def load_json_array(json_str):\n",
|
117 |
+
" try:\n",
|
118 |
+
" return json.loads(json_str)\n",
|
119 |
+
" except json.JSONDecodeError as e:\n",
|
120 |
+
" print(f\"Error loading JSON: {e}\")\n",
|
121 |
+
" return None\n",
|
122 |
+
"\n",
|
123 |
+
"def load_yaml_array(yaml_str):\n",
|
124 |
+
" try:\n",
|
125 |
+
" return yaml.safe_load(yaml_str)\n",
|
126 |
+
" except yaml.YAMLError as e:\n",
|
127 |
+
" print(f\"Error loading YAML: {e}\")\n",
|
128 |
+
" return None\n",
|
129 |
+
"\n",
|
130 |
+
"# Example usage\n",
|
131 |
+
"json_str = '[1, 2, 3, 4, 5]'\n",
|
132 |
+
"yaml_str = '---\\n- 1\\n- 2\\n- 3\\n- 4\\n- 5'\n",
|
133 |
+
"\n",
|
134 |
+
"json_array = load_json_array(json_str)\n",
|
135 |
+
"yaml_array = load_yaml_array(yaml_str)\n",
|
136 |
+
"\n",
|
137 |
+
"print(\"JSON Array:\", json_array)\n",
|
138 |
+
"print(\"YAML Array:\", yaml_array)\n",
|
139 |
+
"\n",
|
140 |
+
"# Gradio interface\n",
|
141 |
+
"with gr.Blocks() as demo:\n",
|
142 |
+
" json_input = gr.Textbox(label=\"JSON Array\")\n",
|
143 |
+
" yaml_input = gr.Textbox(label=\"YAML Array\")\n",
|
144 |
+
" json_output = gr.Textbox(label=\"Loaded JSON Array\")\n",
|
145 |
+
" yaml_output = gr.Textbox(label=\"Loaded YAML Array\")\n",
|
146 |
+
" \n",
|
147 |
+
" load_json_btn = gr.Button(\"Load JSON\")\n",
|
148 |
+
" load_yaml_btn = gr.Button(\"Load YAML\")\n",
|
149 |
+
" \n",
|
150 |
+
" load_json_btn.click(\n",
|
151 |
+
" fn=load_json_array,\n",
|
152 |
+
" inputs=json_input,\n",
|
153 |
+
" outputs=json_output\n",
|
154 |
+
" )\n",
|
155 |
+
" load_yaml_btn.click(\n",
|
156 |
+
" fn=load_yaml_array,\n",
|
157 |
+
" inputs=yaml_input,\n",
|
158 |
+
" outputs=yaml_output\n",
|
159 |
+
" )\n",
|
160 |
+
"\n",
|
161 |
+
"demo.launch()\n"
|
162 |
+
]
|
163 |
+
}
|
164 |
+
],
|
165 |
+
"metadata": {
|
166 |
+
"kernelspec": {
|
167 |
+
"display_name": ".venv",
|
168 |
+
"language": "python",
|
169 |
+
"name": "python3"
|
170 |
+
},
|
171 |
+
"language_info": {
|
172 |
+
"codemirror_mode": {
|
173 |
+
"name": "ipython",
|
174 |
+
"version": 3
|
175 |
+
},
|
176 |
+
"file_extension": ".py",
|
177 |
+
"mimetype": "text/x-python",
|
178 |
+
"name": "python",
|
179 |
+
"nbconvert_exporter": "python",
|
180 |
+
"pygments_lexer": "ipython3",
|
181 |
+
"version": "3.10.12"
|
182 |
+
}
|
183 |
+
},
|
184 |
+
"nbformat": 4,
|
185 |
+
"nbformat_minor": 2
|
186 |
+
}
|
demo/sample_generator.ipynb
CHANGED
@@ -21,21 +21,6 @@
|
|
21 |
"\"\"\")\n",
|
22 |
"]\n",
|
23 |
"\n",
|
24 |
-
"# INPUT_ANALYSIS_PROMPT = [\n",
|
25 |
-
"# (\"system\", \"\"\"Describe input dimensions and attributes for a specific task type.\n",
|
26 |
-
"# Provide names, very brief descriptions, ranges, typical values, extreme values and\n",
|
27 |
-
"# examples for each.\n",
|
28 |
-
"\n",
|
29 |
-
"# Format your response as follows:\n",
|
30 |
-
"# Input Analysis: [Your analysis here]\n",
|
31 |
-
"# \"\"\"),\n",
|
32 |
-
"# (\"user\", \"\"\"Task Description:\n",
|
33 |
-
"\n",
|
34 |
-
"# {description}\n",
|
35 |
-
"\n",
|
36 |
-
"# \"\"\")\n",
|
37 |
-
"# ]\n",
|
38 |
-
"\n",
|
39 |
"INPUT_ANALYSIS_PROMPT = [\n",
|
40 |
" (\"system\", \"\"\"For the specific task type, analyze the possible task inputs across multiple dimensions.\n",
|
41 |
" \n",
|
|
|
21 |
"\"\"\")\n",
|
22 |
"]\n",
|
23 |
"\n",
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
24 |
"INPUT_ANALYSIS_PROMPT = [\n",
|
25 |
" (\"system\", \"\"\"For the specific task type, analyze the possible task inputs across multiple dimensions.\n",
|
26 |
" \n",
|
meta_prompt/sample_generator.py
ADDED
@@ -0,0 +1,234 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import json
|
2 |
+
import yaml
|
3 |
+
from langchain.prompts import ChatPromptTemplate
|
4 |
+
from langchain.schema.output_parser import StrOutputParser
|
5 |
+
from langchain_core.runnables import RunnablePassthrough, RunnableParallel, RunnableLambda
|
6 |
+
from langchain_core.output_parsers import JsonOutputParser
|
7 |
+
from langchain.output_parsers import YamlOutputParser
|
8 |
+
|
9 |
+
# Define prompt strings as constants
|
10 |
+
DESCRIPTION_PROMPT = [
|
11 |
+
("system", """Given the JSON example(s) for a task type:
|
12 |
+
|
13 |
+
{raw_example}
|
14 |
+
|
15 |
+
Provide a concise description of the task type, including the format and style
|
16 |
+
of the input and output. If there are multiple examples, provide an overall
|
17 |
+
description and ignore unique parts.
|
18 |
+
|
19 |
+
Format your response as follows:
|
20 |
+
Task Description: [Your description here]
|
21 |
+
""")
|
22 |
+
]
|
23 |
+
|
24 |
+
INPUT_ANALYSIS_PROMPT = [
|
25 |
+
("system", """For the specific task type, analyze the possible task inputs across multiple dimensions.
|
26 |
+
|
27 |
+
Conduct a detailed analysis and enumerate:
|
28 |
+
|
29 |
+
1. Core Attributes: Identify the fundamental properties or characteristics of this input type.
|
30 |
+
1. Variation Dimensions: For each dimension that may vary, specify:
|
31 |
+
- Dimension name
|
32 |
+
- Possible range of values or options
|
33 |
+
- Impact on input nature or task difficulty
|
34 |
+
1. Constraints: List any rules or limitations that must be adhered to.
|
35 |
+
1. Edge Cases: Describe extreme or special scenarios that may test the robustness of task processing.
|
36 |
+
1. External Factors: Enumerate factors that might influence input generation or task completion.
|
37 |
+
1. Potential Extensions: Propose ways to expand or modify this input type to create new variants.
|
38 |
+
|
39 |
+
Format your response as follows:
|
40 |
+
Input Analysis: [Your analysis here]
|
41 |
+
"""),
|
42 |
+
("user", """Task Description:
|
43 |
+
|
44 |
+
{description}
|
45 |
+
|
46 |
+
""")
|
47 |
+
]
|
48 |
+
|
49 |
+
BRIEFS_PROMPT = [
|
50 |
+
("system", """Given the task type description, and input analysis, generate
|
51 |
+
descriptions for {generating_batch_size} new examples with detailed attributes
|
52 |
+
based on this task type. But don't provide any detailed task output.
|
53 |
+
|
54 |
+
Use the input analysis to create diverse and comprehensive example briefs that
|
55 |
+
cover various input dimensions and attribute ranges.
|
56 |
+
|
57 |
+
Format your response as a valid YAML object with a single key 'new_example_briefs'
|
58 |
+
containing a YAML array of {generating_batch_size} objects, each with a
|
59 |
+
'example_brief' field.
|
60 |
+
"""),
|
61 |
+
("user", """Task Description:
|
62 |
+
|
63 |
+
{description}
|
64 |
+
|
65 |
+
Input Analysis:
|
66 |
+
|
67 |
+
{input_analysis}
|
68 |
+
|
69 |
+
""")
|
70 |
+
]
|
71 |
+
|
72 |
+
EXAMPLES_FROM_BRIEFS_PROMPT = [
|
73 |
+
("system", """Given the task type description, brief descriptions for new examples,
|
74 |
+
and JSON example(s), generate {generating_batch_size} more input/output examples for this task type,
|
75 |
+
strictly based on the brief descriptions. Ensure that the new examples are
|
76 |
+
consistent with the brief descriptions and do not introduce any new information
|
77 |
+
not present in the briefs.
|
78 |
+
|
79 |
+
Format your response as a valid JSON object with a single key 'examples'
|
80 |
+
containing a JSON array of {generating_batch_size} objects, each with 'input' and 'output' fields.
|
81 |
+
"""),
|
82 |
+
("user", """Task Description:
|
83 |
+
|
84 |
+
{description}
|
85 |
+
|
86 |
+
New Example Briefs:
|
87 |
+
|
88 |
+
{new_example_briefs}
|
89 |
+
|
90 |
+
Example(s):
|
91 |
+
|
92 |
+
{raw_example}
|
93 |
+
|
94 |
+
""")
|
95 |
+
]
|
96 |
+
|
97 |
+
EXAMPLES_DIRECTLY_PROMPT = [
|
98 |
+
("system", """Given the task type description, and input/output example(s), generate {generating_batch_size}
|
99 |
+
new input/output examples for this task type.
|
100 |
+
|
101 |
+
Format your response as a valid JSON object with a single key 'examples'
|
102 |
+
containing a JSON array of {generating_batch_size} objects, each with 'input' and 'output' fields.
|
103 |
+
"""),
|
104 |
+
("user", """Task Description:
|
105 |
+
|
106 |
+
{description}
|
107 |
+
|
108 |
+
Example(s):
|
109 |
+
|
110 |
+
{raw_example}
|
111 |
+
|
112 |
+
""")
|
113 |
+
]
|
114 |
+
|
115 |
+
|
116 |
+
class TaskDescriptionGenerator:
|
117 |
+
def __init__(self, model):
|
118 |
+
self.description_prompt = ChatPromptTemplate.from_messages(DESCRIPTION_PROMPT)
|
119 |
+
self.input_analysis_prompt = ChatPromptTemplate.from_messages(INPUT_ANALYSIS_PROMPT)
|
120 |
+
self.briefs_prompt = ChatPromptTemplate.from_messages(BRIEFS_PROMPT)
|
121 |
+
self.examples_from_briefs_prompt = ChatPromptTemplate.from_messages(EXAMPLES_FROM_BRIEFS_PROMPT)
|
122 |
+
self.examples_directly_prompt = ChatPromptTemplate.from_messages(EXAMPLES_DIRECTLY_PROMPT)
|
123 |
+
|
124 |
+
json_model = model.bind(response_format={"type": "json_object"})
|
125 |
+
|
126 |
+
output_parser = StrOutputParser()
|
127 |
+
json_parse = JsonOutputParser()
|
128 |
+
|
129 |
+
self.description_chain = self.description_prompt | model | output_parser
|
130 |
+
self.input_analysis_chain = self.input_analysis_prompt | model | output_parser
|
131 |
+
self.briefs_chain = self.briefs_prompt | model | output_parser
|
132 |
+
self.examples_from_briefs_chain = self.examples_from_briefs_prompt | json_model | json_parse
|
133 |
+
self.examples_directly_chain = self.examples_directly_prompt | json_model | json_parse
|
134 |
+
|
135 |
+
# New sub-chain for loading and validating input
|
136 |
+
self.input_loader = RunnableLambda(self.load_and_validate_input)
|
137 |
+
|
138 |
+
self.chain = (
|
139 |
+
self.input_loader
|
140 |
+
| RunnablePassthrough.assign(raw_example = lambda x: json.dumps(x["example"], ensure_ascii=False))
|
141 |
+
| RunnablePassthrough.assign(description = self.description_chain)
|
142 |
+
| {
|
143 |
+
"description": lambda x: x["description"],
|
144 |
+
"examples_from_briefs": RunnablePassthrough.assign(input_analysis = self.input_analysis_chain)
|
145 |
+
| RunnablePassthrough.assign(new_example_briefs = self.briefs_chain)
|
146 |
+
| RunnablePassthrough.assign(examples = self.examples_from_briefs_chain | (lambda x: x["examples"])),
|
147 |
+
"examples_directly": self.examples_directly_chain
|
148 |
+
}
|
149 |
+
| RunnablePassthrough.assign(
|
150 |
+
additional_examples=lambda x: (
|
151 |
+
list(x["examples_from_briefs"]["examples"])
|
152 |
+
+ list(x["examples_directly"]["examples"])
|
153 |
+
)
|
154 |
+
)
|
155 |
+
)
|
156 |
+
|
157 |
+
def load_and_validate_input(self, input_dict):
|
158 |
+
input_str = input_dict["input_str"]
|
159 |
+
generating_batch_size = input_dict["generating_batch_size"]
|
160 |
+
|
161 |
+
try:
|
162 |
+
try:
|
163 |
+
example_dict = json.loads(input_str)
|
164 |
+
except ValueError:
|
165 |
+
try:
|
166 |
+
example_dict = yaml.safe_load(input_str)
|
167 |
+
except yaml.YAMLError as e:
|
168 |
+
raise ValueError("Invalid input format. Expected a JSON or YAML object.") from e
|
169 |
+
|
170 |
+
# If example_dict is a list, filter out invalid items
|
171 |
+
if isinstance(example_dict, list):
|
172 |
+
example_dict = [item for item in example_dict if isinstance(item, dict) and 'input' in item and 'output' in item]
|
173 |
+
|
174 |
+
# If example_dict is not a list, check if it's a valid dict
|
175 |
+
elif not isinstance(example_dict, dict) or 'input' not in example_dict or 'output' not in example_dict:
|
176 |
+
raise ValueError("Invalid input format. Expected an object with 'input' and 'output' fields.")
|
177 |
+
|
178 |
+
# Move the original content to a key named 'example'
|
179 |
+
input_dict = {"example": example_dict, "generating_batch_size": generating_batch_size}
|
180 |
+
|
181 |
+
return input_dict
|
182 |
+
|
183 |
+
except Exception as e:
|
184 |
+
raise RuntimeError(f"An error occurred during processing: {str(e)}")
|
185 |
+
|
186 |
+
def process(self, input_str, generating_batch_size=3):
|
187 |
+
input_dict = {"input_str": input_str, "generating_batch_size": generating_batch_size}
|
188 |
+
result = self.chain.invoke(input_dict)
|
189 |
+
return result
|
190 |
+
|
191 |
+
def generate_description(self, input_str, generating_batch_size=3):
|
192 |
+
chain = (
|
193 |
+
self.input_loader
|
194 |
+
| RunnablePassthrough.assign(raw_example = lambda x: json.dumps(x["example"], ensure_ascii=False))
|
195 |
+
| self.description_chain
|
196 |
+
)
|
197 |
+
return chain.invoke({
|
198 |
+
"input_str": input_str,
|
199 |
+
"generating_batch_size": generating_batch_size
|
200 |
+
})
|
201 |
+
|
202 |
+
def analyze_input(self, description):
|
203 |
+
return self.input_analysis_chain.invoke(description)
|
204 |
+
|
205 |
+
def generate_briefs(self, description, input_analysis, generating_batch_size):
|
206 |
+
return self.briefs_chain.invoke({
|
207 |
+
"description": description,
|
208 |
+
"input_analysis": input_analysis,
|
209 |
+
"generating_batch_size": generating_batch_size
|
210 |
+
})
|
211 |
+
|
212 |
+
def generate_examples_from_briefs(self, description, new_example_briefs, input_str, generating_batch_size=3):
|
213 |
+
chain = (
|
214 |
+
self.input_loader
|
215 |
+
| RunnablePassthrough.assign(
|
216 |
+
raw_example = lambda x: json.dumps(x["example"], ensure_ascii=False),
|
217 |
+
description = lambda x: description,
|
218 |
+
new_example_briefs = lambda x: new_example_briefs
|
219 |
+
)
|
220 |
+
| self.examples_from_briefs_chain
|
221 |
+
)
|
222 |
+
return chain.invoke({
|
223 |
+
"description": description,
|
224 |
+
"new_example_briefs": new_example_briefs,
|
225 |
+
"input_str": input_str,
|
226 |
+
"generating_batch_size": generating_batch_size
|
227 |
+
})
|
228 |
+
|
229 |
+
def generate_examples_directly(self, description, raw_example, generating_batch_size):
|
230 |
+
return self.examples_directly_chain.invoke({
|
231 |
+
"description": description,
|
232 |
+
"raw_example": raw_example,
|
233 |
+
"generating_batch_size": generating_batch_size
|
234 |
+
})
|
poetry.lock
CHANGED
@@ -179,6 +179,35 @@ doc = ["Sphinx (>=7)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphin
|
|
179 |
test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"]
|
180 |
trio = ["trio (>=0.23)"]
|
181 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
182 |
[[package]]
|
183 |
name = "async-timeout"
|
184 |
version = "4.0.3"
|
@@ -209,6 +238,28 @@ tests = ["attrs[tests-no-zope]", "zope-interface"]
|
|
209 |
tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"]
|
210 |
tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"]
|
211 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
212 |
[[package]]
|
213 |
name = "certifi"
|
214 |
version = "2024.7.4"
|
@@ -220,6 +271,85 @@ files = [
|
|
220 |
{file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"},
|
221 |
]
|
222 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
223 |
[[package]]
|
224 |
name = "charset-normalizer"
|
225 |
version = "3.3.2"
|
@@ -344,6 +474,23 @@ files = [
|
|
344 |
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
345 |
]
|
346 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
[[package]]
|
348 |
name = "confz"
|
349 |
version = "2.0.1"
|
@@ -483,6 +630,48 @@ tests = ["Pillow (>=9.4.0)", "absl-py", "elasticsearch (<8.0.0)", "faiss-cpu (>=
|
|
483 |
torch = ["torch"]
|
484 |
vision = ["Pillow (>=9.4.0)"]
|
485 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
486 |
[[package]]
|
487 |
name = "dill"
|
488 |
version = "0.3.8"
|
@@ -558,6 +747,20 @@ files = [
|
|
558 |
[package.extras]
|
559 |
test = ["pytest (>=6)"]
|
560 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
561 |
[[package]]
|
562 |
name = "fastapi"
|
563 |
version = "0.111.0"
|
@@ -820,6 +1023,38 @@ test-downstream = ["aiobotocore (>=2.5.4,<3.0.0)", "dask-expr", "dask[dataframe,
|
|
820 |
test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"]
|
821 |
tqdm = ["tqdm"]
|
822 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
823 |
[[package]]
|
824 |
name = "gradio"
|
825 |
version = "4.37.2"
|
@@ -1128,6 +1363,96 @@ files = [
|
|
1128 |
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
|
1129 |
]
|
1130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1131 |
[[package]]
|
1132 |
name = "jinja2"
|
1133 |
version = "3.1.4"
|
@@ -1275,6 +1600,48 @@ files = [
|
|
1275 |
[package.dependencies]
|
1276 |
referencing = ">=0.31.0"
|
1277 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1278 |
[[package]]
|
1279 |
name = "kiwisolver"
|
1280 |
version = "1.4.5"
|
@@ -1406,8 +1773,8 @@ langchain-core = ">=0.2.32,<0.3.0"
|
|
1406 |
langchain-text-splitters = ">=0.2.0,<0.3.0"
|
1407 |
langsmith = ">=0.1.17,<0.2.0"
|
1408 |
numpy = [
|
1409 |
-
{version = ">=1,<2", markers = "python_version < \"3.12\""},
|
1410 |
{version = ">=1.26.0,<2.0.0", markers = "python_version >= \"3.12\""},
|
|
|
1411 |
]
|
1412 |
pydantic = ">=1,<3"
|
1413 |
PyYAML = ">=5.3"
|
@@ -1431,8 +1798,8 @@ jsonpatch = ">=1.33,<2.0"
|
|
1431 |
langsmith = ">=0.1.75,<0.2.0"
|
1432 |
packaging = ">=23.2,<25"
|
1433 |
pydantic = [
|
1434 |
-
{version = ">=1,<3", markers = "python_full_version < \"3.12.4\""},
|
1435 |
{version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""},
|
|
|
1436 |
]
|
1437 |
PyYAML = ">=5.3"
|
1438 |
tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<9.0.0"
|
@@ -1496,8 +1863,8 @@ files = [
|
|
1496 |
[package.dependencies]
|
1497 |
orjson = ">=3.9.14,<4.0.0"
|
1498 |
pydantic = [
|
1499 |
-
{version = ">=1,<3", markers = "python_full_version < \"3.12.4\""},
|
1500 |
{version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""},
|
|
|
1501 |
]
|
1502 |
requests = ">=2,<3"
|
1503 |
|
@@ -1646,6 +2013,20 @@ python-dateutil = ">=2.7"
|
|
1646 |
[package.extras]
|
1647 |
dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"]
|
1648 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1649 |
[[package]]
|
1650 |
name = "mdurl"
|
1651 |
version = "0.1.2"
|
@@ -1780,6 +2161,17 @@ files = [
|
|
1780 |
[package.dependencies]
|
1781 |
dill = ">=0.3.8"
|
1782 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1783 |
[[package]]
|
1784 |
name = "numpy"
|
1785 |
version = "1.26.4"
|
@@ -1960,9 +2352,9 @@ files = [
|
|
1960 |
|
1961 |
[package.dependencies]
|
1962 |
numpy = [
|
|
|
1963 |
{version = ">=1.22.4", markers = "python_version < \"3.11\""},
|
1964 |
{version = ">=1.23.2", markers = "python_version == \"3.11\""},
|
1965 |
-
{version = ">=1.26.0", markers = "python_version >= \"3.12\""},
|
1966 |
]
|
1967 |
python-dateutil = ">=2.8.2"
|
1968 |
pytz = ">=2020.1"
|
@@ -1993,6 +2385,35 @@ sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-d
|
|
1993 |
test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"]
|
1994 |
xml = ["lxml (>=4.9.2)"]
|
1995 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1996 |
[[package]]
|
1997 |
name = "pillow"
|
1998 |
version = "10.4.0"
|
@@ -2090,6 +2511,22 @@ tests = ["check-manifest", "coverage", "defusedxml", "markdown2", "olefile", "pa
|
|
2090 |
typing = ["typing-extensions"]
|
2091 |
xmp = ["defusedxml"]
|
2092 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2093 |
[[package]]
|
2094 |
name = "pluggy"
|
2095 |
version = "1.5.0"
|
@@ -2105,6 +2542,94 @@ files = [
|
|
2105 |
dev = ["pre-commit", "tox"]
|
2106 |
testing = ["pytest", "pytest-benchmark"]
|
2107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2108 |
[[package]]
|
2109 |
name = "pyarrow"
|
2110 |
version = "16.1.0"
|
@@ -2164,6 +2689,17 @@ files = [
|
|
2164 |
{file = "pyarrow_hotfix-0.6.tar.gz", hash = "sha256:79d3e030f7ff890d408a100ac16d6f00b14d44a502d7897cd9fc3e3a534e9945"},
|
2165 |
]
|
2166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2167 |
[[package]]
|
2168 |
name = "pydantic"
|
2169 |
version = "2.8.2"
|
@@ -2179,8 +2715,8 @@ files = [
|
|
2179 |
annotated-types = ">=0.4.0"
|
2180 |
pydantic-core = "2.20.1"
|
2181 |
typing-extensions = [
|
2182 |
-
{version = ">=4.6.1", markers = "python_version < \"3.13\""},
|
2183 |
{version = ">=4.12.2", markers = "python_version >= \"3.13\""},
|
|
|
2184 |
]
|
2185 |
|
2186 |
[package.extras]
|
@@ -2287,6 +2823,25 @@ files = [
|
|
2287 |
[package.dependencies]
|
2288 |
typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
|
2289 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2290 |
[[package]]
|
2291 |
name = "pydub"
|
2292 |
version = "0.25.1"
|
@@ -2412,6 +2967,29 @@ files = [
|
|
2412 |
{file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"},
|
2413 |
]
|
2414 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2415 |
[[package]]
|
2416 |
name = "pyyaml"
|
2417 |
version = "6.0.1"
|
@@ -2472,6 +3050,127 @@ files = [
|
|
2472 |
{file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"},
|
2473 |
]
|
2474 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2475 |
[[package]]
|
2476 |
name = "referencing"
|
2477 |
version = "0.35.1"
|
@@ -2786,6 +3485,17 @@ files = [
|
|
2786 |
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
2787 |
]
|
2788 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2789 |
[[package]]
|
2790 |
name = "sniffio"
|
2791 |
version = "1.3.1"
|
@@ -2884,6 +3594,25 @@ postgresql-psycopgbinary = ["psycopg[binary] (>=3.0.7)"]
|
|
2884 |
pymysql = ["pymysql"]
|
2885 |
sqlcipher = ["sqlcipher3_binary"]
|
2886 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2887 |
[[package]]
|
2888 |
name = "starlette"
|
2889 |
version = "0.37.2"
|
@@ -2901,6 +3630,41 @@ anyio = ">=3.4.0,<5"
|
|
2901 |
[package.extras]
|
2902 |
full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"]
|
2903 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2904 |
[[package]]
|
2905 |
name = "tenacity"
|
2906 |
version = "8.4.2"
|
@@ -3012,6 +3776,26 @@ files = [
|
|
3012 |
{file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"},
|
3013 |
]
|
3014 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3015 |
[[package]]
|
3016 |
name = "tqdm"
|
3017 |
version = "4.66.4"
|
@@ -3032,6 +3816,21 @@ notebook = ["ipywidgets (>=6)"]
|
|
3032 |
slack = ["slack-sdk"]
|
3033 |
telegram = ["requests"]
|
3034 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3035 |
[[package]]
|
3036 |
name = "typer"
|
3037 |
version = "0.12.3"
|
@@ -3245,6 +4044,53 @@ files = [
|
|
3245 |
docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"]
|
3246 |
test = ["Cython (>=0.29.36,<0.30.0)", "aiohttp (==3.9.0b0)", "aiohttp (>=3.8.1)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"]
|
3247 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3248 |
[[package]]
|
3249 |
name = "watchfiles"
|
3250 |
version = "0.22.0"
|
@@ -3332,6 +4178,17 @@ files = [
|
|
3332 |
[package.dependencies]
|
3333 |
anyio = ">=3.0.0"
|
3334 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3335 |
[[package]]
|
3336 |
name = "websockets"
|
3337 |
version = "11.0.3"
|
@@ -3634,4 +4491,4 @@ multidict = ">=4.0"
|
|
3634 |
[metadata]
|
3635 |
lock-version = "2.0"
|
3636 |
python-versions = "^3.10"
|
3637 |
-
content-hash = "
|
|
|
179 |
test = ["anyio[trio]", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "pytest-mock (>=3.6.1)", "trustme", "uvloop (>=0.17)"]
|
180 |
trio = ["trio (>=0.23)"]
|
181 |
|
182 |
+
[[package]]
|
183 |
+
name = "appnope"
|
184 |
+
version = "0.1.4"
|
185 |
+
description = "Disable App Nap on macOS >= 10.9"
|
186 |
+
optional = false
|
187 |
+
python-versions = ">=3.6"
|
188 |
+
files = [
|
189 |
+
{file = "appnope-0.1.4-py2.py3-none-any.whl", hash = "sha256:502575ee11cd7a28c0205f379b525beefebab9d161b7c964670864014ed7213c"},
|
190 |
+
{file = "appnope-0.1.4.tar.gz", hash = "sha256:1de3860566df9caf38f01f86f65e0e13e379af54f9e4bee1e66b48f2efffd1ee"},
|
191 |
+
]
|
192 |
+
|
193 |
+
[[package]]
|
194 |
+
name = "asttokens"
|
195 |
+
version = "2.4.1"
|
196 |
+
description = "Annotate AST trees with source code positions"
|
197 |
+
optional = false
|
198 |
+
python-versions = "*"
|
199 |
+
files = [
|
200 |
+
{file = "asttokens-2.4.1-py2.py3-none-any.whl", hash = "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24"},
|
201 |
+
{file = "asttokens-2.4.1.tar.gz", hash = "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0"},
|
202 |
+
]
|
203 |
+
|
204 |
+
[package.dependencies]
|
205 |
+
six = ">=1.12.0"
|
206 |
+
|
207 |
+
[package.extras]
|
208 |
+
astroid = ["astroid (>=1,<2)", "astroid (>=2,<4)"]
|
209 |
+
test = ["astroid (>=1,<2)", "astroid (>=2,<4)", "pytest"]
|
210 |
+
|
211 |
[[package]]
|
212 |
name = "async-timeout"
|
213 |
version = "4.0.3"
|
|
|
238 |
tests-mypy = ["mypy (>=1.6)", "pytest-mypy-plugins"]
|
239 |
tests-no-zope = ["attrs[tests-mypy]", "cloudpickle", "hypothesis", "pympler", "pytest (>=4.3.0)", "pytest-xdist[psutil]"]
|
240 |
|
241 |
+
[[package]]
|
242 |
+
name = "blinker"
|
243 |
+
version = "1.8.2"
|
244 |
+
description = "Fast, simple object-to-object and broadcast signaling"
|
245 |
+
optional = false
|
246 |
+
python-versions = ">=3.8"
|
247 |
+
files = [
|
248 |
+
{file = "blinker-1.8.2-py3-none-any.whl", hash = "sha256:1779309f71bf239144b9399d06ae925637cf6634cf6bd131104184531bf67c01"},
|
249 |
+
{file = "blinker-1.8.2.tar.gz", hash = "sha256:8f77b09d3bf7c795e969e9486f39c2c5e9c39d4ee07424be2bc594ece9642d83"},
|
250 |
+
]
|
251 |
+
|
252 |
+
[[package]]
|
253 |
+
name = "cachetools"
|
254 |
+
version = "5.5.0"
|
255 |
+
description = "Extensible memoizing collections and decorators"
|
256 |
+
optional = false
|
257 |
+
python-versions = ">=3.7"
|
258 |
+
files = [
|
259 |
+
{file = "cachetools-5.5.0-py3-none-any.whl", hash = "sha256:02134e8439cdc2ffb62023ce1debca2944c3f289d66bb17ead3ab3dede74b292"},
|
260 |
+
{file = "cachetools-5.5.0.tar.gz", hash = "sha256:2cc24fb4cbe39633fb7badd9db9ca6295d766d9c2995f245725a46715d050f2a"},
|
261 |
+
]
|
262 |
+
|
263 |
[[package]]
|
264 |
name = "certifi"
|
265 |
version = "2024.7.4"
|
|
|
271 |
{file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"},
|
272 |
]
|
273 |
|
274 |
+
[[package]]
|
275 |
+
name = "cffi"
|
276 |
+
version = "1.17.0"
|
277 |
+
description = "Foreign Function Interface for Python calling C code."
|
278 |
+
optional = false
|
279 |
+
python-versions = ">=3.8"
|
280 |
+
files = [
|
281 |
+
{file = "cffi-1.17.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f9338cc05451f1942d0d8203ec2c346c830f8e86469903d5126c1f0a13a2bcbb"},
|
282 |
+
{file = "cffi-1.17.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a0ce71725cacc9ebf839630772b07eeec220cbb5f03be1399e0457a1464f8e1a"},
|
283 |
+
{file = "cffi-1.17.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c815270206f983309915a6844fe994b2fa47e5d05c4c4cef267c3b30e34dbe42"},
|
284 |
+
{file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d6bdcd415ba87846fd317bee0774e412e8792832e7805938987e4ede1d13046d"},
|
285 |
+
{file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a98748ed1a1df4ee1d6f927e151ed6c1a09d5ec21684de879c7ea6aa96f58f2"},
|
286 |
+
{file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0a048d4f6630113e54bb4b77e315e1ba32a5a31512c31a273807d0027a7e69ab"},
|
287 |
+
{file = "cffi-1.17.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:24aa705a5f5bd3a8bcfa4d123f03413de5d86e497435693b638cbffb7d5d8a1b"},
|
288 |
+
{file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:856bf0924d24e7f93b8aee12a3a1095c34085600aa805693fb7f5d1962393206"},
|
289 |
+
{file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:4304d4416ff032ed50ad6bb87416d802e67139e31c0bde4628f36a47a3164bfa"},
|
290 |
+
{file = "cffi-1.17.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:331ad15c39c9fe9186ceaf87203a9ecf5ae0ba2538c9e898e3a6967e8ad3db6f"},
|
291 |
+
{file = "cffi-1.17.0-cp310-cp310-win32.whl", hash = "sha256:669b29a9eca6146465cc574659058ed949748f0809a2582d1f1a324eb91054dc"},
|
292 |
+
{file = "cffi-1.17.0-cp310-cp310-win_amd64.whl", hash = "sha256:48b389b1fd5144603d61d752afd7167dfd205973a43151ae5045b35793232aa2"},
|
293 |
+
{file = "cffi-1.17.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c5d97162c196ce54af6700949ddf9409e9833ef1003b4741c2b39ef46f1d9720"},
|
294 |
+
{file = "cffi-1.17.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5ba5c243f4004c750836f81606a9fcb7841f8874ad8f3bf204ff5e56332b72b9"},
|
295 |
+
{file = "cffi-1.17.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bb9333f58fc3a2296fb1d54576138d4cf5d496a2cc118422bd77835e6ae0b9cb"},
|
296 |
+
{file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:435a22d00ec7d7ea533db494da8581b05977f9c37338c80bc86314bec2619424"},
|
297 |
+
{file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d1df34588123fcc88c872f5acb6f74ae59e9d182a2707097f9e28275ec26a12d"},
|
298 |
+
{file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:df8bb0010fdd0a743b7542589223a2816bdde4d94bb5ad67884348fa2c1c67e8"},
|
299 |
+
{file = "cffi-1.17.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a8b5b9712783415695663bd463990e2f00c6750562e6ad1d28e072a611c5f2a6"},
|
300 |
+
{file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ffef8fd58a36fb5f1196919638f73dd3ae0db1a878982b27a9a5a176ede4ba91"},
|
301 |
+
{file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:4e67d26532bfd8b7f7c05d5a766d6f437b362c1bf203a3a5ce3593a645e870b8"},
|
302 |
+
{file = "cffi-1.17.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45f7cd36186db767d803b1473b3c659d57a23b5fa491ad83c6d40f2af58e4dbb"},
|
303 |
+
{file = "cffi-1.17.0-cp311-cp311-win32.whl", hash = "sha256:a9015f5b8af1bb6837a3fcb0cdf3b874fe3385ff6274e8b7925d81ccaec3c5c9"},
|
304 |
+
{file = "cffi-1.17.0-cp311-cp311-win_amd64.whl", hash = "sha256:b50aaac7d05c2c26dfd50c3321199f019ba76bb650e346a6ef3616306eed67b0"},
|
305 |
+
{file = "cffi-1.17.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:aec510255ce690d240f7cb23d7114f6b351c733a74c279a84def763660a2c3bc"},
|
306 |
+
{file = "cffi-1.17.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2770bb0d5e3cc0e31e7318db06efcbcdb7b31bcb1a70086d3177692a02256f59"},
|
307 |
+
{file = "cffi-1.17.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:db9a30ec064129d605d0f1aedc93e00894b9334ec74ba9c6bdd08147434b33eb"},
|
308 |
+
{file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a47eef975d2b8b721775a0fa286f50eab535b9d56c70a6e62842134cf7841195"},
|
309 |
+
{file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f3e0992f23bbb0be00a921eae5363329253c3b86287db27092461c887b791e5e"},
|
310 |
+
{file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6107e445faf057c118d5050560695e46d272e5301feffda3c41849641222a828"},
|
311 |
+
{file = "cffi-1.17.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb862356ee9391dc5a0b3cbc00f416b48c1b9a52d252d898e5b7696a5f9fe150"},
|
312 |
+
{file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:c1c13185b90bbd3f8b5963cd8ce7ad4ff441924c31e23c975cb150e27c2bf67a"},
|
313 |
+
{file = "cffi-1.17.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:17c6d6d3260c7f2d94f657e6872591fe8733872a86ed1345bda872cfc8c74885"},
|
314 |
+
{file = "cffi-1.17.0-cp312-cp312-win32.whl", hash = "sha256:c3b8bd3133cd50f6b637bb4322822c94c5ce4bf0d724ed5ae70afce62187c492"},
|
315 |
+
{file = "cffi-1.17.0-cp312-cp312-win_amd64.whl", hash = "sha256:dca802c8db0720ce1c49cce1149ff7b06e91ba15fa84b1d59144fef1a1bc7ac2"},
|
316 |
+
{file = "cffi-1.17.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ce01337d23884b21c03869d2f68c5523d43174d4fc405490eb0091057943118"},
|
317 |
+
{file = "cffi-1.17.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cab2eba3830bf4f6d91e2d6718e0e1c14a2f5ad1af68a89d24ace0c6b17cced7"},
|
318 |
+
{file = "cffi-1.17.0-cp313-cp313-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:14b9cbc8f7ac98a739558eb86fabc283d4d564dafed50216e7f7ee62d0d25377"},
|
319 |
+
{file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b00e7bcd71caa0282cbe3c90966f738e2db91e64092a877c3ff7f19a1628fdcb"},
|
320 |
+
{file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:41f4915e09218744d8bae14759f983e466ab69b178de38066f7579892ff2a555"},
|
321 |
+
{file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e4760a68cab57bfaa628938e9c2971137e05ce48e762a9cb53b76c9b569f1204"},
|
322 |
+
{file = "cffi-1.17.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:011aff3524d578a9412c8b3cfaa50f2c0bd78e03eb7af7aa5e0df59b158efb2f"},
|
323 |
+
{file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:a003ac9edc22d99ae1286b0875c460351f4e101f8c9d9d2576e78d7e048f64e0"},
|
324 |
+
{file = "cffi-1.17.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ef9528915df81b8f4c7612b19b8628214c65c9b7f74db2e34a646a0a2a0da2d4"},
|
325 |
+
{file = "cffi-1.17.0-cp313-cp313-win32.whl", hash = "sha256:70d2aa9fb00cf52034feac4b913181a6e10356019b18ef89bc7c12a283bf5f5a"},
|
326 |
+
{file = "cffi-1.17.0-cp313-cp313-win_amd64.whl", hash = "sha256:b7b6ea9e36d32582cda3465f54c4b454f62f23cb083ebc7a94e2ca6ef011c3a7"},
|
327 |
+
{file = "cffi-1.17.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:964823b2fc77b55355999ade496c54dde161c621cb1f6eac61dc30ed1b63cd4c"},
|
328 |
+
{file = "cffi-1.17.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:516a405f174fd3b88829eabfe4bb296ac602d6a0f68e0d64d5ac9456194a5b7e"},
|
329 |
+
{file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dec6b307ce928e8e112a6bb9921a1cb00a0e14979bf28b98e084a4b8a742bd9b"},
|
330 |
+
{file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4094c7b464cf0a858e75cd14b03509e84789abf7b79f8537e6a72152109c76e"},
|
331 |
+
{file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2404f3de742f47cb62d023f0ba7c5a916c9c653d5b368cc966382ae4e57da401"},
|
332 |
+
{file = "cffi-1.17.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa9d43b02a0c681f0bfbc12d476d47b2b2b6a3f9287f11ee42989a268a1833c"},
|
333 |
+
{file = "cffi-1.17.0-cp38-cp38-win32.whl", hash = "sha256:0bb15e7acf8ab35ca8b24b90af52c8b391690ef5c4aec3d31f38f0d37d2cc499"},
|
334 |
+
{file = "cffi-1.17.0-cp38-cp38-win_amd64.whl", hash = "sha256:93a7350f6706b31f457c1457d3a3259ff9071a66f312ae64dc024f049055f72c"},
|
335 |
+
{file = "cffi-1.17.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1a2ddbac59dc3716bc79f27906c010406155031a1c801410f1bafff17ea304d2"},
|
336 |
+
{file = "cffi-1.17.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6327b572f5770293fc062a7ec04160e89741e8552bf1c358d1a23eba68166759"},
|
337 |
+
{file = "cffi-1.17.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dbc183e7bef690c9abe5ea67b7b60fdbca81aa8da43468287dae7b5c046107d4"},
|
338 |
+
{file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bdc0f1f610d067c70aa3737ed06e2726fd9d6f7bfee4a351f4c40b6831f4e82"},
|
339 |
+
{file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d872186c1617d143969defeadac5a904e6e374183e07977eedef9c07c8953bf"},
|
340 |
+
{file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0d46ee4764b88b91f16661a8befc6bfb24806d885e27436fdc292ed7e6f6d058"},
|
341 |
+
{file = "cffi-1.17.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f76a90c345796c01d85e6332e81cab6d70de83b829cf1d9762d0a3da59c7932"},
|
342 |
+
{file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0e60821d312f99d3e1569202518dddf10ae547e799d75aef3bca3a2d9e8ee693"},
|
343 |
+
{file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:eb09b82377233b902d4c3fbeeb7ad731cdab579c6c6fda1f763cd779139e47c3"},
|
344 |
+
{file = "cffi-1.17.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:24658baf6224d8f280e827f0a50c46ad819ec8ba380a42448e24459daf809cf4"},
|
345 |
+
{file = "cffi-1.17.0-cp39-cp39-win32.whl", hash = "sha256:0fdacad9e0d9fc23e519efd5ea24a70348305e8d7d85ecbb1a5fa66dc834e7fb"},
|
346 |
+
{file = "cffi-1.17.0-cp39-cp39-win_amd64.whl", hash = "sha256:7cbc78dc018596315d4e7841c8c3a7ae31cc4d638c9b627f87d52e8abaaf2d29"},
|
347 |
+
{file = "cffi-1.17.0.tar.gz", hash = "sha256:f3157624b7558b914cb039fd1af735e5e8049a87c817cc215109ad1c8779df76"},
|
348 |
+
]
|
349 |
+
|
350 |
+
[package.dependencies]
|
351 |
+
pycparser = "*"
|
352 |
+
|
353 |
[[package]]
|
354 |
name = "charset-normalizer"
|
355 |
version = "3.3.2"
|
|
|
474 |
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
475 |
]
|
476 |
|
477 |
+
[[package]]
|
478 |
+
name = "comm"
|
479 |
+
version = "0.2.2"
|
480 |
+
description = "Jupyter Python Comm implementation, for usage in ipykernel, xeus-python etc."
|
481 |
+
optional = false
|
482 |
+
python-versions = ">=3.8"
|
483 |
+
files = [
|
484 |
+
{file = "comm-0.2.2-py3-none-any.whl", hash = "sha256:e6fb86cb70ff661ee8c9c14e7d36d6de3b4066f1441be4063df9c5009f0a64d3"},
|
485 |
+
{file = "comm-0.2.2.tar.gz", hash = "sha256:3fd7a84065306e07bea1773df6eb8282de51ba82f77c72f9c85716ab11fe980e"},
|
486 |
+
]
|
487 |
+
|
488 |
+
[package.dependencies]
|
489 |
+
traitlets = ">=4"
|
490 |
+
|
491 |
+
[package.extras]
|
492 |
+
test = ["pytest"]
|
493 |
+
|
494 |
[[package]]
|
495 |
name = "confz"
|
496 |
version = "2.0.1"
|
|
|
630 |
torch = ["torch"]
|
631 |
vision = ["Pillow (>=9.4.0)"]
|
632 |
|
633 |
+
[[package]]
|
634 |
+
name = "debugpy"
|
635 |
+
version = "1.8.5"
|
636 |
+
description = "An implementation of the Debug Adapter Protocol for Python"
|
637 |
+
optional = false
|
638 |
+
python-versions = ">=3.8"
|
639 |
+
files = [
|
640 |
+
{file = "debugpy-1.8.5-cp310-cp310-macosx_12_0_x86_64.whl", hash = "sha256:7e4d594367d6407a120b76bdaa03886e9eb652c05ba7f87e37418426ad2079f7"},
|
641 |
+
{file = "debugpy-1.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4413b7a3ede757dc33a273a17d685ea2b0c09dbd312cc03f5534a0fd4d40750a"},
|
642 |
+
{file = "debugpy-1.8.5-cp310-cp310-win32.whl", hash = "sha256:dd3811bd63632bb25eda6bd73bea8e0521794cda02be41fa3160eb26fc29e7ed"},
|
643 |
+
{file = "debugpy-1.8.5-cp310-cp310-win_amd64.whl", hash = "sha256:b78c1250441ce893cb5035dd6f5fc12db968cc07f91cc06996b2087f7cefdd8e"},
|
644 |
+
{file = "debugpy-1.8.5-cp311-cp311-macosx_12_0_universal2.whl", hash = "sha256:606bccba19f7188b6ea9579c8a4f5a5364ecd0bf5a0659c8a5d0e10dcee3032a"},
|
645 |
+
{file = "debugpy-1.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db9fb642938a7a609a6c865c32ecd0d795d56c1aaa7a7a5722d77855d5e77f2b"},
|
646 |
+
{file = "debugpy-1.8.5-cp311-cp311-win32.whl", hash = "sha256:4fbb3b39ae1aa3e5ad578f37a48a7a303dad9a3d018d369bc9ec629c1cfa7408"},
|
647 |
+
{file = "debugpy-1.8.5-cp311-cp311-win_amd64.whl", hash = "sha256:345d6a0206e81eb68b1493ce2fbffd57c3088e2ce4b46592077a943d2b968ca3"},
|
648 |
+
{file = "debugpy-1.8.5-cp312-cp312-macosx_12_0_universal2.whl", hash = "sha256:5b5c770977c8ec6c40c60d6f58cacc7f7fe5a45960363d6974ddb9b62dbee156"},
|
649 |
+
{file = "debugpy-1.8.5-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0a65b00b7cdd2ee0c2cf4c7335fef31e15f1b7056c7fdbce9e90193e1a8c8cb"},
|
650 |
+
{file = "debugpy-1.8.5-cp312-cp312-win32.whl", hash = "sha256:c9f7c15ea1da18d2fcc2709e9f3d6de98b69a5b0fff1807fb80bc55f906691f7"},
|
651 |
+
{file = "debugpy-1.8.5-cp312-cp312-win_amd64.whl", hash = "sha256:28ced650c974aaf179231668a293ecd5c63c0a671ae6d56b8795ecc5d2f48d3c"},
|
652 |
+
{file = "debugpy-1.8.5-cp38-cp38-macosx_12_0_x86_64.whl", hash = "sha256:3df6692351172a42af7558daa5019651f898fc67450bf091335aa8a18fbf6f3a"},
|
653 |
+
{file = "debugpy-1.8.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1cd04a73eb2769eb0bfe43f5bfde1215c5923d6924b9b90f94d15f207a402226"},
|
654 |
+
{file = "debugpy-1.8.5-cp38-cp38-win32.whl", hash = "sha256:8f913ee8e9fcf9d38a751f56e6de12a297ae7832749d35de26d960f14280750a"},
|
655 |
+
{file = "debugpy-1.8.5-cp38-cp38-win_amd64.whl", hash = "sha256:a697beca97dad3780b89a7fb525d5e79f33821a8bc0c06faf1f1289e549743cf"},
|
656 |
+
{file = "debugpy-1.8.5-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:0a1029a2869d01cb777216af8c53cda0476875ef02a2b6ff8b2f2c9a4b04176c"},
|
657 |
+
{file = "debugpy-1.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e84c276489e141ed0b93b0af648eef891546143d6a48f610945416453a8ad406"},
|
658 |
+
{file = "debugpy-1.8.5-cp39-cp39-win32.whl", hash = "sha256:ad84b7cde7fd96cf6eea34ff6c4a1b7887e0fe2ea46e099e53234856f9d99a34"},
|
659 |
+
{file = "debugpy-1.8.5-cp39-cp39-win_amd64.whl", hash = "sha256:7b0fe36ed9d26cb6836b0a51453653f8f2e347ba7348f2bbfe76bfeb670bfb1c"},
|
660 |
+
{file = "debugpy-1.8.5-py2.py3-none-any.whl", hash = "sha256:55919dce65b471eff25901acf82d328bbd5b833526b6c1364bd5133754777a44"},
|
661 |
+
{file = "debugpy-1.8.5.zip", hash = "sha256:b2112cfeb34b4507399d298fe7023a16656fc553ed5246536060ca7bd0e668d0"},
|
662 |
+
]
|
663 |
+
|
664 |
+
[[package]]
|
665 |
+
name = "decorator"
|
666 |
+
version = "5.1.1"
|
667 |
+
description = "Decorators for Humans"
|
668 |
+
optional = false
|
669 |
+
python-versions = ">=3.5"
|
670 |
+
files = [
|
671 |
+
{file = "decorator-5.1.1-py3-none-any.whl", hash = "sha256:b8c3f85900b9dc423225913c5aace94729fe1fa9763b38939a95226f02d37186"},
|
672 |
+
{file = "decorator-5.1.1.tar.gz", hash = "sha256:637996211036b6385ef91435e4fae22989472f9d571faba8927ba8253acbc330"},
|
673 |
+
]
|
674 |
+
|
675 |
[[package]]
|
676 |
name = "dill"
|
677 |
version = "0.3.8"
|
|
|
747 |
[package.extras]
|
748 |
test = ["pytest (>=6)"]
|
749 |
|
750 |
+
[[package]]
|
751 |
+
name = "executing"
|
752 |
+
version = "2.0.1"
|
753 |
+
description = "Get the currently executing AST node of a frame, and other information"
|
754 |
+
optional = false
|
755 |
+
python-versions = ">=3.5"
|
756 |
+
files = [
|
757 |
+
{file = "executing-2.0.1-py2.py3-none-any.whl", hash = "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc"},
|
758 |
+
{file = "executing-2.0.1.tar.gz", hash = "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147"},
|
759 |
+
]
|
760 |
+
|
761 |
+
[package.extras]
|
762 |
+
tests = ["asttokens (>=2.1.0)", "coverage", "coverage-enable-subprocess", "ipython", "littleutils", "pytest", "rich"]
|
763 |
+
|
764 |
[[package]]
|
765 |
name = "fastapi"
|
766 |
version = "0.111.0"
|
|
|
1023 |
test-full = ["adlfs", "aiohttp (!=4.0.0a0,!=4.0.0a1)", "cloudpickle", "dask", "distributed", "dropbox", "dropboxdrivefs", "fastparquet", "fusepy", "gcsfs", "jinja2", "kerchunk", "libarchive-c", "lz4", "notebook", "numpy", "ocifs", "pandas", "panel", "paramiko", "pyarrow", "pyarrow (>=1)", "pyftpdlib", "pygit2", "pytest", "pytest-asyncio (!=0.22.0)", "pytest-benchmark", "pytest-cov", "pytest-mock", "pytest-recording", "pytest-rerunfailures", "python-snappy", "requests", "smbprotocol", "tqdm", "urllib3", "zarr", "zstandard"]
|
1024 |
tqdm = ["tqdm"]
|
1025 |
|
1026 |
+
[[package]]
|
1027 |
+
name = "gitdb"
|
1028 |
+
version = "4.0.11"
|
1029 |
+
description = "Git Object Database"
|
1030 |
+
optional = false
|
1031 |
+
python-versions = ">=3.7"
|
1032 |
+
files = [
|
1033 |
+
{file = "gitdb-4.0.11-py3-none-any.whl", hash = "sha256:81a3407ddd2ee8df444cbacea00e2d038e40150acfa3001696fe0dcf1d3adfa4"},
|
1034 |
+
{file = "gitdb-4.0.11.tar.gz", hash = "sha256:bf5421126136d6d0af55bc1e7c1af1c397a34f5b7bd79e776cd3e89785c2b04b"},
|
1035 |
+
]
|
1036 |
+
|
1037 |
+
[package.dependencies]
|
1038 |
+
smmap = ">=3.0.1,<6"
|
1039 |
+
|
1040 |
+
[[package]]
|
1041 |
+
name = "gitpython"
|
1042 |
+
version = "3.1.43"
|
1043 |
+
description = "GitPython is a Python library used to interact with Git repositories"
|
1044 |
+
optional = false
|
1045 |
+
python-versions = ">=3.7"
|
1046 |
+
files = [
|
1047 |
+
{file = "GitPython-3.1.43-py3-none-any.whl", hash = "sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff"},
|
1048 |
+
{file = "GitPython-3.1.43.tar.gz", hash = "sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c"},
|
1049 |
+
]
|
1050 |
+
|
1051 |
+
[package.dependencies]
|
1052 |
+
gitdb = ">=4.0.1,<5"
|
1053 |
+
|
1054 |
+
[package.extras]
|
1055 |
+
doc = ["sphinx (==4.3.2)", "sphinx-autodoc-typehints", "sphinx-rtd-theme", "sphinxcontrib-applehelp (>=1.0.2,<=1.0.4)", "sphinxcontrib-devhelp (==1.0.2)", "sphinxcontrib-htmlhelp (>=2.0.0,<=2.0.1)", "sphinxcontrib-qthelp (==1.0.3)", "sphinxcontrib-serializinghtml (==1.1.5)"]
|
1056 |
+
test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock", "mypy", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions"]
|
1057 |
+
|
1058 |
[[package]]
|
1059 |
name = "gradio"
|
1060 |
version = "4.37.2"
|
|
|
1363 |
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
|
1364 |
]
|
1365 |
|
1366 |
+
[[package]]
|
1367 |
+
name = "ipykernel"
|
1368 |
+
version = "6.29.5"
|
1369 |
+
description = "IPython Kernel for Jupyter"
|
1370 |
+
optional = false
|
1371 |
+
python-versions = ">=3.8"
|
1372 |
+
files = [
|
1373 |
+
{file = "ipykernel-6.29.5-py3-none-any.whl", hash = "sha256:afdb66ba5aa354b09b91379bac28ae4afebbb30e8b39510c9690afb7a10421b5"},
|
1374 |
+
{file = "ipykernel-6.29.5.tar.gz", hash = "sha256:f093a22c4a40f8828f8e330a9c297cb93dcab13bd9678ded6de8e5cf81c56215"},
|
1375 |
+
]
|
1376 |
+
|
1377 |
+
[package.dependencies]
|
1378 |
+
appnope = {version = "*", markers = "platform_system == \"Darwin\""}
|
1379 |
+
comm = ">=0.1.1"
|
1380 |
+
debugpy = ">=1.6.5"
|
1381 |
+
ipython = ">=7.23.1"
|
1382 |
+
jupyter-client = ">=6.1.12"
|
1383 |
+
jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0"
|
1384 |
+
matplotlib-inline = ">=0.1"
|
1385 |
+
nest-asyncio = "*"
|
1386 |
+
packaging = "*"
|
1387 |
+
psutil = "*"
|
1388 |
+
pyzmq = ">=24"
|
1389 |
+
tornado = ">=6.1"
|
1390 |
+
traitlets = ">=5.4.0"
|
1391 |
+
|
1392 |
+
[package.extras]
|
1393 |
+
cov = ["coverage[toml]", "curio", "matplotlib", "pytest-cov", "trio"]
|
1394 |
+
docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "trio"]
|
1395 |
+
pyqt5 = ["pyqt5"]
|
1396 |
+
pyside6 = ["pyside6"]
|
1397 |
+
test = ["flaky", "ipyparallel", "pre-commit", "pytest (>=7.0)", "pytest-asyncio (>=0.23.5)", "pytest-cov", "pytest-timeout"]
|
1398 |
+
|
1399 |
+
[[package]]
|
1400 |
+
name = "ipython"
|
1401 |
+
version = "8.26.0"
|
1402 |
+
description = "IPython: Productive Interactive Computing"
|
1403 |
+
optional = false
|
1404 |
+
python-versions = ">=3.10"
|
1405 |
+
files = [
|
1406 |
+
{file = "ipython-8.26.0-py3-none-any.whl", hash = "sha256:e6b347c27bdf9c32ee9d31ae85defc525755a1869f14057e900675b9e8d6e6ff"},
|
1407 |
+
{file = "ipython-8.26.0.tar.gz", hash = "sha256:1cec0fbba8404af13facebe83d04436a7434c7400e59f47acf467c64abd0956c"},
|
1408 |
+
]
|
1409 |
+
|
1410 |
+
[package.dependencies]
|
1411 |
+
colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
1412 |
+
decorator = "*"
|
1413 |
+
exceptiongroup = {version = "*", markers = "python_version < \"3.11\""}
|
1414 |
+
jedi = ">=0.16"
|
1415 |
+
matplotlib-inline = "*"
|
1416 |
+
pexpect = {version = ">4.3", markers = "sys_platform != \"win32\" and sys_platform != \"emscripten\""}
|
1417 |
+
prompt-toolkit = ">=3.0.41,<3.1.0"
|
1418 |
+
pygments = ">=2.4.0"
|
1419 |
+
stack-data = "*"
|
1420 |
+
traitlets = ">=5.13.0"
|
1421 |
+
typing-extensions = {version = ">=4.6", markers = "python_version < \"3.12\""}
|
1422 |
+
|
1423 |
+
[package.extras]
|
1424 |
+
all = ["ipython[black,doc,kernel,matplotlib,nbconvert,nbformat,notebook,parallel,qtconsole]", "ipython[test,test-extra]"]
|
1425 |
+
black = ["black"]
|
1426 |
+
doc = ["docrepr", "exceptiongroup", "intersphinx-registry", "ipykernel", "ipython[test]", "matplotlib", "setuptools (>=18.5)", "sphinx (>=1.3)", "sphinx-rtd-theme", "sphinxcontrib-jquery", "tomli", "typing-extensions"]
|
1427 |
+
kernel = ["ipykernel"]
|
1428 |
+
matplotlib = ["matplotlib"]
|
1429 |
+
nbconvert = ["nbconvert"]
|
1430 |
+
nbformat = ["nbformat"]
|
1431 |
+
notebook = ["ipywidgets", "notebook"]
|
1432 |
+
parallel = ["ipyparallel"]
|
1433 |
+
qtconsole = ["qtconsole"]
|
1434 |
+
test = ["packaging", "pickleshare", "pytest", "pytest-asyncio (<0.22)", "testpath"]
|
1435 |
+
test-extra = ["curio", "ipython[test]", "matplotlib (!=3.2.0)", "nbformat", "numpy (>=1.23)", "pandas", "trio"]
|
1436 |
+
|
1437 |
+
[[package]]
|
1438 |
+
name = "jedi"
|
1439 |
+
version = "0.19.1"
|
1440 |
+
description = "An autocompletion tool for Python that can be used for text editors."
|
1441 |
+
optional = false
|
1442 |
+
python-versions = ">=3.6"
|
1443 |
+
files = [
|
1444 |
+
{file = "jedi-0.19.1-py2.py3-none-any.whl", hash = "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0"},
|
1445 |
+
{file = "jedi-0.19.1.tar.gz", hash = "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd"},
|
1446 |
+
]
|
1447 |
+
|
1448 |
+
[package.dependencies]
|
1449 |
+
parso = ">=0.8.3,<0.9.0"
|
1450 |
+
|
1451 |
+
[package.extras]
|
1452 |
+
docs = ["Jinja2 (==2.11.3)", "MarkupSafe (==1.1.1)", "Pygments (==2.8.1)", "alabaster (==0.7.12)", "babel (==2.9.1)", "chardet (==4.0.0)", "commonmark (==0.8.1)", "docutils (==0.17.1)", "future (==0.18.2)", "idna (==2.10)", "imagesize (==1.2.0)", "mock (==1.0.1)", "packaging (==20.9)", "pyparsing (==2.4.7)", "pytz (==2021.1)", "readthedocs-sphinx-ext (==2.1.4)", "recommonmark (==0.5.0)", "requests (==2.25.1)", "six (==1.15.0)", "snowballstemmer (==2.1.0)", "sphinx (==1.8.5)", "sphinx-rtd-theme (==0.4.3)", "sphinxcontrib-serializinghtml (==1.1.4)", "sphinxcontrib-websupport (==1.2.4)", "urllib3 (==1.26.4)"]
|
1453 |
+
qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"]
|
1454 |
+
testing = ["Django", "attrs", "colorama", "docopt", "pytest (<7.0.0)"]
|
1455 |
+
|
1456 |
[[package]]
|
1457 |
name = "jinja2"
|
1458 |
version = "3.1.4"
|
|
|
1600 |
[package.dependencies]
|
1601 |
referencing = ">=0.31.0"
|
1602 |
|
1603 |
+
[[package]]
|
1604 |
+
name = "jupyter-client"
|
1605 |
+
version = "8.6.2"
|
1606 |
+
description = "Jupyter protocol implementation and client libraries"
|
1607 |
+
optional = false
|
1608 |
+
python-versions = ">=3.8"
|
1609 |
+
files = [
|
1610 |
+
{file = "jupyter_client-8.6.2-py3-none-any.whl", hash = "sha256:50cbc5c66fd1b8f65ecb66bc490ab73217993632809b6e505687de18e9dea39f"},
|
1611 |
+
{file = "jupyter_client-8.6.2.tar.gz", hash = "sha256:2bda14d55ee5ba58552a8c53ae43d215ad9868853489213f37da060ced54d8df"},
|
1612 |
+
]
|
1613 |
+
|
1614 |
+
[package.dependencies]
|
1615 |
+
jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0"
|
1616 |
+
python-dateutil = ">=2.8.2"
|
1617 |
+
pyzmq = ">=23.0"
|
1618 |
+
tornado = ">=6.2"
|
1619 |
+
traitlets = ">=5.3"
|
1620 |
+
|
1621 |
+
[package.extras]
|
1622 |
+
docs = ["ipykernel", "myst-parser", "pydata-sphinx-theme", "sphinx (>=4)", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"]
|
1623 |
+
test = ["coverage", "ipykernel (>=6.14)", "mypy", "paramiko", "pre-commit", "pytest (<8.2.0)", "pytest-cov", "pytest-jupyter[client] (>=0.4.1)", "pytest-timeout"]
|
1624 |
+
|
1625 |
+
[[package]]
|
1626 |
+
name = "jupyter-core"
|
1627 |
+
version = "5.7.2"
|
1628 |
+
description = "Jupyter core package. A base package on which Jupyter projects rely."
|
1629 |
+
optional = false
|
1630 |
+
python-versions = ">=3.8"
|
1631 |
+
files = [
|
1632 |
+
{file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"},
|
1633 |
+
{file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"},
|
1634 |
+
]
|
1635 |
+
|
1636 |
+
[package.dependencies]
|
1637 |
+
platformdirs = ">=2.5"
|
1638 |
+
pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""}
|
1639 |
+
traitlets = ">=5.3"
|
1640 |
+
|
1641 |
+
[package.extras]
|
1642 |
+
docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"]
|
1643 |
+
test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"]
|
1644 |
+
|
1645 |
[[package]]
|
1646 |
name = "kiwisolver"
|
1647 |
version = "1.4.5"
|
|
|
1773 |
langchain-text-splitters = ">=0.2.0,<0.3.0"
|
1774 |
langsmith = ">=0.1.17,<0.2.0"
|
1775 |
numpy = [
|
|
|
1776 |
{version = ">=1.26.0,<2.0.0", markers = "python_version >= \"3.12\""},
|
1777 |
+
{version = ">=1,<2", markers = "python_version < \"3.12\""},
|
1778 |
]
|
1779 |
pydantic = ">=1,<3"
|
1780 |
PyYAML = ">=5.3"
|
|
|
1798 |
langsmith = ">=0.1.75,<0.2.0"
|
1799 |
packaging = ">=23.2,<25"
|
1800 |
pydantic = [
|
|
|
1801 |
{version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""},
|
1802 |
+
{version = ">=1,<3", markers = "python_full_version < \"3.12.4\""},
|
1803 |
]
|
1804 |
PyYAML = ">=5.3"
|
1805 |
tenacity = ">=8.1.0,<8.4.0 || >8.4.0,<9.0.0"
|
|
|
1863 |
[package.dependencies]
|
1864 |
orjson = ">=3.9.14,<4.0.0"
|
1865 |
pydantic = [
|
|
|
1866 |
{version = ">=2.7.4,<3.0.0", markers = "python_full_version >= \"3.12.4\""},
|
1867 |
+
{version = ">=1,<3", markers = "python_full_version < \"3.12.4\""},
|
1868 |
]
|
1869 |
requests = ">=2,<3"
|
1870 |
|
|
|
2013 |
[package.extras]
|
2014 |
dev = ["meson-python (>=0.13.1)", "numpy (>=1.25)", "pybind11 (>=2.6)", "setuptools (>=64)", "setuptools_scm (>=7)"]
|
2015 |
|
2016 |
+
[[package]]
|
2017 |
+
name = "matplotlib-inline"
|
2018 |
+
version = "0.1.7"
|
2019 |
+
description = "Inline Matplotlib backend for Jupyter"
|
2020 |
+
optional = false
|
2021 |
+
python-versions = ">=3.8"
|
2022 |
+
files = [
|
2023 |
+
{file = "matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca"},
|
2024 |
+
{file = "matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90"},
|
2025 |
+
]
|
2026 |
+
|
2027 |
+
[package.dependencies]
|
2028 |
+
traitlets = "*"
|
2029 |
+
|
2030 |
[[package]]
|
2031 |
name = "mdurl"
|
2032 |
version = "0.1.2"
|
|
|
2161 |
[package.dependencies]
|
2162 |
dill = ">=0.3.8"
|
2163 |
|
2164 |
+
[[package]]
|
2165 |
+
name = "nest-asyncio"
|
2166 |
+
version = "1.6.0"
|
2167 |
+
description = "Patch asyncio to allow nested event loops"
|
2168 |
+
optional = false
|
2169 |
+
python-versions = ">=3.5"
|
2170 |
+
files = [
|
2171 |
+
{file = "nest_asyncio-1.6.0-py3-none-any.whl", hash = "sha256:87af6efd6b5e897c81050477ef65c62e2b2f35d51703cae01aff2905b1852e1c"},
|
2172 |
+
{file = "nest_asyncio-1.6.0.tar.gz", hash = "sha256:6f172d5449aca15afd6c646851f4e31e02c598d553a667e38cafa997cfec55fe"},
|
2173 |
+
]
|
2174 |
+
|
2175 |
[[package]]
|
2176 |
name = "numpy"
|
2177 |
version = "1.26.4"
|
|
|
2352 |
|
2353 |
[package.dependencies]
|
2354 |
numpy = [
|
2355 |
+
{version = ">=1.26.0", markers = "python_version >= \"3.12\""},
|
2356 |
{version = ">=1.22.4", markers = "python_version < \"3.11\""},
|
2357 |
{version = ">=1.23.2", markers = "python_version == \"3.11\""},
|
|
|
2358 |
]
|
2359 |
python-dateutil = ">=2.8.2"
|
2360 |
pytz = ">=2020.1"
|
|
|
2385 |
test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"]
|
2386 |
xml = ["lxml (>=4.9.2)"]
|
2387 |
|
2388 |
+
[[package]]
|
2389 |
+
name = "parso"
|
2390 |
+
version = "0.8.4"
|
2391 |
+
description = "A Python Parser"
|
2392 |
+
optional = false
|
2393 |
+
python-versions = ">=3.6"
|
2394 |
+
files = [
|
2395 |
+
{file = "parso-0.8.4-py2.py3-none-any.whl", hash = "sha256:a418670a20291dacd2dddc80c377c5c3791378ee1e8d12bffc35420643d43f18"},
|
2396 |
+
{file = "parso-0.8.4.tar.gz", hash = "sha256:eb3a7b58240fb99099a345571deecc0f9540ea5f4dd2fe14c2a99d6b281ab92d"},
|
2397 |
+
]
|
2398 |
+
|
2399 |
+
[package.extras]
|
2400 |
+
qa = ["flake8 (==5.0.4)", "mypy (==0.971)", "types-setuptools (==67.2.0.1)"]
|
2401 |
+
testing = ["docopt", "pytest"]
|
2402 |
+
|
2403 |
+
[[package]]
|
2404 |
+
name = "pexpect"
|
2405 |
+
version = "4.9.0"
|
2406 |
+
description = "Pexpect allows easy control of interactive console applications."
|
2407 |
+
optional = false
|
2408 |
+
python-versions = "*"
|
2409 |
+
files = [
|
2410 |
+
{file = "pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523"},
|
2411 |
+
{file = "pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f"},
|
2412 |
+
]
|
2413 |
+
|
2414 |
+
[package.dependencies]
|
2415 |
+
ptyprocess = ">=0.5"
|
2416 |
+
|
2417 |
[[package]]
|
2418 |
name = "pillow"
|
2419 |
version = "10.4.0"
|
|
|
2511 |
typing = ["typing-extensions"]
|
2512 |
xmp = ["defusedxml"]
|
2513 |
|
2514 |
+
[[package]]
|
2515 |
+
name = "platformdirs"
|
2516 |
+
version = "4.2.2"
|
2517 |
+
description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
|
2518 |
+
optional = false
|
2519 |
+
python-versions = ">=3.8"
|
2520 |
+
files = [
|
2521 |
+
{file = "platformdirs-4.2.2-py3-none-any.whl", hash = "sha256:2d7a1657e36a80ea911db832a8a6ece5ee53d8de21edd5cc5879af6530b1bfee"},
|
2522 |
+
{file = "platformdirs-4.2.2.tar.gz", hash = "sha256:38b7b51f512eed9e84a22788b4bce1de17c0adb134d6becb09836e37d8654cd3"},
|
2523 |
+
]
|
2524 |
+
|
2525 |
+
[package.extras]
|
2526 |
+
docs = ["furo (>=2023.9.10)", "proselint (>=0.13)", "sphinx (>=7.2.6)", "sphinx-autodoc-typehints (>=1.25.2)"]
|
2527 |
+
test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4.3)", "pytest-cov (>=4.1)", "pytest-mock (>=3.12)"]
|
2528 |
+
type = ["mypy (>=1.8)"]
|
2529 |
+
|
2530 |
[[package]]
|
2531 |
name = "pluggy"
|
2532 |
version = "1.5.0"
|
|
|
2542 |
dev = ["pre-commit", "tox"]
|
2543 |
testing = ["pytest", "pytest-benchmark"]
|
2544 |
|
2545 |
+
[[package]]
|
2546 |
+
name = "prompt-toolkit"
|
2547 |
+
version = "3.0.47"
|
2548 |
+
description = "Library for building powerful interactive command lines in Python"
|
2549 |
+
optional = false
|
2550 |
+
python-versions = ">=3.7.0"
|
2551 |
+
files = [
|
2552 |
+
{file = "prompt_toolkit-3.0.47-py3-none-any.whl", hash = "sha256:0d7bfa67001d5e39d02c224b663abc33687405033a8c422d0d675a5a13361d10"},
|
2553 |
+
{file = "prompt_toolkit-3.0.47.tar.gz", hash = "sha256:1e1b29cb58080b1e69f207c893a1a7bf16d127a5c30c9d17a25a5d77792e5360"},
|
2554 |
+
]
|
2555 |
+
|
2556 |
+
[package.dependencies]
|
2557 |
+
wcwidth = "*"
|
2558 |
+
|
2559 |
+
[[package]]
|
2560 |
+
name = "protobuf"
|
2561 |
+
version = "5.27.3"
|
2562 |
+
description = ""
|
2563 |
+
optional = false
|
2564 |
+
python-versions = ">=3.8"
|
2565 |
+
files = [
|
2566 |
+
{file = "protobuf-5.27.3-cp310-abi3-win32.whl", hash = "sha256:dcb307cd4ef8fec0cf52cb9105a03d06fbb5275ce6d84a6ae33bc6cf84e0a07b"},
|
2567 |
+
{file = "protobuf-5.27.3-cp310-abi3-win_amd64.whl", hash = "sha256:16ddf3f8c6c41e1e803da7abea17b1793a97ef079a912e42351eabb19b2cffe7"},
|
2568 |
+
{file = "protobuf-5.27.3-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:68248c60d53f6168f565a8c76dc58ba4fa2ade31c2d1ebdae6d80f969cdc2d4f"},
|
2569 |
+
{file = "protobuf-5.27.3-cp38-abi3-manylinux2014_aarch64.whl", hash = "sha256:b8a994fb3d1c11156e7d1e427186662b64694a62b55936b2b9348f0a7c6625ce"},
|
2570 |
+
{file = "protobuf-5.27.3-cp38-abi3-manylinux2014_x86_64.whl", hash = "sha256:a55c48f2a2092d8e213bd143474df33a6ae751b781dd1d1f4d953c128a415b25"},
|
2571 |
+
{file = "protobuf-5.27.3-cp38-cp38-win32.whl", hash = "sha256:043853dcb55cc262bf2e116215ad43fa0859caab79bb0b2d31b708f128ece035"},
|
2572 |
+
{file = "protobuf-5.27.3-cp38-cp38-win_amd64.whl", hash = "sha256:c2a105c24f08b1e53d6c7ffe69cb09d0031512f0b72f812dd4005b8112dbe91e"},
|
2573 |
+
{file = "protobuf-5.27.3-cp39-cp39-win32.whl", hash = "sha256:c84eee2c71ed83704f1afbf1a85c3171eab0fd1ade3b399b3fad0884cbcca8bf"},
|
2574 |
+
{file = "protobuf-5.27.3-cp39-cp39-win_amd64.whl", hash = "sha256:af7c0b7cfbbb649ad26132e53faa348580f844d9ca46fd3ec7ca48a1ea5db8a1"},
|
2575 |
+
{file = "protobuf-5.27.3-py3-none-any.whl", hash = "sha256:8572c6533e544ebf6899c360e91d6bcbbee2549251643d32c52cf8a5de295ba5"},
|
2576 |
+
{file = "protobuf-5.27.3.tar.gz", hash = "sha256:82460903e640f2b7e34ee81a947fdaad89de796d324bcbc38ff5430bcdead82c"},
|
2577 |
+
]
|
2578 |
+
|
2579 |
+
[[package]]
|
2580 |
+
name = "psutil"
|
2581 |
+
version = "6.0.0"
|
2582 |
+
description = "Cross-platform lib for process and system monitoring in Python."
|
2583 |
+
optional = false
|
2584 |
+
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
|
2585 |
+
files = [
|
2586 |
+
{file = "psutil-6.0.0-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:a021da3e881cd935e64a3d0a20983bda0bb4cf80e4f74fa9bfcb1bc5785360c6"},
|
2587 |
+
{file = "psutil-6.0.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:1287c2b95f1c0a364d23bc6f2ea2365a8d4d9b726a3be7294296ff7ba97c17f0"},
|
2588 |
+
{file = "psutil-6.0.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:a9a3dbfb4de4f18174528d87cc352d1f788b7496991cca33c6996f40c9e3c92c"},
|
2589 |
+
{file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:6ec7588fb3ddaec7344a825afe298db83fe01bfaaab39155fa84cf1c0d6b13c3"},
|
2590 |
+
{file = "psutil-6.0.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:1e7c870afcb7d91fdea2b37c24aeb08f98b6d67257a5cb0a8bc3ac68d0f1a68c"},
|
2591 |
+
{file = "psutil-6.0.0-cp27-none-win32.whl", hash = "sha256:02b69001f44cc73c1c5279d02b30a817e339ceb258ad75997325e0e6169d8b35"},
|
2592 |
+
{file = "psutil-6.0.0-cp27-none-win_amd64.whl", hash = "sha256:21f1fb635deccd510f69f485b87433460a603919b45e2a324ad65b0cc74f8fb1"},
|
2593 |
+
{file = "psutil-6.0.0-cp36-abi3-macosx_10_9_x86_64.whl", hash = "sha256:c588a7e9b1173b6e866756dde596fd4cad94f9399daf99ad8c3258b3cb2b47a0"},
|
2594 |
+
{file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ed2440ada7ef7d0d608f20ad89a04ec47d2d3ab7190896cd62ca5fc4fe08bf0"},
|
2595 |
+
{file = "psutil-6.0.0-cp36-abi3-manylinux_2_12_x86_64.manylinux2010_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5fd9a97c8e94059b0ef54a7d4baf13b405011176c3b6ff257c247cae0d560ecd"},
|
2596 |
+
{file = "psutil-6.0.0-cp36-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e8d0054fc88153ca0544f5c4d554d42e33df2e009c4ff42284ac9ebdef4132"},
|
2597 |
+
{file = "psutil-6.0.0-cp36-cp36m-win32.whl", hash = "sha256:fc8c9510cde0146432bbdb433322861ee8c3efbf8589865c8bf8d21cb30c4d14"},
|
2598 |
+
{file = "psutil-6.0.0-cp36-cp36m-win_amd64.whl", hash = "sha256:34859b8d8f423b86e4385ff3665d3f4d94be3cdf48221fbe476e883514fdb71c"},
|
2599 |
+
{file = "psutil-6.0.0-cp37-abi3-win32.whl", hash = "sha256:a495580d6bae27291324fe60cea0b5a7c23fa36a7cd35035a16d93bdcf076b9d"},
|
2600 |
+
{file = "psutil-6.0.0-cp37-abi3-win_amd64.whl", hash = "sha256:33ea5e1c975250a720b3a6609c490db40dae5d83a4eb315170c4fe0d8b1f34b3"},
|
2601 |
+
{file = "psutil-6.0.0-cp38-abi3-macosx_11_0_arm64.whl", hash = "sha256:ffe7fc9b6b36beadc8c322f84e1caff51e8703b88eee1da46d1e3a6ae11b4fd0"},
|
2602 |
+
{file = "psutil-6.0.0.tar.gz", hash = "sha256:8faae4f310b6d969fa26ca0545338b21f73c6b15db7c4a8d934a5482faa818f2"},
|
2603 |
+
]
|
2604 |
+
|
2605 |
+
[package.extras]
|
2606 |
+
test = ["enum34", "ipaddress", "mock", "pywin32", "wmi"]
|
2607 |
+
|
2608 |
+
[[package]]
|
2609 |
+
name = "ptyprocess"
|
2610 |
+
version = "0.7.0"
|
2611 |
+
description = "Run a subprocess in a pseudo terminal"
|
2612 |
+
optional = false
|
2613 |
+
python-versions = "*"
|
2614 |
+
files = [
|
2615 |
+
{file = "ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35"},
|
2616 |
+
{file = "ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220"},
|
2617 |
+
]
|
2618 |
+
|
2619 |
+
[[package]]
|
2620 |
+
name = "pure-eval"
|
2621 |
+
version = "0.2.3"
|
2622 |
+
description = "Safely evaluate AST nodes without side effects"
|
2623 |
+
optional = false
|
2624 |
+
python-versions = "*"
|
2625 |
+
files = [
|
2626 |
+
{file = "pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0"},
|
2627 |
+
{file = "pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42"},
|
2628 |
+
]
|
2629 |
+
|
2630 |
+
[package.extras]
|
2631 |
+
tests = ["pytest"]
|
2632 |
+
|
2633 |
[[package]]
|
2634 |
name = "pyarrow"
|
2635 |
version = "16.1.0"
|
|
|
2689 |
{file = "pyarrow_hotfix-0.6.tar.gz", hash = "sha256:79d3e030f7ff890d408a100ac16d6f00b14d44a502d7897cd9fc3e3a534e9945"},
|
2690 |
]
|
2691 |
|
2692 |
+
[[package]]
|
2693 |
+
name = "pycparser"
|
2694 |
+
version = "2.22"
|
2695 |
+
description = "C parser in Python"
|
2696 |
+
optional = false
|
2697 |
+
python-versions = ">=3.8"
|
2698 |
+
files = [
|
2699 |
+
{file = "pycparser-2.22-py3-none-any.whl", hash = "sha256:c3702b6d3dd8c7abc1afa565d7e63d53a1d0bd86cdc24edd75470f4de499cfcc"},
|
2700 |
+
{file = "pycparser-2.22.tar.gz", hash = "sha256:491c8be9c040f5390f5bf44a5b07752bd07f56edf992381b05c701439eec10f6"},
|
2701 |
+
]
|
2702 |
+
|
2703 |
[[package]]
|
2704 |
name = "pydantic"
|
2705 |
version = "2.8.2"
|
|
|
2715 |
annotated-types = ">=0.4.0"
|
2716 |
pydantic-core = "2.20.1"
|
2717 |
typing-extensions = [
|
|
|
2718 |
{version = ">=4.12.2", markers = "python_version >= \"3.13\""},
|
2719 |
+
{version = ">=4.6.1", markers = "python_version < \"3.13\""},
|
2720 |
]
|
2721 |
|
2722 |
[package.extras]
|
|
|
2823 |
[package.dependencies]
|
2824 |
typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
|
2825 |
|
2826 |
+
[[package]]
|
2827 |
+
name = "pydeck"
|
2828 |
+
version = "0.9.1"
|
2829 |
+
description = "Widget for deck.gl maps"
|
2830 |
+
optional = false
|
2831 |
+
python-versions = ">=3.8"
|
2832 |
+
files = [
|
2833 |
+
{file = "pydeck-0.9.1-py2.py3-none-any.whl", hash = "sha256:b3f75ba0d273fc917094fa61224f3f6076ca8752b93d46faf3bcfd9f9d59b038"},
|
2834 |
+
{file = "pydeck-0.9.1.tar.gz", hash = "sha256:f74475ae637951d63f2ee58326757f8d4f9cd9f2a457cf42950715003e2cb605"},
|
2835 |
+
]
|
2836 |
+
|
2837 |
+
[package.dependencies]
|
2838 |
+
jinja2 = ">=2.10.1"
|
2839 |
+
numpy = ">=1.16.4"
|
2840 |
+
|
2841 |
+
[package.extras]
|
2842 |
+
carto = ["pydeck-carto"]
|
2843 |
+
jupyter = ["ipykernel (>=5.1.2)", "ipython (>=5.8.0)", "ipywidgets (>=7,<8)", "traitlets (>=4.3.2)"]
|
2844 |
+
|
2845 |
[[package]]
|
2846 |
name = "pydub"
|
2847 |
version = "0.25.1"
|
|
|
2967 |
{file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"},
|
2968 |
]
|
2969 |
|
2970 |
+
[[package]]
|
2971 |
+
name = "pywin32"
|
2972 |
+
version = "306"
|
2973 |
+
description = "Python for Window Extensions"
|
2974 |
+
optional = false
|
2975 |
+
python-versions = "*"
|
2976 |
+
files = [
|
2977 |
+
{file = "pywin32-306-cp310-cp310-win32.whl", hash = "sha256:06d3420a5155ba65f0b72f2699b5bacf3109f36acbe8923765c22938a69dfc8d"},
|
2978 |
+
{file = "pywin32-306-cp310-cp310-win_amd64.whl", hash = "sha256:84f4471dbca1887ea3803d8848a1616429ac94a4a8d05f4bc9c5dcfd42ca99c8"},
|
2979 |
+
{file = "pywin32-306-cp311-cp311-win32.whl", hash = "sha256:e65028133d15b64d2ed8f06dd9fbc268352478d4f9289e69c190ecd6818b6407"},
|
2980 |
+
{file = "pywin32-306-cp311-cp311-win_amd64.whl", hash = "sha256:a7639f51c184c0272e93f244eb24dafca9b1855707d94c192d4a0b4c01e1100e"},
|
2981 |
+
{file = "pywin32-306-cp311-cp311-win_arm64.whl", hash = "sha256:70dba0c913d19f942a2db25217d9a1b726c278f483a919f1abfed79c9cf64d3a"},
|
2982 |
+
{file = "pywin32-306-cp312-cp312-win32.whl", hash = "sha256:383229d515657f4e3ed1343da8be101000562bf514591ff383ae940cad65458b"},
|
2983 |
+
{file = "pywin32-306-cp312-cp312-win_amd64.whl", hash = "sha256:37257794c1ad39ee9be652da0462dc2e394c8159dfd913a8a4e8eb6fd346da0e"},
|
2984 |
+
{file = "pywin32-306-cp312-cp312-win_arm64.whl", hash = "sha256:5821ec52f6d321aa59e2db7e0a35b997de60c201943557d108af9d4ae1ec7040"},
|
2985 |
+
{file = "pywin32-306-cp37-cp37m-win32.whl", hash = "sha256:1c73ea9a0d2283d889001998059f5eaaba3b6238f767c9cf2833b13e6a685f65"},
|
2986 |
+
{file = "pywin32-306-cp37-cp37m-win_amd64.whl", hash = "sha256:72c5f621542d7bdd4fdb716227be0dd3f8565c11b280be6315b06ace35487d36"},
|
2987 |
+
{file = "pywin32-306-cp38-cp38-win32.whl", hash = "sha256:e4c092e2589b5cf0d365849e73e02c391c1349958c5ac3e9d5ccb9a28e017b3a"},
|
2988 |
+
{file = "pywin32-306-cp38-cp38-win_amd64.whl", hash = "sha256:e8ac1ae3601bee6ca9f7cb4b5363bf1c0badb935ef243c4733ff9a393b1690c0"},
|
2989 |
+
{file = "pywin32-306-cp39-cp39-win32.whl", hash = "sha256:e25fd5b485b55ac9c057f67d94bc203f3f6595078d1fb3b458c9c28b7153a802"},
|
2990 |
+
{file = "pywin32-306-cp39-cp39-win_amd64.whl", hash = "sha256:39b61c15272833b5c329a2989999dcae836b1eed650252ab1b7bfbe1d59f30f4"},
|
2991 |
+
]
|
2992 |
+
|
2993 |
[[package]]
|
2994 |
name = "pyyaml"
|
2995 |
version = "6.0.1"
|
|
|
3050 |
{file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"},
|
3051 |
]
|
3052 |
|
3053 |
+
[[package]]
|
3054 |
+
name = "pyzmq"
|
3055 |
+
version = "26.2.0"
|
3056 |
+
description = "Python bindings for 0MQ"
|
3057 |
+
optional = false
|
3058 |
+
python-versions = ">=3.7"
|
3059 |
+
files = [
|
3060 |
+
{file = "pyzmq-26.2.0-cp310-cp310-macosx_10_15_universal2.whl", hash = "sha256:ddf33d97d2f52d89f6e6e7ae66ee35a4d9ca6f36eda89c24591b0c40205a3629"},
|
3061 |
+
{file = "pyzmq-26.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dacd995031a01d16eec825bf30802fceb2c3791ef24bcce48fa98ce40918c27b"},
|
3062 |
+
{file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:89289a5ee32ef6c439086184529ae060c741334b8970a6855ec0b6ad3ff28764"},
|
3063 |
+
{file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5506f06d7dc6ecf1efacb4a013b1f05071bb24b76350832c96449f4a2d95091c"},
|
3064 |
+
{file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8ea039387c10202ce304af74def5021e9adc6297067f3441d348d2b633e8166a"},
|
3065 |
+
{file = "pyzmq-26.2.0-cp310-cp310-manylinux_2_28_x86_64.whl", hash = "sha256:a2224fa4a4c2ee872886ed00a571f5e967c85e078e8e8c2530a2fb01b3309b88"},
|
3066 |
+
{file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:28ad5233e9c3b52d76196c696e362508959741e1a005fb8fa03b51aea156088f"},
|
3067 |
+
{file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:1c17211bc037c7d88e85ed8b7d8f7e52db6dc8eca5590d162717c654550f7282"},
|
3068 |
+
{file = "pyzmq-26.2.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b8f86dd868d41bea9a5f873ee13bf5551c94cf6bc51baebc6f85075971fe6eea"},
|
3069 |
+
{file = "pyzmq-26.2.0-cp310-cp310-win32.whl", hash = "sha256:46a446c212e58456b23af260f3d9fb785054f3e3653dbf7279d8f2b5546b21c2"},
|
3070 |
+
{file = "pyzmq-26.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:49d34ab71db5a9c292a7644ce74190b1dd5a3475612eefb1f8be1d6961441971"},
|
3071 |
+
{file = "pyzmq-26.2.0-cp310-cp310-win_arm64.whl", hash = "sha256:bfa832bfa540e5b5c27dcf5de5d82ebc431b82c453a43d141afb1e5d2de025fa"},
|
3072 |
+
{file = "pyzmq-26.2.0-cp311-cp311-macosx_10_15_universal2.whl", hash = "sha256:8f7e66c7113c684c2b3f1c83cdd3376103ee0ce4c49ff80a648643e57fb22218"},
|
3073 |
+
{file = "pyzmq-26.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3a495b30fc91db2db25120df5847d9833af237546fd59170701acd816ccc01c4"},
|
3074 |
+
{file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77eb0968da535cba0470a5165468b2cac7772cfb569977cff92e240f57e31bef"},
|
3075 |
+
{file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ace4f71f1900a548f48407fc9be59c6ba9d9aaf658c2eea6cf2779e72f9f317"},
|
3076 |
+
{file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:92a78853d7280bffb93df0a4a6a2498cba10ee793cc8076ef797ef2f74d107cf"},
|
3077 |
+
{file = "pyzmq-26.2.0-cp311-cp311-manylinux_2_28_x86_64.whl", hash = "sha256:689c5d781014956a4a6de61d74ba97b23547e431e9e7d64f27d4922ba96e9d6e"},
|
3078 |
+
{file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0aca98bc423eb7d153214b2df397c6421ba6373d3397b26c057af3c904452e37"},
|
3079 |
+
{file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f3496d76b89d9429a656293744ceca4d2ac2a10ae59b84c1da9b5165f429ad3"},
|
3080 |
+
{file = "pyzmq-26.2.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:5c2b3bfd4b9689919db068ac6c9911f3fcb231c39f7dd30e3138be94896d18e6"},
|
3081 |
+
{file = "pyzmq-26.2.0-cp311-cp311-win32.whl", hash = "sha256:eac5174677da084abf378739dbf4ad245661635f1600edd1221f150b165343f4"},
|
3082 |
+
{file = "pyzmq-26.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:5a509df7d0a83a4b178d0f937ef14286659225ef4e8812e05580776c70e155d5"},
|
3083 |
+
{file = "pyzmq-26.2.0-cp311-cp311-win_arm64.whl", hash = "sha256:c0e6091b157d48cbe37bd67233318dbb53e1e6327d6fc3bb284afd585d141003"},
|
3084 |
+
{file = "pyzmq-26.2.0-cp312-cp312-macosx_10_15_universal2.whl", hash = "sha256:ded0fc7d90fe93ae0b18059930086c51e640cdd3baebdc783a695c77f123dcd9"},
|
3085 |
+
{file = "pyzmq-26.2.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:17bf5a931c7f6618023cdacc7081f3f266aecb68ca692adac015c383a134ca52"},
|
3086 |
+
{file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55cf66647e49d4621a7e20c8d13511ef1fe1efbbccf670811864452487007e08"},
|
3087 |
+
{file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4661c88db4a9e0f958c8abc2b97472e23061f0bc737f6f6179d7a27024e1faa5"},
|
3088 |
+
{file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ea7f69de383cb47522c9c208aec6dd17697db7875a4674c4af3f8cfdac0bdeae"},
|
3089 |
+
{file = "pyzmq-26.2.0-cp312-cp312-manylinux_2_28_x86_64.whl", hash = "sha256:7f98f6dfa8b8ccaf39163ce872bddacca38f6a67289116c8937a02e30bbe9711"},
|
3090 |
+
{file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:e3e0210287329272539eea617830a6a28161fbbd8a3271bf4150ae3e58c5d0e6"},
|
3091 |
+
{file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:6b274e0762c33c7471f1a7471d1a2085b1a35eba5cdc48d2ae319f28b6fc4de3"},
|
3092 |
+
{file = "pyzmq-26.2.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:29c6a4635eef69d68a00321e12a7d2559fe2dfccfa8efae3ffb8e91cd0b36a8b"},
|
3093 |
+
{file = "pyzmq-26.2.0-cp312-cp312-win32.whl", hash = "sha256:989d842dc06dc59feea09e58c74ca3e1678c812a4a8a2a419046d711031f69c7"},
|
3094 |
+
{file = "pyzmq-26.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:2a50625acdc7801bc6f74698c5c583a491c61d73c6b7ea4dee3901bb99adb27a"},
|
3095 |
+
{file = "pyzmq-26.2.0-cp312-cp312-win_arm64.whl", hash = "sha256:4d29ab8592b6ad12ebbf92ac2ed2bedcfd1cec192d8e559e2e099f648570e19b"},
|
3096 |
+
{file = "pyzmq-26.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9dd8cd1aeb00775f527ec60022004d030ddc51d783d056e3e23e74e623e33726"},
|
3097 |
+
{file = "pyzmq-26.2.0-cp313-cp313-macosx_10_15_universal2.whl", hash = "sha256:28c812d9757fe8acecc910c9ac9dafd2ce968c00f9e619db09e9f8f54c3a68a3"},
|
3098 |
+
{file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d80b1dd99c1942f74ed608ddb38b181b87476c6a966a88a950c7dee118fdf50"},
|
3099 |
+
{file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8c997098cc65e3208eca09303630e84d42718620e83b733d0fd69543a9cab9cb"},
|
3100 |
+
{file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7ad1bc8d1b7a18497dda9600b12dc193c577beb391beae5cd2349184db40f187"},
|
3101 |
+
{file = "pyzmq-26.2.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:bea2acdd8ea4275e1278350ced63da0b166421928276c7c8e3f9729d7402a57b"},
|
3102 |
+
{file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:23f4aad749d13698f3f7b64aad34f5fc02d6f20f05999eebc96b89b01262fb18"},
|
3103 |
+
{file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_i686.whl", hash = "sha256:a4f96f0d88accc3dbe4a9025f785ba830f968e21e3e2c6321ccdfc9aef755115"},
|
3104 |
+
{file = "pyzmq-26.2.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ced65e5a985398827cc9276b93ef6dfabe0273c23de8c7931339d7e141c2818e"},
|
3105 |
+
{file = "pyzmq-26.2.0-cp313-cp313-win32.whl", hash = "sha256:31507f7b47cc1ead1f6e86927f8ebb196a0bab043f6345ce070f412a59bf87b5"},
|
3106 |
+
{file = "pyzmq-26.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:70fc7fcf0410d16ebdda9b26cbd8bf8d803d220a7f3522e060a69a9c87bf7bad"},
|
3107 |
+
{file = "pyzmq-26.2.0-cp313-cp313-win_arm64.whl", hash = "sha256:c3789bd5768ab5618ebf09cef6ec2b35fed88709b104351748a63045f0ff9797"},
|
3108 |
+
{file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:034da5fc55d9f8da09015d368f519478a52675e558c989bfcb5cf6d4e16a7d2a"},
|
3109 |
+
{file = "pyzmq-26.2.0-cp313-cp313t-macosx_10_15_universal2.whl", hash = "sha256:c92d73464b886931308ccc45b2744e5968cbaade0b1d6aeb40d8ab537765f5bc"},
|
3110 |
+
{file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:794a4562dcb374f7dbbfb3f51d28fb40123b5a2abadee7b4091f93054909add5"},
|
3111 |
+
{file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:aee22939bb6075e7afededabad1a56a905da0b3c4e3e0c45e75810ebe3a52672"},
|
3112 |
+
{file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ae90ff9dad33a1cfe947d2c40cb9cb5e600d759ac4f0fd22616ce6540f72797"},
|
3113 |
+
{file = "pyzmq-26.2.0-cp313-cp313t-manylinux_2_28_x86_64.whl", hash = "sha256:43a47408ac52647dfabbc66a25b05b6a61700b5165807e3fbd40063fcaf46386"},
|
3114 |
+
{file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:25bf2374a2a8433633c65ccb9553350d5e17e60c8eb4de4d92cc6bd60f01d306"},
|
3115 |
+
{file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:007137c9ac9ad5ea21e6ad97d3489af654381324d5d3ba614c323f60dab8fae6"},
|
3116 |
+
{file = "pyzmq-26.2.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:470d4a4f6d48fb34e92d768b4e8a5cc3780db0d69107abf1cd7ff734b9766eb0"},
|
3117 |
+
{file = "pyzmq-26.2.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:3b55a4229ce5da9497dd0452b914556ae58e96a4381bb6f59f1305dfd7e53fc8"},
|
3118 |
+
{file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:9cb3a6460cdea8fe8194a76de8895707e61ded10ad0be97188cc8463ffa7e3a8"},
|
3119 |
+
{file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8ab5cad923cc95c87bffee098a27856c859bd5d0af31bd346035aa816b081fe1"},
|
3120 |
+
{file = "pyzmq-26.2.0-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9ed69074a610fad1c2fda66180e7b2edd4d31c53f2d1872bc2d1211563904cd9"},
|
3121 |
+
{file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:cccba051221b916a4f5e538997c45d7d136a5646442b1231b916d0164067ea27"},
|
3122 |
+
{file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:0eaa83fc4c1e271c24eaf8fb083cbccef8fde77ec8cd45f3c35a9a123e6da097"},
|
3123 |
+
{file = "pyzmq-26.2.0-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:9edda2df81daa129b25a39b86cb57dfdfe16f7ec15b42b19bfac503360d27a93"},
|
3124 |
+
{file = "pyzmq-26.2.0-cp37-cp37m-win32.whl", hash = "sha256:ea0eb6af8a17fa272f7b98d7bebfab7836a0d62738e16ba380f440fceca2d951"},
|
3125 |
+
{file = "pyzmq-26.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:4ff9dc6bc1664bb9eec25cd17506ef6672d506115095411e237d571e92a58231"},
|
3126 |
+
{file = "pyzmq-26.2.0-cp38-cp38-macosx_10_15_universal2.whl", hash = "sha256:2eb7735ee73ca1b0d71e0e67c3739c689067f055c764f73aac4cc8ecf958ee3f"},
|
3127 |
+
{file = "pyzmq-26.2.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1a534f43bc738181aa7cbbaf48e3eca62c76453a40a746ab95d4b27b1111a7d2"},
|
3128 |
+
{file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:aedd5dd8692635813368e558a05266b995d3d020b23e49581ddd5bbe197a8ab6"},
|
3129 |
+
{file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:8be4700cd8bb02cc454f630dcdf7cfa99de96788b80c51b60fe2fe1dac480289"},
|
3130 |
+
{file = "pyzmq-26.2.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fcc03fa4997c447dce58264e93b5aa2d57714fbe0f06c07b7785ae131512732"},
|
3131 |
+
{file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:402b190912935d3db15b03e8f7485812db350d271b284ded2b80d2e5704be780"},
|
3132 |
+
{file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:8685fa9c25ff00f550c1fec650430c4b71e4e48e8d852f7ddcf2e48308038640"},
|
3133 |
+
{file = "pyzmq-26.2.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:76589c020680778f06b7e0b193f4b6dd66d470234a16e1df90329f5e14a171cd"},
|
3134 |
+
{file = "pyzmq-26.2.0-cp38-cp38-win32.whl", hash = "sha256:8423c1877d72c041f2c263b1ec6e34360448decfb323fa8b94e85883043ef988"},
|
3135 |
+
{file = "pyzmq-26.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:76589f2cd6b77b5bdea4fca5992dc1c23389d68b18ccc26a53680ba2dc80ff2f"},
|
3136 |
+
{file = "pyzmq-26.2.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:b1d464cb8d72bfc1a3adc53305a63a8e0cac6bc8c5a07e8ca190ab8d3faa43c2"},
|
3137 |
+
{file = "pyzmq-26.2.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4da04c48873a6abdd71811c5e163bd656ee1b957971db7f35140a2d573f6949c"},
|
3138 |
+
{file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:d049df610ac811dcffdc147153b414147428567fbbc8be43bb8885f04db39d98"},
|
3139 |
+
{file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05590cdbc6b902101d0e65d6a4780af14dc22914cc6ab995d99b85af45362cc9"},
|
3140 |
+
{file = "pyzmq-26.2.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c811cfcd6a9bf680236c40c6f617187515269ab2912f3d7e8c0174898e2519db"},
|
3141 |
+
{file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6835dd60355593de10350394242b5757fbbd88b25287314316f266e24c61d073"},
|
3142 |
+
{file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc6bee759a6bddea5db78d7dcd609397449cb2d2d6587f48f3ca613b19410cfc"},
|
3143 |
+
{file = "pyzmq-26.2.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c530e1eecd036ecc83c3407f77bb86feb79916d4a33d11394b8234f3bd35b940"},
|
3144 |
+
{file = "pyzmq-26.2.0-cp39-cp39-win32.whl", hash = "sha256:367b4f689786fca726ef7a6c5ba606958b145b9340a5e4808132cc65759abd44"},
|
3145 |
+
{file = "pyzmq-26.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:e6fa2e3e683f34aea77de8112f6483803c96a44fd726d7358b9888ae5bb394ec"},
|
3146 |
+
{file = "pyzmq-26.2.0-cp39-cp39-win_arm64.whl", hash = "sha256:7445be39143a8aa4faec43b076e06944b8f9d0701b669df4af200531b21e40bb"},
|
3147 |
+
{file = "pyzmq-26.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:706e794564bec25819d21a41c31d4df2d48e1cc4b061e8d345d7fb4dd3e94072"},
|
3148 |
+
{file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b435f2753621cd36e7c1762156815e21c985c72b19135dac43a7f4f31d28dd1"},
|
3149 |
+
{file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:160c7e0a5eb178011e72892f99f918c04a131f36056d10d9c1afb223fc952c2d"},
|
3150 |
+
{file = "pyzmq-26.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2c4a71d5d6e7b28a47a394c0471b7e77a0661e2d651e7ae91e0cab0a587859ca"},
|
3151 |
+
{file = "pyzmq-26.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:90412f2db8c02a3864cbfc67db0e3dcdbda336acf1c469526d3e869394fe001c"},
|
3152 |
+
{file = "pyzmq-26.2.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:2ea4ad4e6a12e454de05f2949d4beddb52460f3de7c8b9d5c46fbb7d7222e02c"},
|
3153 |
+
{file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fc4f7a173a5609631bb0c42c23d12c49df3966f89f496a51d3eb0ec81f4519d6"},
|
3154 |
+
{file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:878206a45202247781472a2d99df12a176fef806ca175799e1c6ad263510d57c"},
|
3155 |
+
{file = "pyzmq-26.2.0-pp37-pypy37_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:17c412bad2eb9468e876f556eb4ee910e62d721d2c7a53c7fa31e643d35352e6"},
|
3156 |
+
{file = "pyzmq-26.2.0-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:0d987a3ae5a71c6226b203cfd298720e0086c7fe7c74f35fa8edddfbd6597eed"},
|
3157 |
+
{file = "pyzmq-26.2.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:39887ac397ff35b7b775db7201095fc6310a35fdbae85bac4523f7eb3b840e20"},
|
3158 |
+
{file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fdb5b3e311d4d4b0eb8b3e8b4d1b0a512713ad7e6a68791d0923d1aec433d919"},
|
3159 |
+
{file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:226af7dcb51fdb0109f0016449b357e182ea0ceb6b47dfb5999d569e5db161d5"},
|
3160 |
+
{file = "pyzmq-26.2.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bed0e799e6120b9c32756203fb9dfe8ca2fb8467fed830c34c877e25638c3fc"},
|
3161 |
+
{file = "pyzmq-26.2.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:29c7947c594e105cb9e6c466bace8532dc1ca02d498684128b339799f5248277"},
|
3162 |
+
{file = "pyzmq-26.2.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:cdeabcff45d1c219636ee2e54d852262e5c2e085d6cb476d938aee8d921356b3"},
|
3163 |
+
{file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:35cffef589bcdc587d06f9149f8d5e9e8859920a071df5a2671de2213bef592a"},
|
3164 |
+
{file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18c8dc3b7468d8b4bdf60ce9d7141897da103c7a4690157b32b60acb45e333e6"},
|
3165 |
+
{file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7133d0a1677aec369d67dd78520d3fa96dd7f3dcec99d66c1762870e5ea1a50a"},
|
3166 |
+
{file = "pyzmq-26.2.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:6a96179a24b14fa6428cbfc08641c779a53f8fcec43644030328f44034c7f1f4"},
|
3167 |
+
{file = "pyzmq-26.2.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:4f78c88905461a9203eac9faac157a2a0dbba84a0fd09fd29315db27be40af9f"},
|
3168 |
+
{file = "pyzmq-26.2.0.tar.gz", hash = "sha256:070672c258581c8e4f640b5159297580a9974b026043bd4ab0470be9ed324f1f"},
|
3169 |
+
]
|
3170 |
+
|
3171 |
+
[package.dependencies]
|
3172 |
+
cffi = {version = "*", markers = "implementation_name == \"pypy\""}
|
3173 |
+
|
3174 |
[[package]]
|
3175 |
name = "referencing"
|
3176 |
version = "0.35.1"
|
|
|
3485 |
{file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"},
|
3486 |
]
|
3487 |
|
3488 |
+
[[package]]
|
3489 |
+
name = "smmap"
|
3490 |
+
version = "5.0.1"
|
3491 |
+
description = "A pure Python implementation of a sliding window memory map manager"
|
3492 |
+
optional = false
|
3493 |
+
python-versions = ">=3.7"
|
3494 |
+
files = [
|
3495 |
+
{file = "smmap-5.0.1-py3-none-any.whl", hash = "sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da"},
|
3496 |
+
{file = "smmap-5.0.1.tar.gz", hash = "sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62"},
|
3497 |
+
]
|
3498 |
+
|
3499 |
[[package]]
|
3500 |
name = "sniffio"
|
3501 |
version = "1.3.1"
|
|
|
3594 |
pymysql = ["pymysql"]
|
3595 |
sqlcipher = ["sqlcipher3_binary"]
|
3596 |
|
3597 |
+
[[package]]
|
3598 |
+
name = "stack-data"
|
3599 |
+
version = "0.6.3"
|
3600 |
+
description = "Extract data from python stack frames and tracebacks for informative displays"
|
3601 |
+
optional = false
|
3602 |
+
python-versions = "*"
|
3603 |
+
files = [
|
3604 |
+
{file = "stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695"},
|
3605 |
+
{file = "stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9"},
|
3606 |
+
]
|
3607 |
+
|
3608 |
+
[package.dependencies]
|
3609 |
+
asttokens = ">=2.1.0"
|
3610 |
+
executing = ">=1.2.0"
|
3611 |
+
pure-eval = "*"
|
3612 |
+
|
3613 |
+
[package.extras]
|
3614 |
+
tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"]
|
3615 |
+
|
3616 |
[[package]]
|
3617 |
name = "starlette"
|
3618 |
version = "0.37.2"
|
|
|
3630 |
[package.extras]
|
3631 |
full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"]
|
3632 |
|
3633 |
+
[[package]]
|
3634 |
+
name = "streamlit"
|
3635 |
+
version = "1.38.0"
|
3636 |
+
description = "A faster way to build and share data apps"
|
3637 |
+
optional = false
|
3638 |
+
python-versions = "!=3.9.7,>=3.8"
|
3639 |
+
files = [
|
3640 |
+
{file = "streamlit-1.38.0-py2.py3-none-any.whl", hash = "sha256:0653ecfe86fef0f1608e3e082aef7eb335d8713f6f31e9c3b19486d1c67d7c41"},
|
3641 |
+
{file = "streamlit-1.38.0.tar.gz", hash = "sha256:c4bf36b3ef871499ed4594574834583113f93f077dd3035d516d295786f2ad63"},
|
3642 |
+
]
|
3643 |
+
|
3644 |
+
[package.dependencies]
|
3645 |
+
altair = ">=4.0,<6"
|
3646 |
+
blinker = ">=1.0.0,<2"
|
3647 |
+
cachetools = ">=4.0,<6"
|
3648 |
+
click = ">=7.0,<9"
|
3649 |
+
gitpython = ">=3.0.7,<3.1.19 || >3.1.19,<4"
|
3650 |
+
numpy = ">=1.20,<3"
|
3651 |
+
packaging = ">=20,<25"
|
3652 |
+
pandas = ">=1.3.0,<3"
|
3653 |
+
pillow = ">=7.1.0,<11"
|
3654 |
+
protobuf = ">=3.20,<6"
|
3655 |
+
pyarrow = ">=7.0"
|
3656 |
+
pydeck = ">=0.8.0b4,<1"
|
3657 |
+
requests = ">=2.27,<3"
|
3658 |
+
rich = ">=10.14.0,<14"
|
3659 |
+
tenacity = ">=8.1.0,<9"
|
3660 |
+
toml = ">=0.10.1,<2"
|
3661 |
+
tornado = ">=6.0.3,<7"
|
3662 |
+
typing-extensions = ">=4.3.0,<5"
|
3663 |
+
watchdog = {version = ">=2.1.5,<5", markers = "platform_system != \"Darwin\""}
|
3664 |
+
|
3665 |
+
[package.extras]
|
3666 |
+
snowflake = ["snowflake-connector-python (>=2.8.0)", "snowflake-snowpark-python[modin] (>=1.17.0)"]
|
3667 |
+
|
3668 |
[[package]]
|
3669 |
name = "tenacity"
|
3670 |
version = "8.4.2"
|
|
|
3776 |
{file = "toolz-0.12.1.tar.gz", hash = "sha256:ecca342664893f177a13dac0e6b41cbd8ac25a358e5f215316d43e2100224f4d"},
|
3777 |
]
|
3778 |
|
3779 |
+
[[package]]
|
3780 |
+
name = "tornado"
|
3781 |
+
version = "6.4.1"
|
3782 |
+
description = "Tornado is a Python web framework and asynchronous networking library, originally developed at FriendFeed."
|
3783 |
+
optional = false
|
3784 |
+
python-versions = ">=3.8"
|
3785 |
+
files = [
|
3786 |
+
{file = "tornado-6.4.1-cp38-abi3-macosx_10_9_universal2.whl", hash = "sha256:163b0aafc8e23d8cdc3c9dfb24c5368af84a81e3364745ccb4427669bf84aec8"},
|
3787 |
+
{file = "tornado-6.4.1-cp38-abi3-macosx_10_9_x86_64.whl", hash = "sha256:6d5ce3437e18a2b66fbadb183c1d3364fb03f2be71299e7d10dbeeb69f4b2a14"},
|
3788 |
+
{file = "tornado-6.4.1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e2e20b9113cd7293f164dc46fffb13535266e713cdb87bd2d15ddb336e96cfc4"},
|
3789 |
+
{file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ae50a504a740365267b2a8d1a90c9fbc86b780a39170feca9bcc1787ff80842"},
|
3790 |
+
{file = "tornado-6.4.1-cp38-abi3-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:613bf4ddf5c7a95509218b149b555621497a6cc0d46ac341b30bd9ec19eac7f3"},
|
3791 |
+
{file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:25486eb223babe3eed4b8aecbac33b37e3dd6d776bc730ca14e1bf93888b979f"},
|
3792 |
+
{file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:454db8a7ecfcf2ff6042dde58404164d969b6f5d58b926da15e6b23817950fc4"},
|
3793 |
+
{file = "tornado-6.4.1-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a02a08cc7a9314b006f653ce40483b9b3c12cda222d6a46d4ac63bb6c9057698"},
|
3794 |
+
{file = "tornado-6.4.1-cp38-abi3-win32.whl", hash = "sha256:d9a566c40b89757c9aa8e6f032bcdb8ca8795d7c1a9762910c722b1635c9de4d"},
|
3795 |
+
{file = "tornado-6.4.1-cp38-abi3-win_amd64.whl", hash = "sha256:b24b8982ed444378d7f21d563f4180a2de31ced9d8d84443907a0a64da2072e7"},
|
3796 |
+
{file = "tornado-6.4.1.tar.gz", hash = "sha256:92d3ab53183d8c50f8204a51e6f91d18a15d5ef261e84d452800d4ff6fc504e9"},
|
3797 |
+
]
|
3798 |
+
|
3799 |
[[package]]
|
3800 |
name = "tqdm"
|
3801 |
version = "4.66.4"
|
|
|
3816 |
slack = ["slack-sdk"]
|
3817 |
telegram = ["requests"]
|
3818 |
|
3819 |
+
[[package]]
|
3820 |
+
name = "traitlets"
|
3821 |
+
version = "5.14.3"
|
3822 |
+
description = "Traitlets Python configuration system"
|
3823 |
+
optional = false
|
3824 |
+
python-versions = ">=3.8"
|
3825 |
+
files = [
|
3826 |
+
{file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"},
|
3827 |
+
{file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"},
|
3828 |
+
]
|
3829 |
+
|
3830 |
+
[package.extras]
|
3831 |
+
docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"]
|
3832 |
+
test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"]
|
3833 |
+
|
3834 |
[[package]]
|
3835 |
name = "typer"
|
3836 |
version = "0.12.3"
|
|
|
4044 |
docs = ["Sphinx (>=4.1.2,<4.2.0)", "sphinx-rtd-theme (>=0.5.2,<0.6.0)", "sphinxcontrib-asyncio (>=0.3.0,<0.4.0)"]
|
4045 |
test = ["Cython (>=0.29.36,<0.30.0)", "aiohttp (==3.9.0b0)", "aiohttp (>=3.8.1)", "flake8 (>=5.0,<6.0)", "mypy (>=0.800)", "psutil", "pyOpenSSL (>=23.0.0,<23.1.0)", "pycodestyle (>=2.9.0,<2.10.0)"]
|
4046 |
|
4047 |
+
[[package]]
|
4048 |
+
name = "watchdog"
|
4049 |
+
version = "4.0.2"
|
4050 |
+
description = "Filesystem events monitoring"
|
4051 |
+
optional = false
|
4052 |
+
python-versions = ">=3.8"
|
4053 |
+
files = [
|
4054 |
+
{file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ede7f010f2239b97cc79e6cb3c249e72962404ae3865860855d5cbe708b0fd22"},
|
4055 |
+
{file = "watchdog-4.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a2cffa171445b0efa0726c561eca9a27d00a1f2b83846dbd5a4f639c4f8ca8e1"},
|
4056 |
+
{file = "watchdog-4.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c50f148b31b03fbadd6d0b5980e38b558046b127dc483e5e4505fcef250f9503"},
|
4057 |
+
{file = "watchdog-4.0.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7c7d4bf585ad501c5f6c980e7be9c4f15604c7cc150e942d82083b31a7548930"},
|
4058 |
+
{file = "watchdog-4.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:914285126ad0b6eb2258bbbcb7b288d9dfd655ae88fa28945be05a7b475a800b"},
|
4059 |
+
{file = "watchdog-4.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:984306dc4720da5498b16fc037b36ac443816125a3705dfde4fd90652d8028ef"},
|
4060 |
+
{file = "watchdog-4.0.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:1cdcfd8142f604630deef34722d695fb455d04ab7cfe9963055df1fc69e6727a"},
|
4061 |
+
{file = "watchdog-4.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7ab624ff2f663f98cd03c8b7eedc09375a911794dfea6bf2a359fcc266bff29"},
|
4062 |
+
{file = "watchdog-4.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:132937547a716027bd5714383dfc40dc66c26769f1ce8a72a859d6a48f371f3a"},
|
4063 |
+
{file = "watchdog-4.0.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:cd67c7df93eb58f360c43802acc945fa8da70c675b6fa37a241e17ca698ca49b"},
|
4064 |
+
{file = "watchdog-4.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:bcfd02377be80ef3b6bc4ce481ef3959640458d6feaae0bd43dd90a43da90a7d"},
|
4065 |
+
{file = "watchdog-4.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:980b71510f59c884d684b3663d46e7a14b457c9611c481e5cef08f4dd022eed7"},
|
4066 |
+
{file = "watchdog-4.0.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:aa160781cafff2719b663c8a506156e9289d111d80f3387cf3af49cedee1f040"},
|
4067 |
+
{file = "watchdog-4.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f6ee8dedd255087bc7fe82adf046f0b75479b989185fb0bdf9a98b612170eac7"},
|
4068 |
+
{file = "watchdog-4.0.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0b4359067d30d5b864e09c8597b112fe0a0a59321a0f331498b013fb097406b4"},
|
4069 |
+
{file = "watchdog-4.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:770eef5372f146997638d737c9a3c597a3b41037cfbc5c41538fc27c09c3a3f9"},
|
4070 |
+
{file = "watchdog-4.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eeea812f38536a0aa859972d50c76e37f4456474b02bd93674d1947cf1e39578"},
|
4071 |
+
{file = "watchdog-4.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b2c45f6e1e57ebb4687690c05bc3a2c1fb6ab260550c4290b8abb1335e0fd08b"},
|
4072 |
+
{file = "watchdog-4.0.2-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:10b6683df70d340ac3279eff0b2766813f00f35a1d37515d2c99959ada8f05fa"},
|
4073 |
+
{file = "watchdog-4.0.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7c739888c20f99824f7aa9d31ac8a97353e22d0c0e54703a547a218f6637eb3"},
|
4074 |
+
{file = "watchdog-4.0.2-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c100d09ac72a8a08ddbf0629ddfa0b8ee41740f9051429baa8e31bb903ad7508"},
|
4075 |
+
{file = "watchdog-4.0.2-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:f5315a8c8dd6dd9425b974515081fc0aadca1d1d61e078d2246509fd756141ee"},
|
4076 |
+
{file = "watchdog-4.0.2-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:2d468028a77b42cc685ed694a7a550a8d1771bb05193ba7b24006b8241a571a1"},
|
4077 |
+
{file = "watchdog-4.0.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:f15edcae3830ff20e55d1f4e743e92970c847bcddc8b7509bcd172aa04de506e"},
|
4078 |
+
{file = "watchdog-4.0.2-py3-none-manylinux2014_aarch64.whl", hash = "sha256:936acba76d636f70db8f3c66e76aa6cb5136a936fc2a5088b9ce1c7a3508fc83"},
|
4079 |
+
{file = "watchdog-4.0.2-py3-none-manylinux2014_armv7l.whl", hash = "sha256:e252f8ca942a870f38cf785aef420285431311652d871409a64e2a0a52a2174c"},
|
4080 |
+
{file = "watchdog-4.0.2-py3-none-manylinux2014_i686.whl", hash = "sha256:0e83619a2d5d436a7e58a1aea957a3c1ccbf9782c43c0b4fed80580e5e4acd1a"},
|
4081 |
+
{file = "watchdog-4.0.2-py3-none-manylinux2014_ppc64.whl", hash = "sha256:88456d65f207b39f1981bf772e473799fcdc10801062c36fd5ad9f9d1d463a73"},
|
4082 |
+
{file = "watchdog-4.0.2-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:32be97f3b75693a93c683787a87a0dc8db98bb84701539954eef991fb35f5fbc"},
|
4083 |
+
{file = "watchdog-4.0.2-py3-none-manylinux2014_s390x.whl", hash = "sha256:c82253cfc9be68e3e49282831afad2c1f6593af80c0daf1287f6a92657986757"},
|
4084 |
+
{file = "watchdog-4.0.2-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c0b14488bd336c5b1845cee83d3e631a1f8b4e9c5091ec539406e4a324f882d8"},
|
4085 |
+
{file = "watchdog-4.0.2-py3-none-win32.whl", hash = "sha256:0d8a7e523ef03757a5aa29f591437d64d0d894635f8a50f370fe37f913ce4e19"},
|
4086 |
+
{file = "watchdog-4.0.2-py3-none-win_amd64.whl", hash = "sha256:c344453ef3bf875a535b0488e3ad28e341adbd5a9ffb0f7d62cefacc8824ef2b"},
|
4087 |
+
{file = "watchdog-4.0.2-py3-none-win_ia64.whl", hash = "sha256:baececaa8edff42cd16558a639a9b0ddf425f93d892e8392a56bf904f5eff22c"},
|
4088 |
+
{file = "watchdog-4.0.2.tar.gz", hash = "sha256:b4dfbb6c49221be4535623ea4474a4d6ee0a9cef4a80b20c28db4d858b64e270"},
|
4089 |
+
]
|
4090 |
+
|
4091 |
+
[package.extras]
|
4092 |
+
watchmedo = ["PyYAML (>=3.10)"]
|
4093 |
+
|
4094 |
[[package]]
|
4095 |
name = "watchfiles"
|
4096 |
version = "0.22.0"
|
|
|
4178 |
[package.dependencies]
|
4179 |
anyio = ">=3.0.0"
|
4180 |
|
4181 |
+
[[package]]
|
4182 |
+
name = "wcwidth"
|
4183 |
+
version = "0.2.13"
|
4184 |
+
description = "Measures the displayed width of unicode strings in a terminal"
|
4185 |
+
optional = false
|
4186 |
+
python-versions = "*"
|
4187 |
+
files = [
|
4188 |
+
{file = "wcwidth-0.2.13-py2.py3-none-any.whl", hash = "sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859"},
|
4189 |
+
{file = "wcwidth-0.2.13.tar.gz", hash = "sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5"},
|
4190 |
+
]
|
4191 |
+
|
4192 |
[[package]]
|
4193 |
name = "websockets"
|
4194 |
version = "11.0.3"
|
|
|
4491 |
[metadata]
|
4492 |
lock-version = "2.0"
|
4493 |
python-versions = "^3.10"
|
4494 |
+
content-hash = "0def275bcab7394a1ef5ece60bb91b6ad2e2adf3b80219893bb7bdb64a294f1c"
|
pyproject.toml
CHANGED
@@ -12,6 +12,7 @@ langchain = "^0.2.6"
|
|
12 |
langchain-openai = "^0.1.14"
|
13 |
pydantic = "^2.8.2"
|
14 |
python-json-logger = "^2.0.7"
|
|
|
15 |
|
16 |
[tool.poetry.dev-dependencies]
|
17 |
gradio = "^4.37.2"
|
@@ -20,6 +21,8 @@ confz = "^2.0.1"
|
|
20 |
[tool.poetry.group.dev.dependencies]
|
21 |
pytest = "^8.2.2"
|
22 |
datasets = "^2.20.0"
|
|
|
|
|
23 |
|
24 |
[build-system]
|
25 |
requires = ["poetry-core>=1.0.0"]
|
|
|
12 |
langchain-openai = "^0.1.14"
|
13 |
pydantic = "^2.8.2"
|
14 |
python-json-logger = "^2.0.7"
|
15 |
+
streamlit = "^1.38.0"
|
16 |
|
17 |
[tool.poetry.dev-dependencies]
|
18 |
gradio = "^4.37.2"
|
|
|
21 |
[tool.poetry.group.dev.dependencies]
|
22 |
pytest = "^8.2.2"
|
23 |
datasets = "^2.20.0"
|
24 |
+
streamlit = "^1.37.1"
|
25 |
+
ipykernel = "^6.29.5"
|
26 |
|
27 |
[build-system]
|
28 |
requires = ["poetry-core>=1.0.0"]
|
tests/task_example_generator_test.py
ADDED
@@ -0,0 +1,48 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import unittest
|
2 |
+
from unittest.mock import MagicMock
|
3 |
+
import json
|
4 |
+
from meta_prompt.sample_generator import TaskDescriptionGenerator
|
5 |
+
|
6 |
+
class TestTaskDescriptionGenerator(unittest.TestCase):
|
7 |
+
def setUp(self):
|
8 |
+
self.mock_model = MagicMock()
|
9 |
+
self.generator = TaskDescriptionGenerator(self.mock_model)
|
10 |
+
|
11 |
+
def test_load_and_validate_input_json(self):
|
12 |
+
valid_json = '{"input": "test input", "output": "test output"}'
|
13 |
+
result = self.generator.load_and_validate_input({"input_str": valid_json, "generating_batch_size": 3})
|
14 |
+
self.assertEqual(result, {"example": {"input": "test input", "output": "test output"}, "generating_batch_size": 3})
|
15 |
+
|
16 |
+
def test_load_and_validate_input_yaml(self):
|
17 |
+
valid_yaml = 'input: test input\noutput: test output'
|
18 |
+
result = self.generator.load_and_validate_input({"input_str": valid_yaml, "generating_batch_size": 3})
|
19 |
+
self.assertEqual(result, {"example": {"input": "test input", "output": "test output"}, "generating_batch_size": 3})
|
20 |
+
|
21 |
+
def test_process(self):
|
22 |
+
self.mock_model.return_value = "test description"
|
23 |
+
result = self.generator.process('{"input": "test input", "output": "test output"}', 3)
|
24 |
+
self.assertIn("description", result)
|
25 |
+
|
26 |
+
def test_generate_description(self):
|
27 |
+
self.mock_model.return_value = "test description"
|
28 |
+
result = self.generator.generate_description('{"input": "test input", "output": "test output"}')
|
29 |
+
self.assertEqual(result, "test description")
|
30 |
+
|
31 |
+
def test_analyze_input(self):
|
32 |
+
self.mock_model.return_value = "test analysis"
|
33 |
+
result = self.generator.analyze_input("test description")
|
34 |
+
self.assertEqual(result, "test analysis")
|
35 |
+
|
36 |
+
def test_generate_briefs(self):
|
37 |
+
self.mock_model.return_value = "test briefs"
|
38 |
+
result = self.generator.generate_briefs("test description", "test analysis", 3)
|
39 |
+
self.assertEqual(result, "test briefs")
|
40 |
+
|
41 |
+
def test_generate_examples_from_briefs(self):
|
42 |
+
self.mock_model.return_value = {"examples": [{"input": "test input", "output": "test output"}]}
|
43 |
+
result = self.generator.generate_examples_from_briefs("test description", "test briefs", '{"input": "test input", "output": "test output"}', 3)
|
44 |
+
self.assertEqual(result, {"examples": [{"input": "test input", "output": "test output"}]})
|
45 |
+
|
46 |
+
def test_generate_examples_directly(self):
|
47 |
+
self.mock_model.return_value = {"examples": [{"input": "test input", "output": "test output"}]}
|
48 |
+
result = self.generator.generate_examples_
|