Gary Simmons commited on
Commit
6939dd2
·
1 Parent(s): 2eea0c9

add rate limitting

Browse files
Files changed (2) hide show
  1. app.py +131 -7
  2. requirements.txt +513 -4
app.py CHANGED
@@ -2,6 +2,11 @@ import os
2
  import gradio as gr
3
  import requests
4
  import pandas as pd
 
 
 
 
 
5
  from smolagents import (
6
  CodeAgent,
7
  DuckDuckGoSearchTool,
@@ -20,11 +25,110 @@ DEFAULT_API_URL = "https://agents-course-unit4-scoring.hf.space"
20
  # --- Basic Agent Definition ---
21
  # ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
22
 
23
- model = LiteLLMModel(
24
- model_id="gemini/gemini-2.5-flash",
25
- temperature=0.2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
  )
27
 
 
28
  class BasicAgent:
29
  def __init__(self, name: str = "GGSAgent"):
30
  self.name = name
@@ -38,21 +142,41 @@ class BasicAgent:
38
  model=model,
39
  max_steps=15,
40
  verbosity_level=1,
41
- additional_authorized_imports=["json", "math"]
 
42
  )
43
  print("BasicAgent initialized.")
 
44
  def __call__(self, question: str) -> str:
45
  print(f"Agent received question (first 50 chars): {question[:50]}...")
46
  try:
47
- response = self.code_agent({"input": question})
 
 
 
 
48
  print(f"Agent returning response: {response}")
49
  return response
50
  except Exception as e:
51
  print(f"Error in code agent: {e}")
52
  return f"AGENT ERROR: {e}"
53
-
54
 
55
- def run_and_submit_all( profile: gr.OAuthProfile | None):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
56
  """
57
  Fetches all questions, runs the BasicAgent on them, submits all answers,
58
  and displays the results.
 
2
  import gradio as gr
3
  import requests
4
  import pandas as pd
5
+ import time
6
+ import threading
7
+ import random
8
+ import re
9
+ from litellm import RateLimitError
10
  from smolagents import (
11
  CodeAgent,
12
  DuckDuckGoSearchTool,
 
25
  # --- Basic Agent Definition ---
26
  # ----- THIS IS WERE YOU CAN BUILD WHAT YOU WANT ------
27
 
28
+
29
+ class TokenBucketRateLimiter:
30
+ """Simple token-bucket rate limiter.
31
+
32
+ capacity: max tokens in bucket (burst size)
33
+ refill_rate: tokens added per second
34
+ """
35
+
36
+ def __init__(self, capacity: int, refill_rate: float):
37
+ self.capacity = float(capacity)
38
+ self._tokens = float(capacity)
39
+ self.refill_rate = float(refill_rate)
40
+ self._lock = threading.Lock()
41
+ self._last = time.monotonic()
42
+
43
+ def acquire(self, tokens: float = 1.0):
44
+ with self._lock:
45
+ now = time.monotonic()
46
+ elapsed = now - self._last
47
+ # Refill
48
+ self._tokens = min(self.capacity, self._tokens + elapsed * self.refill_rate)
49
+ self._last = now
50
+ if self._tokens >= tokens:
51
+ self._tokens -= tokens
52
+ return 0.0
53
+ # Need to wait for enough tokens
54
+ required = tokens - self._tokens
55
+ wait_time = required / self.refill_rate
56
+ # consume what will be available after waiting
57
+ self._tokens = 0.0
58
+ return wait_time
59
+
60
+
61
+ class RateLimitedModel:
62
+ """Wraps a model-like callable and enforces a TokenBucketRateLimiter before each call."""
63
+
64
+ def __init__(self, model_obj, rpm: int = 6, burst: int | None = None):
65
+ self._model = model_obj
66
+ # rpm -> tokens per minute
67
+ capacity = burst if burst is not None else max(1, rpm)
68
+ refill_rate = float(rpm) / 60.0
69
+ self._limiter = TokenBucketRateLimiter(
70
+ capacity=capacity, refill_rate=refill_rate
71
+ )
72
+
73
+ def __call__(self, *args, **kwargs):
74
+ # Each high-level call consumes 1 token. Internal model calls
75
+ # inside smolagents may still produce multiple requests; this
76
+ # aims to protect against too many top-level calls per-minute.
77
+ wait = self._limiter.acquire(1.0)
78
+ if wait > 0:
79
+ # Small jitter to avoid stampede
80
+ jitter = random.uniform(0.0, 0.5)
81
+ total_wait = wait + jitter
82
+ print(f"RateLimitedModel sleeping {total_wait:.2f}s to respect RPM limit")
83
+ time.sleep(total_wait)
84
+ return self._model(*args, **kwargs)
85
+
86
+ def __getattr__(self, name: str):
87
+ """Proxy attribute access to the underlying model.
88
+
89
+ For callable attributes (like `generate`) we wrap the call so the
90
+ token-bucket rate limiter is applied consistently.
91
+ """
92
+ # Avoid recursion
93
+ if name.startswith("_"):
94
+ raise AttributeError(name)
95
+
96
+ attr = getattr(self._model, name)
97
+
98
+ if callable(attr):
99
+
100
+ def wrapped(*args, **kwargs):
101
+ wait = self._limiter.acquire(1.0)
102
+ if wait > 0:
103
+ jitter = random.uniform(0.0, 0.5)
104
+ total_wait = wait + jitter
105
+ print(
106
+ f"RateLimitedModel sleeping {total_wait:.2f}s to respect RPM limit"
107
+ )
108
+ time.sleep(total_wait)
109
+ return attr(*args, **kwargs)
110
+
111
+ # Preserve original metadata where possible
112
+ try:
113
+ wrapped.__name__ = getattr(attr, "__name__", wrapped.__name__)
114
+ except Exception:
115
+ pass
116
+ return wrapped
117
+
118
+ return attr
119
+
120
+
121
+ # Wrap the model with a rate-limiter. Default RPM has been lowered to 6
122
+ # but can be configured via the MODEL_RPM environment variable.
123
+ _configured_rpm = int(os.getenv("MODEL_RPM", "6"))
124
+ _configured_burst = None
125
+ model = RateLimitedModel(
126
+ LiteLLMModel(model_id="gemini/gemini-2.5-flash", temperature=0.2),
127
+ rpm=_configured_rpm,
128
+ burst=_configured_burst,
129
  )
130
 
131
+
132
  class BasicAgent:
133
  def __init__(self, name: str = "GGSAgent"):
134
  self.name = name
 
142
  model=model,
143
  max_steps=15,
144
  verbosity_level=1,
145
+ additional_authorized_imports=["json", "math"],
146
+ add_base_tools=True,
147
  )
148
  print("BasicAgent initialized.")
149
+
150
  def __call__(self, question: str) -> str:
151
  print(f"Agent received question (first 50 chars): {question[:50]}...")
152
  try:
153
+ # Use retry wrapper to handle rate limit (429) errors from the model
154
+ # The CodeAgent is callable and expects a single dict argument; pass it
155
+ # through the `call_model_with_retry` helper so RateLimitError is
156
+ # handled with exponential backoff.
157
+ response = call_model_with_retry(self.code_agent, {"input": question})
158
  print(f"Agent returning response: {response}")
159
  return response
160
  except Exception as e:
161
  print(f"Error in code agent: {e}")
162
  return f"AGENT ERROR: {e}"
 
163
 
164
+
165
+ def call_model_with_retry(
166
+ callable_fn, *args, max_retries=10, initial_delay=6.0, **kwargs
167
+ ):
168
+ delay = initial_delay
169
+ for attempt in range(1, max_retries + 1):
170
+ try:
171
+ return callable_fn(*args, **kwargs)
172
+ except RateLimitError as e:
173
+ if attempt == max_retries:
174
+ raise
175
+ time.sleep(delay)
176
+ delay = min(delay * 2, 60.0)
177
+
178
+
179
+ def run_and_submit_all(profile: gr.OAuthProfile | None):
180
  """
181
  Fetches all questions, runs the BasicAgent on them, submits all answers,
182
  and displays the results.
requirements.txt CHANGED
@@ -1,7 +1,516 @@
1
- numpy==1.24.4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2
  gradio==5.39.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3
  pandas==1.5.3
4
- requests>=2.28.0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  smolagents==1.22.0
6
- ddgs==9.6.1
7
- huggingface-hub>=0.15.1
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ absl-py @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_493uzkifo2/croot/absl-py_1686852448732/work
2
+ aiobotocore @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_bba52b0nnu/croot/aiobotocore_1701291516116/work
3
+ aiofiles @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_f56ag8l7kr/croot/aiofiles_1683773599608/work
4
+ aiohappyeyeballs==2.6.1
5
+ aiohttp==3.13.0
6
+ aioitertools @ file:///tmp/build/80754af9/aioitertools_1607109665762/work
7
+ aiosignal==1.4.0
8
+ aiosqlite @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_3d75lecab1/croot/aiosqlite_1683773918307/work
9
+ alabaster @ file:///home/ktietz/src/ci/alabaster_1611921544520/work
10
+ anaconda-anon-usage @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_6dviz_3v0e/croot/anaconda-anon-usage_1695305101164/work
11
+ anaconda-catalogs @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_e8tmw882qa/croot/anaconda-catalogs_1685727305051/work
12
+ anaconda-client @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_f8qw8dci6j/croot/anaconda-client_1694625256714/work
13
+ anaconda-cloud-auth @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_bazegf935a/croot/anaconda-cloud-auth_1713991395391/work
14
+ anaconda-navigator @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_0080v6n_w9/croot/anaconda-navigator_1699975624640/work
15
+ anaconda-project @ file:///Users/cbousseau/work/recipes/ci_py311/anaconda-project_1677964558977/work
16
+ annotated-types @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_1fa2djihwb/croot/annotated-types_1709542925772/work
17
+ anyascii==0.3.2
18
+ anyio==4.9.0
19
+ appdirs==1.4.4
20
+ applaunchservices @ file:///Users/cbousseau/work/recipes/ci_py311/applaunchservices_1677955996025/work
21
+ appnope @ file:///Users/cbousseau/work/recipes/ci_py311/appnope_1677917710869/work
22
+ appscript @ file:///Users/cbousseau/work/recipes/ci_py311/appscript_1677956964648/work
23
+ archspec @ file:///croot/archspec_1709217642129/work
24
+ argon2-cffi @ file:///opt/conda/conda-bld/argon2-cffi_1645000214183/work
25
+ argon2-cffi-bindings @ file:///Users/cbousseau/work/recipes/ci_py311/argon2-cffi-bindings_1677915727169/work
26
+ arrow @ file:///Users/cbousseau/work/recipes/ci_py311/arrow_1677931434012/work
27
+ astroid @ file:///Users/cbousseau/work/recipes/ci_py311/astroid_1677926110661/work
28
+ astropy @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_6bsitngidh/croot/astropy_1697468943967/work
29
+ asttokens @ file:///opt/conda/conda-bld/asttokens_1646925590279/work
30
+ astunparse==1.6.3
31
+ async-lru @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_02efro5ps8/croot/async-lru_1699554529181/work
32
+ async-timeout @ file:///Users/cbousseau/work/recipes/ci_py311/async-timeout_1677925030615/work
33
+ atomicwrites==1.4.0
34
+ attrs @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_224434dqzl/croot/attrs_1695717839274/work
35
+ audioread==3.0.1
36
+ Automat @ file:///tmp/build/80754af9/automat_1600298431173/work
37
+ autopep8 @ file:///opt/conda/conda-bld/autopep8_1650463822033/work
38
+ Babel @ file:///Users/cbousseau/work/recipes/ci_py311/babel_1677920677615/work
39
+ backcall @ file:///home/ktietz/src/ci/backcall_1611930011877/work
40
+ backports.functools-lru-cache @ file:///tmp/build/80754af9/backports.functools_lru_cache_1618170165463/work
41
+ backports.tempfile @ file:///home/linux1/recipes/ci/backports.tempfile_1610991236607/work
42
+ backports.weakref==1.0.post1
43
+ bangla==0.0.2
44
+ bcrypt @ file:///Users/cbousseau/work/recipes/ci_py311/bcrypt_1677931459811/work
45
+ beautifulsoup4 @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_fa78jvo_0n/croot/beautifulsoup4-split_1681493044306/work
46
+ binaryornot @ file:///tmp/build/80754af9/binaryornot_1617751525010/work
47
+ black @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_964h37vv55/croot/black_1701096835115/work
48
+ bleach @ file:///opt/conda/conda-bld/bleach_1641577558959/work
49
+ blinker @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_d64vvpf_j3/croot/blinker_1696539070114/work
50
+ blis==0.7.11
51
+ bnnumerizer==0.0.2
52
+ bnunicodenormalizer==0.1.7
53
+ bokeh @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_36lk538r68/croot/bokeh_1697490451734/work
54
+ boltons @ file:///Users/cbousseau/work/recipes/ci_py311/boltons_1677965141748/work
55
+ botocore @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_2awq8m3jp2/croot/botocore_1701286476464/work
56
+ Bottleneck @ file:///Users/cbousseau/work/recipes/ci_py311/bottleneck_1677925122241/work
57
+ Brotli==1.1.0
58
+ brotlipy==0.7.0
59
+ cachetools @ file:///tmp/build/80754af9/cachetools_1619597386817/work
60
+ catalogue==2.0.10
61
+ category-encoders==2.6.3
62
+ certifi @ file:///home/conda/feedstock_root/build_artifacts/certifi_1725278078093/work/certifi
63
+ cffi @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_b4nang6w_y/croot/cffi_1700254307954/work
64
+ chardet @ file:///Users/cbousseau/work/recipes/ci_py311/chardet_1677931647221/work
65
+ charset-normalizer @ file:///tmp/build/80754af9/charset-normalizer_1630003229654/work
66
+ click==8.2.0
67
+ cloudpathlib==0.16.0
68
+ cloudpickle @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_da31odypvn/croot/cloudpickle_1683040013858/work
69
+ clyent==1.2.2
70
+ cmdstanpy @ file:///home/conda/feedstock_root/build_artifacts/cmdstanpy_1718667556839/work
71
+ colorama @ file:///Users/cbousseau/work/recipes/ci_py311/colorama_1677925183444/work
72
+ colorcet @ file:///Users/cbousseau/work/recipes/ci_py311/colorcet_1677936559489/work
73
+ comm @ file:///Users/cbousseau/work/recipes/ci_py311/comm_1677919149446/work
74
+ conda @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_6fdicqiami/croot/conda_1722004613620/work
75
+ conda-build @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_d8lekrlmdr/croot/conda-build_1705600632248/work
76
+ conda-content-trust @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_5324skqvu9/croot/conda-content-trust_1693490622873/work
77
+ conda-libmamba-solver @ file:///croot/conda-libmamba-solver_1702997573971/work/src
78
+ conda-pack @ file:///tmp/build/80754af9/conda-pack_1611163042455/work
79
+ conda-package-handling @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_fc4cx8vjhj/croot/conda-package-handling_1690999937094/work
80
+ conda-repo-cli==1.0.75
81
+ conda-token @ file:///Users/paulyim/miniconda3/envs/c3i/conda-bld/conda-token_1662660369760/work
82
+ conda-verify==3.4.2
83
+ conda_index @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_54ezj_yn7f/croot/conda-index_1695310383527/work
84
+ conda_package_streaming @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_aecpaup22q/croot/conda-package-streaming_1690987978274/work
85
+ confection==0.1.4
86
+ constantly @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_efw7euxpjs/croot/constantly_1703165606144/work
87
+ contourpy @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_041uwyxdzo/croot/contourpy_1700583585236/work
88
+ cookiecutter @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_31so_ckiry/croot/cookiecutter_1700676950524/work
89
+ coqpit==0.0.17
90
+ cryptography @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_b1p0q5vizk/croot/cryptography_1702070293829/work
91
+ cssselect==1.1.0
92
+ cycler @ file:///tmp/build/80754af9/cycler_1637851556182/work
93
+ cymem==2.0.8
94
+ Cython==3.0.11
95
+ cytoolz @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_f0etqooaak/croot/cytoolz_1701723613874/work
96
+ dask @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_daioj09k9x/croot/dask-core_1701396100505/work
97
+ datasets @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_5eqct1blor/croot/datasets_1684482935720/work
98
+ datashader @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_0e70ltjmce/croot/datashader_1699548944582/work
99
+ datashape==0.5.4
100
+ dateparser==1.1.8
101
+ ddgs==9.6.0
102
+ debugpy @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_563_nwtkoc/croot/debugpy_1690905063850/work
103
+ decorator @ file:///opt/conda/conda-bld/decorator_1643638310831/work
104
+ defusedxml @ file:///tmp/build/80754af9/defusedxml_1615228127516/work
105
+ diff-match-patch @ file:///Users/ktietz/demo/mc3/conda-bld/diff-match-patch_1630511840874/work
106
+ dill @ file:///Users/cbousseau/work/recipes/ci_py311/dill_1677926161443/work
107
+ distributed @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_8c3iaagm9k/croot/distributed_1701398038542/work
108
+ distro @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_10ye1wu827/croot/distro_1701455019085/work
109
+ docopt==0.6.2
110
+ docstring-to-markdown @ file:///Users/cbousseau/work/recipes/ci_py311/docstring-to-markdown_1677931891483/work
111
+ docutils @ file:///Users/cbousseau/work/recipes/ci_py311/docutils_1677907269557/work
112
+ einops==0.8.1
113
+ en-core-web-lg @ https://github.com/explosion/spacy-models/releases/download/en_core_web_lg-3.7.1/en_core_web_lg-3.7.1-py3-none-any.whl#sha256=ab70aeb6172cde82508f7739f35ebc9918a3d07debeed637403c8f794ba3d3dc
114
+ encodec==0.1.1
115
+ entrypoints @ file:///Users/cbousseau/work/recipes/ci_py311/entrypoints_1677911798787/work
116
+ et-xmlfile==1.1.0
117
+ executing @ file:///opt/conda/conda-bld/executing_1646925071911/work
118
+ fastapi==0.116.1
119
+ fastjsonschema @ file:///Users/cbousseau/work/recipes/ci_py311_2/python-fastjsonschema_1678996913062/work
120
+ fastuuid==0.13.5
121
+ ffmpy @ file:///home/conda/feedstock_root/build_artifacts/ffmpy_1659474992694/work
122
+ filelock @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_d3quwmvouf/croot/filelock_1700591194006/work
123
+ flake8 @ file:///Users/cbousseau/work/recipes/ci_py311/flake8_1677931981927/work
124
+ Flask @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_b4a2svwk0s/croot/flask_1702980026964/work
125
+ flatbuffers @ file:///home/ktietz/cip/python-flatbuffers_1634039120618/work
126
+ fonttools==4.25.0
127
+ frozendict @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_8b0cest_id/croot/frozendict_1713194839836/work
128
+ frozenlist @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_68w5bkvw82/croot/frozenlist_1698702578544/work
129
+ fsspec==2025.7.0
130
+ future @ file:///Users/cbousseau/work/recipes/ci_py311_2/future_1678994664110/work
131
+ g2pkk==0.1.2
132
+ gast @ file:///Users/ktietz/demo/mc3/conda-bld/gast_1628588903283/work
133
+ gensim @ file:///Users/cbousseau/work/recipes/ci_py311/gensim_1677971806459/work
134
+ glob2 @ file:///home/linux1/recipes/ci/glob2_1610991677669/work
135
+ gmpy2 @ file:///Users/cbousseau/work/recipes/ci_py311/gmpy2_1677937751357/work
136
+ google-auth @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_c0llaiv4r_/croot/google-auth_1715111162681/work
137
+ google-auth-oauthlib @ file:///Users/cbousseau/work/recipes/ci_py311_2/google-auth-oauthlib_1678997129227/work
138
+ google-pasta @ file:///Users/ktietz/demo/mc3/conda-bld/google-pasta_1630577991354/work
139
  gradio==5.39.0
140
+ gradio_client==1.11.0
141
+ greenlet @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_516imz09pb/croot/greenlet_1702059966336/work
142
+ groovy==0.1.2
143
+ grpcio @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_f0it_w9tlw/croot/grpc-suite_1681912595383/work
144
+ gruut==2.2.3
145
+ gruut-ipa==0.13.0
146
+ gruut-lang-de==2.0.1
147
+ gruut-lang-en==2.0.1
148
+ gruut-lang-es==2.0.1
149
+ gruut-lang-fr==2.0.2
150
+ h11 @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_110bmw2coo/croot/h11_1706652289620/work
151
+ h2==4.3.0
152
+ h5py @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_9a3s_y3izc/croot/h5py_1691589712568/work
153
+ hangul-romanize==0.1.0
154
+ HeapDict @ file:///Users/ktietz/demo/mc3/conda-bld/heapdict_1630598515714/work
155
+ hf-xet==1.1.5
156
+ holidays @ file:///home/conda/feedstock_root/build_artifacts/holidays_1729548998076/work
157
+ holoviews @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_885_fwvt88/croot/holoviews_1699544456807/work
158
+ hpack==4.1.0
159
+ html5lib==1.1
160
+ httpcore @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_fcxiho9nv7/croot/httpcore_1706728465004/work
161
+ httpx==0.28.1
162
+ huggingface-hub==0.34.3
163
+ hvplot @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_74yf3ndkb9/croot/hvplot_1704230786556/work
164
+ hyperframe==6.1.0
165
+ hyperlink @ file:///tmp/build/80754af9/hyperlink_1610130746837/work
166
+ idna @ file:///Users/cbousseau/work/recipes/ci_py311/idna_1677906072337/work
167
+ imagecodecs @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_40kuk1jbgt/croot/imagecodecs_1695064959855/work
168
+ imageio @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_1cpassxbg8/croot/imageio_1695996459236/work
169
+ imagesize @ file:///Users/cbousseau/work/recipes/ci_py311/imagesize_1677932611633/work
170
+ imbalanced-learn @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_26_yvb9nba/croot/imbalanced-learn_1685020915768/work
171
+ imblearn==0.0
172
+ importlib-metadata @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_5498c88e7n/croot/importlib_metadata-suite_1704813534254/work
173
+ importlib_resources @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_784gdd8gq5/croot/importlib_resources-suite_1720641109833/work
174
+ incremental @ file:///tmp/build/80754af9/incremental_1636629750599/work
175
+ inflect==7.5.0
176
+ inflection==0.5.1
177
+ iniconfig @ file:///home/linux1/recipes/ci/iniconfig_1610983019677/work
178
+ intake @ file:///Users/cbousseau/work/recipes/ci_py311_2/intake_1678994948878/work
179
+ intervaltree @ file:///Users/ktietz/demo/mc3/conda-bld/intervaltree_1630511889664/work
180
+ ipykernel @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_98tee4lcge/croot/ipykernel_1691121640975/work
181
+ ipython @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_a1tmxj9b4u/croot/ipython_1704833016119/work
182
+ ipython-genutils @ file:///tmp/build/80754af9/ipython_genutils_1606773439826/work
183
+ ipywidgets @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_f07ugy1hvo/croot/ipywidgets_1679394821999/work
184
+ isort @ file:///tmp/build/80754af9/isort_1628603791788/work
185
+ itemadapter @ file:///tmp/build/80754af9/itemadapter_1626442940632/work
186
+ itemloaders @ file:///opt/conda/conda-bld/itemloaders_1646805235997/work
187
+ itsdangerous @ file:///tmp/build/80754af9/itsdangerous_1621432558163/work
188
+ jamo==0.4.1
189
+ jaraco.classes @ file:///tmp/build/80754af9/jaraco.classes_1620983179379/work
190
+ jedi @ file:///Users/cbousseau/work/recipes/ci_py311_2/jedi_1678994967789/work
191
+ jellyfish @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_c8d7bub7n3/croot/jellyfish_1695193540813/work
192
+ jieba==0.42.1
193
+ Jinja2==3.1.6
194
+ jinja2-time @ file:///opt/conda/conda-bld/jinja2-time_1649251842261/work
195
+ jiter==0.11.0
196
+ jiwer==3.1.0
197
+ jmespath @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_369vjbb695/croot/jmespath_1700144575847/work
198
+ joblib @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_a357ltg47g/croot/joblib_1685113093574/work
199
+ json5 @ file:///tmp/build/80754af9/json5_1624432770122/work
200
+ jsonlines==1.2.0
201
+ jsonpatch @ file:///tmp/build/80754af9/jsonpatch_1615747632069/work
202
+ jsonpointer==2.1
203
+ jsonschema==4.25.1
204
+ jsonschema-specifications @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_d38pclgu95/croot/jsonschema-specifications_1699032390832/work
205
+ jupyter @ file:///Users/cbousseau/work/recipes/ci_py311/jupyter_1677932849424/work
206
+ jupyter-console @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_62liw5pns2/croot/jupyter_console_1679999641189/work
207
+ jupyter-events @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_14ldd9s4d0/croot/jupyter_events_1699282481406/work
208
+ jupyter-lsp @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_ae9br5v37x/croot/jupyter-lsp-meta_1699978259353/work
209
+ jupyter-ydoc @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_1djmqkjwof/croot/jupyter_ydoc_1683747243427/work
210
+ jupyter_client @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_58w2siozyz/croot/jupyter_client_1699455907045/work
211
+ jupyter_core @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_782yoyc_98/croot/jupyter_core_1698937318631/work
212
+ jupyter_server @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_281pz9vly5/croot/jupyter_server_1699466465530/work
213
+ jupyter_server_fileid @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_a5j1mo_1cs/croot/jupyter_server_fileid_1684273608144/work
214
+ jupyter_server_terminals @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_e7ryd60iuw/croot/jupyter_server_terminals_1686870731283/work
215
+ jupyter_server_ydoc @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_47q6o0w705/croot/jupyter_server_ydoc_1686767400324/work
216
+ jupyterlab @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_93_oag751q/croot/jupyterlab_1700518288149/work
217
+ jupyterlab-pygments @ file:///tmp/build/80754af9/jupyterlab_pygments_1601490720602/work
218
+ jupyterlab-widgets @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_b3iojkjor2/croot/jupyterlab_widgets_1700168642873/work
219
+ jupyterlab_server @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_315a64u22w/croot/jupyterlab_server_1699555438434/work
220
+ kaleido @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_0029p_kvok/croot/python-kaleido_1689925318259/work
221
+ keras @ file:///Users/lundby/miniconda3/envs/tensorflow_build_osx/conda-bld/keras_1685212802322/work/keras-2.12.0-py2.py3-none-any.whl
222
+ Keras-Preprocessing @ file:///tmp/build/80754af9/keras-preprocessing_1612283640596/work
223
+ keyring @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_8bd22k84zo/croot/keyring_1678999224442/work
224
+ kiwisolver @ file:///Users/cbousseau/work/recipes/ci_py311/kiwisolver_1677925326358/work
225
+ langcodes==3.3.0
226
+ lazy-object-proxy @ file:///Users/cbousseau/work/recipes/ci_py311/lazy-object-proxy_1677925379420/work
227
+ lazy_loader @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_aeoy9wgz34/croot/lazy_loader_1695850118260/work
228
+ libarchive-c @ file:///tmp/build/80754af9/python-libarchive-c_1617780486945/work
229
+ libmambapy @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_69t7vyvo1k/croot/mamba-split_1704219411138/work/libmambapy
230
+ librosa==0.11.0
231
+ linkify-it-py @ file:///Users/cbousseau/work/recipes/ci_py311/linkify-it-py_1677973036983/work
232
+ litellm==1.78.0
233
+ llvmlite @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_04htmjb2xq/croot/llvmlite_1697031052258/work
234
+ lmdb @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_6fumkuh_c0/croot/python-lmdb_1682522347231/work
235
+ locket @ file:///Users/cbousseau/work/recipes/ci_py311/locket_1677925419801/work
236
+ lxml==6.0.2
237
+ lz4 @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_f0mtitgo6y/croot/lz4_1686063770247/work
238
+ Markdown @ file:///Users/cbousseau/work/recipes/ci_py311/markdown_1677932925449/work
239
+ markdown-it-py @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_43l_4ajkho/croot/markdown-it-py_1684279912406/work
240
+ markdownify==1.2.0
241
+ MarkupSafe @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_a84ni4pci8/croot/markupsafe_1704206002077/work
242
+ matplotlib @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_21m9ylm_7k/croot/matplotlib-suite_1698692123710/work
243
+ matplotlib-inline @ file:///Users/cbousseau/work/recipes/ci_py311/matplotlib-inline_1677918241899/work
244
+ mccabe @ file:///opt/conda/conda-bld/mccabe_1644221741721/work
245
+ mdit-py-plugins @ file:///Users/cbousseau/work/recipes/ci_py311/mdit-py-plugins_1677995322132/work
246
+ mdurl @ file:///Users/cbousseau/work/recipes/ci_py311/mdurl_1677942260967/work
247
+ menuinst @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_a2fxmxkg_z/croot/menuinst_1702390297906/work
248
+ mistune @ file:///Users/cbousseau/work/recipes/ci_py311/mistune_1677916600725/work
249
+ more-itertools @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_e2687gwsdv/croot/more-itertools_1700662157766/work
250
+ mpmath @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_17iu6a8a3m/croot/mpmath_1690848269369/work
251
+ msgpack @ file:///Users/cbousseau/work/recipes/ci_py311/msgpack-python_1677909260136/work
252
+ multidict @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_10voz9m15i/croot/multidict_1701096890858/work
253
+ multipledispatch @ file:///Users/cbousseau/work/recipes/ci_py311/multipledispatch_1677960800437/work
254
+ multiprocess @ file:///Users/cbousseau/work/recipes/ci_py311/multiprocess_1677942297511/work
255
+ multitasking==0.0.11
256
+ munkres==1.1.4
257
+ murmurhash==1.0.10
258
+ mypy-extensions @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_98zqpuwvro/croot/mypy_extensions_1695130957675/work
259
+ navigator-updater @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_14tu6qh1h_/croot/navigator-updater_1695210199291/work
260
+ nbclassic @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_d6oy9w0m3l/croot/nbclassic_1681756176477/work
261
+ nbclient @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_626hpwnurm/croot/nbclient_1698934218848/work
262
+ nbconvert @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_caxv2emy33/croot/nbconvert_1699022756174/work
263
+ nbformat @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_cbnf5nccgk/croot/nbformat_1694616744196/work
264
+ nest-asyncio @ file:///Users/cbousseau/work/recipes/ci_py311/nest-asyncio_1677912430289/work
265
+ networkx==2.8.8
266
+ nltk @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_ebiuq9880w/croot/nltk_1688114154971/work
267
+ notebook @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_d3ves7gv_b/croot/notebook_1700582112788/work
268
+ notebook_shim @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_d6_ze10f45/croot/notebook-shim_1699455897525/work
269
+ num2words==0.5.14
270
+ numba @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_9aqqs0fj7e/croot/numba_1701378174145/work
271
+ numexpr @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_45yefq0kt6/croot/numexpr_1696515289183/work
272
+ numpy @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_cfbbnu3tzv/croot/numpy_and_numpy_base_1704311724719/work/dist/numpy-1.26.3-cp311-cp311-macosx_11_0_arm64.whl#sha256=e1ff5b3ac69d47ee7f663143870abe3577113ab9d3b17fff39b263c6a2120559
273
+ numpydoc @ file:///Users/cbousseau/work/recipes/ci_py311/numpydoc_1677960919550/work
274
+ oauthlib @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_5cxgjn8mz4/croot/oauthlib_1679489641676/work
275
+ openai==2.3.0
276
+ openpyxl==3.0.10
277
+ opt-einsum @ file:///tmp/build/80754af9/opt_einsum_1621500238896/work
278
+ orjson @ file:///var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_910h7wyrw8/croot/orjson_1711143065818/work/target/wheels/orjson-3.9.15-cp311-cp311-macosx_11_0_arm64.whl#sha256=107625caedd788919517913dff5d87e9a9a0a5df694e4073903a064f82e6e448
279
+ overrides @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_70s80guh9g/croot/overrides_1699371144462/work
280
+ packaging @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_6dm6d4jd_t/croot/packaging_1693575176524/work
281
  pandas==1.5.3
282
+ pandocfilters @ file:///opt/conda/conda-bld/pandocfilters_1643405455980/work
283
+ panel @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_05h_pvi0ep/croot/panel_1698866698299/work
284
+ param @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_41fhbkdyal/croot/param_1699542991150/work
285
+ parsel @ file:///Users/cbousseau/work/recipes/ci_py311/parsel_1678068232273/work
286
+ parso @ file:///opt/conda/conda-bld/parso_1641458642106/work
287
+ partd @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_0dtqw51_5z/croot/partd_1698702593225/work
288
+ pathlib @ file:///Users/ktietz/demo/mc3/conda-bld/pathlib_1629713961906/work
289
+ pathspec @ file:///Users/cbousseau/work/recipes/ci_py311_2/pathspec_1678995598596/work
290
+ patsy==0.5.3
291
+ peewee==3.17.6
292
+ pep8==1.7.1
293
+ pexpect @ file:///tmp/build/80754af9/pexpect_1605563209008/work
294
+ pickleshare @ file:///tmp/build/80754af9/pickleshare_1606932040724/work
295
+ Pillow @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_ccx0_h9rkg/croot/pillow_1696580032390/work
296
+ pkce @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_da285fiplp/croot/pkce_1690384839054/work
297
+ pkginfo @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_d1oq9rhye6/croot/pkginfo_1679431178842/work
298
+ platformdirs @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_a8u4fy8k9o/croot/platformdirs_1692205661656/work
299
+ plotly @ file:///Users/cbousseau/work/recipes/ci_py311/plotly_1677953301864/work
300
+ pluggy @ file:///Users/cbousseau/work/recipes/ci_py311/pluggy_1677906980825/work
301
+ ply==3.11
302
+ pmdarima==2.0.4
303
+ pooch==1.8.2
304
+ poyo @ file:///tmp/build/80754af9/poyo_1617751526755/work
305
+ preshed==3.0.9
306
+ primp==0.15.0
307
+ prometheus-client @ file:///Users/cbousseau/work/recipes/ci_py311_2/prometheus_client_1678996808082/work
308
+ prompt-toolkit @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_c63v4kqjzr/croot/prompt-toolkit_1704404354115/work
309
+ propcache==0.4.1
310
+ prophet @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_2enbhzq__a/croot/prophet_1718022785156/work
311
+ Protego @ file:///tmp/build/80754af9/protego_1598657180827/work
312
+ protobuf==3.20.3
313
+ psutil @ file:///Users/cbousseau/work/recipes/ci_py311_2/psutil_1678995687212/work
314
+ ptyprocess @ file:///tmp/build/80754af9/ptyprocess_1609355006118/work/dist/ptyprocess-0.7.0-py2.py3-none-any.whl
315
+ pure-eval @ file:///opt/conda/conda-bld/pure_eval_1646925070566/work
316
+ py-cpuinfo @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_1ai9qocl5v/croot/py-cpuinfo_1698068093370/work
317
+ pyarrow==11.0.0
318
+ pyasn1 @ file:///Users/ktietz/demo/mc3/conda-bld/pyasn1_1629708007385/work
319
+ pyasn1-modules==0.2.8
320
+ pycodestyle @ file:///Users/cbousseau/work/recipes/ci_py311/pycodestyle_1677927047034/work
321
+ pycosat @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_3eg8vdcs6z/croot/pycosat_1696536519213/work
322
+ pycparser @ file:///tmp/build/80754af9/pycparser_1636541352034/work
323
+ pyct @ file:///Users/cbousseau/work/recipes/ci_py311/pyct_1677933596803/work
324
+ pycurl @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_b1wi2c6a_m/croot/pycurl_1686662468919/work
325
+ pydantic @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_6a3ae3hfnm/croot/pydantic_1725040525203/work
326
+ pydantic_core @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_636oiyd6i5/croot/pydantic-core_1724790368915/work
327
+ PyDispatcher==2.0.5
328
+ pydocstyle @ file:///Users/cbousseau/work/recipes/ci_py311/pydocstyle_1677933616104/work
329
+ pydub @ file:///home/conda/feedstock_root/build_artifacts/pydub_1615612442567/work
330
+ pyerfa @ file:///Users/cbousseau/work/recipes/ci_py311/pyerfa_1677933632816/work
331
+ pyflakes @ file:///Users/cbousseau/work/recipes/ci_py311/pyflakes_1677927066386/work
332
+ Pygments @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_29bs9f_dh9/croot/pygments_1684279974747/work
333
+ PyJWT @ file:///Users/cbousseau/work/recipes/ci_py311/pyjwt_1677933681463/work
334
+ pylint @ file:///Users/cbousseau/work/recipes/ci_py311/pylint_1677933699245/work
335
+ pylint-venv @ file:///Users/cbousseau/work/recipes/ci_py311/pylint-venv_1677961443839/work
336
+ pyls-spyder==0.4.0
337
+ pynndescent==0.5.13
338
+ pyobjc-core @ file:///Users/cbousseau/work/recipes/ci_py311/pyobjc-core_1678112643033/work
339
+ pyobjc-framework-Cocoa @ file:///Users/cbousseau/work/recipes/ci_py311/pyobjc-framework-cocoa_1678112805655/work
340
+ pyobjc-framework-CoreServices @ file:///Users/cbousseau/work/recipes/ci_py311/pyobjc-framework-coreservices_1678113537167/work
341
+ pyobjc-framework-FSEvents @ file:///Users/cbousseau/work/recipes/ci_py311/pyobjc-framework-fsevents_1678112996782/work
342
+ pyodbc @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_0adrszmc0v/croot/pyodbc_1705431358881/work
343
+ pyOpenSSL @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_b8whqav6qm/croot/pyopenssl_1690223428943/work
344
+ pyparsing @ file:///Users/cbousseau/work/recipes/ci_py311/pyparsing_1677910832141/work
345
+ pypinyin==0.54.0
346
+ PyQt5==5.15.10
347
+ PyQt5-sip @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_7c_9f71up5/croot/pyqt-split_1698769091879/work/pyqt_sip
348
+ PyQtWebEngine==5.15.6
349
+ pyrsistent @ file:///Users/cbousseau/work/recipes/ci_py311/pyrsistent_1677909782145/work
350
+ pysbd==0.3.4
351
+ PySocks @ file:///Users/cbousseau/work/recipes/ci_py311/pysocks_1677906386870/work
352
+ pytest @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_75ehl8i878/croot/pytest_1690474711033/work
353
+ python-crfsuite==0.9.11
354
+ python-dateutil @ file:///tmp/build/80754af9/python-dateutil_1626374649649/work
355
+ python-dotenv @ file:///home/conda/feedstock_root/build_artifacts/python-dotenv-split_1706018097647/work
356
+ python-json-logger @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_c3baq2ko4j/croot/python-json-logger_1683823815343/work
357
+ python-lsp-black @ file:///Users/cbousseau/work/recipes/ci_py311/python-lsp-black_1677961743861/work
358
+ python-lsp-jsonrpc==1.0.0
359
+ python-lsp-server @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_73tk9oa5lj/croot/python-lsp-server_1681930403042/work
360
+ python-multipart==0.0.20
361
+ python-slugify @ file:///tmp/build/80754af9/python-slugify_1620405669636/work
362
+ python-snappy @ file:///Users/cbousseau/work/recipes/ci_py311/python-snappy_1677954153933/work
363
+ pytoolconfig @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_c0c43xm9fv/croot/pytoolconfig_1701728714940/work
364
+ pytz @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_6btwyyj8a1/croot/pytz_1695131592184/work
365
+ pyviz_comms @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_3a3w3gjwix/croot/pyviz_comms_1701728033147/work
366
+ pywavelets @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_ab3sn2fmxp/croot/pywavelets_1705049822227/work
367
+ PyYAML @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_a8_sdgulmz/croot/pyyaml_1698096054705/work
368
+ pyzmq @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_43pxpbos3z/croot/pyzmq_1705605108344/work
369
+ QDarkStyle @ file:///tmp/build/80754af9/qdarkstyle_1617386714626/work
370
+ qstylizer @ file:///Users/cbousseau/work/recipes/ci_py311/qstylizer_1678072198813/work/dist/qstylizer-0.2.2-py2.py3-none-any.whl
371
+ QtAwesome @ file:///Users/cbousseau/work/recipes/ci_py311/qtawesome_1677961781784/work
372
+ qtconsole @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_86g4aht18r/croot/qtconsole_1681394233851/work
373
+ QtPy @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_7ctc7lxlar/croot/qtpy_1700144861044/work
374
+ queuelib @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_927ughhs8g/croot/queuelib_1696950296942/work
375
+ RapidFuzz==3.13.0
376
+ referencing @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_5cz64gsx70/croot/referencing_1699012046031/work
377
+ regex @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_c10w1rynu_/croot/regex_1696515309790/work
378
+ requests @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_70sm12ba9w/croot/requests_1721414707360/work
379
+ requests-file @ file:///Users/ktietz/demo/mc3/conda-bld/requests-file_1629455781986/work
380
+ requests-oauthlib==1.3.0
381
+ requests-toolbelt @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_3fee1fr2ex/croot/requests-toolbelt_1690874011813/work
382
+ responses @ file:///tmp/build/80754af9/responses_1619800270522/work
383
+ rfc3339-validator @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_76ae5cu30h/croot/rfc3339-validator_1683077051957/work
384
+ rfc3986-validator @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_d0l5zd97kt/croot/rfc3986-validator_1683058998431/work
385
+ rich==14.1.0
386
+ rope @ file:///Users/cbousseau/work/recipes/ci_py311/rope_1677934821109/work
387
+ rpds-py @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_f8jkozoefm/croot/rpds-py_1698945944860/work
388
+ rsa @ file:///tmp/build/80754af9/rsa_1614366226499/work
389
+ Rtree @ file:///Users/cbousseau/work/recipes/ci_py311/rtree_1677961892694/work
390
+ ruamel-yaml-conda @ file:///Users/cbousseau/work/recipes/ci_py311/ruamel_yaml_1677961911260/work
391
+ ruamel.yaml @ file:///Users/cbousseau/work/recipes/ci_py311/ruamel.yaml_1677934845850/work
392
+ ruff==0.12.7
393
+ s3fs @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_46ge7qykej/croot/s3fs_1701294195549/work
394
+ safehttpx==0.1.6
395
+ safetensors==0.5.3
396
+ scikit-image @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_12rg0hdzgk/croot/scikit-image_1682528304529/work
397
+ scikit-learn==1.6.1
398
+ scipy @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_680rtkz_e8/croot/scipy_1701295052241/work/dist/scipy-1.11.4-cp311-cp311-macosx_11_0_arm64.whl#sha256=6cf6325dd7351f3142748300fa2436798aaabb59c85d27bb83ad8b7547e52d64
399
+ Scrapy @ file:///Users/cbousseau/work/recipes/ci_py311/scrapy_1678002824834/work
400
+ seaborn @ file:///Users/cbousseau/work/recipes/ci_py311/seaborn_1677961968762/work
401
+ semantic-version @ file:///tmp/build/80754af9/semantic_version_1613321057691/work
402
+ semver @ file:///tmp/build/80754af9/semver_1603822362442/work
403
+ Send2Trash @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_5b31f0zzlv/croot/send2trash_1699371144121/work
404
+ sentence-transformers==2.3.1
405
+ sentencepiece==0.2.0
406
+ service-identity @ file:///Users/ktietz/demo/mc3/conda-bld/service_identity_1629460757137/work
407
+ shellingham @ file:///Users/cbousseau/work/recipes/ci_py311/shellingham_1677910973388/work
408
+ sip @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_ba9odc_3u1/croot/sip_1698675938651/work
409
+ six @ file:///tmp/build/80754af9/six_1644875935023/work
410
+ smart-open @ file:///Users/cbousseau/work/recipes/ci_py311/smart_open_1677955621457/work
411
  smolagents==1.22.0
412
+ sniffio @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_1573pknjrg/croot/sniffio_1705431298885/work
413
+ snowballstemmer @ file:///tmp/build/80754af9/snowballstemmer_1637937080595/work
414
+ socksio==1.0.0
415
+ sortedcontainers @ file:///tmp/build/80754af9/sortedcontainers_1623949099177/work
416
+ soundfile==0.13.1
417
+ soupsieve @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_9798xzs_03/croot/soupsieve_1696347567192/work
418
+ soxr==0.5.0.post1
419
+ spacy==3.7.2
420
+ spacy-legacy==3.0.12
421
+ spacy-loggers==1.0.5
422
+ SpeechRecognition==3.14.3
423
+ Sphinx @ file:///Users/cbousseau/work/recipes/ci_py311/sphinx_1677955655588/work
424
+ sphinxcontrib-applehelp @ file:///home/ktietz/src/ci/sphinxcontrib-applehelp_1611920841464/work
425
+ sphinxcontrib-devhelp @ file:///home/ktietz/src/ci/sphinxcontrib-devhelp_1611920923094/work
426
+ sphinxcontrib-htmlhelp @ file:///tmp/build/80754af9/sphinxcontrib-htmlhelp_1623945626792/work
427
+ sphinxcontrib-jsmath @ file:///home/ktietz/src/ci/sphinxcontrib-jsmath_1611920942228/work
428
+ sphinxcontrib-qthelp @ file:///home/ktietz/src/ci/sphinxcontrib-qthelp_1611921055322/work
429
+ sphinxcontrib-serializinghtml @ file:///tmp/build/80754af9/sphinxcontrib-serializinghtml_1624451540180/work
430
+ spyder @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_f02k_edsgq/croot/spyder_1681934090757/work
431
+ spyder-kernels @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_05ibj216sl/croot/spyder-kernels_1691599540883/work
432
+ SQLAlchemy @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_178d1hepo8/croot/sqlalchemy_1705089115295/work
433
+ srsly==2.4.8
434
+ stack-data @ file:///opt/conda/conda-bld/stack_data_1646927590127/work
435
+ stanio @ file:///home/conda/feedstock_root/build_artifacts/stanio_1720528081340/work
436
+ starlette==0.47.2
437
+ statsmodels @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_d39rlzrllo/croot/statsmodels_1689937269798/work
438
+ SudachiDict-core==20250129
439
+ SudachiPy==0.6.10
440
+ sympy==1.14.0
441
+ tables @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_b2h37objh4/croot/pytables_1705614846524/work
442
+ tabulate @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_a301xhcsz1/croot/tabulate_1701354815389/work
443
+ tblib @ file:///Users/ktietz/demo/mc3/conda-bld/tblib_1629402031467/work
444
+ tenacity @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_0ew5sfng29/croot/tenacity_1682972282256/work
445
+ tensorboard @ file:///Users/lundby/miniconda3/conda-bld/tensorboard_1685305519687/work/tensorboard-2.12.1-py3-none-any.whl
446
+ tensorboard-data-server @ file:///var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_ffpjrdrqhx/croot/tensorboard-data-server_1681498215078/work/tensorboard_data_server-0.7.0-py3-none-macosx_11_0_arm64.whl
447
+ tensorboard-plugin-wit @ file:///Users/lundby/miniconda3/envs/tensorflow_build_osx/conda-bld/tensorboard-plugin-wit_1685213377990/work/tensorboard_plugin_wit-1.8.1-py3-none-any.whl
448
+ tensorflow @ file:///Users/lundby/miniconda3/envs/build/conda-bld/tensorflow-base_1685542236872/work/tensorflow_pkg/tensorflow-2.12.0-cp311-cp311-macosx_13_0_arm64.whl
449
+ tensorflow-estimator @ file:///Users/lundby/miniconda3/envs/tensorflow_build_osx64/conda-bld/tensorflow-estimator_1684880415774/work/tensorflow_estimator-2.12.0-py2.py3-none-any.whl
450
+ termcolor @ file:///Users/cbousseau/work/recipes/ci_py311/termcolor_1678004277555/work
451
+ terminado @ file:///Users/cbousseau/work/recipes/ci_py311/terminado_1677918849903/work
452
+ text-unidecode @ file:///Users/ktietz/demo/mc3/conda-bld/text-unidecode_1629401354553/work
453
+ textdistance @ file:///tmp/build/80754af9/textdistance_1612461398012/work
454
+ thinc==8.2.2
455
+ threadpoolctl==3.6.0
456
+ three-merge @ file:///tmp/build/80754af9/three-merge_1607553261110/work
457
+ tifffile @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_1bw3sr2x5b/croot/tifffile_1695107467939/work
458
+ tiktoken==0.12.0
459
+ tinycss2 @ file:///Users/cbousseau/work/recipes/ci_py311/tinycss2_1677917352983/work
460
+ tldextract @ file:///opt/conda/conda-bld/tldextract_1646638314385/work
461
+ tokenizers==0.21.1
462
+ toml @ file:///tmp/build/80754af9/toml_1616166611790/work
463
+ tomlkit @ file:///home/conda/feedstock_root/build_artifacts/tomlkit_1690458286251/work
464
+ toolz @ file:///Users/cbousseau/work/recipes/ci_py311/toolz_1677925870232/work
465
+ torch==2.7.1
466
+ torchaudio==2.7.0
467
+ torchdata==0.7.1
468
+ torchtext==0.16.2
469
+ tornado @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_3a5nrn2jeh/croot/tornado_1696936974091/work
470
+ tqdm @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_ac7zic_tin/croot/tqdm_1679561870178/work
471
+ trainer==0.0.36
472
+ traitlets @ file:///Users/cbousseau/work/recipes/ci_py311/traitlets_1677911650502/work
473
+ transformers==4.51.3
474
+ truststore @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_42mm7e6j06/croot/truststore_1695244298716/work
475
+ TTS==0.22.0
476
+ Twisted @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_3c_lnc4s5c/croot/twisted_1683796895946/work
477
+ typeguard==4.4.2
478
+ typer==0.16.0
479
+ typer-slim==0.12.5
480
+ typing_extensions==4.13.2
481
+ tzdata @ file:///croot/python-tzdata_1690578112552/work
482
+ tzlocal==5.3.1
483
+ uc-micro-py @ file:///Users/cbousseau/work/recipes/ci_py311/uc-micro-py_1677963537430/work
484
+ ujson @ file:///Users/cbousseau/work/recipes/ci_py311/ujson_1677927397272/work
485
+ umap-learn==0.5.7
486
+ Unidecode==1.4.0
487
+ urllib3 @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_8erehjlzck/croot/urllib3_1707349248082/work
488
+ uvicorn @ file:///Users/cbousseau/work/recipes/ci_py311_2/uvicorn-split_1678996068223/work
489
+ w3lib @ file:///Users/ktietz/demo/mc3/conda-bld/w3lib_1629359764703/work
490
+ wasabi==1.1.2
491
+ watchdog @ file:///Users/cbousseau/work/recipes/ci_py311/watchdog_1677963700938/work
492
+ wcwidth @ file:///Users/ktietz/demo/mc3/conda-bld/wcwidth_1629357192024/work
493
+ weasel==0.3.4
494
+ webencodings==0.5.1
495
+ websocket-client @ file:///Users/cbousseau/work/recipes/ci_py311/websocket-client_1677918996745/work
496
+ websockets @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_d8ij4gljy1/croot/websockets_1678966799107/work
497
+ Werkzeug @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_fc9kcczuwd/croot/werkzeug_1679489745296/work
498
+ whatthepatch @ file:///Users/cbousseau/work/recipes/ci_py311/whatthepatch_1677934976505/work
499
+ widgetsnbextension @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_cd_nvw5x1_/croot/widgetsnbextension_1679313872684/work
500
+ Wikipedia-API==0.8.1
501
+ wrapt @ file:///Users/cbousseau/work/recipes/ci_py311/wrapt_1677925966862/work
502
+ wurlitzer @ file:///Users/cbousseau/work/recipes/ci_py311/wurlitzer_1677955854875/work
503
+ xarray @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_a14bvvrzzp/croot/xarray_1689041477812/work
504
+ xgboost==1.7.3
505
+ xlwings @ file:///Users/cbousseau/work/recipes/ci_py311_2/xlwings_1678996173448/work
506
+ xxhash @ file:///Users/cbousseau/work/recipes/ci_py311/python-xxhash_1677954188023/work
507
+ xyzservices @ file:///Users/cbousseau/work/recipes/ci_py311/xyzservices_1677927443768/work
508
+ y-py @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_58d555zc6u/croot/y-py_1683555409055/work
509
+ yapf @ file:///tmp/build/80754af9/yapf_1615749224965/work
510
+ yarl==1.22.0
511
+ yfinance==0.2.44
512
+ ypy-websocket @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_e638ipunz1/croot/ypy-websocket_1684192343550/work
513
+ zict @ file:///private/var/folders/k1/30mswbxs7r1g6zwn8y4fyt500000gp/T/abs_29a3x1a9ts/croot/zict_1695832855383/work
514
+ zipp @ file:///private/var/folders/nz/j6p8yfhx1mv_0grj5xl4650h0000gp/T/abs_31jm3q76eq/croot/zipp_1704206913245/work
515
+ zope.interface @ file:///Users/cbousseau/work/recipes/ci_py311/zope.interface_1678055276546/work
516
+ zstandard @ file:///Users/cbousseau/work/recipes/ci_py311_2/zstandard_1678996192313/work