From 74e6e10a9189c1e7af96c2319ab1e9db754f0bf1 Mon Sep 17 00:00:00 2001 From: Val Date: Sat, 11 Jan 2025 15:31:02 +0100 Subject: [PATCH 01/11] proof of concept works --- .gitignore | 4 +- .lightbug/mojodoc.json | 104 + .lightbug/openapi_spec.json | 95 + .lightbug/routes.json | 14 + "lightbug.\360\237\224\245" | 26 +- lightbug_api/__init__.mojo | 27 - lightbug_api/app.mojo | 85 + lightbug_api/docs.mojo | 37 + lightbug_api/logger.mojo | 66 + lightbug_api/openapi/__init__.mojo | 0 lightbug_api/openapi/generate.mojo | 213 + lightbug_api/routing.mojo | 40 +- lightbug_api/service.mojo | 5 + magic.lock | 7476 +++++++++++++++++++++---- mojoproject.toml | 4 +- tests/lightbug_api/test_generate.mojo | 194 + 16 files changed, 7122 insertions(+), 1268 deletions(-) create mode 100644 .lightbug/mojodoc.json create mode 100644 .lightbug/openapi_spec.json create mode 100644 .lightbug/routes.json create mode 100644 lightbug_api/app.mojo create mode 100644 lightbug_api/docs.mojo create mode 100644 lightbug_api/logger.mojo create mode 100644 lightbug_api/openapi/__init__.mojo create mode 100644 lightbug_api/openapi/generate.mojo create mode 100644 lightbug_api/service.mojo create mode 100644 tests/lightbug_api/test_generate.mojo diff --git a/.gitignore b/.gitignore index f6a11b0..c79b45d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,6 @@ *.egg-info # magic environments -.magic \ No newline at end of file +.magic + +external \ No newline at end of file diff --git a/.lightbug/mojodoc.json b/.lightbug/mojodoc.json new file mode 100644 index 0000000..4d0bb56 --- /dev/null +++ b/.lightbug/mojodoc.json @@ -0,0 +1,104 @@ +{ + "decl": { + "aliases": [], + "description": "", + "functions": [ + { + "kind": "function", + "name": "printer", + "overloads": [ + { + "args": [ + { + "convention": "read", + "description": "Any arbitrary HTTP request with a body.", + "kind": "argument", + "name": "req", + "passingKind": "pos_or_kw", + "type": "HTTPRequest" + } + ], + "async": false, + "constraints": "", + "deprecated": "", + "description": "", + "isDef": false, + "isStatic": false, + "kind": "function", + "name": "printer", + "parameters": [], + "raises": false, + "raisesDoc": "", + "returnType": "HTTPResponse", + "returnsDoc": "HTTPResponse: 200 OK with the request body.", + "signature": "printer(req: HTTPRequest) -> HTTPResponse", + "summary": "Prints the request body and returns it." + } + ] + }, + { + "kind": "function", + "name": "hello", + "overloads": [ + { + "args": [ + { + "convention": "read", + "description": "Any arbitrary HTTP request.", + "kind": "argument", + "name": "req", + "passingKind": "pos_or_kw", + "type": "HTTPRequest" + } + ], + "async": false, + "constraints": "", + "deprecated": "", + "description": "Tags:\n hello, what, up.", + "isDef": false, + "isStatic": false, + "kind": "function", + "name": "hello", + "parameters": [], + "raises": false, + "raisesDoc": "", + "returnType": "HTTPResponse", + "returnsDoc": "HTTPResponse: 200 OK with a Hello World message.", + "signature": "hello(req: HTTPRequest) -> HTTPResponse", + "summary": "Simple hello world function." + } + ] + }, + { + "kind": "function", + "name": "main", + "overloads": [ + { + "args": [], + "async": false, + "constraints": "", + "deprecated": "", + "description": "", + "isDef": false, + "isStatic": false, + "kind": "function", + "name": "main", + "parameters": [], + "raises": true, + "raisesDoc": "", + "returnType": null, + "returnsDoc": "", + "signature": "main()", + "summary": "" + } + ] + } + ], + "kind": "module", + "name": "lightbug", + "structs": [], + "summary": "", + "traits": [] + }, + "version": "24.6.0" +} \ No newline at end of file diff --git a/.lightbug/openapi_spec.json b/.lightbug/openapi_spec.json new file mode 100644 index 0000000..dddcfd5 --- /dev/null +++ b/.lightbug/openapi_spec.json @@ -0,0 +1,95 @@ +{ + "openapi": "3.0.0", + "info": { + "title": "lightbug", + "version": "24.6.0", + "description": "API generated from Mojo documentation" + }, + "paths": { + "/printer": { + "post": { + "summary": "printer endpoint", + "operationId": "printer", + "description": "Prints the request body and returns it.", + "responses": { + "200": { + "description": "HTTPResponse: 200 OK with the request body.", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + } + }, + "requestBody": { + "required": true, + "description": "Any arbitrary HTTP request with a body.", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + } + } + }, + "/": { + "get": { + "summary": "hello endpoint", + "operationId": "hello", + "description": "Simple hello world function.", + "tags": [ + "\n hello", + "what", + "up" + ], + "responses": { + "200": { + "description": "HTTPResponse: 200 OK with a Hello World message.", + "content": { + "text/plain": { + "schema": { + "type": "string" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "HTTPRequest": { + "type": "object", + "properties": { + "body_raw": { + "type": "string" + }, + "uri": { + "type": "object", + "properties": { + "path": { + "type": "string" + } + } + }, + "method": { + "type": "string" + } + } + }, + "HTTPResponse": { + "type": "object", + "properties": { + "body": { + "type": "string" + } + } + } + } + } +} \ No newline at end of file diff --git a/.lightbug/routes.json b/.lightbug/routes.json new file mode 100644 index 0000000..9dc2a4e --- /dev/null +++ b/.lightbug/routes.json @@ -0,0 +1,14 @@ +{ + "routes": [ + { + "path": "/", + "method": "GET", + "handler": "hello" + }, + { + "path": "/printer", + "method": "POST", + "handler": "printer" + } + ] +} \ No newline at end of file diff --git "a/lightbug.\360\237\224\245" "b/lightbug.\360\237\224\245" index 39ea507..94732da 100644 --- "a/lightbug.\360\237\224\245" +++ "b/lightbug.\360\237\224\245" @@ -1,19 +1,39 @@ -from lightbug_api import App +from lightbug_api.app import App from lightbug_http import HTTPRequest, HTTPResponse, OK @always_inline fn printer(req: HTTPRequest) -> HTTPResponse: + """Prints the request body and returns it. + + Args: + req: Any arbitrary HTTP request with a body. + + Returns: + HTTPResponse: 200 OK with the request body. + """ + print("Got a request on ", req.uri.path, " with method ", req.method) return OK(req.body_raw) @always_inline fn hello(req: HTTPRequest) -> HTTPResponse: + """Simple hello world function. + + Args: + req: Any arbitrary HTTP request. + + Returns: + HTTPResponse: 200 OK with a Hello World message. + + Tags: + hello, what, up. + """ return OK("Hello 🔥!") fn main() raises: var app = App() - app.get("/", hello) - app.post("/", printer) + app.get("/", hello, "hello") + app.post("/printer", printer, "printer") app.start_server() diff --git a/lightbug_api/__init__.mojo b/lightbug_api/__init__.mojo index eec474f..e69de29 100644 --- a/lightbug_api/__init__.mojo +++ b/lightbug_api/__init__.mojo @@ -1,27 +0,0 @@ -from lightbug_http import HTTPRequest, HTTPResponse, SysServer, NotFound -from lightbug_api.routing import Router - - -@value -struct App: - var router: Router - - fn __init__(inout self): - self.router = Router() - - fn func(self, req: HTTPRequest) raises -> HTTPResponse: - for route_ptr in self.router.routes: - var route = route_ptr[] - if route.path == req.uri.path and route.method == req.method: - return route.handler(req) - return NotFound(req.uri.path) - - fn get(inout self, path: String, handler: fn (HTTPRequest) -> HTTPResponse): - self.router.add_route(path, "GET", handler) - - fn post(inout self, path: String, handler: fn (HTTPRequest) -> HTTPResponse): - self.router.add_route(path, "POST", handler) - - fn start_server(inout self, address: StringLiteral = "0.0.0.0:8080") raises: - var server = SysServer() - server.listen_and_serve(address, self) diff --git a/lightbug_api/app.mojo b/lightbug_api/app.mojo new file mode 100644 index 0000000..d929de4 --- /dev/null +++ b/lightbug_api/app.mojo @@ -0,0 +1,85 @@ +from os import mkdir +from os.path import exists +from pathlib import Path +from lightbug_http import HTTPRequest, HTTPResponse, Server, NotFound +from external.emberjson import JSON, Array, Object, Value, to_string +from lightbug_api.openapi.generate import OpenAPIGenerator +from lightbug_api.routing import Router +from lightbug_api.logger import logger +from lightbug_api.docs import DocsApp + +@value +struct App: + var router: Router + var lightbug_dir: Path + + fn __init__(inout self) raises: + self.router = Router() + self.lightbug_dir = Path() + + fn set_lightbug_dir(mut self, lightbug_dir: Path): + self.lightbug_dir = lightbug_dir + + fn func(mut self, req: HTTPRequest) raises -> HTTPResponse: + for route_ptr in self.router.routes: + var route = route_ptr[] + if route.path == req.uri.path and route.method == req.method: + return route.handler(req) + return NotFound(req.uri.path) + + fn get(mut self, path: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): + self.router.add_route(path, "GET", handler, operation_id) + + fn post(mut self, path: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): + self.router.add_route(path, "POST", handler, operation_id) + + fn put(mut self, path: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): + self.router.add_route(path, "PUT", handler, operation_id) + + fn delete(mut self, path: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): + self.router.add_route(path, "DELETE", handler, operation_id) + + fn update_temporary_files(mut self) raises: + var routes_obj = Object() + var routes = List[Value]() + + for route_ptr in self.router.routes: + var route = route_ptr[] + var route_obj = Object() + route_obj["path"] = route.path + route_obj["method"] = route.method + route_obj["handler"] = route.operation_id + routes.append(route_obj) + + routes_obj["routes"] = Array.from_list(routes) + var cwd = Path() + var lightbug_dir = cwd / ".lightbug" + self.set_lightbug_dir(lightbug_dir) + + if not exists(lightbug_dir): + logger.info("Creating .lightbug directory") + mkdir(lightbug_dir) + + with open((lightbug_dir / "routes.json"), "w") as f: + f.write(to_string[pretty=True](routes_obj)) + + fn start_server(mut self, address: StringLiteral = "0.0.0.0:8080") raises: + logger.info("Starting server at " + String(address)) + self.update_temporary_files() + + var generator = OpenAPIGenerator() + + var mojo_doc_json: JSON + var router_metadata_json: JSON + + print(self.lightbug_dir) + mojo_doc_json = generator.read_mojo_doc((self.lightbug_dir / "mojodoc.json").__str__()) + router_metadata_json = generator.read_router_metadata((self.lightbug_dir / "routes.json").__str__()) + + var openapi_spec = generator.generate_spec(mojo_doc_json, router_metadata_json) + + generator.save_spec(openapi_spec, (self.lightbug_dir / "openapi_spec.json").__str__()) + # var server = Server() + # server.listen_and_serve(address, self) + var docs = DocsApp(to_string(openapi_spec)) + docs.start_docs_server(address) diff --git a/lightbug_api/docs.mojo b/lightbug_api/docs.mojo new file mode 100644 index 0000000..1404b79 --- /dev/null +++ b/lightbug_api/docs.mojo @@ -0,0 +1,37 @@ +from lightbug_http import Server, HTTPRequest, HTTPResponse, OK +from lightbug_api.logger import logger + +@value +struct DocsApp: + var openapi_spec: String + + fn func(mut self, req: HTTPRequest) raises -> HTTPResponse: + var html_response = String(""" + + + + Scalar API Reference + + + + + + + + + """).format(self.openapi_spec) + return OK(html_response, "text/html; charset=utf-8") + + fn set_openapi_spec(mut self, openapi_spec: String): + self.openapi_spec = openapi_spec + + fn start_docs_server(mut self, address: StringLiteral = "0.0.0.0:8888") raises: + logger.info("Starting docs at " + String(address)) + var server = Server() + server.listen_and_serve(address, self) \ No newline at end of file diff --git a/lightbug_api/logger.mojo b/lightbug_api/logger.mojo new file mode 100644 index 0000000..ca76771 --- /dev/null +++ b/lightbug_api/logger.mojo @@ -0,0 +1,66 @@ +from memory import memcpy, Span + +struct LogLevel(): + alias FATAL = 0 + alias ERROR = 1 + alias WARN = 2 + alias INFO = 3 + alias DEBUG = 4 + + +@value +struct Logger(): + var level: Int + + fn __init__(out self, level: Int = LogLevel.INFO): + self.level = level + + fn _log_message(self, message: String, level: Int): + if self.level >= level: + if level < LogLevel.WARN: + print(message, file=2) + else: + print(message) + + fn info[*Ts: Writable](self, *messages: *Ts): + var msg = String.write("\033[36mINFO\033[0m - ") + @parameter + fn write_message[T: Writable](message: T): + msg.write(message, " ") + messages.each[write_message]() + self._log_message(msg, LogLevel.INFO) + + fn warn[*Ts: Writable](self, *messages: *Ts): + var msg = String.write("\033[33mWARN\033[0m - ") + @parameter + fn write_message[T: Writable](message: T): + msg.write(message, " ") + messages.each[write_message]() + self._log_message(msg, LogLevel.WARN) + + fn error[*Ts: Writable](self, *messages: *Ts): + var msg = String.write("\033[31mERROR\033[0m - ") + @parameter + fn write_message[T: Writable](message: T): + msg.write(message, " ") + messages.each[write_message]() + self._log_message(msg, LogLevel.ERROR) + + fn debug[*Ts: Writable](self, *messages: *Ts): + var msg = String.write("\033[34mDEBUG\033[0m - ") + @parameter + fn write_message[T: Writable](message: T): + msg.write(message, " ") + messages.each[write_message]() + self._log_message(msg, LogLevel.DEBUG) + + fn fatal[*Ts: Writable](self, *messages: *Ts): + var msg = String.write("\033[35mFATAL\033[0m - ") + @parameter + fn write_message[T: Writable](message: T): + msg.write(message, " ") + messages.each[write_message]() + self._log_message(msg, LogLevel.FATAL) + + +alias logger = Logger() diff --git a/lightbug_api/openapi/__init__.mojo b/lightbug_api/openapi/__init__.mojo new file mode 100644 index 0000000..e69de29 diff --git a/lightbug_api/openapi/generate.mojo b/lightbug_api/openapi/generate.mojo new file mode 100644 index 0000000..3d74cb6 --- /dev/null +++ b/lightbug_api/openapi/generate.mojo @@ -0,0 +1,213 @@ +from collections.dict import Dict +from external.emberjson import JSON, Value, Array, Object, ParseOptions, parse, to_string +from lightbug_api.logger import logger + +struct OpenAPIGenerator: + var tags: List[Value] + + fn __init__(out self): + self.tags = List[Value]() + + fn __init__(out self, tags: List[Value]): + self.tags = tags + + fn set_tags(mut self, tags: List[Value]): + self.tags = tags + + fn create_paths(mut self, mojo_doc: JSON, router_metadata: JSON) raises -> JSON: + logger.info("Adding paths") + var paths = JSON() + var route_map = Dict[String, Tuple[String, String]]() + var routes = router_metadata["routes"][Array]._data + for i in range(len(routes)): + var route = routes[i][Object] + var handler = route["handler"].__str__().strip('"') + var path = route["path"][String].strip('"') + var method = String(route["method"][String].strip('"')).lower() + route_map[handler] = (String(path), method) + logger.info("Added to route map: " + method + " " + path + " -> " + handler) + + for func in mojo_doc["decl"][Object]["functions"][Array]._data: + var func_name = func[][Object]["name"].__str__().strip('"') + + if func_name not in route_map: + continue + + var route_info = route_map[func_name] + var path = route_info.get[0][String]() + var http_method = route_info.get[1][String]() + + var endpoint = self.create_endpoint(func[].object(), http_method) + + if paths.__contains__(path): + logger.info("Path already exists: " + path + ", adding method: " + http_method) + var new_path_item = JSON() + var existing_path_item = paths[path][Object] + + for key in existing_path_item._data.keys(): + var existing_key = key[] + new_path_item[existing_key] = existing_path_item[existing_key] + + new_path_item[http_method] = endpoint.object() + + paths[path] = new_path_item.object() + else: + logger.info("Creating new path: " + path + ", adding method: " + http_method) + var path_item = JSON() + path_item[http_method] = endpoint.object() + paths[path] = path_item.object() + + return paths + + fn create_endpoint(mut self, function_data: JSON, http_method: String) raises -> JSON: + logger.info("Creating endpoint for " + String(function_data["name"].__str__().strip('"'))) + var endpoint = JSON() + var func_name = function_data["name"] + endpoint["summary"] = String(func_name.__str__().strip('"')) + " endpoint" + endpoint["operationId"] = func_name + + var responses = JSON() + var response_200 = JSON() + + var overloads = Array(function_data["overloads"])._data + + var request_description = String("Request body") + var response_description = String("Successful response") + + for i in range(len(overloads)): + var overload = overloads[i][Array][0] # first overload only for now + if "returnsDoc" in overload[Object]._data: + response_description = String(overload[Object]["returnsDoc"].__str__().strip('"')) + if "summary" in overload[Object]._data: + endpoint["description"] = String(overload[Object]["summary"].__str__().strip('"')) + if "description" in overload[Object]._data and overload[Object]["description"].__str__().__contains__("Tags:"): + var description = overload[Object]["description"].__str__() + var tags_part = description.split("Tags:")[1] + var tags_str = String(tags_part.strip().rstrip('."')) + var tags = tags_str.split(",") + var tag_values = List[Value]() + for tag in tags: + var stripped_tag = String(tag[].strip()).replace("\\n", "").replace("\\t", "").replace("\\r", "") + var cleaned_tag = stripped_tag.strip(" ") + tag_values.append(Value(cleaned_tag.__str__())) + + self.set_tags(tag_values) + endpoint["tags"] = Array(tag_values) + + if "args" in overload[Object]._data: + var args = Array(overload[Object]["args"])._data + for i in range(len(args)): + var arg = args[0][Array][i][Object] + if "description" in arg._data: + request_description = String(arg["description"].__str__().strip('"')) + break + + response_200["description"] = response_description + + var content = JSON() + var text_plain = JSON() + var schema = JSON() + schema["type"] = "string" + + text_plain["schema"] = schema.object() + content["text/plain"] = text_plain.object() + response_200["content"] = content.object() + responses["200"] = response_200.object() + endpoint["responses"] = responses.object() + + if http_method == "post": + var request_body = JSON() + request_body["required"] = True + request_body["description"] = request_description + + var req_content = JSON() + var req_text_plain = JSON() + var req_schema = JSON() + req_schema["type"] = "string" + + req_text_plain["schema"] = req_schema.object() + req_content["text/plain"] = req_text_plain.object() + request_body["content"] = req_content.object() + endpoint["requestBody"] = request_body.object() + + return endpoint + + fn create_components_schema(self) raises -> JSON: + logger.info("Adding components schema") + var components = JSON() + var schemas = JSON() + + # Define HTTPRequest schema + var http_request = JSON() + var request_properties = JSON() + + var body_raw = JSON() + body_raw["type"] = "string" + + var uri = JSON() + var uri_properties = JSON() + var path = JSON() + path["type"] = "string" + uri_properties["path"] = path.object() + uri["type"] = "object" + uri["properties"] = uri_properties.object() + + var method = JSON() + method["type"] = "string" + + request_properties["body_raw"] = body_raw.object() + request_properties["uri"] = uri.object() + request_properties["method"] = method.object() + + http_request["type"] = "object" + http_request["properties"] = request_properties.object() + + # Define HTTPResponse schema + var http_response = JSON() + var response_properties = JSON() + var body = JSON() + body["type"] = "string" + response_properties["body"] = body.object() + + http_response["type"] = "object" + http_response["properties"] = response_properties.object() + + schemas["HTTPRequest"] = http_request.object() + schemas["HTTPResponse"] = http_response.object() + components["schemas"] = schemas.object() + + return components + + fn generate_spec(mut self, mojo_doc: JSON, router_metadata: JSON) raises -> JSON: + logger.info("Generating OpenAPI specification") + var spec = JSON() + + spec["openapi"] = "3.0.0" + + var info = JSON() + info["title"] = mojo_doc["decl"][Object]["name"] + info["version"] = mojo_doc["version"] + info["description"] = "API generated from Mojo documentation" + + spec["info"] = info.object() + spec["paths"] = self.create_paths(mojo_doc, router_metadata).object() + spec["components"] = self.create_components_schema().object() + + return spec + + fn read_mojo_doc(self, filename: String) raises -> JSON: + logger.info("Reading the output of the mojo doc command") + with open(filename, "r") as mojo_doc: + return parse[ParseOptions(fast_float_parsing=True)](mojo_doc.read()) + + fn read_router_metadata(self, filename: String) raises -> JSON: + logger.info("Reading Lightbug API router metadata") + with open(filename, "r") as router_metadata: + return parse[ParseOptions(fast_float_parsing=True)](router_metadata.read()) + + fn save_spec(self, spec: JSON, filename: String) raises: + logger.info("Saving generated OpenAPI specification to " + filename) + with open(filename, "w") as f: + f.write(to_string[pretty=True](spec)) + logger.info("OpenAPI specification has been generated and saved") + \ No newline at end of file diff --git a/lightbug_api/routing.mojo b/lightbug_api/routing.mojo index f442ef9..7645cbe 100644 --- a/lightbug_api/routing.mojo +++ b/lightbug_api/routing.mojo @@ -1,11 +1,35 @@ from lightbug_http import HTTPRequest, HTTPResponse, NotFound +from lightbug_api.service import not_found - -@value -struct APIRoute: +struct APIRoute(CollectionElement): var path: String var method: String var handler: fn (HTTPRequest) -> HTTPResponse + var operation_id: String + + fn __init__(out self): + self.path = "" + self.method = "" + self.handler = not_found + self.operation_id = "" + + fn __init__(out self, path: String, method: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): + self.path = path + self.method = method + self.handler = handler + self.operation_id = operation_id + + fn __copyinit__(out self: APIRoute, existing: APIRoute): + self.path = existing.path + self.method = existing.method + self.handler = existing.handler + self.operation_id = existing.operation_id + + fn __moveinit__(out self: APIRoute, owned existing: APIRoute): + self.path = existing.path + self.method = existing.method + self.handler = existing.handler + self.operation_id = existing.operation_id @value @@ -15,5 +39,11 @@ struct Router: fn __init__(inout self): self.routes = List[APIRoute]() - fn add_route(inout self, path: String, method: String, handler: fn (HTTPRequest) -> HTTPResponse): - self.routes.append(APIRoute(path, method, handler)) + fn __copyinit__(out self: Router, existing: Router): + self.routes = existing.routes + + fn __moveinit__(out self: Router, owned existing: Router): + self.routes = existing.routes + + fn add_route(inout self, path: String, method: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): + self.routes.append(APIRoute(path, method, handler, operation_id)) diff --git a/lightbug_api/service.mojo b/lightbug_api/service.mojo new file mode 100644 index 0000000..aa35978 --- /dev/null +++ b/lightbug_api/service.mojo @@ -0,0 +1,5 @@ +from lightbug_http import HTTPRequest, HTTPResponse, NotFound + +@always_inline +fn not_found(req: HTTPRequest) -> HTTPResponse: + return NotFound(req.uri.path) \ No newline at end of file diff --git a/magic.lock b/magic.lock index fc8f186..c9987c3 100644 --- a/magic.lock +++ b/magic.lock @@ -9,114 +9,433 @@ environments: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.4.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.11.11-py312h178313f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.8.0-hb921021_15.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.8.1-h1a47875_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.10.6-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.0-h4e1184b_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.0-h7959bf6_11.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.9.2-hefd7a92_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.15.3-h831e299_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.11.0-h11f4f37_12.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.7.7-hf454442_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.1-h4e1184b_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.2-h4e1184b_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.29.7-hd92328a_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.458-hc430e4a_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.14.0-h5cfcd09_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.10.0-h113e628_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.13.0-h3cf044e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.8.0-h736e048_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.12.0-ha633028_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backoff-2.2.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://repo.prefix.dev/mojo-community/linux-64/gojo-0.1.9-hb0f4dca_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.4-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/datasets-2.14.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.2.15-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.7.0-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/email_validator-2.2.0-hd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fastapi-0.115.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fastapi-cli-0.0.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.5.0-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.66.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/httptools-0.6.4-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/huggingface_hub-0.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-24_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-24_linux64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240722.0-cxx17_hbbce691_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-18.1.0-hd595efa_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-18.1.0-hcb10f89_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-18.1.0-hcb10f89_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-18.1.0-h08228c5_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-26_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-26_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.11.1-h332b0f4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.23-h4ddbbb0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20240808-pl5321h7949ede_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.1.0-h77fa898_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h69a702a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.1.0-h69a702a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-24_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.33.0-h2b5623c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.33.0-h0121fbd_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.67.1-h25350d4_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-26_linux64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-18.1.0-h081d1f1_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.45-h943b412_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-5.28.3-h6128344_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2024.07.02-hbbce691_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.1-hadc24fc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.1.0-hc0a3c3a_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.21.0-h0e7cc3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-hd9ff511_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.9.0-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.5.0-h851e524_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - - conda: https://repo.prefix.dev/mojo-community/linux-64/lightbug_http-0.1.4-hb0f4dca_0.conda - - conda: https://conda.modular.com/max/noarch/max-24.5.0-release.conda - - conda: https://conda.modular.com/max/linux-64/max-core-24.5.0-release.conda - - conda: https://conda.modular.com/max/linux-64/max-python-24.5.0-3.12release.conda - - conda: https://conda.modular.com/max/noarch/mblack-24.5.0-release.conda - - conda: https://conda.modular.com/max/noarch/mojo-jupyter-24.5.0-release.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.5-h0d44e9d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://repo.prefix.dev/mojo-community/linux-64/lightbug_http-0.1.8-hb0f4dca_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_1.conda + - conda: https://conda.modular.com/max/noarch/max-24.6.0-release.conda + - conda: https://conda.modular.com/max/linux-64/max-core-24.6.0-release.conda + - conda: https://conda.modular.com/max/linux-64/max-python-24.6.0-3.12release.conda + - conda: https://conda.modular.com/max/noarch/mblack-24.6.0-release.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.modular.com/max/noarch/mojo-jupyter-24.6.0-release.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/multidict-6.1.0-py312h178313f_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/multiprocess-0.70.15-py312h98912ed_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.6-hc5c86c4_1_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h5fbd93e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-api-1.29.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-exporter-otlp-proto-common-1.29.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-exporter-otlp-proto-http-1.29.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-exporter-prometheus-1.12.0rc1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-proto-1.29.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-sdk-1.29.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-semantic-conventions-0.50b0-pyh3cfb1c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.3-h12ee42a_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py312hf9745cd_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.1.0-py312h80c1187_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.21.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/propcache-0.2.1-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/protobuf-5.28.3-py312h2ec8cdc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-18.1.0-py312h7900ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-18.1.0-py312h01725c0_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.5-pyh3cfb1c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.27.2-py312h12e396e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.7.1-pyh3cfb1c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyinstrument-5.0.0-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-multipart-0.0.20-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-xxhash-3.5.0-py312h66e93f0_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2024.07.02-h9925aae_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://repo.prefix.dev/mojo-community/linux-64/small_time-0.1.3-hb0f4dca_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/regex-2024.11.6-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-toolkit-0.11.3-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.10-hb5b8611_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/safetensors-0.5.2-py312h12e396e_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/mojo-community/linux-64/small_time-0.1.6-hb0f4dca_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.1-h8bd8927_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sse-starlette-2.2.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/starlette-0.41.3-pyha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h66e93f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-ha4adb4c_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tokenizers-0.21.0-py312h8360d73_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.2-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/transformers-4.48.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.15.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.15.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.15.1-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.34.0-pyh31011fe_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/uvicorn-standard-0.34.0-h31011fe_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/uvloop-0.21.0-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/watchfiles-1.0.4-py312h12e396e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/websockets-14.1-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.17.0-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xxhash-0.8.2-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.18.3-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.4.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aiohttp-3.11.11-py312h998013c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.8.0-h8bc59a9_15.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.8.1-hc8a0bd2_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.10.6-h5505292_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.3.0-hc8a0bd2_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.0-h54f970a_11.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.9.2-h96aa502_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.15.3-haba67d1_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.11.0-h24f418c_12.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.7.7-h1be5864_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.2.1-hc8a0bd2_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.2.2-hc8a0bd2_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.29.7-h19a973c_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.458-he0ff2e4_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.14.0-hd50102c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.10.0-hc602bab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.13.0-h7585a09_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.8.0-h9ca1f76_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.12.0-hcdd55da_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backoff-2.2.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312hde4cb15_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - - conda: https://repo.prefix.dev/mojo-community/osx-arm64/gojo-0.1.9-h60d57d3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.4-h5505292_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.12.14-hf0a4a13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/datasets-2.14.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.2.15-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.7.0-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/email_validator-2.2.0-hd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fastapi-0.115.6-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fastapi-cli-0.0.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/frozenlist-1.5.0-py312h0bf5046_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.12.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hf9b8971_1005.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.66.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/httptools-0.6.4-py312hea69d52_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/huggingface_hub-0.27.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-24_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-24_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.0-ha82da77_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.16-ha0e7c42_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-h9a09cb3_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240722.0-cxx17_h07bc746_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-18.1.0-h0ad35bc_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-18.1.0-hf07054f_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-18.1.0-hf07054f_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-18.1.0-h4239455_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-26_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hd74edd7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-26_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.11.1-h73640d1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.6-ha82da77_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.23-hec38601_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20240808-pl5321hafb1f1b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h2757513_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-24_osxarm64_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.27-openmp_h517c56d_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.33.0-hdbe95d5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.33.0-h7081f7f_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.67.1-h0a426d6_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-26_osxarm64_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.6.3-h39f12f2_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.28-openmp_hf332438_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-18.1.0-h636d7b7_7_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.45-h3783ad8_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-5.28.3-h3bd63a1_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2024.07.02-h07bc746_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.1-hc14010f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - - conda: https://repo.prefix.dev/mojo-community/osx-arm64/lightbug_http-0.1.4-h60d57d3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_1.conda - - conda: https://conda.modular.com/max/noarch/max-24.5.0-release.conda - - conda: https://conda.modular.com/max/osx-arm64/max-core-24.5.0-release.conda - - conda: https://conda.modular.com/max/osx-arm64/max-python-24.5.0-3.12release.conda - - conda: https://conda.modular.com/max/noarch/mblack-24.5.0-release.conda - - conda: https://conda.modular.com/max/noarch/mojo-jupyter-24.5.0-release.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.2-h3f77e49_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h9cc3647_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.21.0-h64651cc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.0-h551f018_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.9.0-h5505292_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.5.0-h2471fea_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.5-h178c5d8_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://repo.prefix.dev/mojo-community/osx-arm64/lightbug_http-0.1.8-h60d57d3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-19.1.6-hdb05f8b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.10.0-h286801f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py312h998013c_1.conda + - conda: https://conda.modular.com/max/noarch/max-24.6.0-release.conda + - conda: https://conda.modular.com/max/osx-arm64/max-core-24.6.0-release.conda + - conda: https://conda.modular.com/max/osx-arm64/max-python-24.6.0-3.12release.conda + - conda: https://conda.modular.com/max/noarch/mblack-24.6.0-release.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.modular.com/max/noarch/mojo-jupyter-24.6.0-release.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/multidict-6.1.0-py312hdb8e49c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/multiprocess-0.70.15-py312h02f2b3b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.6-h739c21a_1_cpython.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.3-h8a3d83b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h81ee809_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-api-1.29.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-exporter-otlp-proto-common-1.29.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-exporter-otlp-proto-http-1.29.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-exporter-prometheus-1.12.0rc1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-proto-1.29.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-sdk-1.29.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-semantic-conventions-0.50b0-pyh3cfb1c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.3-h0ff2369_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py312hcd31e36_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.1.0-py312h50aef2c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.21.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/propcache-0.2.1-py312hea69d52_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/protobuf-5.28.3-py312hd8f9ff3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-18.1.0-py312h1f38498_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-18.1.0-py312hc40f475_0_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.5-pyh3cfb1c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.27.2-py312hcd83bfe_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.7.1-pyh3cfb1c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyinstrument-5.0.0-py312h0bf5046_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.8-hc22306f_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-multipart-0.0.20-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-xxhash-3.5.0-py312h024a12e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py312hc6335d2_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h024a12e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py312hf8a1cbd_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2024.07.02-h6589ca4_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - - conda: https://repo.prefix.dev/mojo-community/osx-arm64/small_time-0.1.3-h60d57d3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/regex-2024.11.6-py312hea69d52_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-toolkit-0.11.3-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/safetensors-0.5.2-py312hcd83bfe_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://repo.prefix.dev/mojo-community/osx-arm64/small_time-0.1.6-h60d57d3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.1-h98b9ce2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sse-starlette-2.2.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/starlette-0.41.3-pyha770c72_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h024a12e_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h64debc3_5.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tokenizers-0.21.0-py312hf3e4074_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.2-py312hea69d52_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/transformers-4.47.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.15.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.15.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.15.1-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.34.0-pyh31011fe_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/uvicorn-standard-0.34.0-h31011fe_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uvloop-0.21.0-py312h0bf5046_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/watchfiles-1.0.3-py312hcd83bfe_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/websockets-14.1-py312hea69d52_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.17.0-py312hea69d52_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.12-h5505292_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.5-hd74edd7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xxhash-0.8.2-hb547adb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yarl-1.18.3-py312hea69d52_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hc1bb282_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda packages: - kind: conda name: _libgcc_mutex @@ -148,1494 +467,6191 @@ packages: size: 23621 timestamp: 1650670423406 - kind: conda - name: bzip2 - version: 1.0.8 - build: h4bc722e_7 - build_number: 7 + name: aiohappyeyeballs + version: 2.4.4 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/aiohappyeyeballs-2.4.4-pyhd8ed1ab_1.conda + sha256: 95d4713e49ea92ae50cf42393683ede706b7875af5f7cb14c253438180afa732 + md5: 296b403617bafa89df4971567af79013 + depends: + - python >=3.9 + license: PSF-2.0 + license_family: PSF + size: 19351 + timestamp: 1733332029649 +- kind: conda + name: aiohttp + version: 3.11.11 + build: py312h178313f_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d - md5: 62ee74e96c5ebb0af99386de58cf9553 + url: https://conda.anaconda.org/conda-forge/linux-64/aiohttp-3.11.11-py312h178313f_0.conda + sha256: 2e817805e8a4fed33f23f116ff5649f8651af693328e9ed82d9d11a951338693 + md5: 8219afa093757bbe07b9825eb1973ed9 depends: - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - license: bzip2-1.0.6 - license_family: BSD - size: 252783 - timestamp: 1720974456583 + - aiohappyeyeballs >=2.3.0 + - aiosignal >=1.1.2 + - attrs >=17.3.0 + - frozenlist >=1.1.1 + - libgcc >=13 + - multidict >=4.5,<7.0 + - propcache >=0.2.0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - yarl >=1.17.0,<2.0 + license: MIT AND Apache-2.0 + license_family: Apache + size: 915358 + timestamp: 1734597073870 - kind: conda - name: bzip2 - version: 1.0.8 - build: h99b78c6_7 - build_number: 7 + name: aiohttp + version: 3.11.11 + build: py312h998013c_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda - sha256: adfa71f158cbd872a36394c56c3568e6034aa55c623634b37a4836bd036e6b91 - md5: fc6948412dbbbe9a4c9ddbbcfe0a79ab + url: https://conda.anaconda.org/conda-forge/osx-arm64/aiohttp-3.11.11-py312h998013c_0.conda + sha256: 446f078e7a7b892894d7f4851a278b7834ffb4f5632313646a55c3abe13690d4 + md5: c69c904691364cfb27d15aa7153e9c29 depends: - __osx >=11.0 - license: bzip2-1.0.6 - license_family: BSD - size: 122909 - timestamp: 1720974522888 -- kind: conda - name: ca-certificates - version: 2024.8.30 - build: hbcca054_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.8.30-hbcca054_0.conda - sha256: afee721baa6d988e27fef1832f68d6f32ac8cc99cdf6015732224c2841a09cea - md5: c27d1c142233b5bc9ca570c6e2e0c244 - license: ISC - size: 159003 - timestamp: 1725018903918 -- kind: conda - name: ca-certificates - version: 2024.8.30 - build: hf0a4a13_0 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.8.30-hf0a4a13_0.conda - sha256: 2db1733f4b644575dbbdd7994a8f338e6ef937f5ebdb74acd557e9dda0211709 - md5: 40dec13fd8348dbe303e57be74bd3d35 - license: ISC - size: 158482 - timestamp: 1725019034582 + - aiohappyeyeballs >=2.3.0 + - aiosignal >=1.1.2 + - attrs >=17.3.0 + - frozenlist >=1.1.1 + - multidict >=4.5,<7.0 + - propcache >=0.2.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - yarl >=1.17.0,<2.0 + license: MIT AND Apache-2.0 + license_family: Apache + size: 875711 + timestamp: 1734597277258 - kind: conda - name: click - version: 8.1.7 - build: unix_pyh707e725_0 + name: aiosignal + version: 1.3.2 + build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.7-unix_pyh707e725_0.conda - sha256: f0016cbab6ac4138a429e28dbcb904a90305b34b3fe41a9b89d697c90401caec - md5: f3ad426304898027fc619827ff428eca + url: https://conda.anaconda.org/conda-forge/noarch/aiosignal-1.3.2-pyhd8ed1ab_0.conda + sha256: 7de8ced1918bbdadecf8e1c1c68237fe5709c097bd9e0d254f4cad118f4345d0 + md5: 1a3981115a398535dbe3f6d5faae3d36 depends: - - __unix - - python >=3.8 - license: BSD-3-Clause - license_family: BSD - size: 84437 - timestamp: 1692311973840 -- kind: conda - name: gojo - version: 0.1.9 - build: h60d57d3_0 - subdir: osx-arm64 - url: https://repo.prefix.dev/mojo-community/osx-arm64/gojo-0.1.9-h60d57d3_0.conda - sha256: 4c268d0d8d5f1b78a547e78a3db9e8037143918cd1d696f5adb5db55942cef5e - depends: - - max >=24.5.0,<24.6.0 - arch: arm64 - platform: osx - license: MIT - size: 1009999 - timestamp: 1726268309700 -- kind: conda - name: gojo - version: 0.1.9 - build: hb0f4dca_0 - subdir: linux-64 - url: https://repo.prefix.dev/mojo-community/linux-64/gojo-0.1.9-hb0f4dca_0.conda - sha256: 9a49e21b4269368a6d906769bd041b8b91b99da3375d7944f7d8ddd73392c2f0 - depends: - - max >=24.5.0,<24.6.0 - arch: x86_64 - platform: linux - license: MIT - size: 1011206 - timestamp: 1726268249824 + - frozenlist >=1.1.0 + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + size: 13229 + timestamp: 1734342253061 - kind: conda - name: importlib-metadata - version: 8.5.0 - build: pyha770c72_0 + name: annotated-types + version: 0.7.0 + build: pyhd8ed1ab_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_0.conda - sha256: 7194700ce1a5ad2621fd68e894dd8c1ceaff9a38723e6e0e5298fdef13017b1c - md5: 54198435fce4d64d8a89af22573012a8 + url: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48 + md5: 2934f256a8acfe48f6ebb4fce6cde29c depends: - - python >=3.8 - - zipp >=0.5 - license: Apache-2.0 - license_family: APACHE - size: 28646 - timestamp: 1726082927916 + - python >=3.9 + - typing-extensions >=4.0.0 + license: MIT + license_family: MIT + size: 18074 + timestamp: 1733247158254 - kind: conda - name: jupyter_client - version: 8.6.3 + name: anyio + version: 4.8.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_0.conda - sha256: 4419c85e209a715f551a5c9bead746f29ee9d0fc41e772a76db3868622795671 - md5: a14218cfb29662b4a19ceb04e93e298e + url: https://conda.anaconda.org/conda-forge/noarch/anyio-4.8.0-pyhd8ed1ab_0.conda + sha256: f1455d2953e3eb6d71bc49881c8558d8e01888469dfd21061dd48afb6183e836 + md5: 848d25bfbadf020ee4d4ba90e5668252 depends: - - importlib-metadata >=4.8.3 - - jupyter_core >=4.12,!=5.0.* - - python >=3.8 - - python-dateutil >=2.8.2 - - pyzmq >=23.0 - - tornado >=6.2 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - size: 106055 - timestamp: 1726610805505 + - exceptiongroup >=1.0.2 + - idna >=2.8 + - python >=3.9 + - sniffio >=1.1 + - typing_extensions >=4.5 + constrains: + - trio >=0.26.1 + - uvloop >=0.21 + license: MIT + license_family: MIT + size: 115305 + timestamp: 1736174485476 - kind: conda - name: jupyter_core - version: 5.7.2 - build: pyh31011fe_1 - build_number: 1 + name: attrs + version: 24.3.0 + build: pyh71513ae_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda - sha256: 732b1e8536bc22a5a174baa79842d79db2f4956d90293dd82dc1b3f6099bcccd - md5: 0a2980dada0dd7fd0998f0342308b1b1 - depends: - - __unix - - platformdirs >=2.5 - - python >=3.8 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - size: 57671 - timestamp: 1727163547058 -- kind: conda - name: keyutils - version: 1.6.1 - build: h166bdaf_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 - sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb - md5: 30186d27e2c9fa62b45fb1476b7200e3 + url: https://conda.anaconda.org/conda-forge/noarch/attrs-24.3.0-pyh71513ae_0.conda + sha256: 750186af694a7130eaf7119fbb56db0d2326d8995ad5b8eae23c622b85fea29a + md5: 356927ace43302bf6f5926e2a58dae6a depends: - - libgcc-ng >=10.3.0 - license: LGPL-2.1-or-later - size: 117831 - timestamp: 1646151697040 + - python >=3.9 + license: MIT + license_family: MIT + size: 56354 + timestamp: 1734348889193 - kind: conda - name: krb5 - version: 1.21.3 - build: h237132a_0 + name: aws-c-auth + version: 0.8.0 + build: h8bc59a9_15 + build_number: 15 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - sha256: 4442f957c3c77d69d9da3521268cad5d54c9033f1a73f99cde0a3658937b159b - md5: c6dc8a0fdec13a0565936655c33069a1 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.8.0-h8bc59a9_15.conda + sha256: 0e41e56b662e76e024182adebcd91d09a4d38a83b35217c84e4967354dfff9a2 + md5: f688b8893c20ad9477a19e7ce614014a depends: - __osx >=11.0 - - libcxx >=16 - - libedit >=3.1.20191231,<3.2.0a0 - - libedit >=3.1.20191231,<4.0a0 - - openssl >=3.3.1,<4.0a0 - license: MIT - license_family: MIT - size: 1155530 - timestamp: 1719463474401 + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-http >=0.9.2,<0.9.3.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - aws-c-sdkutils >=0.2.1,<0.2.2.0a0 + license: Apache-2.0 + license_family: Apache + size: 92507 + timestamp: 1734021831330 - kind: conda - name: krb5 - version: 1.21.3 - build: h659f571_0 + name: aws-c-auth + version: 0.8.0 + build: hb921021_15 + build_number: 15 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238 - md5: 3f43953b7d3fb3aaa1d0d0723d91e368 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.8.0-hb921021_15.conda + sha256: 537006ad6d5097c134494166a6a1dc1451d5d050878d7b82cef498bfda40ba8a + md5: c79d50f64cffa5ad51ecc1a81057962f depends: - - keyutils >=1.6.1,<2.0a0 - - libedit >=3.1.20191231,<3.2.0a0 - - libedit >=3.1.20191231,<4.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - - openssl >=3.3.1,<4.0a0 - license: MIT - license_family: MIT - size: 1370023 - timestamp: 1719463201255 + - __glibc >=2.17,<3.0.a0 + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-http >=0.9.2,<0.9.3.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - aws-c-sdkutils >=0.2.1,<0.2.2.0a0 + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + size: 107614 + timestamp: 1734021692519 - kind: conda - name: ld_impl_linux-64 - version: '2.43' - build: h712a8e2_1 - build_number: 1 + name: aws-c-cal + version: 0.8.1 + build: h1a47875_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_1.conda - sha256: 0c21387f9a411e3d1f7f2969026bacfece133c8f1e72faea9cde29c0c19e1f3a - md5: 83e1364586ceb8d0739fbc85b5c95837 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.8.1-h1a47875_3.conda + sha256: 095ac824ea9303eff67e04090ae531d9eb33d2bf8f82eaade39b839c421e16e8 + md5: 55a8561fdbbbd34f50f57d9be12ed084 depends: - __glibc >=2.17,<3.0.a0 - constrains: - - binutils_impl_linux-64 2.43 - license: GPL-3.0-only - size: 669616 - timestamp: 1727304687962 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - libgcc >=13 + - openssl >=3.3.1,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 47601 + timestamp: 1733991564405 - kind: conda - name: libblas - version: 3.9.0 - build: 24_linux64_openblas - build_number: 24 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-24_linux64_openblas.conda - sha256: 3097f7913bda527d4fe9f824182b314e130044e582455037fca6f4e97965d83c - md5: 80aea6603a6813b16ec119d00382b772 + name: aws-c-cal + version: 0.8.1 + build: hc8a0bd2_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.8.1-hc8a0bd2_3.conda + sha256: 1f44be36e1daa17b4b081debb8aee492d13571084f38b503ad13e869fef24fe4 + md5: 8b0ce61384e5a33d2b301a64f3d22ac5 depends: - - libopenblas >=0.3.27,<0.3.28.0a0 - - libopenblas >=0.3.27,<1.0a0 - constrains: - - blas * openblas - - liblapack 3.9.0 24_linux64_openblas - - libcblas 3.9.0 24_linux64_openblas - - liblapacke 3.9.0 24_linux64_openblas - license: BSD-3-Clause - license_family: BSD - size: 14981 - timestamp: 1726668454790 + - __osx >=11.0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - openssl >=3.3.1,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 39925 + timestamp: 1733991649383 - kind: conda - name: libblas - version: 3.9.0 - build: 24_osxarm64_openblas - build_number: 24 + name: aws-c-common + version: 0.10.6 + build: h5505292_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-24_osxarm64_openblas.conda - sha256: 4739f7463efb12e6d71536d8b0285a8de5aaadcc442bfedb9d92d1b4cbc47847 - md5: 35cb711e7bc46ee5f3dd67af99ad1986 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.10.6-h5505292_0.conda + sha256: 3bde135c8e74987c0f79ecd4fa17ec9cff0d658b3090168727ca1af3815ae57a + md5: 145e5b4c9702ed279d7d68aaf096f77d depends: - - libopenblas >=0.3.27,<0.3.28.0a0 - - libopenblas >=0.3.27,<1.0a0 - constrains: - - liblapack 3.9.0 24_osxarm64_openblas - - blas * openblas - - liblapacke 3.9.0 24_osxarm64_openblas - - libcblas 3.9.0 24_osxarm64_openblas - license: BSD-3-Clause - license_family: BSD - size: 15144 - timestamp: 1726668802976 + - __osx >=11.0 + license: Apache-2.0 + license_family: Apache + size: 221863 + timestamp: 1733975576886 - kind: conda - name: libcblas - version: 3.9.0 - build: 24_linux64_openblas - build_number: 24 + name: aws-c-common + version: 0.10.6 + build: hb9d3cd8_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-24_linux64_openblas.conda - sha256: 2a52bccc5b03cdf014d856d0b85dbd591faa335ab337d620cd6aded121d7153c - md5: f5b8822297c9c790cec0795ca1fc9be6 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.10.6-hb9d3cd8_0.conda + sha256: 496e92f2150fdc351eacf6e236015deedb3d0d3114f8e5954341cbf9f3dda257 + md5: d7d4680337a14001b0e043e96529409b depends: - - libblas 3.9.0 24_linux64_openblas - constrains: - - blas * openblas - - liblapack 3.9.0 24_linux64_openblas - - liblapacke 3.9.0 24_linux64_openblas - license: BSD-3-Clause - license_family: BSD - size: 14910 - timestamp: 1726668461033 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + size: 236574 + timestamp: 1733975453350 - kind: conda - name: libcblas - version: 3.9.0 - build: 24_osxarm64_openblas - build_number: 24 + name: aws-c-compression + version: 0.3.0 + build: h4e1184b_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.0-h4e1184b_5.conda + sha256: 62ca84da83585e7814a40240a1e750b1563b2680b032a471464eccc001c3309b + md5: 3f4c1197462a6df2be6dc8241828fe93 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + size: 19086 + timestamp: 1733991637424 +- kind: conda + name: aws-c-compression + version: 0.3.0 + build: hc8a0bd2_5 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-24_osxarm64_openblas.conda - sha256: 40dc3f7c44af5cd5a2020386cb30f92943a9d8f7f54321b4d6ae32b2e54af9a4 - md5: c8977086a19233153e454bb2b332a920 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.3.0-hc8a0bd2_5.conda + sha256: 47b2813f652ce7e64ac442f771b2a5f7d4af4ad0d07ff51f6075ea80ed2e3f09 + md5: a8b6c17732d14ed49d0e9b59c43186bc depends: - - libblas 3.9.0 24_osxarm64_openblas - constrains: - - liblapack 3.9.0 24_osxarm64_openblas - - blas * openblas - - liblapacke 3.9.0 24_osxarm64_openblas - license: BSD-3-Clause - license_family: BSD - size: 15062 - timestamp: 1726668809379 + - __osx >=11.0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + license: Apache-2.0 + license_family: Apache + size: 18068 + timestamp: 1733991869211 - kind: conda - name: libcxx - version: 19.1.0 - build: ha82da77_0 + name: aws-c-event-stream + version: 0.5.0 + build: h54f970a_11 + build_number: 11 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.0-ha82da77_0.conda - sha256: b71167d9b7c8e598b12bbdafefd0139e3c70c6eb258cbda3de3fb422d0098025 - md5: a4c66c0d5b0f268fd27a956145004d27 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.5.0-h54f970a_11.conda + sha256: f0667935f4e0d4c25e0e51da035640310b5ceeb8f723156734439bde8b848d7d + md5: ba41238f8e653998d7d2f42e3a8db054 depends: - __osx >=11.0 - license: Apache-2.0 WITH LLVM-exception + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - aws-checksums >=0.2.2,<0.2.3.0a0 + - libcxx >=18 + license: Apache-2.0 license_family: Apache - size: 520766 - timestamp: 1726782571130 + size: 47078 + timestamp: 1734024749727 - kind: conda - name: libedit - version: 3.1.20191231 - build: hc8eb9b7_2 - build_number: 2 + name: aws-c-event-stream + version: 0.5.0 + build: h7959bf6_11 + build_number: 11 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.0-h7959bf6_11.conda + sha256: 10d7240c7db0c941fb1a59c4f8ea6689a434b03309ee7b766fa15a809c553c02 + md5: 9b3fb60fe57925a92f399bc3fc42eccf + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - aws-checksums >=0.2.2,<0.2.3.0a0 + - libgcc >=13 + - libstdcxx >=13 + license: Apache-2.0 + license_family: Apache + size: 54003 + timestamp: 1734024480949 +- kind: conda + name: aws-c-http + version: 0.9.2 + build: h96aa502_4 + build_number: 4 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20191231-hc8eb9b7_2.tar.bz2 - sha256: 3912636197933ecfe4692634119e8644904b41a58f30cad9d1fc02f6ba4d9fca - md5: 30e4362988a2623e9eb34337b83e01f9 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.9.2-h96aa502_4.conda + sha256: 22e4737c8a885995b7c1ae1d79c1f6e78d489e16ec079615980fdde067aeaf76 + md5: 495c93a4f08b17deb3c04894512330e6 depends: - - ncurses >=6.2,<7.0.0a0 - license: BSD-2-Clause - license_family: BSD - size: 96607 - timestamp: 1597616630749 + - __osx >=11.0 + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-compression >=0.3.0,<0.3.1.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + license: Apache-2.0 + license_family: Apache + size: 152983 + timestamp: 1734008451473 - kind: conda - name: libedit - version: 3.1.20191231 - build: he28a2e2_2 - build_number: 2 + name: aws-c-http + version: 0.9.2 + build: hefd7a92_4 + build_number: 4 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2 - sha256: a57d37c236d8f7c886e01656f4949d9dcca131d2a0728609c6f7fa338b65f1cf - md5: 4d331e44109e3f0e19b4cb8f9b82f3e1 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.9.2-hefd7a92_4.conda + sha256: 4a330206bd51148f6c13ca0b7a4db40f29a46f090642ebacdeb88b8a4abd7f99 + md5: 5ce4df662d32d3123ea8da15571b6f51 depends: - - libgcc-ng >=7.5.0 - - ncurses >=6.2,<7.0.0a0 - license: BSD-2-Clause - license_family: BSD - size: 123878 - timestamp: 1597616541093 + - __glibc >=2.17,<3.0.a0 + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-compression >=0.3.0,<0.3.1.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + size: 197731 + timestamp: 1734008380764 - kind: conda - name: libexpat - version: 2.6.3 - build: h5888daf_0 + name: aws-c-io + version: 0.15.3 + build: h831e299_5 + build_number: 5 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.3-h5888daf_0.conda - sha256: 4bb47bb2cd09898737a5211e2992d63c555d63715a07ba56eae0aff31fb89c22 - md5: 59f4c43bb1b5ef1c71946ff2cbf59524 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.15.3-h831e299_5.conda + sha256: 5920009b1c6f9a2bc131a36725251894e4b4773fce29c4b1065d4213ae337abe + md5: 80dd9f0ddf935290d1dc00ec75ff3023 depends: - __glibc >=2.17,<3.0.a0 + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 - libgcc >=13 - constrains: - - expat 2.6.3.* - license: MIT - license_family: MIT - size: 73616 - timestamp: 1725568742634 + - s2n >=1.5.10,<1.5.11.0a0 + license: Apache-2.0 + license_family: Apache + size: 157864 + timestamp: 1734433578570 - kind: conda - name: libexpat - version: 2.6.3 - build: hf9b8971_0 + name: aws-c-io + version: 0.15.3 + build: haba67d1_5 + build_number: 5 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.3-hf9b8971_0.conda - sha256: 5cbe5a199fba14ade55457a468ce663aac0b54832c39aa54470b3889b4c75c4a - md5: 5f22f07c2ab2dea8c66fe9585a062c96 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.15.3-haba67d1_5.conda + sha256: c0a1a2b0750225ac3dc07fd258c88c2be866bf8ac67ba3d50bb4ecec852ff8ee + md5: 4c5ff4134e76426a75b8c548984fa933 depends: - __osx >=11.0 - constrains: - - expat 2.6.3.* + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + license: Apache-2.0 + license_family: Apache + size: 135729 + timestamp: 1734433832730 +- kind: conda + name: aws-c-mqtt + version: 0.11.0 + build: h11f4f37_12 + build_number: 12 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.11.0-h11f4f37_12.conda + sha256: 512d3969426152d9d5fd886e27b13706122dc3fa90eb08c37b0d51a33d7bb14a + md5: 96c3e0221fa2da97619ee82faa341a73 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-http >=0.9.2,<0.9.3.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + size: 194672 + timestamp: 1734025626798 +- kind: conda + name: aws-c-mqtt + version: 0.11.0 + build: h24f418c_12 + build_number: 12 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.11.0-h24f418c_12.conda + sha256: 96575ea1dd2a9ea94763882e40a66dcbff9c41f702bf37c9514c4c719b3c11dd + md5: c072045a6206f88015d02fcba1705ea1 + depends: + - __osx >=11.0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-http >=0.9.2,<0.9.3.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + license: Apache-2.0 + license_family: Apache + size: 134371 + timestamp: 1734025379525 +- kind: conda + name: aws-c-s3 + version: 0.7.7 + build: h1be5864_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.7.7-h1be5864_0.conda + sha256: 22966164d63808689fffd35945f57756c95337327e28099b5d77b29fc6a56ecc + md5: a37bba7acb62dd70492ee01eacca3b8f + depends: + - __osx >=11.0 + - aws-c-auth >=0.8.0,<0.8.1.0a0 + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-http >=0.9.2,<0.9.3.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - aws-checksums >=0.2.2,<0.2.3.0a0 + license: Apache-2.0 + license_family: Apache + size: 97598 + timestamp: 1734146239038 +- kind: conda + name: aws-c-s3 + version: 0.7.7 + build: hf454442_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.7.7-hf454442_0.conda + sha256: c2f205a7bf64c5f40eea373b3a0a7c363c9aa9246a13dd7f3d9c6a4434c4fe2d + md5: 947c82025693bebd557f782bb5d6b469 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-auth >=0.8.0,<0.8.1.0a0 + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-http >=0.9.2,<0.9.3.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - aws-checksums >=0.2.2,<0.2.3.0a0 + - libgcc >=13 + - openssl >=3.4.0,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 114156 + timestamp: 1734146123386 +- kind: conda + name: aws-c-sdkutils + version: 0.2.1 + build: h4e1184b_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.1-h4e1184b_4.conda + sha256: df586f42210af1134b1c88ff4c278c3cb6d6c807c84eac48860062464b28554d + md5: a5126a90e74ac739b00564a4c7ddcc36 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + size: 56094 + timestamp: 1733994449690 +- kind: conda + name: aws-c-sdkutils + version: 0.2.1 + build: hc8a0bd2_4 + build_number: 4 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.2.1-hc8a0bd2_4.conda + sha256: de98343ce42d2e569b3380292d20f47bf39bda08aadabcbb8e650d3f38fd742f + md5: 22f72f8cd7ead211304ac17d337d96e0 + depends: + - __osx >=11.0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + license: Apache-2.0 + license_family: Apache + size: 49664 + timestamp: 1733994553014 +- kind: conda + name: aws-checksums + version: 0.2.2 + build: h4e1184b_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.2-h4e1184b_4.conda + sha256: 1ed9a332d06ad595694907fad2d6d801082916c27cd5076096fda4061e6d24a8 + md5: 74e8c3e4df4ceae34aa2959df4b28101 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + size: 72762 + timestamp: 1733994347547 +- kind: conda + name: aws-checksums + version: 0.2.2 + build: hc8a0bd2_4 + build_number: 4 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.2.2-hc8a0bd2_4.conda + sha256: 215086d95e8ff1d3fcb0197ada116cc9d7db1fdae7573f5e810d20fa9215b47c + md5: e70e88a357a3749b67679c0788c5b08a + depends: + - __osx >=11.0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + license: Apache-2.0 + license_family: Apache + size: 70186 + timestamp: 1733994496998 +- kind: conda + name: aws-crt-cpp + version: 0.29.7 + build: h19a973c_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.29.7-h19a973c_7.conda + sha256: 8269e6746eb3a5d15b732a3983888bf98dfc1f6594e95250fc8d16b43cfd5ff9 + md5: 95714136bef3e917bd5a2942d4682b20 + depends: + - __osx >=11.0 + - aws-c-auth >=0.8.0,<0.8.1.0a0 + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-c-http >=0.9.2,<0.9.3.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - aws-c-mqtt >=0.11.0,<0.11.1.0a0 + - aws-c-s3 >=0.7.7,<0.7.8.0a0 + - aws-c-sdkutils >=0.2.1,<0.2.2.0a0 + - libcxx >=18 + license: Apache-2.0 + license_family: Apache + size: 236249 + timestamp: 1734178020924 +- kind: conda + name: aws-crt-cpp + version: 0.29.7 + build: hd92328a_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.29.7-hd92328a_7.conda + sha256: 094cd81f1e5ba713e9e7a272ee52b5dde3ccc4842ea90f19c0354a00bbdac3d9 + md5: 02b95564257d5c3db9c06beccf711f95 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-auth >=0.8.0,<0.8.1.0a0 + - aws-c-cal >=0.8.1,<0.8.2.0a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-c-http >=0.9.2,<0.9.3.0a0 + - aws-c-io >=0.15.3,<0.15.4.0a0 + - aws-c-mqtt >=0.11.0,<0.11.1.0a0 + - aws-c-s3 >=0.7.7,<0.7.8.0a0 + - aws-c-sdkutils >=0.2.1,<0.2.2.0a0 + - libgcc >=13 + - libstdcxx >=13 + license: Apache-2.0 + license_family: Apache + size: 354703 + timestamp: 1734177883319 +- kind: conda + name: aws-sdk-cpp + version: 1.11.458 + build: hc430e4a_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.458-hc430e4a_4.conda + sha256: 2dc09f6f9c49127b5f96e7535b64a9c521b944d76d8b7d03d48ae80257ac1cea + md5: aeefac461bea1f126653c1285cf5af08 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-checksums >=0.2.2,<0.2.3.0a0 + - aws-crt-cpp >=0.29.7,<0.29.8.0a0 + - libcurl >=8.11.1,<9.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 3060561 + timestamp: 1734093737431 +- kind: conda + name: aws-sdk-cpp + version: 1.11.458 + build: he0ff2e4_4 + build_number: 4 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.458-he0ff2e4_4.conda + sha256: 535b970aaa13be45f8cab8205c59f044b17364111c41a227f061775a5c834e18 + md5: 0981ed87098b149bdb7d99a4a3fd0e58 + depends: + - __osx >=11.0 + - aws-c-common >=0.10.6,<0.10.7.0a0 + - aws-c-event-stream >=0.5.0,<0.5.1.0a0 + - aws-checksums >=0.2.2,<0.2.3.0a0 + - aws-crt-cpp >=0.29.7,<0.29.8.0a0 + - libcurl >=8.11.1,<9.0a0 + - libcxx >=18 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 2826534 + timestamp: 1734094018287 +- kind: conda + name: azure-core-cpp + version: 1.14.0 + build: h5cfcd09_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.14.0-h5cfcd09_0.conda + sha256: fe07debdb089a3db17f40a7f20d283d75284bb4fc269ef727b8ba6fc93f7cb5a + md5: 0a8838771cc2e985cd295e01ae83baf1 + depends: + - __glibc >=2.17,<3.0.a0 + - libcurl >=8.10.1,<9.0a0 + - libgcc >=13 + - libstdcxx >=13 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT - size: 63895 - timestamp: 1725568783033 + size: 345117 + timestamp: 1728053909574 - kind: conda - name: libffi - version: 3.4.2 - build: h3422bc3_5 - build_number: 5 + name: azure-core-cpp + version: 1.14.0 + build: hd50102c_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 - sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca - md5: 086914b672be056eb70fd4285b6783b6 + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.14.0-hd50102c_0.conda + sha256: f5b91329ed59ffc0be8747784c6e4cc7e56250c54032883a83bc11808ef6a87e + md5: f093a11dcf3cdcca010b20a818fcc6dc + depends: + - __osx >=11.0 + - libcurl >=8.10.1,<9.0a0 + - libcxx >=17 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT - size: 39020 - timestamp: 1636488587153 + size: 294299 + timestamp: 1728054014060 - kind: conda - name: libffi - version: 3.4.2 - build: h7f98852_5 - build_number: 5 + name: azure-identity-cpp + version: 1.10.0 + build: h113e628_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 - sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e - md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + url: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.10.0-h113e628_0.conda + sha256: 286b31616c191486626cb49e9ceb5920d29394b9e913c23adb7eb637629ba4de + md5: 73f73f60854f325a55f1d31459f2ab73 depends: - - libgcc-ng >=9.4.0 + - __glibc >=2.17,<3.0.a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - libgcc >=13 + - libstdcxx >=13 + - openssl >=3.3.2,<4.0a0 license: MIT license_family: MIT - size: 58292 - timestamp: 1636488182923 + size: 232351 + timestamp: 1728486729511 - kind: conda - name: libgcc - version: 14.1.0 - build: h77fa898_1 + name: azure-identity-cpp + version: 1.10.0 + build: hc602bab_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.10.0-hc602bab_0.conda + sha256: bde446b916fff5150606f8ed3e6058ffc55a3aa72381e46f1ab346590b1ae40a + md5: d7b71593a937459f2d4b67e1a4727dc2 + depends: + - __osx >=11.0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - libcxx >=17 + - openssl >=3.3.2,<4.0a0 + license: MIT + license_family: MIT + size: 166907 + timestamp: 1728486882502 +- kind: conda + name: azure-storage-blobs-cpp + version: 12.13.0 + build: h3cf044e_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.1.0-h77fa898_1.conda - sha256: 10fa74b69266a2be7b96db881e18fa62cfa03082b65231e8d652e897c4b335a3 - md5: 002ef4463dd1e2b44a94a4ace468f5d2 + url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.13.0-h3cf044e_1.conda + sha256: 2606260e5379eed255bcdc6adc39b93fb31477337bcd911c121fc43cd29bf394 + md5: 7eb66060455c7a47d9dcdbfa9f46579b depends: - - _libgcc_mutex 0.1 conda_forge - - _openmp_mutex >=4.5 - constrains: - - libgomp 14.1.0 h77fa898_1 - - libgcc-ng ==14.1.0=*_1 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 846380 - timestamp: 1724801836552 + - __glibc >=2.17,<3.0.a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 + - libgcc >=13 + - libstdcxx >=13 + license: MIT + license_family: MIT + size: 549342 + timestamp: 1728578123088 - kind: conda - name: libgcc-ng - version: 14.1.0 - build: h69a702a_1 + name: azure-storage-blobs-cpp + version: 12.13.0 + build: h7585a09_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.13.0-h7585a09_1.conda + sha256: 08d52d130addc0fb55d5ba10d9fa483e39be25d69bac7f4c676c2c3069207590 + md5: 704238ef05d46144dae2e6b5853df8bc + depends: + - __osx >=11.0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 + - libcxx >=17 + license: MIT + license_family: MIT + size: 438636 + timestamp: 1728578216193 +- kind: conda + name: azure-storage-common-cpp + version: 12.8.0 + build: h736e048_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.1.0-h69a702a_1.conda - sha256: b91f7021e14c3d5c840fbf0dc75370d6e1f7c7ff4482220940eaafb9c64613b7 - md5: 1efc0ad219877a73ef977af7dbb51f17 + url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.8.0-h736e048_1.conda + sha256: 273475f002b091b66ce7366da04bf164c3732c03f8692ab2ee2d23335b6a82ba + md5: 13de36be8de3ae3f05ba127631599213 depends: - - libgcc 14.1.0 h77fa898_1 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 52170 - timestamp: 1724801842101 + - __glibc >=2.17,<3.0.a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libxml2 >=2.12.7,<3.0a0 + - openssl >=3.3.2,<4.0a0 + license: MIT + license_family: MIT + size: 149312 + timestamp: 1728563338704 - kind: conda - name: libgfortran - version: 5.0.0 - build: 13_2_0_hd922786_3 - build_number: 3 + name: azure-storage-common-cpp + version: 12.8.0 + build: h9ca1f76_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda - sha256: 44e541b4821c96b28b27fef5630883a60ce4fee91fd9c79f25a199f8f73f337b - md5: 4a55d9e169114b2b90d3ec4604cd7bbf + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.8.0-h9ca1f76_1.conda + sha256: 77ab04e8fe5636a2de9c718f72a43645f7502cd208868c8a91ffba385547d585 + md5: 7a187cd7b1445afc80253bb186a607cc depends: - - libgfortran5 13.2.0 hf226fd6_3 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 110233 - timestamp: 1707330749033 + - __osx >=11.0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - libcxx >=17 + - libxml2 >=2.12.7,<3.0a0 + - openssl >=3.3.2,<4.0a0 + license: MIT + license_family: MIT + size: 121278 + timestamp: 1728563418777 - kind: conda - name: libgfortran - version: 14.1.0 - build: h69a702a_1 + name: azure-storage-files-datalake-cpp + version: 12.12.0 + build: ha633028_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.1.0-h69a702a_1.conda - sha256: ed77f04f873e43a26e24d443dd090631eedc7d0ace3141baaefd96a123e47535 - md5: 591e631bc1ae62c64f2ab4f66178c097 + url: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.12.0-ha633028_1.conda + sha256: 5371e4f3f920933bb89b926a85a67f24388227419abd6e99f6086481e5e8d5f2 + md5: 7c1980f89dd41b097549782121a73490 depends: - - libgfortran5 14.1.0 hc5f4f2c_1 - constrains: - - libgfortran-ng ==14.1.0=*_1 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 52142 - timestamp: 1724801872472 + - __glibc >=2.17,<3.0.a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 + - libgcc >=13 + - libstdcxx >=13 + license: MIT + license_family: MIT + size: 287366 + timestamp: 1728729530295 - kind: conda - name: libgfortran-ng - version: 14.1.0 - build: h69a702a_1 + name: azure-storage-files-datalake-cpp + version: 12.12.0 + build: hcdd55da_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.12.0-hcdd55da_1.conda + sha256: f48523f8aa0b5b80f45a92f0556b388dd96f44ac2dc2f44a01d08c1822eec97d + md5: c49fbc5233fcbaa86391162ff1adef38 + depends: + - __osx >=11.0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-common-cpp >=12.8.0,<12.8.1.0a0 + - libcxx >=17 + license: MIT + license_family: MIT + size: 196032 + timestamp: 1728729672889 +- kind: conda + name: backoff + version: 2.2.1 + build: pyhd8ed1ab_1 build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/backoff-2.2.1-pyhd8ed1ab_1.conda + sha256: f334115c6b0c6c2cd0d28595365f205ec7eaa60bcc5ff91a75d7245f728be820 + md5: a38b801f2bcc12af80c2e02a9e4ce7d9 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 18816 + timestamp: 1733771192649 +- kind: conda + name: brotli-python + version: 1.1.0 + build: py312h2ec8cdc_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-ng-14.1.0-h69a702a_1.conda - sha256: a2dc35cb7f87bb5beebf102d4085574c6a740e1df58e743185d4434cc5e4e0ae - md5: 16cec94c5992d7f42ae3f9fa8b25df8d + url: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + sha256: f2a59ccd20b4816dea9a2a5cb917eb69728271dbf1aeab4e1b7e609330a50b6f + md5: b0b867af6fc74b2a0aa206da29c0f3cf depends: - - libgfortran 14.1.0 h69a702a_1 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 52212 - timestamp: 1724802086021 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - libbrotlicommon 1.1.0 hb9d3cd8_2 + license: MIT + license_family: MIT + size: 349867 + timestamp: 1725267732089 - kind: conda - name: libgfortran5 - version: 13.2.0 - build: hf226fd6_3 - build_number: 3 + name: brotli-python + version: 1.1.0 + build: py312hde4cb15_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda - sha256: bafc679eedb468a86aa4636061c55966186399ee0a04b605920d208d97ac579a - md5: 66ac81d54e95c534ae488726c1f698ea + url: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.1.0-py312hde4cb15_2.conda + sha256: 254b411fa78ccc226f42daf606772972466f93e9bc6895eabb4cfda22f5178af + md5: a83c2ef76ccb11bc2349f4f17696b15d depends: - - llvm-openmp >=8.0.0 + - __osx >=11.0 + - libcxx >=17 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 constrains: - - libgfortran 5.0.0 13_2_0_*_3 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 997381 - timestamp: 1707330687590 + - libbrotlicommon 1.1.0 hd74edd7_2 + license: MIT + license_family: MIT + size: 339360 + timestamp: 1725268143995 - kind: conda - name: libgfortran5 - version: 14.1.0 - build: hc5f4f2c_1 - build_number: 1 + name: bzip2 + version: 1.0.8 + build: h4bc722e_7 + build_number: 7 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.1.0-hc5f4f2c_1.conda - sha256: c40d7db760296bf9c776de12597d2f379f30e890b9ae70c1de962ff2aa1999f6 - md5: 10a0cef64b784d6ab6da50ebca4e984d + url: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d + md5: 62ee74e96c5ebb0af99386de58cf9553 depends: - - libgcc >=14.1.0 - constrains: - - libgfortran 14.1.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 1459939 - timestamp: 1724801851300 + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + size: 252783 + timestamp: 1720974456583 +- kind: conda + name: bzip2 + version: 1.0.8 + build: h99b78c6_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + sha256: adfa71f158cbd872a36394c56c3568e6034aa55c623634b37a4836bd036e6b91 + md5: fc6948412dbbbe9a4c9ddbbcfe0a79ab + depends: + - __osx >=11.0 + license: bzip2-1.0.6 + license_family: BSD + size: 122909 + timestamp: 1720974522888 +- kind: conda + name: c-ares + version: 1.34.4 + build: h5505292_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.4-h5505292_0.conda + sha256: 09c0c8476e50b2955f474a4a1c17c4c047dd52993b5366b6ea8e968e583b921f + md5: c1c999a38a4303b29d75c636eaa13cf9 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + size: 179496 + timestamp: 1734208291879 +- kind: conda + name: c-ares + version: 1.34.4 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.4-hb9d3cd8_0.conda + sha256: d4f28d87b6339b94f74762c0076e29c8ef8ddfff51a564a92da2843573c18320 + md5: e2775acf57efd5af15b8e3d1d74d72d3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + size: 206085 + timestamp: 1734208189009 +- kind: conda + name: ca-certificates + version: 2024.12.14 + build: hbcca054_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2024.12.14-hbcca054_0.conda + sha256: 1afd7274cbc9a334d6d0bc62fa760acc7afdaceb0b91a8df370ec01fd75dc7dd + md5: 720523eb0d6a9b0f6120c16b2aa4e7de + license: ISC + size: 157088 + timestamp: 1734208393264 +- kind: conda + name: ca-certificates + version: 2024.12.14 + build: hf0a4a13_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ca-certificates-2024.12.14-hf0a4a13_0.conda + sha256: 256be633fd0882ccc1a7a32bc278547e1703f85082c0789a87a603ee3ab8fb82 + md5: 7cb381a6783d91902638e4ed1ebd478e + license: ISC + size: 157091 + timestamp: 1734208344343 +- kind: conda + name: certifi + version: 2024.12.14 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/certifi-2024.12.14-pyhd8ed1ab_0.conda + sha256: 048c16a9cbcb1fbad02083414d3bc7c1d0eea4b39aee6aa6bf8d1d5089ca8bad + md5: 6feb87357ecd66733be3279f16a8c400 + depends: + - python >=3.9 + license: ISC + size: 161642 + timestamp: 1734380604767 +- kind: conda + name: cffi + version: 1.17.1 + build: py312h06ac9bb_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + sha256: cba6ea83c4b0b4f5b5dc59cb19830519b28f95d7ebef7c9c5cf1c14843621457 + md5: a861504bbea4161a9170b85d4d2be840 + depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - pycparser + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + size: 294403 + timestamp: 1725560714366 +- kind: conda + name: cffi + version: 1.17.1 + build: py312h0fad829_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-1.17.1-py312h0fad829_0.conda + sha256: 8d91a0d01358b5c3f20297c6c536c5d24ccd3e0c2ddd37f9d0593d0f0070226f + md5: 19a5456f72f505881ba493979777b24e + depends: + - __osx >=11.0 + - libffi >=3.4,<4.0a0 + - pycparser + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + size: 281206 + timestamp: 1725560813378 +- kind: conda + name: charset-normalizer + version: 3.4.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.1-pyhd8ed1ab_0.conda + sha256: 4e0ee91b97e5de3e74567bdacea27f0139709fceca4db8adffbe24deffccb09b + md5: e83a31202d1c0a000fce3e9cf3825875 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 47438 + timestamp: 1735929811779 +- kind: conda + name: click + version: 8.1.8 + build: pyh707e725_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/click-8.1.8-pyh707e725_0.conda + sha256: c920d23cd1fcf565031c679adb62d848af60d6fbb0edc2d50ba475cea4f0d8ab + md5: f22f4d4970e09d68a10b922cbb0408d3 + depends: + - __unix + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 84705 + timestamp: 1734858922844 +- kind: conda + name: colorama + version: 0.4.6 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287 + md5: 962b9857ee8e7018c22f2776ffa0b2d7 + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 27011 + timestamp: 1733218222191 +- kind: conda + name: datasets + version: 2.14.4 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/datasets-2.14.4-pyhd8ed1ab_0.conda + sha256: 7e09bd083a609138b780fcc4535924cb96814d2c908a36d4c64a2ba9ee3efe7f + md5: 3e087f072ce03c43a9b60522f5d0ca2f + depends: + - aiohttp + - dill >=0.3.0,<0.3.8 + - fsspec >=2021.11.1 + - huggingface_hub >=0.14.0,<1.0.0 + - importlib-metadata + - multiprocess + - numpy >=1.17 + - packaging + - pandas + - pyarrow >=8.0.0 + - python >=3.8.0 + - python-xxhash + - pyyaml >=5.1 + - requests >=2.19.0 + - tqdm >=4.62.1 + license: Apache-2.0 + license_family: Apache + size: 347303 + timestamp: 1691593908658 +- kind: conda + name: deprecated + version: 1.2.15 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.2.15-pyhd8ed1ab_1.conda + sha256: a20ebf2c9b02a6eb32412ceb5c4cffaae49417db7e75414a76417538293a9402 + md5: eaef2e94d5bd76f758545d172c1fda67 + depends: + - python >=3.9 + - wrapt <2,>=1.10 + license: MIT + license_family: MIT + size: 14297 + timestamp: 1733662697343 +- kind: conda + name: dill + version: 0.3.7 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/dill-0.3.7-pyhd8ed1ab_0.conda + sha256: 4ff20c6be028be2825235631c45d9e4a75bca1de65f8840c02dfb28ea0137c45 + md5: 5e4f3466526c52bc9af2d2353a1460bd + depends: + - python >=3.7 + license: BSD-3-Clause + license_family: BSD + size: 87553 + timestamp: 1690101185422 +- kind: conda + name: dnspython + version: 2.7.0 + build: pyhff2d567_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.7.0-pyhff2d567_1.conda + sha256: 3ec40ccf63f2450c5e6c7dd579e42fc2e97caf0d8cd4ba24aa434e6fc264eda0 + md5: 5fbd60d61d21b4bd2f9d7a48fe100418 + depends: + - python >=3.9,<4.0.0 + - sniffio + constrains: + - aioquic >=1.0.0 + - wmi >=1.5.1 + - httpx >=0.26.0 + - trio >=0.23 + - cryptography >=43 + - httpcore >=1.0.0 + - idna >=3.7 + - h2 >=4.1.0 + license: ISC + license_family: OTHER + size: 172172 + timestamp: 1733256829961 +- kind: conda + name: email-validator + version: 2.2.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.2.0-pyhd8ed1ab_1.conda + sha256: b91a19eb78edfc2dbb36de9a67f74ee2416f1b5273dd7327abe53f2dbf864736 + md5: da16dd3b0b71339060cd44cb7110ddf9 + depends: + - dnspython >=2.0.0 + - idna >=2.0.0 + - python >=3.9 + license: Unlicense + size: 44401 + timestamp: 1733300827551 +- kind: conda + name: email_validator + version: 2.2.0 + build: hd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/email_validator-2.2.0-hd8ed1ab_1.conda + sha256: e0d0fdf587aa0ed0ff08b2bce3ab355f46687b87b0775bfba01cc80a859ee6a2 + md5: 0794f8807ff2c6f020422cacb1bd7bfa + depends: + - email-validator >=2.2.0,<2.2.1.0a0 + license: Unlicense + size: 6552 + timestamp: 1733300828176 +- kind: conda + name: exceptiongroup + version: 1.2.2 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda + sha256: cbde2c64ec317118fc06b223c5fd87c8a680255e7348dd60e7b292d2e103e701 + md5: a16662747cdeb9abbac74d0057cc976e + depends: + - python >=3.9 + license: MIT and PSF-2.0 + size: 20486 + timestamp: 1733208916977 +- kind: conda + name: fastapi + version: 0.115.6 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/fastapi-0.115.6-pyhd8ed1ab_0.conda + sha256: d7826d537c667093c9de96411a09585a8d620c84a830a0195e58e9a0df45f018 + md5: 1b1e0c97830cdf75f1f371bd467ab657 + depends: + - email_validator >=2.0.0 + - fastapi-cli >=0.0.5 + - httpx >=0.23.0 + - jinja2 >=2.11.2 + - pydantic >=1.7.4,!=1.8,!=1.8.1,!=2.0.0,!=2.0.1,!=2.1.0,<3.0.0 + - python >=3.9 + - python-multipart >=0.0.7 + - starlette >=0.40.0,<0.42.0 + - typing_extensions >=4.8.0 + - uvicorn-standard >=0.12.0 + license: MIT + license_family: MIT + size: 73084 + timestamp: 1733362427885 +- kind: conda + name: fastapi-cli + version: 0.0.7 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/fastapi-cli-0.0.7-pyhd8ed1ab_0.conda + sha256: 300683731013b7221922339cd40430bb3c2ddeeb658fd7e37f5099ffe64e4db0 + md5: d960e0ea9e1c561aa928f6c4439f04c7 + depends: + - python >=3.9 + - rich-toolkit >=0.11.1 + - typer >=0.12.3 + - uvicorn-standard >=0.15.0 + license: MIT + license_family: MIT + size: 15546 + timestamp: 1734302408607 +- kind: conda + name: filelock + version: 3.16.1 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/filelock-3.16.1-pyhd8ed1ab_1.conda + sha256: 18dca6e2194732df7ebf824abaefe999e4765ebe8e8a061269406ab88fc418b9 + md5: d692e9ba6f92dc51484bf3477e36ce7c + depends: + - python >=3.9 + license: Unlicense + size: 17441 + timestamp: 1733240909987 +- kind: conda + name: freetype + version: 2.12.1 + build: h267a509_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.12.1-h267a509_2.conda + sha256: b2e3c449ec9d907dd4656cb0dc93e140f447175b125a3824b31368b06c666bb6 + md5: 9ae35c3d96db2c94ce0cef86efdfa2cb + depends: + - libgcc-ng >=12 + - libpng >=1.6.39,<1.7.0a0 + - libzlib >=1.2.13,<2.0.0a0 + license: GPL-2.0-only OR FTL + size: 634972 + timestamp: 1694615932610 +- kind: conda + name: freetype + version: 2.12.1 + build: hadb7bae_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.12.1-hadb7bae_2.conda + sha256: 791673127e037a2dc0eebe122dc4f904cb3f6e635bb888f42cbe1a76b48748d9 + md5: e6085e516a3e304ce41a8ee08b9b89ad + depends: + - libpng >=1.6.39,<1.7.0a0 + - libzlib >=1.2.13,<2.0.0a0 + license: GPL-2.0-only OR FTL + size: 596430 + timestamp: 1694616332835 +- kind: conda + name: frozenlist + version: 1.5.0 + build: py312h0bf5046_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/frozenlist-1.5.0-py312h0bf5046_0.conda + sha256: 44d6d6b332421e621c029fb149f12dba1ccb5ed6ac632e2e807a9d92d6cb2864 + md5: 7960352935cc95ac23883c9b8c97f2ff + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: APACHE + size: 53366 + timestamp: 1729699762631 +- kind: conda + name: frozenlist + version: 1.5.0 + build: py312h66e93f0_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/frozenlist-1.5.0-py312h66e93f0_0.conda + sha256: 7e0c12983b20f2816b3712729b5a35ecb7ee152132ca7cf805427c62395ea823 + md5: f98e36c96b2c66d9043187179ddb04f4 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: APACHE + size: 60968 + timestamp: 1729699568442 +- kind: conda + name: fsspec + version: 2024.12.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/fsspec-2024.12.0-pyhd8ed1ab_0.conda + sha256: 3320970c4604989eadf908397a9475f9e6a96a773c185915111399cbfbe47817 + md5: e041ad4c43ab5e10c74587f95378ebc7 + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 137756 + timestamp: 1734650349242 +- kind: conda + name: gflags + version: 2.2.2 + build: h5888daf_1005 + build_number: 1005 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda + sha256: 6c33bf0c4d8f418546ba9c250db4e4221040936aef8956353bc764d4877bc39a + md5: d411fc29e338efb48c5fd4576d71d881 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + license: BSD-3-Clause + license_family: BSD + size: 119654 + timestamp: 1726600001928 +- kind: conda + name: gflags + version: 2.2.2 + build: hf9b8971_1005 + build_number: 1005 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.2.2-hf9b8971_1005.conda + sha256: fd56ed8a1dab72ab90d8a8929b6f916a6d9220ca297ff077f8f04c5ed3408e20 + md5: 57a511a5905caa37540eb914dfcbf1fb + depends: + - __osx >=11.0 + - libcxx >=17 + license: BSD-3-Clause + license_family: BSD + size: 82090 + timestamp: 1726600145480 +- kind: conda + name: glog + version: 0.7.1 + build: hbabe93e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda + sha256: dc824dc1d0aa358e28da2ecbbb9f03d932d976c8dca11214aa1dcdfcbd054ba2 + md5: ff862eebdfeb2fd048ae9dc92510baca + depends: + - gflags >=2.2.2,<2.3.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: BSD-3-Clause + license_family: BSD + size: 143452 + timestamp: 1718284177264 +- kind: conda + name: glog + version: 0.7.1 + build: heb240a5_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-heb240a5_0.conda + sha256: 9fc77de416953aa959039db72bc41bfa4600ae3ff84acad04a7d0c1ab9552602 + md5: fef68d0a95aa5b84b5c1a4f6f3bf40e1 + depends: + - __osx >=11.0 + - gflags >=2.2.2,<2.3.0a0 + - libcxx >=16 + license: BSD-3-Clause + license_family: BSD + size: 112215 + timestamp: 1718284365403 +- kind: conda + name: googleapis-common-protos + version: 1.66.0 + build: pyhff2d567_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/googleapis-common-protos-1.66.0-pyhff2d567_0.conda + sha256: d8d19575a827f2c62500949b9536efdd6b5406c9f546a73b6a87ac90b03a5875 + md5: 4861e30ff0cd566ea6fb4593e3b7c22a + depends: + - protobuf >=3.20.2,<6.0.0.dev0,!=3.20.0,!=3.20.1,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5 + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + size: 116522 + timestamp: 1731459019854 +- kind: conda + name: h11 + version: 0.14.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/h11-0.14.0-pyhd8ed1ab_1.conda + sha256: 622516185a7c740d5c7f27016d0c15b45782c1501e5611deec63fd70344ce7c8 + md5: 7ee49e89531c0dcbba9466f6d115d585 + depends: + - python >=3.9 + - typing_extensions + license: MIT + license_family: MIT + size: 51846 + timestamp: 1733327599467 +- kind: conda + name: h2 + version: 4.1.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/h2-4.1.0-pyhd8ed1ab_1.conda + sha256: 843ddad410c370672a8250470697027618f104153612439076d4d7b91eeb7b5c + md5: 825927dc7b0f287ef8d4d0011bb113b1 + depends: + - hpack >=4.0,<5 + - hyperframe >=6.0,<7 + - python >=3.9 + license: MIT + license_family: MIT + size: 52000 + timestamp: 1733298867359 +- kind: conda + name: hpack + version: 4.0.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hpack-4.0.0-pyhd8ed1ab_1.conda + sha256: ec89b7e5b8aa2f0219f666084446e1fb7b54545861e9caa892acb24d125761b5 + md5: 2aa5ff7fa34a81b9196532c84c10d865 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 29412 + timestamp: 1733299296857 +- kind: conda + name: httpcore + version: 1.0.7 + build: pyh29332c3_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.7-pyh29332c3_1.conda + sha256: c84d012a245171f3ed666a8bf9319580c269b7843ffa79f26468842da3abd5df + md5: 2ca8e6dbc86525c8b95e3c0ffa26442e + depends: + - python >=3.8 + - h11 >=0.13,<0.15 + - h2 >=3,<5 + - sniffio 1.* + - anyio >=3.0,<5.0 + - certifi + license: BSD-3-Clause + license_family: BSD + size: 48959 + timestamp: 1731707562362 +- kind: conda + name: httptools + version: 0.6.4 + build: py312h66e93f0_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/httptools-0.6.4-py312h66e93f0_0.conda + sha256: 621e7e050b888e5239d33e37ea72d6419f8367e5babcad38b755586f20264796 + md5: 8b1160b32557290b64d5be68db3d996d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + size: 101872 + timestamp: 1732707756745 +- kind: conda + name: httptools + version: 0.6.4 + build: py312hea69d52_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/httptools-0.6.4-py312hea69d52_0.conda + sha256: 5e93cda79e32e8c0039e05ea1939e688da336187dab025f699b42ef529e848be + md5: e1747a8e8d2aca5499aaea9993bf31ff + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + size: 85623 + timestamp: 1732707871414 +- kind: conda + name: httpx + version: 0.28.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda + sha256: cd0f1de3697b252df95f98383e9edb1d00386bfdd03fdf607fa42fe5fcb09950 + md5: d6989ead454181f4f9bc987d3dc4e285 + depends: + - anyio + - certifi + - httpcore 1.* + - idna + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 63082 + timestamp: 1733663449209 +- kind: conda + name: huggingface_hub + version: 0.27.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/huggingface_hub-0.27.1-pyhd8ed1ab_0.conda + sha256: 4597d7aa720f4acdddacc27b3f9e8d4336cb79477c53aee2d7ab96d136169cdb + md5: 8c9a53ecd0c3c278efbdac567dd12ed0 + depends: + - filelock + - fsspec >=2023.5.0 + - packaging >=20.9 + - python >=3.9 + - pyyaml >=5.1 + - requests + - tqdm >=4.42.1 + - typing-extensions >=3.7.4.3 + - typing_extensions >=3.7.4.3 + license: Apache-2.0 + license_family: APACHE + size: 278363 + timestamp: 1736350219225 +- kind: conda + name: hyperframe + version: 6.0.1 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.0.1-pyhd8ed1ab_1.conda + sha256: e91c6ef09d076e1d9a02819cd00fa7ee18ecf30cdd667605c853980216584d1b + md5: 566e75c90c1d0c8c459eb0ad9833dc7a + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 17239 + timestamp: 1733298862681 +- kind: conda + name: icu + version: '75.1' + build: hfee45f7_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + sha256: 9ba12c93406f3df5ab0a43db8a4b4ef67a5871dfd401010fbe29b218b2cbe620 + md5: 5eb22c1d7b3fc4abb50d92d621583137 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + size: 11857802 + timestamp: 1720853997952 +- kind: conda + name: idna + version: '3.10' + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + sha256: d7a472c9fd479e2e8dcb83fb8d433fce971ea369d704ece380e876f9c3494e87 + md5: 39a4f67be3286c86d696df570b1201b7 + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 49765 + timestamp: 1733211921194 +- kind: conda + name: importlib-metadata + version: 8.5.0 + build: pyha770c72_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.5.0-pyha770c72_1.conda + sha256: 13766b88fc5b23581530d3a0287c0c58ad82f60401afefab283bf158d2be55a9 + md5: 315607a3030ad5d5227e76e0733798ff + depends: + - python >=3.9 + - zipp >=0.5 + license: Apache-2.0 + license_family: APACHE + size: 28623 + timestamp: 1733223207185 +- kind: conda + name: jinja2 + version: 3.1.5 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.5-pyhd8ed1ab_0.conda + sha256: 98977694b9ecaa3218662f843425f39501f81973c450f995eec68f1803ed71c3 + md5: 2752a6ed44105bfb18c9bef1177d9dcd + depends: + - markupsafe >=2.0 + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 112561 + timestamp: 1734824044952 +- kind: conda + name: jupyter_client + version: 8.6.3 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + sha256: 19d8bd5bb2fde910ec59e081eeb59529491995ce0d653a5209366611023a0b3a + md5: 4ebae00eae9705b0c3d6d1018a81d047 + depends: + - importlib-metadata >=4.8.3 + - jupyter_core >=4.12,!=5.0.* + - python >=3.9 + - python-dateutil >=2.8.2 + - pyzmq >=23.0 + - tornado >=6.2 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + size: 106342 + timestamp: 1733441040958 +- kind: conda + name: jupyter_core + version: 5.7.2 + build: pyh31011fe_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.7.2-pyh31011fe_1.conda + sha256: 732b1e8536bc22a5a174baa79842d79db2f4956d90293dd82dc1b3f6099bcccd + md5: 0a2980dada0dd7fd0998f0342308b1b1 + depends: + - __unix + - platformdirs >=2.5 + - python >=3.8 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + size: 57671 + timestamp: 1727163547058 +- kind: conda + name: keyutils + version: 1.6.1 + build: h166bdaf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.1-h166bdaf_0.tar.bz2 + sha256: 150c05a6e538610ca7c43beb3a40d65c90537497a4f6a5f4d15ec0451b6f5ebb + md5: 30186d27e2c9fa62b45fb1476b7200e3 + depends: + - libgcc-ng >=10.3.0 + license: LGPL-2.1-or-later + size: 117831 + timestamp: 1646151697040 +- kind: conda + name: krb5 + version: 1.21.3 + build: h237132a_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda + sha256: 4442f957c3c77d69d9da3521268cad5d54c9033f1a73f99cde0a3658937b159b + md5: c6dc8a0fdec13a0565936655c33069a1 + depends: + - __osx >=11.0 + - libcxx >=16 + - libedit >=3.1.20191231,<3.2.0a0 + - libedit >=3.1.20191231,<4.0a0 + - openssl >=3.3.1,<4.0a0 + license: MIT + license_family: MIT + size: 1155530 + timestamp: 1719463474401 +- kind: conda + name: krb5 + version: 1.21.3 + build: h659f571_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda + sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238 + md5: 3f43953b7d3fb3aaa1d0d0723d91e368 + depends: + - keyutils >=1.6.1,<2.0a0 + - libedit >=3.1.20191231,<3.2.0a0 + - libedit >=3.1.20191231,<4.0a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - openssl >=3.3.1,<4.0a0 + license: MIT + license_family: MIT + size: 1370023 + timestamp: 1719463201255 +- kind: conda + name: lcms2 + version: '2.16' + build: ha0e7c42_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.16-ha0e7c42_0.conda + sha256: 151e0c84feb7e0747fabcc85006b8973b22f5abbc3af76a9add0b0ef0320ebe4 + md5: 66f6c134e76fe13cce8a9ea5814b5dd5 + depends: + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.8.0a0 + license: MIT + license_family: MIT + size: 211959 + timestamp: 1701647962657 +- kind: conda + name: lcms2 + version: '2.16' + build: hb7c19ff_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.16-hb7c19ff_0.conda + sha256: 5c878d104b461b7ef922abe6320711c0d01772f4cd55de18b674f88547870041 + md5: 51bb7010fc86f70eee639b4bb7a894f5 + depends: + - libgcc-ng >=12 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.6.0,<4.8.0a0 + license: MIT + license_family: MIT + size: 245247 + timestamp: 1701647787198 +- kind: conda + name: ld_impl_linux-64 + version: '2.43' + build: h712a8e2_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_2.conda + sha256: 7c91cea91b13f4314d125d1bedb9d03a29ebbd5080ccdea70260363424646dbe + md5: 048b02e3962f066da18efe3a21b77672 + depends: + - __glibc >=2.17,<3.0.a0 + constrains: + - binutils_impl_linux-64 2.43 + license: GPL-3.0-only + license_family: GPL + size: 669211 + timestamp: 1729655358674 +- kind: conda + name: lerc + version: 4.0.0 + build: h27087fc_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h27087fc_0.tar.bz2 + sha256: cb55f36dcd898203927133280ae1dc643368af041a48bcf7c026acb7c47b0c12 + md5: 76bbff344f0134279f225174e9064c8f + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: Apache-2.0 + license_family: Apache + size: 281798 + timestamp: 1657977462600 +- kind: conda + name: lerc + version: 4.0.0 + build: h9a09cb3_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-h9a09cb3_0.tar.bz2 + sha256: 6f068bb53dfb6147d3147d981bb851bb5477e769407ad4e6a68edf482fdcb958 + md5: de462d5aacda3b30721b512c5da4e742 + depends: + - libcxx >=13.0.1 + license: Apache-2.0 + license_family: Apache + size: 215721 + timestamp: 1657977558796 +- kind: conda + name: libabseil + version: '20240722.0' + build: cxx17_h07bc746_4 + build_number: 4 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20240722.0-cxx17_h07bc746_4.conda + sha256: 05fa5e5e908962b9c5aba95f962e2ca81d9599c4715aebe5e4ddb72b309d1770 + md5: c2d95bd7aa8d564a9bd7eca5e571a5b3 + depends: + - __osx >=11.0 + - libcxx >=18 + constrains: + - libabseil-static =20240722.0=cxx17* + - abseil-cpp =20240722.0 + license: Apache-2.0 + license_family: Apache + size: 1178260 + timestamp: 1736008642885 +- kind: conda + name: libabseil + version: '20240722.0' + build: cxx17_hbbce691_4 + build_number: 4 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20240722.0-cxx17_hbbce691_4.conda + sha256: 143a586aa67d50622ef703de57b9d43f44945836d6568e0e7aa174bd8c45e0d4 + md5: 488f260ccda0afaf08acb286db439c2f + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + constrains: + - libabseil-static =20240722.0=cxx17* + - abseil-cpp =20240722.0 + license: Apache-2.0 + license_family: Apache + size: 1311599 + timestamp: 1736008414161 +- kind: conda + name: libarrow + version: 18.1.0 + build: h0ad35bc_7_cpu + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-18.1.0-h0ad35bc_7_cpu.conda + sha256: 4fbdd8bb89d912bf03f10f9373a8d96a1cdd7a7851e107393418a3d2715bc27e + md5: 4ba2173203f44bbf03d19aaba6ed07d3 + depends: + - __osx >=11.0 + - aws-crt-cpp >=0.29.7,<0.29.8.0a0 + - aws-sdk-cpp >=1.11.458,<1.11.459.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-identity-cpp >=1.10.0,<1.10.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-files-datalake-cpp >=12.12.0,<12.12.1.0a0 + - bzip2 >=1.0.8,<2.0a0 + - glog >=0.7.1,<0.8.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libbrotlidec >=1.1.0,<1.2.0a0 + - libbrotlienc >=1.1.0,<1.2.0a0 + - libcxx >=18 + - libgoogle-cloud >=2.33.0,<2.34.0a0 + - libgoogle-cloud-storage >=2.33.0,<2.34.0a0 + - libre2-11 >=2024.7.2 + - libutf8proc >=2.9.0,<2.10.0a0 + - libzlib >=1.3.1,<2.0a0 + - lz4-c >=1.10.0,<1.11.0a0 + - orc >=2.0.3,<2.0.4.0a0 + - re2 + - snappy >=1.2.1,<1.3.0a0 + - zstd >=1.5.6,<1.6.0a0 + constrains: + - arrow-cpp <0.0a0 + - parquet-cpp <0.0a0 + - apache-arrow-proc =*=cpu + license: Apache-2.0 + license_family: APACHE + size: 5506699 + timestamp: 1735682962976 +- kind: conda + name: libarrow + version: 18.1.0 + build: hd595efa_7_cpu + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-18.1.0-hd595efa_7_cpu.conda + sha256: 554ffa338264c1dc34d95adb7eb856d50a2f25e7fa303a1a51e4372301b7c96f + md5: 08d4aff5ee6dee9a1b9ab13fca927697 + depends: + - __glibc >=2.17,<3.0.a0 + - aws-crt-cpp >=0.29.7,<0.29.8.0a0 + - aws-sdk-cpp >=1.11.458,<1.11.459.0a0 + - azure-core-cpp >=1.14.0,<1.14.1.0a0 + - azure-identity-cpp >=1.10.0,<1.10.1.0a0 + - azure-storage-blobs-cpp >=12.13.0,<12.13.1.0a0 + - azure-storage-files-datalake-cpp >=12.12.0,<12.12.1.0a0 + - bzip2 >=1.0.8,<2.0a0 + - gflags >=2.2.2,<2.3.0a0 + - glog >=0.7.1,<0.8.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libbrotlidec >=1.1.0,<1.2.0a0 + - libbrotlienc >=1.1.0,<1.2.0a0 + - libgcc >=13 + - libgoogle-cloud >=2.33.0,<2.34.0a0 + - libgoogle-cloud-storage >=2.33.0,<2.34.0a0 + - libre2-11 >=2024.7.2 + - libstdcxx >=13 + - libutf8proc >=2.9.0,<2.10.0a0 + - libzlib >=1.3.1,<2.0a0 + - lz4-c >=1.10.0,<1.11.0a0 + - orc >=2.0.3,<2.0.4.0a0 + - re2 + - snappy >=1.2.1,<1.3.0a0 + - zstd >=1.5.6,<1.6.0a0 + constrains: + - arrow-cpp <0.0a0 + - parquet-cpp <0.0a0 + - apache-arrow-proc =*=cpu + license: Apache-2.0 + license_family: APACHE + size: 8770256 + timestamp: 1735684696564 +- kind: conda + name: libarrow-acero + version: 18.1.0 + build: hcb10f89_7_cpu + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-18.1.0-hcb10f89_7_cpu.conda + sha256: 87ea5d6a84d922d73975dce8661fccf257e72e755175b12c30e1181a34e37987 + md5: 12d84228204c56fec6ed113288014d11 + depends: + - __glibc >=2.17,<3.0.a0 + - libarrow 18.1.0 hd595efa_7_cpu + - libgcc >=13 + - libstdcxx >=13 + license: Apache-2.0 + license_family: APACHE + size: 612463 + timestamp: 1735684749868 +- kind: conda + name: libarrow-acero + version: 18.1.0 + build: hf07054f_7_cpu + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-18.1.0-hf07054f_7_cpu.conda + sha256: 86e20cebfdb4f335e98265c1b88f5053bf3e3648768a317856295846bfdbf2b4 + md5: 3eaf71fe987de13061db795e03bb1a1c + depends: + - __osx >=11.0 + - libarrow 18.1.0 h0ad35bc_7_cpu + - libcxx >=18 + license: Apache-2.0 + license_family: APACHE + size: 485185 + timestamp: 1735683071232 +- kind: conda + name: libarrow-dataset + version: 18.1.0 + build: hcb10f89_7_cpu + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-18.1.0-hcb10f89_7_cpu.conda + sha256: 99c12511fba79c7947f78d676eae5857659084f687f375f68bc20bd4cddb0a0e + md5: 0a81eb63d7cd150f598c752e86388d57 + depends: + - __glibc >=2.17,<3.0.a0 + - libarrow 18.1.0 hd595efa_7_cpu + - libarrow-acero 18.1.0 hcb10f89_7_cpu + - libgcc >=13 + - libparquet 18.1.0 h081d1f1_7_cpu + - libstdcxx >=13 + license: Apache-2.0 + license_family: APACHE + size: 587497 + timestamp: 1735684880531 +- kind: conda + name: libarrow-dataset + version: 18.1.0 + build: hf07054f_7_cpu + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-18.1.0-hf07054f_7_cpu.conda + sha256: 52c5c4e9cd5f2ac91dcebb6a920ab2536febcea116ff8767e5439329d7da820b + md5: 97a2d3606682d94f7d73112e9ad684ae + depends: + - __osx >=11.0 + - libarrow 18.1.0 h0ad35bc_7_cpu + - libarrow-acero 18.1.0 hf07054f_7_cpu + - libcxx >=18 + - libparquet 18.1.0 h636d7b7_7_cpu + license: Apache-2.0 + license_family: APACHE + size: 491237 + timestamp: 1735684688308 +- kind: conda + name: libarrow-substrait + version: 18.1.0 + build: h08228c5_7_cpu + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-18.1.0-h08228c5_7_cpu.conda + sha256: 53ea53a06e137c2f81ebfdff3f978babb8b59e31f705a19b57056ec8754c1abf + md5: e128def53c133e8a23ac00cd4a479335 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libarrow 18.1.0 hd595efa_7_cpu + - libarrow-acero 18.1.0 hcb10f89_7_cpu + - libarrow-dataset 18.1.0 hcb10f89_7_cpu + - libgcc >=13 + - libprotobuf >=5.28.3,<5.28.4.0a0 + - libstdcxx >=13 + license: Apache-2.0 + license_family: APACHE + size: 521861 + timestamp: 1735684940668 +- kind: conda + name: libarrow-substrait + version: 18.1.0 + build: h4239455_7_cpu + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-18.1.0-h4239455_7_cpu.conda + sha256: a45bbdd6932aed972d6c6ce30a7439aa8ec9d9b8ee5affb350d41e50abdc0127 + md5: 91927747173f65695e441346c7145e26 + depends: + - __osx >=11.0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libarrow 18.1.0 h0ad35bc_7_cpu + - libarrow-acero 18.1.0 hf07054f_7_cpu + - libarrow-dataset 18.1.0 hf07054f_7_cpu + - libcxx >=18 + - libprotobuf >=5.28.3,<5.28.4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 452385 + timestamp: 1735684993831 +- kind: conda + name: libblas + version: 3.9.0 + build: 26_linux64_openblas + build_number: 26 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-26_linux64_openblas.conda + sha256: 30bd658682b124243f8e52d8edf8a19e7be1bc31e4fe4baec30a64002dc8cd0c + md5: ac52800af2e0c0e7dac770b435ce768a + depends: + - libopenblas >=0.3.28,<0.3.29.0a0 + - libopenblas >=0.3.28,<1.0a0 + constrains: + - libcblas 3.9.0 26_linux64_openblas + - liblapack 3.9.0 26_linux64_openblas + - liblapacke 3.9.0 26_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 16393 + timestamp: 1734432564346 +- kind: conda + name: libblas + version: 3.9.0 + build: 26_osxarm64_openblas + build_number: 26 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-26_osxarm64_openblas.conda + sha256: 597f9c3779caa979c8c6abbb3ba8c7191b84e1a910d6b0d10e5faf35284c450c + md5: 21be102c9ae80a67ba7de23b129aa7f6 + depends: + - libopenblas >=0.3.28,<0.3.29.0a0 + - libopenblas >=0.3.28,<1.0a0 + constrains: + - liblapack 3.9.0 26_osxarm64_openblas + - liblapacke 3.9.0 26_osxarm64_openblas + - libcblas 3.9.0 26_osxarm64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 16714 + timestamp: 1734433054681 +- kind: conda + name: libbrotlicommon + version: 1.1.0 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb9d3cd8_2.conda + sha256: d9db2de60ea917298e658143354a530e9ca5f9c63471c65cf47ab39fd2f429e3 + md5: 41b599ed2b02abcfdd84302bff174b23 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + size: 68851 + timestamp: 1725267660471 +- kind: conda + name: libbrotlicommon + version: 1.1.0 + build: hd74edd7_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.1.0-hd74edd7_2.conda + sha256: 839dacb741bdbb25e58f42088a2001b649f4f12195aeb700b5ddfca3267749e5 + md5: d0bf1dff146b799b319ea0434b93f779 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + size: 68426 + timestamp: 1725267943211 +- kind: conda + name: libbrotlidec + version: 1.1.0 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb9d3cd8_2.conda + sha256: 2892d512cad096cb03f1b66361deeab58b64e15ba525d6592bb6d609e7045edf + md5: 9566f0bd264fbd463002e759b8a82401 + depends: + - __glibc >=2.17,<3.0.a0 + - libbrotlicommon 1.1.0 hb9d3cd8_2 + - libgcc >=13 + license: MIT + license_family: MIT + size: 32696 + timestamp: 1725267669305 +- kind: conda + name: libbrotlidec + version: 1.1.0 + build: hd74edd7_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.1.0-hd74edd7_2.conda + sha256: 6c6862eb274f21a7c0b60e5345467a12e6dda8b9af4438c66d496a2c1a538264 + md5: 55e66e68ce55523a6811633dd1ac74e2 + depends: + - __osx >=11.0 + - libbrotlicommon 1.1.0 hd74edd7_2 + license: MIT + license_family: MIT + size: 28378 + timestamp: 1725267980316 +- kind: conda + name: libbrotlienc + version: 1.1.0 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb9d3cd8_2.conda + sha256: 779f58174e99de3600e939fa46eddb453ec5d3c60bb46cdaa8b4c127224dbf29 + md5: 06f70867945ea6a84d35836af780f1de + depends: + - __glibc >=2.17,<3.0.a0 + - libbrotlicommon 1.1.0 hb9d3cd8_2 + - libgcc >=13 + license: MIT + license_family: MIT + size: 281750 + timestamp: 1725267679782 +- kind: conda + name: libbrotlienc + version: 1.1.0 + build: hd74edd7_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.1.0-hd74edd7_2.conda + sha256: eeb1eb0d58b9d02bc1b98dc0a058f104ab168eb2f7d1c7bfa0570a12cfcdb7b7 + md5: 4f3a434504c67b2c42565c0b85c1885c + depends: + - __osx >=11.0 + - libbrotlicommon 1.1.0 hd74edd7_2 + license: MIT + license_family: MIT + size: 279644 + timestamp: 1725268003553 +- kind: conda + name: libcblas + version: 3.9.0 + build: 26_linux64_openblas + build_number: 26 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-26_linux64_openblas.conda + sha256: 9c74e536c9bc868e356ffd43f81c2cb398aec84b40fcadc312315b164a5500ee + md5: ebcc5f37a435aa3c19640533c82f8d76 + depends: + - libblas 3.9.0 26_linux64_openblas + constrains: + - liblapack 3.9.0 26_linux64_openblas + - liblapacke 3.9.0 26_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 16336 + timestamp: 1734432570482 +- kind: conda + name: libcblas + version: 3.9.0 + build: 26_osxarm64_openblas + build_number: 26 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-26_osxarm64_openblas.conda + sha256: 27a29ef6b2fd2179bc3a0bb9db351f078ba140ca10485dca147c399639f84c93 + md5: a0e9980fe12d42f6d0c0ec009f67e948 + depends: + - libblas 3.9.0 26_osxarm64_openblas + constrains: + - liblapack 3.9.0 26_osxarm64_openblas + - liblapacke 3.9.0 26_osxarm64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 16628 + timestamp: 1734433061517 +- kind: conda + name: libcrc32c + version: 1.1.2 + build: h9c3ff4c_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 + sha256: fd1d153962764433fe6233f34a72cdeed5dcf8a883a85769e8295ce940b5b0c5 + md5: c965a5aa0d5c1c37ffc62dff36e28400 + depends: + - libgcc-ng >=9.4.0 + - libstdcxx-ng >=9.4.0 + license: BSD-3-Clause + license_family: BSD + size: 20440 + timestamp: 1633683576494 +- kind: conda + name: libcrc32c + version: 1.1.2 + build: hbdafb3b_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2 + sha256: 58477b67cc719060b5b069ba57161e20ba69b8695d154a719cb4b60caf577929 + md5: 32bd82a6a625ea6ce090a81c3d34edeb + depends: + - libcxx >=11.1.0 + license: BSD-3-Clause + license_family: BSD + size: 18765 + timestamp: 1633683992603 +- kind: conda + name: libcurl + version: 8.11.1 + build: h332b0f4_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.11.1-h332b0f4_0.conda + sha256: 3cd4075b2a7b5562e46c8ec626f6f9ca57aeecaa94ff7df57eca26daa94c9906 + md5: 2b3e0081006dc21e8bf53a91c83a055c + depends: + - __glibc >=2.17,<3.0.a0 + - krb5 >=1.21.3,<1.22.0a0 + - libgcc >=13 + - libnghttp2 >=1.64.0,<2.0a0 + - libssh2 >=1.11.1,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: curl + license_family: MIT + size: 423011 + timestamp: 1733999897624 +- kind: conda + name: libcurl + version: 8.11.1 + build: h73640d1_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.11.1-h73640d1_0.conda + sha256: f47c35938144c23278987c7d12096f6a42d7c850ffc277222b032073412383b6 + md5: 46d7524cabfdd199bffe63f8f19a552b + depends: + - __osx >=11.0 + - krb5 >=1.21.3,<1.22.0a0 + - libnghttp2 >=1.64.0,<2.0a0 + - libssh2 >=1.11.1,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: curl + license_family: MIT + size: 385098 + timestamp: 1734000160270 +- kind: conda + name: libcxx + version: 19.1.6 + build: ha82da77_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-19.1.6-ha82da77_1.conda + sha256: 2b2443404503cd862385fd2f2a2c73f9624686fd1e5a45050b4034cfc06904ec + md5: ce5252d8db110cdb4ae4173d0a63c7c5 + depends: + - __osx >=11.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 520992 + timestamp: 1734494699681 +- kind: conda + name: libdeflate + version: '1.23' + build: h4ddbbb0_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.23-h4ddbbb0_0.conda + sha256: 511d801626d02f4247a04fff957cc6e9ec4cc7e8622bd9acd076bcdc5de5fe66 + md5: 8dfae1d2e74767e9ce36d5fa0d8605db + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + size: 72255 + timestamp: 1734373823254 +- kind: conda + name: libdeflate + version: '1.23' + build: hec38601_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.23-hec38601_0.conda + sha256: 887c02deaed6d583459eba6367023e36d8761085b2f7126e389424f57155da53 + md5: 1d8b9588be14e71df38c525767a1ac30 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + size: 54132 + timestamp: 1734373971372 +- kind: conda + name: libedit + version: 3.1.20240808 + build: pl5321h7949ede_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20240808-pl5321h7949ede_0.conda + sha256: 4d0d69ddf9cc7d724a1ccf3a9852e44c8aea9825692582bac2c4e8d21ec95ccd + md5: 8247f80f3dc464d9322e85007e307fe8 + depends: + - ncurses + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - ncurses >=6.5,<7.0a0 + license: BSD-2-Clause + license_family: BSD + size: 134657 + timestamp: 1736191912705 +- kind: conda + name: libedit + version: 3.1.20240808 + build: pl5321hafb1f1b_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20240808-pl5321hafb1f1b_0.conda + sha256: fb934d7a03279ec8eae4bf1913ac9058fcf6fed35290d8ffa6e04157f396a3b1 + md5: af89aa84ffb5ee551ce0c137b951a3b5 + depends: + - ncurses + - __osx >=11.0 + - ncurses >=6.5,<7.0a0 + license: BSD-2-Clause + license_family: BSD + size: 107634 + timestamp: 1736192034117 +- kind: conda + name: libev + version: '4.33' + build: h93a5062_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda + sha256: 95cecb3902fbe0399c3a7e67a5bed1db813e5ab0e22f4023a5e0f722f2cc214f + md5: 36d33e440c31857372a72137f78bacf5 + license: BSD-2-Clause + license_family: BSD + size: 107458 + timestamp: 1702146414478 +- kind: conda + name: libev + version: '4.33' + build: hd590300_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 + md5: 172bf1cd1ff8629f2b1179945ed45055 + depends: + - libgcc-ng >=12 + license: BSD-2-Clause + license_family: BSD + size: 112766 + timestamp: 1702146165126 +- kind: conda + name: libevent + version: 2.1.12 + build: h2757513_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h2757513_1.conda + sha256: 8c136d7586259bb5c0d2b913aaadc5b9737787ae4f40e3ad1beaf96c80b919b7 + md5: 1a109764bff3bdc7bdd84088347d71dc + depends: + - openssl >=3.1.1,<4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 368167 + timestamp: 1685726248899 +- kind: conda + name: libevent + version: 2.1.12 + build: hf998b51_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-hf998b51_1.conda + sha256: 2e14399d81fb348e9d231a82ca4d816bf855206923759b69ad006ba482764131 + md5: a1cfcc585f0c42bf8d5546bb1dfb668d + depends: + - libgcc-ng >=12 + - openssl >=3.1.1,<4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 427426 + timestamp: 1685725977222 +- kind: conda + name: libexpat + version: 2.6.4 + build: h286801f_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.6.4-h286801f_0.conda + sha256: e42ab5ace927ee7c84e3f0f7d813671e1cf3529f5f06ee5899606630498c2745 + md5: 38d2656dd914feb0cab8c629370768bf + depends: + - __osx >=11.0 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + size: 64693 + timestamp: 1730967175868 +- kind: conda + name: libexpat + version: 2.6.4 + build: h5888daf_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.6.4-h5888daf_0.conda + sha256: 56541b98447b58e52d824bd59d6382d609e11de1f8adf20b23143e353d2b8d26 + md5: db833e03127376d461e1e13e76f09b6c + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - expat 2.6.4.* + license: MIT + license_family: MIT + size: 73304 + timestamp: 1730967041968 +- kind: conda + name: libffi + version: 3.4.2 + build: h3422bc3_5 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.2-h3422bc3_5.tar.bz2 + sha256: 41b3d13efb775e340e4dba549ab5c029611ea6918703096b2eaa9c015c0750ca + md5: 086914b672be056eb70fd4285b6783b6 + license: MIT + license_family: MIT + size: 39020 + timestamp: 1636488587153 +- kind: conda + name: libffi + version: 3.4.2 + build: h7f98852_5 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.2-h7f98852_5.tar.bz2 + sha256: ab6e9856c21709b7b517e940ae7028ae0737546122f83c2aa5d692860c3b149e + md5: d645c6d2ac96843a2bfaccd2d62b3ac3 + depends: + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + size: 58292 + timestamp: 1636488182923 +- kind: conda + name: libgcc + version: 14.2.0 + build: h77fa898_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-14.2.0-h77fa898_1.conda + sha256: 53eb8a79365e58849e7b1a068d31f4f9e718dc938d6f2c03e960345739a03569 + md5: 3cb76c3f10d3bc7f1105b2fc9db984df + depends: + - _libgcc_mutex 0.1 conda_forge + - _openmp_mutex >=4.5 + constrains: + - libgomp 14.2.0 h77fa898_1 + - libgcc-ng ==14.2.0=*_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 848745 + timestamp: 1729027721139 +- kind: conda + name: libgcc-ng + version: 14.2.0 + build: h69a702a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-14.2.0-h69a702a_1.conda + sha256: 3a76969c80e9af8b6e7a55090088bc41da4cffcde9e2c71b17f44d37b7cb87f7 + md5: e39480b9ca41323497b05492a63bc35b + depends: + - libgcc 14.2.0 h77fa898_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 54142 + timestamp: 1729027726517 +- kind: conda + name: libgfortran + version: 5.0.0 + build: 13_2_0_hd922786_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-5.0.0-13_2_0_hd922786_3.conda + sha256: 44e541b4821c96b28b27fef5630883a60ce4fee91fd9c79f25a199f8f73f337b + md5: 4a55d9e169114b2b90d3ec4604cd7bbf + depends: + - libgfortran5 13.2.0 hf226fd6_3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 110233 + timestamp: 1707330749033 +- kind: conda + name: libgfortran + version: 14.2.0 + build: h69a702a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-14.2.0-h69a702a_1.conda + sha256: fc9e7f22a17faf74da904ebfc4d88699013d2992e55505e4aa0eb01770290977 + md5: f1fd30127802683586f768875127a987 + depends: + - libgfortran5 14.2.0 hd5240d6_1 + constrains: + - libgfortran-ng ==14.2.0=*_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 53997 + timestamp: 1729027752995 +- kind: conda + name: libgfortran5 + version: 13.2.0 + build: hf226fd6_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-13.2.0-hf226fd6_3.conda + sha256: bafc679eedb468a86aa4636061c55966186399ee0a04b605920d208d97ac579a + md5: 66ac81d54e95c534ae488726c1f698ea + depends: + - llvm-openmp >=8.0.0 + constrains: + - libgfortran 5.0.0 13_2_0_*_3 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 997381 + timestamp: 1707330687590 +- kind: conda + name: libgfortran5 + version: 14.2.0 + build: hd5240d6_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-14.2.0-hd5240d6_1.conda + sha256: d149a37ca73611e425041f33b9d8dbed6e52ec506fe8cc1fc0ee054bddeb6d5d + md5: 9822b874ea29af082e5d36098d25427d + depends: + - libgcc >=14.2.0 + constrains: + - libgfortran 14.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 1462645 + timestamp: 1729027735353 +- kind: conda + name: libgomp + version: 14.2.0 + build: h77fa898_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.2.0-h77fa898_1.conda + sha256: 1911c29975ec99b6b906904040c855772ccb265a1c79d5d75c8ceec4ed89cd63 + md5: cc3573974587f12dda90d96e3e55a702 + depends: + - _libgcc_mutex 0.1 conda_forge + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 460992 + timestamp: 1729027639220 +- kind: conda + name: libgoogle-cloud + version: 2.33.0 + build: h2b5623c_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.33.0-h2b5623c_1.conda + sha256: ae48ee93e2c226bf682f1e389c2fd51ae7bf77c2ce4b3aee069764f4be1c63f2 + md5: 61829a8dd5f4e2327e707572065bae41 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libcurl >=8.11.1,<9.0a0 + - libgcc >=13 + - libgrpc >=1.67.1,<1.68.0a0 + - libprotobuf >=5.28.3,<5.28.4.0a0 + - libstdcxx >=13 + - openssl >=3.4.0,<4.0a0 + constrains: + - libgoogle-cloud 2.33.0 *_1 + license: Apache-2.0 + license_family: Apache + size: 1254656 + timestamp: 1735648569457 +- kind: conda + name: libgoogle-cloud + version: 2.33.0 + build: hdbe95d5_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-2.33.0-hdbe95d5_1.conda + sha256: ce95aca02451694a4154c7770b6addf4fb859abf17912de6ec947da8469a56ce + md5: 91de1fbab8610974c0094c266bc63435 + depends: + - __osx >=11.0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libcurl >=8.11.1,<9.0a0 + - libcxx >=18 + - libgrpc >=1.67.1,<1.68.0a0 + - libprotobuf >=5.28.3,<5.28.4.0a0 + - openssl >=3.4.0,<4.0a0 + constrains: + - libgoogle-cloud 2.33.0 *_1 + license: Apache-2.0 + license_family: Apache + size: 877594 + timestamp: 1735648230965 +- kind: conda + name: libgoogle-cloud-storage + version: 2.33.0 + build: h0121fbd_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.33.0-h0121fbd_1.conda + sha256: 41022523320ca8633a6c615710823e596efadb50f06d724e1a0c81e27994f257 + md5: b0cfb5044685a7a9fa43ae669124f0a0 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil + - libcrc32c >=1.1.2,<1.2.0a0 + - libcurl + - libgcc >=13 + - libgoogle-cloud 2.33.0 h2b5623c_1 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl + license: Apache-2.0 + license_family: Apache + size: 784357 + timestamp: 1735648759177 +- kind: conda + name: libgoogle-cloud-storage + version: 2.33.0 + build: h7081f7f_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-2.33.0-h7081f7f_1.conda + sha256: c0524a22064bc17f5c037da09ba54cc9e767741ef645178e499750c44bec2531 + md5: af8e51382464d4cc2d0054977c40a732 + depends: + - __osx >=11.0 + - libabseil + - libcrc32c >=1.1.2,<1.2.0a0 + - libcurl + - libcxx >=18 + - libgoogle-cloud 2.33.0 hdbe95d5_1 + - libzlib >=1.3.1,<2.0a0 + - openssl + license: Apache-2.0 + license_family: Apache + size: 526963 + timestamp: 1735649222088 +- kind: conda + name: libgrpc + version: 1.67.1 + build: h0a426d6_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.67.1-h0a426d6_1.conda + sha256: 630edf63981818ff590367cb95fddbed0f5a390464d0952c90ec81de899e84a6 + md5: 8a3cba079d6ac985e7d73c76a678fbb4 + depends: + - __osx >=11.0 + - c-ares >=1.34.4,<2.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libcxx >=18 + - libprotobuf >=5.28.3,<5.28.4.0a0 + - libre2-11 >=2024.7.2 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + - re2 + constrains: + - grpc-cpp =1.67.1 + license: Apache-2.0 + license_family: APACHE + size: 5311706 + timestamp: 1735585137716 +- kind: conda + name: libgrpc + version: 1.67.1 + build: h25350d4_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.67.1-h25350d4_1.conda + sha256: 014627485b3cf0ea18e04c0bab07be7fb98722a3aeeb58477acc7e1c3d2f911e + md5: 0c6497a760b99a926c7c12b74951a39c + depends: + - __glibc >=2.17,<3.0.a0 + - c-ares >=1.34.4,<2.0a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libgcc >=13 + - libprotobuf >=5.28.3,<5.28.4.0a0 + - libre2-11 >=2024.7.2 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + - re2 + constrains: + - grpc-cpp =1.67.1 + license: Apache-2.0 + license_family: APACHE + size: 7792251 + timestamp: 1735584856826 +- kind: conda + name: libiconv + version: '1.17' + build: h0d3ecfb_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.17-h0d3ecfb_2.conda + sha256: bc7de5097b97bcafcf7deaaed505f7ce02f648aac8eccc0d5a47cc599a1d0304 + md5: 69bda57310071cf6d2b86caf11573d2d + license: LGPL-2.1-only + size: 676469 + timestamp: 1702682458114 +- kind: conda + name: libiconv + version: '1.17' + build: hd590300_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.17-hd590300_2.conda + sha256: 8ac2f6a9f186e76539439e50505d98581472fedb347a20e7d1f36429849f05c9 + md5: d66573916ffcf376178462f1b61c941e + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + size: 705775 + timestamp: 1702682170569 +- kind: conda + name: libjpeg-turbo + version: 3.0.0 + build: hb547adb_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.0.0-hb547adb_1.conda + sha256: a42054eaa38e84fc1e5ab443facac4bbc9d1b6b6f23f54b7bf4f1eb687e1d993 + md5: 3ff1e053dc3a2b8e36b9bfa4256a58d1 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + size: 547541 + timestamp: 1694475104253 +- kind: conda + name: libjpeg-turbo + version: 3.0.0 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.0.0-hd590300_1.conda + sha256: b954e09b7e49c2f2433d6f3bb73868eda5e378278b0f8c1dd10a7ef090e14f2f + md5: ea25936bb4080d843790b586850f82b8 + depends: + - libgcc-ng >=12 + constrains: + - jpeg <0.0.0a + license: IJG AND BSD-3-Clause AND Zlib + size: 618575 + timestamp: 1694474974816 +- kind: conda + name: liblapack + version: 3.9.0 + build: 26_linux64_openblas + build_number: 26 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-26_linux64_openblas.conda + sha256: b76458c36331376911e0f98fa68109e02f4d5e5ebfffa79587ac69cef748bba1 + md5: 3792604c43695d6a273bc5faaac47d48 + depends: + - libblas 3.9.0 26_linux64_openblas + constrains: + - libcblas 3.9.0 26_linux64_openblas + - liblapacke 3.9.0 26_linux64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 16338 + timestamp: 1734432576650 +- kind: conda + name: liblapack + version: 3.9.0 + build: 26_osxarm64_openblas + build_number: 26 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-26_osxarm64_openblas.conda + sha256: dd6d9a21e672aee4332f019c8229ce70cf5eaf6c2f4cbd1443b105fb66c00dc5 + md5: cebad79038a75cfd28fa90d147a2d34d + depends: + - libblas 3.9.0 26_osxarm64_openblas + constrains: + - liblapacke 3.9.0 26_osxarm64_openblas + - libcblas 3.9.0 26_osxarm64_openblas + - blas * openblas + license: BSD-3-Clause + license_family: BSD + size: 16624 + timestamp: 1734433068120 +- kind: conda + name: liblzma + version: 5.6.3 + build: h39f12f2_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.6.3-h39f12f2_1.conda + sha256: d863b8257406918ffdc50ae65502f2b2d6cede29404d09a094f59509d6a0aaf1 + md5: b2553114a7f5e20ccd02378a77d836aa + depends: + - __osx >=11.0 + license: 0BSD + size: 99129 + timestamp: 1733407496073 +- kind: conda + name: liblzma + version: 5.6.3 + build: hb9d3cd8_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.6.3-hb9d3cd8_1.conda + sha256: e6e425252f3839e2756e4af1ea2074dffd3396c161bf460629f9dfd6a65f15c6 + md5: 2ecf2f1c7e4e21fcfe6423a51a992d84 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: 0BSD + size: 111132 + timestamp: 1733407410083 +- kind: conda + name: libnghttp2 + version: 1.64.0 + build: h161d5f1_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.64.0-h161d5f1_0.conda + sha256: b0f2b3695b13a989f75d8fd7f4778e1c7aabe3b36db83f0fe80b2cd812c0e975 + md5: 19e57602824042dfd0446292ef90488b + depends: + - __glibc >=2.17,<3.0.a0 + - c-ares >=1.32.3,<2.0a0 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + license: MIT + license_family: MIT + size: 647599 + timestamp: 1729571887612 +- kind: conda + name: libnghttp2 + version: 1.64.0 + build: h6d7220d_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.64.0-h6d7220d_0.conda + sha256: 00cc685824f39f51be5233b54e19f45abd60de5d8847f1a56906f8936648b72f + md5: 3408c02539cee5f1141f9f11450b6a51 + depends: + - __osx >=11.0 + - c-ares >=1.34.2,<2.0a0 + - libcxx >=17 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + license: MIT + license_family: MIT + size: 566719 + timestamp: 1729572385640 +- kind: conda + name: libnsl + version: 2.0.1 + build: hd590300_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + size: 33408 + timestamp: 1697359010159 +- kind: conda + name: libopenblas + version: 0.3.28 + build: openmp_hf332438_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.28-openmp_hf332438_1.conda + sha256: 62bb669c37a845129096f73d446cdb6bb170e4927f2fea2b661329680dbbc373 + md5: 40803a48d947c8639da6704e9a44d3ce + depends: + - __osx >=11.0 + - libgfortran 5.* + - libgfortran5 >=13.2.0 + - llvm-openmp >=18.1.8 + constrains: + - openblas >=0.3.28,<0.3.29.0a0 + license: BSD-3-Clause + license_family: BSD + size: 4165774 + timestamp: 1730772154295 +- kind: conda + name: libopenblas + version: 0.3.28 + build: pthreads_h94d23a6_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.28-pthreads_h94d23a6_1.conda + sha256: 99ba271d8a80a1af2723f2e124ffd91d850074c0389c067e6d96d72a2dbfeabe + md5: 62857b389e42b36b686331bec0922050 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.2.0 + constrains: + - openblas >=0.3.28,<0.3.29.0a0 + license: BSD-3-Clause + license_family: BSD + size: 5578513 + timestamp: 1730772671118 +- kind: conda + name: libparquet + version: 18.1.0 + build: h081d1f1_7_cpu + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libparquet-18.1.0-h081d1f1_7_cpu.conda + sha256: 55945b761130f60abdecf1551907ecfd05cb4a5958cf74d855b30c005ecb3592 + md5: b97013ef4e1dd2cf11594f06d5b5e83a + depends: + - __glibc >=2.17,<3.0.a0 + - libarrow 18.1.0 hd595efa_7_cpu + - libgcc >=13 + - libstdcxx >=13 + - libthrift >=0.21.0,<0.21.1.0a0 + - openssl >=3.4.0,<4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 1205598 + timestamp: 1735684849150 +- kind: conda + name: libparquet + version: 18.1.0 + build: h636d7b7_7_cpu + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-18.1.0-h636d7b7_7_cpu.conda + sha256: bf42e43542a90edd86ba5aa5fd4543671625f1bc35f62be32688f00e18bae990 + md5: 93de9ba66a20db32a2646d313794b3a8 + depends: + - __osx >=11.0 + - libarrow 18.1.0 h0ad35bc_7_cpu + - libcxx >=18 + - libthrift >=0.21.0,<0.21.1.0a0 + - openssl >=3.4.0,<4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 873251 + timestamp: 1735684582558 +- kind: conda + name: libpng + version: 1.6.45 + build: h3783ad8_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.45-h3783ad8_0.conda + sha256: ddcc81c049b32fb5eb3ac1f9a6d3a589c08325c8ec6f89eb912208b19330d68c + md5: d554c806d065b1763cb9e1cb1d25741d + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: zlib-acknowledgement + size: 263151 + timestamp: 1736339184358 +- kind: conda + name: libpng + version: 1.6.45 + build: h943b412_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.45-h943b412_0.conda + sha256: b8f5b5ba9a14dedf7c97c01300de492b1b52b68eacbc3249a13fdbfa82349a2f + md5: 85cbdaacad93808395ac295b5667d25b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: zlib-acknowledgement + size: 289426 + timestamp: 1736339058310 +- kind: conda + name: libprotobuf + version: 5.28.3 + build: h3bd63a1_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-5.28.3-h3bd63a1_1.conda + sha256: f58a16b13ad53346903c833e266f83c3d770a43a432659b98710aed85ca885e7 + md5: bdbfea4cf45ae36652c6bbcc2e7ebe91 + depends: + - __osx >=11.0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libcxx >=18 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + size: 2271580 + timestamp: 1735576361997 +- kind: conda + name: libprotobuf + version: 5.28.3 + build: h6128344_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-5.28.3-h6128344_1.conda + sha256: 51125ebb8b7152e4a4e69fd2398489c4ec8473195c27cde3cbdf1cb6d18c5493 + md5: d8703f1ffe5a06356f06467f1d0b9464 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + size: 2960815 + timestamp: 1735577210663 +- kind: conda + name: libre2-11 + version: 2024.07.02 + build: h07bc746_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2024.07.02-h07bc746_2.conda + sha256: 112a73ad483353751d4c5d63648c69a4d6fcebf5e1b698a860a3f5124fc3db96 + md5: 6b1e3624d3488016ca4f1ca0c412efaa + depends: + - __osx >=11.0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libcxx >=18 + constrains: + - re2 2024.07.02.* + license: BSD-3-Clause + license_family: BSD + size: 167155 + timestamp: 1735541067807 +- kind: conda + name: libre2-11 + version: 2024.07.02 + build: hbbce691_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2024.07.02-hbbce691_2.conda + sha256: 4420f8362c71251892ba1eeb957c5e445e4e1596c0c651c28d0d8b415fe120c7 + md5: b2fede24428726dd867611664fb372e8 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20240722.0,<20240723.0a0 + - libgcc >=13 + - libstdcxx >=13 + constrains: + - re2 2024.07.02.* + license: BSD-3-Clause + license_family: BSD + size: 209793 + timestamp: 1735541054068 +- kind: conda + name: libsodium + version: 1.0.20 + build: h4ab18f5_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda + sha256: 0105bd108f19ea8e6a78d2d994a6d4a8db16d19a41212070d2d1d48a63c34161 + md5: a587892d3c13b6621a6091be690dbca2 + depends: + - libgcc-ng >=12 + license: ISC + size: 205978 + timestamp: 1716828628198 +- kind: conda + name: libsodium + version: 1.0.20 + build: h99b78c6_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda + sha256: fade8223e1e1004367d7101dd17261003b60aa576df6d7802191f8972f7470b1 + md5: a7ce36e284c5faaf93c220dfc39e3abd + depends: + - __osx >=11.0 + license: ISC + size: 164972 + timestamp: 1716828607917 +- kind: conda + name: libsqlite + version: 3.47.2 + build: h3f77e49_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.47.2-h3f77e49_0.conda + sha256: f192f3c8973de9ec4c214990715f13b781965247a5cedf9162e7f9e699cfc3c4 + md5: 122d6f29470f1a991e85608e77e56a8a + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + size: 850553 + timestamp: 1733762057506 +- kind: conda + name: libsqlite + version: 3.47.2 + build: hee588c1_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.47.2-hee588c1_0.conda + sha256: 48af21ebc2cbf358976f1e0f4a0ab9e91dfc83d0ef337cf3837c6f5bc22fb352 + md5: b58da17db24b6e08bcbf8fed2fb8c915 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + size: 873551 + timestamp: 1733761824646 +- kind: conda + name: libssh2 + version: 1.11.1 + build: h9cc3647_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h9cc3647_0.conda + sha256: f7047c6ed44bcaeb04432e8c74da87591940d091b0a3940c0d884b7faa8062e9 + md5: ddc7194676c285513706e5fc64f214d7 + depends: + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 279028 + timestamp: 1732349599461 +- kind: conda + name: libssh2 + version: 1.11.1 + build: hf672d98_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hf672d98_0.conda + sha256: 0407ac9fda2bb67e11e357066eff144c845801d00b5f664efbc48813af1e7bb9 + md5: be2de152d8073ef1c01b7728475f2fe7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.0,<4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 304278 + timestamp: 1732349402869 +- kind: conda + name: libstdcxx + version: 14.2.0 + build: hc0a3c3a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.2.0-hc0a3c3a_1.conda + sha256: 4661af0eb9bdcbb5fb33e5d0023b001ad4be828fccdcc56500059d56f9869462 + md5: 234a5554c53625688d51062645337328 + depends: + - libgcc 14.2.0 h77fa898_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 3893695 + timestamp: 1729027746910 +- kind: conda + name: libstdcxx-ng + version: 14.2.0 + build: h4852527_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.2.0-h4852527_1.conda + sha256: 25bb30b827d4f6d6f0522cc0579e431695503822f144043b93c50237017fffd8 + md5: 8371ac6457591af2cf6159439c1fd051 + depends: + - libstdcxx 14.2.0 hc0a3c3a_1 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 54105 + timestamp: 1729027780628 +- kind: conda + name: libthrift + version: 0.21.0 + build: h0e7cc3e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.21.0-h0e7cc3e_0.conda + sha256: ebb395232973c18745b86c9a399a4725b2c39293c9a91b8e59251be013db42f0 + md5: dcb95c0a98ba9ff737f7ae482aef7833 + depends: + - __glibc >=2.17,<3.0.a0 + - libevent >=2.1.12,<2.1.13.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 425773 + timestamp: 1727205853307 +- kind: conda + name: libthrift + version: 0.21.0 + build: h64651cc_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.21.0-h64651cc_0.conda + sha256: 7a6c7d5f58cbbc2ccd6493b4b821639fdb0701b9b04c737a949e8cb6adf1c9ad + md5: 7ce2bd2f650f8c31ad7ba4c7bfea61b7 + depends: + - __osx >=11.0 + - libcxx >=17 + - libevent >=2.1.12,<2.1.13.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.3.2,<4.0a0 + license: Apache-2.0 + license_family: APACHE + size: 324342 + timestamp: 1727206096912 +- kind: conda + name: libtiff + version: 4.7.0 + build: h551f018_3 + build_number: 3 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.0-h551f018_3.conda + sha256: 91417846157e04992801438a496b151df89604b2e7c6775d6f701fcd0cbed5ae + md5: a5d084a957563e614ec0c0196d890654 + depends: + - __osx >=11.0 + - lerc >=4.0.0,<5.0a0 + - libcxx >=18 + - libdeflate >=1.23,<1.24.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - liblzma >=5.6.3,<6.0a0 + - libwebp-base >=1.4.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: HPND + size: 370600 + timestamp: 1734398863052 +- kind: conda + name: libtiff + version: 4.7.0 + build: hd9ff511_3 + build_number: 3 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.0-hd9ff511_3.conda + sha256: b224e16b88d76ea95e4af56e2bc638c603bd26a770b98d117d04541d3aafa002 + md5: 0ea6510969e1296cc19966fad481f6de + depends: + - __glibc >=2.17,<3.0.a0 + - lerc >=4.0.0,<5.0a0 + - libdeflate >=1.23,<1.24.0a0 + - libgcc >=13 + - libjpeg-turbo >=3.0.0,<4.0a0 + - liblzma >=5.6.3,<6.0a0 + - libstdcxx >=13 + - libwebp-base >=1.4.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: HPND + size: 428173 + timestamp: 1734398813264 +- kind: conda + name: libutf8proc + version: 2.9.0 + build: h5505292_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.9.0-h5505292_1.conda + sha256: ea88f06e97ef8fa2490f7594f8885bb542577226edf8abba3144302d951a53c2 + md5: f777470d31c78cd0abe1903a2fda436f + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + size: 83000 + timestamp: 1732868631531 +- kind: conda + name: libutf8proc + version: 2.9.0 + build: hb9d3cd8_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.9.0-hb9d3cd8_1.conda + sha256: 9794e6388e780c3310d46f773bbc924d4053375c3fcdb07a704b57f4616db928 + md5: 1e936bd23d737aac62a18e9a1e7f8b18 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + size: 81500 + timestamp: 1732868419835 +- kind: conda + name: libuuid + version: 2.38.1 + build: h0b41bf4_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + size: 33601 + timestamp: 1680112270483 +- kind: conda + name: libuv + version: 1.49.2 + build: h7ab814d_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.49.2-h7ab814d_0.conda + sha256: 0e5176af1e788ad5006cf261c4ea5a288a935fda48993b0240ddd2e562dc3d02 + md5: 4bc348e3a1a74d20a3f9beb866d75e0a + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + size: 410500 + timestamp: 1729322654121 +- kind: conda + name: libuv + version: 1.49.2 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.49.2-hb9d3cd8_0.conda + sha256: a35cd81cd1a9add11024097da83cc06b0aae83186fe4124b77710876f37d8f31 + md5: 070e3c9ddab77e38799d5c30b109c633 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + size: 884647 + timestamp: 1729322566955 +- kind: conda + name: libwebp-base + version: 1.5.0 + build: h2471fea_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.5.0-h2471fea_0.conda + sha256: f8bdb876b4bc8cb5df47c28af29188de8911c3fea4b799a33743500149de3f4a + md5: 569466afeb84f90d5bb88c11cc23d746 + depends: + - __osx >=11.0 + constrains: + - libwebp 1.5.0 + license: BSD-3-Clause + license_family: BSD + size: 290013 + timestamp: 1734777593617 +- kind: conda + name: libwebp-base + version: 1.5.0 + build: h851e524_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.5.0-h851e524_0.conda + sha256: c45283fd3e90df5f0bd3dbcd31f59cdd2b001d424cf30a07223655413b158eaf + md5: 63f790534398730f59e1b899c3644d4a + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - libwebp 1.5.0 + license: BSD-3-Clause + license_family: BSD + size: 429973 + timestamp: 1734777489810 +- kind: conda + name: libxcb + version: 1.17.0 + build: h8a09558_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda + sha256: 666c0c431b23c6cec6e492840b176dde533d48b7e6fb8883f5071223433776aa + md5: 92ed62436b625154323d40d5f2f11dd7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - pthread-stubs + - xorg-libxau >=1.0.11,<2.0a0 + - xorg-libxdmcp + license: MIT + license_family: MIT + size: 395888 + timestamp: 1727278577118 +- kind: conda + name: libxcb + version: 1.17.0 + build: hdb1d25a_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.conda + sha256: bd3816218924b1e43b275863e21a3e13a5db4a6da74cca8e60bc3c213eb62f71 + md5: af523aae2eca6dfa1c8eec693f5b9a79 + depends: + - __osx >=11.0 + - pthread-stubs + - xorg-libxau >=1.0.11,<2.0a0 + - xorg-libxdmcp + license: MIT + license_family: MIT + size: 323658 + timestamp: 1727278733917 +- kind: conda + name: libxcrypt + version: 4.4.36 + build: hd590300_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: 5aa797f8787fe7a17d1b0821485b5adc + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + size: 100393 + timestamp: 1702724383534 +- kind: conda + name: libxml2 + version: 2.13.5 + build: h0d44e9d_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.5-h0d44e9d_1.conda + sha256: 306e18aa647d8208ad2cd0e62d84933222b2fbe93d2d53cd5283d2256b1d54de + md5: f5b05674697ae7d2c5932766695945e1 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libiconv >=1.17,<2.0a0 + - liblzma >=5.6.3,<6.0a0 + - libzlib >=1.3.1,<2.0a0 + constrains: + - icu <0.0a0 + license: MIT + license_family: MIT + size: 689993 + timestamp: 1733443678322 +- kind: conda + name: libxml2 + version: 2.13.5 + build: h178c5d8_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.13.5-h178c5d8_1.conda + sha256: d7af3f25a4cece170502acd38f2dafbea4521f373f46dcb28a37fbe6ac2da544 + md5: 3dc3cff0eca1640a6acbbfab2f78139e + depends: + - __osx >=11.0 + - icu >=75.1,<76.0a0 + - libiconv >=1.17,<2.0a0 + - liblzma >=5.6.3,<6.0a0 + - libzlib >=1.3.1,<2.0a0 + license: MIT + license_family: MIT + size: 582898 + timestamp: 1733443841584 +- kind: conda + name: libzlib + version: 1.3.1 + build: h8359307_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b + md5: 369964e85dc26bfe78f41399b366c435 + depends: + - __osx >=11.0 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + size: 46438 + timestamp: 1727963202283 +- kind: conda + name: libzlib + version: 1.3.1 + build: hb9d3cd8_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 + md5: edb0dca6bc32e4f4789199455a1dbeb8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + size: 60963 + timestamp: 1727963148474 +- kind: conda + name: lightbug_http + version: 0.1.8 + build: h60d57d3_0 + subdir: osx-arm64 + url: https://repo.prefix.dev/mojo-community/osx-arm64/lightbug_http-0.1.8-h60d57d3_0.conda + sha256: 0ba3009ed9dbdae4728e503288c656131b1d90e555e07e6539d162f869807038 + depends: + - max >=24.6.0 + - small_time ==0.1.6 + arch: arm64 + platform: osx + license: MIT + size: 1020548 + timestamp: 1736359491861 +- kind: conda + name: lightbug_http + version: 0.1.8 + build: hb0f4dca_0 + subdir: linux-64 + url: https://repo.prefix.dev/mojo-community/linux-64/lightbug_http-0.1.8-hb0f4dca_0.conda + sha256: 966b4ccbcd538df590108e7a6844004cfbd49f07d4a4a2a749147e496a5f8539 + depends: + - max >=24.6.0 + - small_time ==0.1.6 + arch: x86_64 + platform: linux + license: MIT + size: 1020613 + timestamp: 1736359486142 +- kind: conda + name: llvm-openmp + version: 19.1.6 + build: hdb05f8b_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-19.1.6-hdb05f8b_0.conda + sha256: a0f3e9139ab16f0a67b9d2bbabc15b78977168f4a5b5503fed4962dcb9a96102 + md5: 34fdeffa0555a1a56f38839415cc066c + depends: + - __osx >=11.0 + constrains: + - openmp 19.1.6|19.1.6.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + size: 281251 + timestamp: 1734520462311 +- kind: conda + name: lz4-c + version: 1.10.0 + build: h286801f_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.10.0-h286801f_1.conda + sha256: 94d3e2a485dab8bdfdd4837880bde3dd0d701e2b97d6134b8806b7c8e69c8652 + md5: 01511afc6cc1909c5303cf31be17b44f + depends: + - __osx >=11.0 + - libcxx >=18 + license: BSD-2-Clause + license_family: BSD + size: 148824 + timestamp: 1733741047892 +- kind: conda + name: lz4-c + version: 1.10.0 + build: h5888daf_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda + sha256: 47326f811392a5fd3055f0f773036c392d26fdb32e4d8e7a8197eed951489346 + md5: 9de5350a85c4a20c685259b889aa6393 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + license: BSD-2-Clause + license_family: BSD + size: 167055 + timestamp: 1733741040117 +- kind: conda + name: markdown-it-py + version: 3.0.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + sha256: 0fbacdfb31e55964152b24d5567e9a9996e1e7902fb08eb7d91b5fd6ce60803a + md5: fee3164ac23dfca50cfcc8b85ddefb81 + depends: + - mdurl >=0.1,<1 + - python >=3.9 + license: MIT + license_family: MIT + size: 64430 + timestamp: 1733250550053 +- kind: conda + name: markupsafe + version: 3.0.2 + build: py312h178313f_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.2-py312h178313f_1.conda + sha256: 4a6bf68d2a2b669fecc9a4a009abd1cf8e72c2289522ff00d81b5a6e51ae78f5 + md5: eb227c3e0bf58f5bd69c0532b157975b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + size: 24604 + timestamp: 1733219911494 +- kind: conda + name: markupsafe + version: 3.0.2 + build: py312h998013c_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.2-py312h998013c_1.conda + sha256: 4aa997b244014d3707eeef54ab0ee497d12c0d0d184018960cce096169758283 + md5: 46e547061080fddf9cf95a0327e8aba6 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + constrains: + - jinja2 >=3.0.0 + license: BSD-3-Clause + license_family: BSD + size: 24048 + timestamp: 1733219945697 +- kind: conda + name: max + version: 24.6.0 + build: release + subdir: noarch + noarch: python + url: https://conda.modular.com/max/noarch/max-24.6.0-release.conda + sha256: 0e3c1984ac7476550fd8fa5921bf1ca58950219b84ae21ecd861f650e45382ac + md5: e04b1405f630c9bb7d4cb5559840e902 + depends: + - max-core ==24.6.0 release + - max-python >=24.6.0,<25.0a0 + - mojo-jupyter ==24.6.0 release + - mblack ==24.6.0 release + license: LicenseRef-Modular-Proprietary + size: 9851 + timestamp: 1734039439696 +- kind: conda + name: max-core + version: 24.6.0 + build: release + subdir: linux-64 + url: https://conda.modular.com/max/linux-64/max-core-24.6.0-release.conda + sha256: 38a4128c15b230f5b05e0606a339c7866a83eb943d334a948b3a8c1d2675a917 + md5: 25e678ff7c59e36ec3154fe0cd15ebde + depends: + - mblack ==24.6.0 release + arch: x86_64 + platform: linux + license: LicenseRef-Modular-Proprietary + size: 247670119 + timestamp: 1734039439695 +- kind: conda + name: max-core + version: 24.6.0 + build: release + subdir: osx-arm64 + url: https://conda.modular.com/max/osx-arm64/max-core-24.6.0-release.conda + sha256: 434c29e35067e296db55525cd5cf38bb013a1f7a7bfa99845bf6c317de6cdc12 + md5: 4a2ead0a9010c36b6193ea32f583e996 + depends: + - mblack ==24.6.0 release + arch: arm64 + platform: osx + license: LicenseRef-Modular-Proprietary + size: 212001240 + timestamp: 1734039726703 +- kind: conda + name: max-python + version: 24.6.0 + build: 3.12release + subdir: linux-64 + url: https://conda.modular.com/max/linux-64/max-python-24.6.0-3.12release.conda + sha256: 6fbf7330ad910e6ec9fd581fd0f8505e5b1326ccf9979d553c70c61abf4c3e54 + md5: 218ecd662f853ea1578404799d61b385 + depends: + - max-core ==24.6.0 release + - python 3.12.* + - fastapi + - httpx + - huggingface_hub + - numpy >=1.18,<2.0 + - opentelemetry-api + - opentelemetry-exporter-otlp-proto-http >=1.27.0 + - opentelemetry-exporter-prometheus >=0.48b0 + - opentelemetry-sdk >=1.27.0 + - pillow + - pydantic-settings >=2.4.0,<3 + - pydantic >=2.4.0,<3 + - pyinstrument + - python-json-logger + - sse-starlette >=2.1.3,<3 + - transformers + - typing_extensions + - uvicorn + - python_abi 3.12.* *_cp312 + arch: x86_64 + platform: linux + license: LicenseRef-Modular-Proprietary + size: 123785050 + timestamp: 1734039439704 +- kind: conda + name: max-python + version: 24.6.0 + build: 3.12release + subdir: osx-arm64 + url: https://conda.modular.com/max/osx-arm64/max-python-24.6.0-3.12release.conda + sha256: c888b58cfc7c767d40aa100ff2bccf5c3ab11d58d897a6accb749e6b5b7014ea + md5: 62a92bfab3b5c85c2d246672bbb8bc8d + depends: + - max-core ==24.6.0 release + - python 3.12.* + - fastapi + - httpx + - huggingface_hub + - numpy >=1.18,<2.0 + - opentelemetry-api + - opentelemetry-exporter-otlp-proto-http >=1.27.0 + - opentelemetry-exporter-prometheus >=0.48b0 + - opentelemetry-sdk >=1.27.0 + - pillow + - pydantic-settings >=2.4.0,<3 + - pydantic >=2.4.0,<3 + - pyinstrument + - python-json-logger + - sse-starlette >=2.1.3,<3 + - transformers + - typing_extensions + - uvicorn + - python_abi 3.12.* *_cp312 + arch: arm64 + platform: osx + license: LicenseRef-Modular-Proprietary + size: 112484803 + timestamp: 1734039726707 +- kind: conda + name: mblack + version: 24.6.0 + build: release + subdir: noarch + noarch: python + url: https://conda.modular.com/max/noarch/mblack-24.6.0-release.conda + sha256: f135164020478078f4681aa77e7f6ca9f68b8e7ee02604b85342bbaf2f706f0d + md5: 77367aff981ba391ab5c047ba33ec978 + depends: + - python >=3.9,<3.13 + - click >=8.0.0 + - mypy_extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - python + license: MIT + size: 130668 + timestamp: 1734039439700 +- kind: conda + name: mdurl + version: 0.1.2 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 + md5: 592132998493b3ff25fd7479396e8351 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 14465 + timestamp: 1733255681319 +- kind: conda + name: mojo-jupyter + version: 24.6.0 + build: release + subdir: noarch + noarch: python + url: https://conda.modular.com/max/noarch/mojo-jupyter-24.6.0-release.conda + sha256: 2fe043d98ea77f8f165b39bd252cd04942216c8533f0291c49d87d6cfd8673df + md5: b17127f3ca2cef0976496407e1cd4081 + depends: + - max-core ==24.6.0 release + - python >=3.9,<3.13 + - jupyter_client >=8.6.2,<8.7 + - python + license: LicenseRef-Modular-Proprietary + size: 22990 + timestamp: 1734039439702 +- kind: conda + name: multidict + version: 6.1.0 + build: py312h178313f_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/multidict-6.1.0-py312h178313f_2.conda + sha256: b05bc8252a6e957bf4a776ed5e0e61d1ba88cdc46ccb55890c72cc58b10371f4 + md5: 5b5e3267d915a107eca793d52e1b780a + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: APACHE + size: 61507 + timestamp: 1733913288935 +- kind: conda + name: multidict + version: 6.1.0 + build: py312hdb8e49c_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/multidict-6.1.0-py312hdb8e49c_1.conda + sha256: 482fd09fb798090dc8cce2285fa69f43b1459099122eac2fb112d9b922b9f916 + md5: 0048335516fed938e4dd2c457b4c5b9b + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: APACHE + size: 55968 + timestamp: 1729065664275 +- kind: conda + name: multiprocess + version: 0.70.15 + build: py312h02f2b3b_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/multiprocess-0.70.15-py312h02f2b3b_1.conda + sha256: 8041371e3ec3fbc2ca13c71b0180672896e6382e62892d9f6b11a4c5dd675951 + md5: 910ef2223c71902175418d9163152788 + depends: + - dill >=0.3.6 + - python >=3.12.0rc3,<3.13.0a0 + - python >=3.12.0rc3,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + size: 335147 + timestamp: 1695459275360 +- kind: conda + name: multiprocess + version: 0.70.15 + build: py312h98912ed_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/multiprocess-0.70.15-py312h98912ed_1.conda + sha256: bb612a921fafda6375a2204ffebd8811db8dd3b8f25ac9886cc9bcbff7e3664e + md5: 5a64b9f44790d9a187a85366dd0ffa8d + depends: + - dill >=0.3.6 + - libgcc-ng >=12 + - python >=3.12.0rc3,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + size: 335666 + timestamp: 1695459025249 +- kind: conda + name: mypy_extensions + version: 1.0.0 + build: pyha770c72_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_1.conda + sha256: 1895f47b7d68581a6facde5cb13ab8c2764c2e53a76bd746f8f98910dc4e08fe + md5: 29097e7ea634a45cc5386b95cac6568f + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 10854 + timestamp: 1733230986902 +- kind: conda + name: ncurses + version: '6.5' + build: h7bae524_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda + sha256: 27d0b9ff78ad46e1f3a6c96c479ab44beda5f96def88e2fe626e0a49429d8afc + md5: cb2b0ea909b97b3d70cd3921d1445e1a + depends: + - __osx >=11.0 + license: X11 AND BSD-3-Clause + size: 802321 + timestamp: 1724658775723 +- kind: conda + name: ncurses + version: '6.5' + build: he02047a_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda + sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a + md5: 70caf8bb6cf39a0b6b7efc885f51c0fe + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: X11 AND BSD-3-Clause + size: 889086 + timestamp: 1724658547447 +- kind: conda + name: numpy + version: 1.26.4 + build: py312h8442bc7_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda + sha256: c8841d6d6f61fd70ca80682efbab6bdb8606dc77c68d8acabfbd7c222054f518 + md5: d83fc83d589e2625a3451c9a7e21047c + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=16 + - liblapack >=3.9.0,<4.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 6073136 + timestamp: 1707226249608 +- kind: conda + name: numpy + version: 1.26.4 + build: py312heda63a1_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda + sha256: fe3459c75cf84dcef6ef14efcc4adb0ade66038ddd27cadb894f34f4797687d8 + md5: d8285bea2a350f63fab23bf460221f3f + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc-ng >=12 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx-ng >=12 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 7484186 + timestamp: 1707225809722 +- kind: conda + name: openjpeg + version: 2.5.3 + build: h5fbd93e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.3-h5fbd93e_0.conda + sha256: 5bee706ea5ba453ed7fd9da7da8380dd88b865c8d30b5aaec14d2b6dd32dbc39 + md5: 9e5816bc95d285c115a3ebc2f8563564 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libpng >=1.6.44,<1.7.0a0 + - libstdcxx >=13 + - libtiff >=4.7.0,<4.8.0a0 + - libzlib >=1.3.1,<2.0a0 + license: BSD-2-Clause + license_family: BSD + size: 342988 + timestamp: 1733816638720 +- kind: conda + name: openjpeg + version: 2.5.3 + build: h8a3d83b_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.3-h8a3d83b_0.conda + sha256: 1d59bc72ca7faac06d349c1a280f5cfb8a57ee5896f1e24225a997189d7418c7 + md5: 4b71d78648dbcf68ce8bf22bb07ff838 + depends: + - __osx >=11.0 + - libcxx >=18 + - libpng >=1.6.44,<1.7.0a0 + - libtiff >=4.7.0,<4.8.0a0 + - libzlib >=1.3.1,<2.0a0 + license: BSD-2-Clause + license_family: BSD + size: 319362 + timestamp: 1733816781741 +- kind: conda + name: openssl + version: 3.4.0 + build: h7b32b05_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.4.0-h7b32b05_1.conda + sha256: f62f6bca4a33ca5109b6d571b052a394d836956d21b25b7ffd03376abf7a481f + md5: 4ce6875f75469b2757a65e10a5d05e31 + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + size: 2937158 + timestamp: 1736086387286 +- kind: conda + name: openssl + version: 3.4.0 + build: h81ee809_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.4.0-h81ee809_1.conda + sha256: 97772762abc70b3a537683ca9fc3ff3d6099eb64e4aba3b9c99e6fce48422d21 + md5: 22f971393637480bda8c679f374d8861 + depends: + - __osx >=11.0 + - ca-certificates + license: Apache-2.0 + license_family: Apache + size: 2936415 + timestamp: 1736086108693 +- kind: conda + name: opentelemetry-api + version: 1.29.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-api-1.29.0-pyhd8ed1ab_1.conda + sha256: 296280c8ace35c0a1cf72bed1077f248b3af903c3bf92332f1783a207cb5abdb + md5: 307b05402c1a382f2f09426492dee8f8 + depends: + - deprecated >=1.2.6 + - importlib-metadata >=6.0,<=8.5.0 + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + size: 44166 + timestamp: 1734132973331 +- kind: conda + name: opentelemetry-exporter-otlp-proto-common + version: 1.29.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-exporter-otlp-proto-common-1.29.0-pyhd8ed1ab_0.conda + sha256: ae9776efe52564e0d6711cfcee7c54439273e57a3999f7f796f66e862f58aae9 + md5: 0c02e74d26bce3fec93b227cf7ea6e6b + depends: + - backoff >=1.10.0,<3.0.0 + - opentelemetry-proto 1.29.0 + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + size: 18922 + timestamp: 1734310457116 +- kind: conda + name: opentelemetry-exporter-otlp-proto-http + version: 1.29.0 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-exporter-otlp-proto-http-1.29.0-pyhd8ed1ab_1.conda + sha256: 5d61db9d5b4f91b3932f5f2348920d5b7fdaa09e52c8ea054cf7bf3f21677c9c + md5: 223f4e56a29601c887f0dc467034af5b + depends: + - deprecated >=1.2.6 + - googleapis-common-protos >=1.52,<2.dev0 + - opentelemetry-api >=1.15,<2.dev0 + - opentelemetry-exporter-otlp-proto-common 1.29.0 + - opentelemetry-proto 1.29.0 + - opentelemetry-sdk 1.29.0 + - python >=3.9 + - requests >=2.7,<3.dev0 + license: Apache-2.0 + license_family: APACHE + size: 17147 + timestamp: 1734345675510 +- kind: conda + name: opentelemetry-exporter-prometheus + version: 1.12.0rc1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-exporter-prometheus-1.12.0rc1-pyhd8ed1ab_0.conda + sha256: b8239230dbbdb491401e41b53bd9f21d60551cedef1a8d5807fca1bf9bdd331c + md5: 1ddc95052b31147d1e10d818cf519cf5 + depends: + - opentelemetry-api >=1.10.0 + - opentelemetry-sdk >=1.10.0 + - prometheus_client >=0.5.0,<1.0.0 + - python >=3.6 + license: Apache-2.0 + license_family: APACHE + size: 14721 + timestamp: 1695214221489 +- kind: conda + name: opentelemetry-proto + version: 1.29.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-proto-1.29.0-pyhd8ed1ab_0.conda + sha256: 200a7cb8acc8a0ddd6ef55c5460cec871b6a265929b240a0296c0ccb9c8d9758 + md5: e2a6d2ad10b813c7fdc1c64aac376128 + depends: + - protobuf <6.0,>=5.0 + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + size: 37235 + timestamp: 1734291034372 +- kind: conda + name: opentelemetry-sdk + version: 1.29.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-sdk-1.29.0-pyhd8ed1ab_0.conda + sha256: 7b36629d8b8be8a019fcfd1518d7b7f862dd25de96f8adcadb93e4fd12cf9bd6 + md5: 2a8893f06e6ebda4bfa78875bc923ea4 + depends: + - opentelemetry-api 1.29.0 + - opentelemetry-semantic-conventions 0.50b0 + - python >=3.9 + - typing-extensions >=3.7.4 + - typing_extensions >=3.7.4 + license: Apache-2.0 + license_family: APACHE + size: 77645 + timestamp: 1734297838999 +- kind: conda + name: opentelemetry-semantic-conventions + version: 0.50b0 + build: pyh3cfb1c2_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/opentelemetry-semantic-conventions-0.50b0-pyh3cfb1c2_0.conda + sha256: 6526e70368d5bf66ef0eaa51fb800d53782dde71a24bd38f40139919a6f784dc + md5: f7111fa4188d646c8108e232d024cb99 + depends: + - deprecated >=1.2.6 + - opentelemetry-api 1.29.0 + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + size: 86084 + timestamp: 1734208980168 +- kind: conda + name: orc + version: 2.0.3 + build: h0ff2369_2 + build_number: 2 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.0.3-h0ff2369_2.conda + sha256: cca330695f3bdb8c0e46350c29cd4af3345865544e36f1d7c9ba9190ad22f5f4 + md5: 24b1897c0d24afbb70704ba998793b78 + depends: + - __osx >=11.0 + - libcxx >=18 + - libprotobuf >=5.28.3,<5.28.4.0a0 + - libzlib >=1.3.1,<2.0a0 + - lz4-c >=1.10.0,<1.11.0a0 + - snappy >=1.2.1,<1.3.0a0 + - tzdata + - zstd >=1.5.6,<1.6.0a0 + license: Apache-2.0 + license_family: Apache + size: 438520 + timestamp: 1735630624140 +- kind: conda + name: orc + version: 2.0.3 + build: h12ee42a_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/orc-2.0.3-h12ee42a_2.conda + sha256: dff5cc8023905782c86b3459055f26d4b97890e403b0698477c9fed15d8669cc + md5: 4f6f9f3f80354ad185e276c120eac3f0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libprotobuf >=5.28.3,<5.28.4.0a0 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - lz4-c >=1.10.0,<1.11.0a0 + - snappy >=1.2.1,<1.3.0a0 + - tzdata + - zstd >=1.5.6,<1.6.0a0 + license: Apache-2.0 + license_family: Apache + size: 1188881 + timestamp: 1735630209320 +- kind: conda + name: packaging + version: '24.2' + build: pyhd8ed1ab_2 + build_number: 2 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.2-pyhd8ed1ab_2.conda + sha256: da157b19bcd398b9804c5c52fc000fcb8ab0525bdb9c70f95beaa0bb42f85af1 + md5: 3bfed7e6228ebf2f7b9eaa47f1b4e2aa + depends: + - python >=3.8 + license: Apache-2.0 + license_family: APACHE + size: 60164 + timestamp: 1733203368787 +- kind: conda + name: pandas + version: 2.2.3 + build: py312hcd31e36_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.2.3-py312hcd31e36_1.conda + sha256: ff0cb54b5d058c7987b4a0984066e893642d1865a7bb695294b6172e2fcdc457 + md5: c68bfa69e6086c381c74e16fd72613a8 + depends: + - __osx >=11.0 + - libcxx >=17 + - numpy >=1.19,<3 + - numpy >=1.22.4 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python-dateutil >=2.8.1 + - python-tzdata >=2022a + - python_abi 3.12.* *_cp312 + - pytz >=2020.1,<2024.2 + license: BSD-3-Clause + license_family: BSD + size: 14470437 + timestamp: 1726878887799 +- kind: conda + name: pandas + version: 2.2.3 + build: py312hf9745cd_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.2.3-py312hf9745cd_1.conda + sha256: ad275a83bfebfa8a8fee9b0569aaf6f513ada6a246b2f5d5b85903d8ca61887e + md5: 8bce4f6caaf8c5448c7ac86d87e26b4b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - numpy >=1.19,<3 + - numpy >=1.22.4 + - python >=3.12,<3.13.0a0 + - python-dateutil >=2.8.1 + - python-tzdata >=2022a + - python_abi 3.12.* *_cp312 + - pytz >=2020.1,<2024.2 + license: BSD-3-Clause + license_family: BSD + size: 15436913 + timestamp: 1726879054912 +- kind: conda + name: pathspec + version: 0.12.1 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda + sha256: 9f64009cdf5b8e529995f18e03665b03f5d07c0b17445b8badef45bde76249ee + md5: 617f15191456cc6a13db418a275435e5 + depends: + - python >=3.9 + license: MPL-2.0 + license_family: MOZILLA + size: 41075 + timestamp: 1733233471940 +- kind: conda + name: pillow + version: 11.1.0 + build: py312h50aef2c_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-11.1.0-py312h50aef2c_0.conda + sha256: b29b7c915053e06a7a5b4118760202c572c9c35d23bd6ce8e73270b6a50e50ee + md5: 94d6ba8cd468668a9fb04193b0f4b36e + depends: + - __osx >=11.0 + - freetype >=2.12.1,<3.0a0 + - lcms2 >=2.16,<3.0a0 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.7.0,<4.8.0a0 + - libwebp-base >=1.5.0,<2.0a0 + - libxcb >=1.17.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openjpeg >=2.5.3,<3.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - tk >=8.6.13,<8.7.0a0 + license: HPND + size: 42852329 + timestamp: 1735930118976 +- kind: conda + name: pillow + version: 11.1.0 + build: py312h80c1187_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.1.0-py312h80c1187_0.conda + sha256: 5c347962202b55ae4d8a463e0555c5c6ca33396266a08284bf1384399894e541 + md5: d3894405f05b2c0f351d5de3ae26fa9c + depends: + - __glibc >=2.17,<3.0.a0 + - freetype >=2.12.1,<3.0a0 + - lcms2 >=2.16,<3.0a0 + - libgcc >=13 + - libjpeg-turbo >=3.0.0,<4.0a0 + - libtiff >=4.7.0,<4.8.0a0 + - libwebp-base >=1.5.0,<2.0a0 + - libxcb >=1.17.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openjpeg >=2.5.3,<3.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - tk >=8.6.13,<8.7.0a0 + license: HPND + size: 42749785 + timestamp: 1735929845390 +- kind: conda + name: platformdirs + version: 4.3.6 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_1.conda + sha256: bb50f6499e8bc1d1a26f17716c97984671121608dc0c3ecd34858112bce59a27 + md5: 577852c7e53901ddccc7e6a9959ddebe + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 20448 + timestamp: 1733232756001 +- kind: conda + name: prometheus_client + version: 0.21.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.21.1-pyhd8ed1ab_0.conda + sha256: bc8f00d5155deb7b47702cb8370f233935704100dbc23e30747c161d1b6cf3ab + md5: 3e01e386307acc60b2f89af0b2e161aa + depends: + - python >=3.9 + license: Apache-2.0 + license_family: Apache + size: 49002 + timestamp: 1733327434163 +- kind: conda + name: propcache + version: 0.2.1 + build: py312h66e93f0_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/propcache-0.2.1-py312h66e93f0_0.conda + sha256: 5771311fb5ded614ca349c92579a0b752af55a310f40b71fc533e20625965391 + md5: 55d5742a696d7da1c1262e99b6217ceb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: APACHE + size: 52747 + timestamp: 1733391916349 +- kind: conda + name: propcache + version: 0.2.1 + build: py312hea69d52_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/propcache-0.2.1-py312hea69d52_0.conda + sha256: f8c266c494aa1e4cfb8bf0b6fca060044b2f3d65afe4c5062ebeea382e77aa6d + md5: c84e3dd97fe25a17322c4a0f670c6750 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: APACHE + size: 48225 + timestamp: 1733392308901 +- kind: conda + name: protobuf + version: 5.28.3 + build: py312h2ec8cdc_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/protobuf-5.28.3-py312h2ec8cdc_0.conda + sha256: acb2e0ee948e3941f8ed191cb77f654e06538638aed8ccd71cbc78a15242ebbb + md5: 9d7e427d159c1b2d516cc047ff177c48 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - libprotobuf 5.28.3 + license: BSD-3-Clause + license_family: BSD + size: 464794 + timestamp: 1731366525051 +- kind: conda + name: protobuf + version: 5.28.3 + build: py312hd8f9ff3_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/protobuf-5.28.3-py312hd8f9ff3_0.conda + sha256: 9d572a97419bdace14d7c7cc8cc8c4bf2dcb22b56965dac87a27fbdb5061b926 + md5: 5afbe52a59f04dd1fe566d0d17590d7e + depends: + - __osx >=11.0 + - libcxx >=18 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + constrains: + - libprotobuf 5.28.3 + license: BSD-3-Clause + license_family: BSD + size: 448803 + timestamp: 1731367010746 +- kind: conda + name: pthread-stubs + version: '0.4' + build: hb9d3cd8_1002 + build_number: 1002 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda + sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973 + md5: b3c17d95b5a10c6e64a21fa17573e70e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + size: 8252 + timestamp: 1726802366959 +- kind: conda + name: pthread-stubs + version: '0.4' + build: hd74edd7_1002 + build_number: 1002 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda + sha256: 8ed65e17fbb0ca944bfb8093b60086e3f9dd678c3448b5de212017394c247ee3 + md5: 415816daf82e0b23a736a069a75e9da7 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + size: 8381 + timestamp: 1726802424786 +- kind: conda + name: pyarrow + version: 18.1.0 + build: py312h1f38498_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-18.1.0-py312h1f38498_0.conda + sha256: 06c0e208d5bf15051874097366c8e8e5db176dffba38526f227a34e80cc8e9bc + md5: 3710616b880b31d0c8afd8ae7e12392a + depends: + - libarrow-acero 18.1.0.* + - libarrow-dataset 18.1.0.* + - libarrow-substrait 18.1.0.* + - libparquet 18.1.0.* + - pyarrow-core 18.1.0 *_0_* + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: APACHE + size: 25375 + timestamp: 1732610892198 +- kind: conda + name: pyarrow + version: 18.1.0 + build: py312h7900ff3_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-18.1.0-py312h7900ff3_0.conda + sha256: 46a61c29375d3bf1933eae61c7861394c168898915d59fc99bf05e46de2ff5ad + md5: ac65b70df28687c6af4270923c020bdd + depends: + - libarrow-acero 18.1.0.* + - libarrow-dataset 18.1.0.* + - libarrow-substrait 18.1.0.* + - libparquet 18.1.0.* + - pyarrow-core 18.1.0 *_0_* + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: APACHE + size: 25213 + timestamp: 1732610785600 +- kind: conda + name: pyarrow-core + version: 18.1.0 + build: py312h01725c0_0_cpu + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-18.1.0-py312h01725c0_0_cpu.conda + sha256: 948a4161c56f846d374a3721a657e58ddbc992a29b3b3e7a6411975c30361d94 + md5: ee80934a6c280ff8635f8db5dec11e04 + depends: + - __glibc >=2.17,<3.0.a0 + - libarrow 18.1.0.* *cpu + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - numpy >=1.21,<3 + - apache-arrow-proc =*=cpu + license: Apache-2.0 + license_family: APACHE + size: 4612916 + timestamp: 1732610377259 +- kind: conda + name: pyarrow-core + version: 18.1.0 + build: py312hc40f475_0_cpu + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-18.1.0-py312hc40f475_0_cpu.conda + sha256: 063eb168a29d4ce6d9ed865e9e1ad3b6e141712189955a79e06b24ddc0cbbc9c + md5: 9859e7c4b94bbf69772dbf0511101cec + depends: + - __osx >=11.0 + - libarrow 18.1.0.* *cpu + - libcxx >=18 + - libzlib >=1.3.1,<2.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + constrains: + - numpy >=1.21,<3 + - apache-arrow-proc =*=cpu + license: Apache-2.0 + license_family: APACHE + size: 3909116 + timestamp: 1732610863261 +- kind: conda + name: pycparser + version: '2.22' + build: pyh29332c3_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6 + md5: 12c566707c80111f9799308d9e265aef + depends: + - python >=3.9 + - python + license: BSD-3-Clause + license_family: BSD + size: 110100 + timestamp: 1733195786147 +- kind: conda + name: pydantic + version: 2.10.5 + build: pyh3cfb1c2_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.10.5-pyh3cfb1c2_0.conda + sha256: 0f32c30ddc610cd1113335d8b4f311f20f4d72754b7c1a5d0d9493f597cf11d2 + md5: e8ea30925c8271c4128375810d7d3d7a + depends: + - annotated-types >=0.6.0 + - pydantic-core 2.27.2 + - python >=3.9 + - typing-extensions >=4.6.1 + - typing_extensions >=4.12.2 + license: MIT + license_family: MIT + size: 296805 + timestamp: 1736458364196 +- kind: conda + name: pydantic-core + version: 2.27.2 + build: py312h12e396e_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.27.2-py312h12e396e_0.conda + sha256: 81602a4592ad2ac1a1cb57372fd25214e63b1c477d5818b0c21cde0f1f85c001 + md5: bae01b2563030c085f5158c518b84e86 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - typing-extensions >=4.6.0,!=4.7.0 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + size: 1641402 + timestamp: 1734571789895 +- kind: conda + name: pydantic-core + version: 2.27.2 + build: py312hcd83bfe_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.27.2-py312hcd83bfe_0.conda + sha256: cfa7201f890d5d08ce29ff70e65a96787d5793a1718776733666b44bbd4a1205 + md5: dcb307e02f17d38c6e1cbfbf8c602852 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - typing-extensions >=4.6.0,!=4.7.0 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + size: 1593461 + timestamp: 1734571986644 +- kind: conda + name: pydantic-settings + version: 2.7.1 + build: pyh3cfb1c2_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.7.1-pyh3cfb1c2_0.conda + sha256: 082fb1ec29917d2c9ed6a862cb8eb9beb88c208ea62c9fef1aeb5f4f3e0e0b06 + md5: d71d76b62bed332b037d7adfc0f3989a + depends: + - pydantic >=2.7.0 + - python >=3.9 + - python-dotenv >=0.21.0 + license: MIT + license_family: MIT + size: 31822 + timestamp: 1735650532951 +- kind: conda + name: pygments + version: 2.19.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b + md5: 232fb4577b6687b2d503ef8e254270c9 + depends: + - python >=3.9 + license: BSD-2-Clause + license_family: BSD + size: 888600 + timestamp: 1736243563082 +- kind: conda + name: pyinstrument + version: 5.0.0 + build: py312h0bf5046_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyinstrument-5.0.0-py312h0bf5046_0.conda + sha256: 6879d52fb0ec2258e2850476786a652c394220d53883c53691ed5390183ae925 + md5: f0e4a98d54477083ddc9d2f33507f848 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + size: 181512 + timestamp: 1728714205508 +- kind: conda + name: pyinstrument + version: 5.0.0 + build: py312h66e93f0_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/pyinstrument-5.0.0-py312h66e93f0_0.conda + sha256: 8a006507a4003fb01eeee2f9ba79f994478694766ea3b445273da5c11cf8e763 + md5: 798f42d9bfdf125dc80ffbec0e96e0b6 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + size: 182021 + timestamp: 1728714164706 +- kind: conda + name: pysocks + version: 1.7.1 + build: pyha55dd90_7 + build_number: 7 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8 + md5: 461219d1a5bd61342293efa2c0c90eac + depends: + - __unix + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 21085 + timestamp: 1733217331982 +- kind: conda + name: python + version: 3.12.8 + build: h9e4cc4f_1_cpython + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.8-h9e4cc4f_1_cpython.conda + sha256: 3f0e0518c992d8ccfe62b189125721309836fe48a010dc424240583e157f9ff0 + md5: 7fd2fd79436d9b473812f14e86746844 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.6.4,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - liblzma >=5.6.3,<6.0a0 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.4.0,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + size: 31565686 + timestamp: 1733410597922 +- kind: conda + name: python + version: 3.12.8 + build: hc22306f_1_cpython + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.8-hc22306f_1_cpython.conda + sha256: 7586a711b1b08a9df8864e26efdc06980bdfb0e18d5ac4651d0fee30a8d3e3a0 + md5: 54ca5b5d92ef3a3ba61e195ee882a518 + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.4,<3.0a0 + - libffi >=3.4,<4.0a0 + - liblzma >=5.6.3,<6.0a0 + - libsqlite >=3.47.0,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.4.0,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + size: 12998673 + timestamp: 1733408900971 +- kind: conda + name: python-dateutil + version: 2.9.0.post0 + build: pyhff2d567_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhff2d567_1.conda + sha256: a50052536f1ef8516ed11a844f9413661829aa083304dc624c5925298d078d79 + md5: 5ba79d7c71f03c678c8ead841f347d6e + depends: + - python >=3.9 + - six >=1.5 + license: Apache-2.0 + license_family: APACHE + size: 222505 + timestamp: 1733215763718 +- kind: conda + name: python-dotenv + version: 1.0.1 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.0.1-pyhd8ed1ab_1.conda + sha256: 99713f6b534fef94995c6c16fd21d59f3548784e9111775d692bdc7c44678f02 + md5: e5c6ed218664802d305e79cc2d4491de + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 24215 + timestamp: 1733243277223 +- kind: conda + name: python-json-logger + version: 2.0.7 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda + sha256: 4790787fe1f4e8da616edca4acf6a4f8ed4e7c6967aa31b920208fc8f95efcca + md5: a61bf9ec79426938ff785eb69dbb1960 + depends: + - python >=3.6 + license: BSD-2-Clause + license_family: BSD + size: 13383 + timestamp: 1677079727691 +- kind: conda + name: python-multipart + version: 0.0.20 + build: pyhff2d567_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/python-multipart-0.0.20-pyhff2d567_0.conda + sha256: 1b03678d145b1675b757cba165a0d9803885807792f7eb4495e48a38858c3cca + md5: a28c984e0429aff3ab7386f7de56de6f + depends: + - python >=3.9 + license: Apache-2.0 + license_family: Apache + size: 27913 + timestamp: 1734420869885 +- kind: conda + name: python-tzdata + version: '2024.2' + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2024.2-pyhd8ed1ab_1.conda + sha256: 57c9a02ec25926fb48edca59b9ede107823e5d5c473b94a0e05cc0b9a193a642 + md5: c0def296b2f6d2dd7b030c2a7f66bb1f + depends: + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + size: 142235 + timestamp: 1733235414217 +- kind: conda + name: python-xxhash + version: 3.5.0 + build: py312h024a12e_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python-xxhash-3.5.0-py312h024a12e_1.conda + sha256: 28204ef48f028a4d872e22040da0dad7ebd703549b010a1bb511b6dd94cf466d + md5: 266fe1ae54a7bb17990206664d0f0ae4 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - xxhash >=0.8.2,<0.8.3.0a0 + license: BSD-2-Clause + license_family: BSD + size: 21765 + timestamp: 1725272382968 +- kind: conda + name: python-xxhash + version: 3.5.0 + build: py312h66e93f0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python-xxhash-3.5.0-py312h66e93f0_1.conda + sha256: 20851b1e59fee127d49e01fc73195a88ab0779f103b7d6ffc90d11142a83678f + md5: 39aed2afe4d0cf76ab3d6b09eecdbea7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - xxhash >=0.8.2,<0.8.3.0a0 + license: BSD-2-Clause + license_family: BSD + size: 23162 + timestamp: 1725272139519 +- kind: conda + name: python_abi + version: '3.12' + build: 5_cp312 + build_number: 5 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda + sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0 + md5: 0424ae29b104430108f5218a66db7260 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6238 + timestamp: 1723823388266 +- kind: conda + name: python_abi + version: '3.12' + build: 5_cp312 + build_number: 5 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda + sha256: 49d624e4b809c799d2bf257b22c23cf3fc4460f5570d9a58e7ad86350aeaa1f4 + md5: b76f9b1c862128e56ac7aa8cd2333de9 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + size: 6278 + timestamp: 1723823099686 +- kind: conda + name: pytz + version: '2024.1' + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/pytz-2024.1-pyhd8ed1ab_0.conda + sha256: 1a7d6b233f7e6e3bbcbad054c8fd51e690a67b129a899a056a5e45dd9f00cb41 + md5: 3eeeeb9e4827ace8c0c1419c85d590ad + depends: + - python >=3.7 + license: MIT + license_family: MIT + size: 188538 + timestamp: 1706886944988 +- kind: conda + name: pyyaml + version: 6.0.2 + build: py312h024a12e_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.2-py312h024a12e_1.conda + sha256: b06f1c15fb39695bbf707ae8fb554b9a77519af577b5556784534c7db10b52e3 + md5: 1ee23620cf46cb15900f70a1300bae55 + depends: + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 187143 + timestamp: 1725456547263 - kind: conda - name: libgomp - version: 14.1.0 - build: h77fa898_1 + name: pyyaml + version: 6.0.2 + build: py312h66e93f0_1 build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libgomp-14.1.0-h77fa898_1.conda - sha256: c96724c8ae4ee61af7674c5d9e5a3fbcf6cd887a40ad5a52c99aa36f1d4f9680 - md5: 23c255b008c4f2ae008f81edcabaca89 + url: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.2-py312h66e93f0_1.conda + sha256: a60705971e958724168f2ebbb8ed4853067f1d3f7059843df3903e3092bbcffa + md5: 549e5930e768548a89c23f595dac5a95 depends: - - _libgcc_mutex 0.1 conda_forge - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 460218 - timestamp: 1724801743478 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - yaml >=0.2.5,<0.3.0a0 + license: MIT + license_family: MIT + size: 206553 + timestamp: 1725456256213 - kind: conda - name: liblapack - version: 3.9.0 - build: 24_linux64_openblas - build_number: 24 + name: pyzmq + version: 26.2.0 + build: py312hbf22597_3 + build_number: 3 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-24_linux64_openblas.conda - sha256: a15da20c3c0fb5f356e5b4e2f1e87b0da11b9a46805a7f2609bf30f23453831a - md5: fd540578678aefe025705f4b58b36b2e + url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_3.conda + sha256: bc303f9b11e04a515f79cd5ad3bfa0e84b9dfec76552626d6263b38789fe6678 + md5: 746ce19f0829ec3e19c93007b1a224d3 depends: - - libblas 3.9.0 24_linux64_openblas - constrains: - - blas * openblas - - libcblas 3.9.0 24_linux64_openblas - - liblapacke 3.9.0 24_linux64_openblas + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libsodium >=1.0.20,<1.0.21.0a0 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - zeromq >=4.3.5,<4.4.0a0 license: BSD-3-Clause license_family: BSD - size: 14911 - timestamp: 1726668467187 + size: 378126 + timestamp: 1728642454632 - kind: conda - name: liblapack - version: 3.9.0 - build: 24_osxarm64_openblas - build_number: 24 + name: pyzmq + version: 26.2.0 + build: py312hf8a1cbd_3 + build_number: 3 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-24_osxarm64_openblas.conda - sha256: 67fbfd0466eee443cda9596ed22daabedc96b7b4d1b31f49b1c1b0983dd1dd2c - md5: 49a3241f76cdbe705e346204a328f66c + url: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py312hf8a1cbd_3.conda + sha256: 2e0ca1bb9ab3af5d1f9b38548d65be7097ba0246e7e63c908c9b1323df3f45b5 + md5: 7bdaa4c2a84b744ef26c8b2ba65c3d0e depends: - - libblas 3.9.0 24_osxarm64_openblas - constrains: - - blas * openblas - - liblapacke 3.9.0 24_osxarm64_openblas - - libcblas 3.9.0 24_osxarm64_openblas + - __osx >=11.0 + - libcxx >=17 + - libsodium >=1.0.20,<1.0.21.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - zeromq >=4.3.5,<4.4.0a0 license: BSD-3-Clause license_family: BSD - size: 15063 - timestamp: 1726668815824 -- kind: conda - name: libnsl - version: 2.0.1 - build: hd590300_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 - md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 - depends: - - libgcc-ng >=12 - license: LGPL-2.1-only - license_family: GPL - size: 33408 - timestamp: 1697359010159 + size: 361674 + timestamp: 1728642457661 - kind: conda - name: libopenblas - version: 0.3.27 - build: openmp_h517c56d_1 - build_number: 1 + name: re2 + version: 2024.07.02 + build: h6589ca4_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.27-openmp_h517c56d_1.conda - sha256: 46cfcc592b5255262f567cd098be3c61da6bca6c24d640e878dc8342b0f6d069 - md5: 71b8a34d70aa567a990162f327e81505 + url: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2024.07.02-h6589ca4_2.conda + sha256: 4d3799c05f8f662922a0acd129d119774760a3281b883603678e128d1cb307fb + md5: 7a8b4ad8c58a3408ca89d78788c78178 depends: - - __osx >=11.0 - - libgfortran 5.* - - libgfortran5 >=12.3.0 - - llvm-openmp >=16.0.6 - constrains: - - openblas >=0.3.27,<0.3.28.0a0 + - libre2-11 2024.07.02 h07bc746_2 license: BSD-3-Clause license_family: BSD - size: 2925328 - timestamp: 1720425811743 + size: 26861 + timestamp: 1735541088455 - kind: conda - name: libopenblas - version: 0.3.27 - build: pthreads_hac2b453_1 - build_number: 1 + name: re2 + version: 2024.07.02 + build: h9925aae_2 + build_number: 2 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.27-pthreads_hac2b453_1.conda - sha256: 714cb82d7c4620ea2635a92d3df263ab841676c9b183d0c01992767bb2451c39 - md5: ae05ece66d3924ac3d48b4aa3fa96cec + url: https://conda.anaconda.org/conda-forge/linux-64/re2-2024.07.02-h9925aae_2.conda + sha256: d213c44958d49ce7e0d4d5b81afec23640cce5016685dbb2d23571a99caa4474 + md5: e84ddf12bde691e8ec894b00ea829ddf depends: - - libgcc-ng >=12 - - libgfortran-ng - - libgfortran5 >=12.3.0 - constrains: - - openblas >=0.3.27,<0.3.28.0a0 + - libre2-11 2024.07.02 hbbce691_2 license: BSD-3-Clause license_family: BSD - size: 5563053 - timestamp: 1720426334043 + size: 26786 + timestamp: 1735541074034 - kind: conda - name: libsodium - version: 1.0.20 - build: h4ab18f5_0 + name: readline + version: '8.2' + build: h8228510_1 + build_number: 1 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda - sha256: 0105bd108f19ea8e6a78d2d994a6d4a8db16d19a41212070d2d1d48a63c34161 - md5: a587892d3c13b6621a6091be690dbca2 + url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda + sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 + md5: 47d31b792659ce70f470b5c82fdfb7a4 depends: - libgcc-ng >=12 - license: ISC - size: 205978 - timestamp: 1716828628198 + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 281456 + timestamp: 1679532220005 - kind: conda - name: libsodium - version: 1.0.20 - build: h99b78c6_0 + name: readline + version: '8.2' + build: h92ec313_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_0.conda - sha256: fade8223e1e1004367d7101dd17261003b60aa576df6d7802191f8972f7470b1 - md5: a7ce36e284c5faaf93c220dfc39e3abd + url: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda + sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 + md5: 8cbb776a2f641b943d413b3e19df71f4 depends: - - __osx >=11.0 - license: ISC - size: 164972 - timestamp: 1716828607917 + - ncurses >=6.3,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 250351 + timestamp: 1679532511311 - kind: conda - name: libsqlite - version: 3.46.1 - build: hadc24fc_0 + name: regex + version: 2024.11.6 + build: py312h66e93f0_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.46.1-hadc24fc_0.conda - sha256: 9851c049abafed3ee329d6c7c2033407e2fc269d33a75c071110ab52300002b0 - md5: 36f79405ab16bf271edb55b213836dac + url: https://conda.anaconda.org/conda-forge/linux-64/regex-2024.11.6-py312h66e93f0_0.conda + sha256: fcb5687d3ec5fff580b64b8fb649d9d65c999a91a5c3108a313ecdd2de99f06b + md5: 647770db979b43f9c9ca25dcfa7dc4e4 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - libzlib >=1.3.1,<2.0a0 - license: Unlicense - size: 865214 - timestamp: 1725353659783 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: Python-2.0 + license_family: PSF + size: 402821 + timestamp: 1730952378415 - kind: conda - name: libsqlite - version: 3.46.1 - build: hc14010f_0 + name: regex + version: 2024.11.6 + build: py312hea69d52_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.46.1-hc14010f_0.conda - sha256: 3725f962f490c5d44dae326d5f5b2e3c97f71a6322d914ccc85b5ddc2e50d120 - md5: 58050ec1724e58668d0126a1615553fa + url: https://conda.anaconda.org/conda-forge/osx-arm64/regex-2024.11.6-py312hea69d52_0.conda + sha256: dcdec32f2c7dd37986baa692bedf9db126ad34e92e5e9b64f707cba3d04d2525 + md5: e73cda1f18846b608284bd784f061eac depends: - __osx >=11.0 - - libzlib >=1.3.1,<2.0a0 - license: Unlicense - size: 829500 - timestamp: 1725353720793 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: Python-2.0 + license_family: PSF + size: 366374 + timestamp: 1730952427552 - kind: conda - name: libstdcxx - version: 14.1.0 - build: hc0a3c3a_1 + name: requests + version: 2.32.3 + build: pyhd8ed1ab_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-14.1.0-hc0a3c3a_1.conda - sha256: 44decb3d23abacf1c6dd59f3c152a7101b7ca565b4ef8872804ceaedcc53a9cd - md5: 9dbb9699ea467983ba8a4ba89b08b066 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + sha256: d701ca1136197aa121bbbe0e8c18db6b5c94acbd041c2b43c70e5ae104e1d8ad + md5: a9b9368f3701a417eac9edbcae7cb737 depends: - - libgcc 14.1.0 h77fa898_1 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 3892781 - timestamp: 1724801863728 + - certifi >=2017.4.17 + - charset-normalizer >=2,<4 + - idna >=2.5,<4 + - python >=3.9 + - urllib3 >=1.21.1,<3 + constrains: + - chardet >=3.0.2,<6 + license: Apache-2.0 + license_family: APACHE + size: 58723 + timestamp: 1733217126197 - kind: conda - name: libstdcxx-ng - version: 14.1.0 - build: h4852527_1 + name: rich + version: 13.9.4 + build: pyhd8ed1ab_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-14.1.0-h4852527_1.conda - sha256: a2dc44f97290740cc187bfe94ce543e6eb3c2ea8964d99f189a1d8c97b419b8c - md5: bd2598399a70bb86d8218e95548d735e + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/rich-13.9.4-pyhd8ed1ab_1.conda + sha256: 06a760c5ae572e72e865d5a87e9fe3cc171e1a9c996e63daf3db52ff1a0b4457 + md5: 7aed65d4ff222bfb7335997aa40b7da5 depends: - - libstdcxx 14.1.0 hc0a3c3a_1 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 52219 - timestamp: 1724801897766 + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.9 + - typing_extensions >=4.0.0,<5.0.0 + license: MIT + license_family: MIT + size: 185646 + timestamp: 1733342347277 - kind: conda - name: libuuid - version: 2.38.1 - build: h0b41bf4_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 - md5: 40b61aab5c7ba9ff276c41cfffe6b80b + name: rich-toolkit + version: 0.11.3 + build: pyh29332c3_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/rich-toolkit-0.11.3-pyh29332c3_0.conda + sha256: e558f8c254a9ff9164d069110da162fc79497d70c60f2c09a5d3d0d7101c5628 + md5: 4ba15ae9388b67d09782798347481f69 depends: - - libgcc-ng >=12 - license: BSD-3-Clause - license_family: BSD - size: 33601 - timestamp: 1680112270483 + - python >=3.9 + - rich >=13.7.1 + - click >=8.1.7 + - typing_extensions >=4.12.2 + - python + license: MIT + license_family: MIT + size: 17357 + timestamp: 1733750834072 - kind: conda - name: libxcrypt - version: 4.4.36 - build: hd590300_1 - build_number: 1 + name: s2n + version: 1.5.10 + build: hb5b8611_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c - md5: 5aa797f8787fe7a17d1b0821485b5adc + url: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.10-hb5b8611_0.conda + sha256: f6d451821fddc26b93f45e9313e1ea15e09e5ef049d4e137413a5225d2a5dfba + md5: 999f3673f2a011f59287f2969e3749e4 depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later - size: 100393 - timestamp: 1702724383534 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - openssl >=3.4.0,<4.0a0 + license: Apache-2.0 + license_family: Apache + size: 355142 + timestamp: 1734415467047 - kind: conda - name: libzlib - version: 1.3.1 - build: h4ab18f5_1 - build_number: 1 + name: safetensors + version: 0.5.2 + build: py312h12e396e_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-h4ab18f5_1.conda - sha256: adf6096f98b537a11ae3729eaa642b0811478f0ea0402ca67b5108fe2cb0010d - md5: 57d7dc60e9325e3de37ff8dffd18e814 + url: https://conda.anaconda.org/conda-forge/linux-64/safetensors-0.5.2-py312h12e396e_0.conda + sha256: 98b8dfa5eec083e0b3ace00906a7f7e748b1e2446dca17e87473f43278fcc036 + md5: 999ca9d87d2bb8b4c01e62c755b928cf depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 constrains: - - zlib 1.3.1 *_1 - license: Zlib - license_family: Other - size: 61574 - timestamp: 1716874187109 + - __glibc >=2.17 + license: Apache-2.0 + license_family: APACHE + size: 424409 + timestamp: 1736383159339 - kind: conda - name: libzlib - version: 1.3.1 - build: hfb2fe0b_1 - build_number: 1 + name: safetensors + version: 0.5.2 + build: py312hcd83bfe_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-hfb2fe0b_1.conda - sha256: c34365dd37b0eab27b9693af32a1f7f284955517c2cc91f1b88a7ef4738ff03e - md5: 636077128927cf79fd933276dc3aed47 + url: https://conda.anaconda.org/conda-forge/osx-arm64/safetensors-0.5.2-py312hcd83bfe_0.conda + sha256: 0aeb3e654095ca0261d560d1fc05912d0e94d547a7dc435d7f4cedeba966d176 + md5: fc0383682805e293eba9b8afc9ad0931 depends: - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 constrains: - - zlib 1.3.1 *_1 - license: Zlib - license_family: Other - size: 46921 - timestamp: 1716874262512 -- kind: conda - name: lightbug_http - version: 0.1.4 - build: h60d57d3_0 - subdir: osx-arm64 - url: https://repo.prefix.dev/mojo-community/osx-arm64/lightbug_http-0.1.4-h60d57d3_0.conda - sha256: 9943f6c3ad4ce7910f5cf44db6e55df887508cb3dce68ddc1657c3f72f6999f6 - depends: - - max >=24.5.0 - - gojo ==0.1.9 - - small_time ==0.1.3 - arch: arm64 - platform: osx - license: MIT - size: 670587 - timestamp: 1726916362873 -- kind: conda - name: lightbug_http - version: 0.1.4 - build: hb0f4dca_0 - subdir: linux-64 - url: https://repo.prefix.dev/mojo-community/linux-64/lightbug_http-0.1.4-hb0f4dca_0.conda - sha256: 33912d4048d4def942e16237ab58fdcf456e80e82b1e262a9bd82e865ecf556a - depends: - - max >=24.5.0 - - gojo ==0.1.9 - - small_time ==0.1.3 - arch: x86_64 - platform: linux - license: MIT - size: 670536 - timestamp: 1726916366021 -- kind: conda - name: llvm-openmp - version: 18.1.8 - build: hde57baf_1 - build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-18.1.8-hde57baf_1.conda - sha256: 7a76e2932ac77e6314bfa1c4ff83f617c8260313bfed1b8401b508ed3e9d70ba - md5: fe89757e3cd14bb1c6ebd68dac591363 - depends: - __osx >=11.0 - constrains: - - openmp 18.1.8|18.1.8.* - license: Apache-2.0 WITH LLVM-exception + license: Apache-2.0 license_family: APACHE - size: 276263 - timestamp: 1723605341828 + size: 378060 + timestamp: 1736383410115 - kind: conda - name: max - version: 24.5.0 - build: release + name: shellingham + version: 1.5.4 + build: pyhd8ed1ab_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.modular.com/max/noarch/max-24.5.0-release.conda - sha256: 3050d7885a304944afbf93ca9786e56e6df20f0685e1705f88fab045fb5aae70 - md5: 662a61803cd141e857d3b9f821c7bd66 + url: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + sha256: 0557c090913aa63cdbe821dbdfa038a321b488e22bc80196c4b3b1aace4914ef + md5: 7c3c2a0f3ebdea2bbc35538d162b43bf depends: - - max-core ==24.5.0 release - - max-python >=24.5.0,<25.0a0 - - mojo-jupyter ==24.5.0 release - - mblack ==24.5.0 release - size: 9642 - timestamp: 1726172475909 + - python >=3.9 + license: MIT + license_family: MIT + size: 14462 + timestamp: 1733301007770 - kind: conda - name: max-core - version: 24.5.0 - build: release - subdir: linux-64 - url: https://conda.modular.com/max/linux-64/max-core-24.5.0-release.conda - sha256: 4cd4ab217863a500e9df8112d5e4c335192baa4f527aaaacb925b7818dd2bbe1 - md5: a9b3f9d69310032f687789c475c029f5 + name: six + version: 1.17.0 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + sha256: 41db0180680cc67c3fa76544ffd48d6a5679d96f4b71d7498a759e94edc9a2db + md5: a451d576819089b0d672f18768be0f65 depends: - - mblack ==24.5.0 release - arch: x86_64 - platform: linux - size: 284994357 - timestamp: 1726172475907 + - python >=3.9 + license: MIT + license_family: MIT + size: 16385 + timestamp: 1733381032766 - kind: conda - name: max-core - version: 24.5.0 - build: release + name: small_time + version: 0.1.6 + build: h60d57d3_0 subdir: osx-arm64 - url: https://conda.modular.com/max/osx-arm64/max-core-24.5.0-release.conda - sha256: 8848071dde1f98a4da8e39c90f9210098e7c3c4aaddd0e2255fd9fe1f01df0b7 - md5: fba502bf5142da57735a593ccf35a255 + url: https://repo.prefix.dev/mojo-community/osx-arm64/small_time-0.1.6-h60d57d3_0.conda + sha256: 3efa3d48b5e8cbe1b884eddf3026e462fc54a2d10961ccf86b0ea9e516269ec0 depends: - - mblack ==24.5.0 release + - max >=24.6.0 arch: arm64 platform: osx - size: 244231803 - timestamp: 1726175523753 + license: MIT + size: 551193 + timestamp: 1735234503286 - kind: conda - name: max-python - version: 24.5.0 - build: 3.12release + name: small_time + version: 0.1.6 + build: hb0f4dca_0 subdir: linux-64 - url: https://conda.modular.com/max/linux-64/max-python-24.5.0-3.12release.conda - sha256: b5b0f36bb4c91bdff229fc680d7d2e4dd183e9dc90808869408e5883d95199ba - md5: e8dbea1cf138f97c022103a4b41c77bd + url: https://repo.prefix.dev/mojo-community/linux-64/small_time-0.1.6-hb0f4dca_0.conda + sha256: d6e122704866696c3a2704f85a587a7aee6fa368558974c73a674dad7767d403 depends: - - max-core ==24.5.0 release - - python 3.12.* - - numpy >=1.18,<2.0 - - python_abi 3.12.* *_cp312 + - max >=24.6.0 arch: x86_64 platform: linux - size: 138310039 - timestamp: 1726172475912 + license: MIT + size: 551217 + timestamp: 1735234498469 - kind: conda - name: max-python - version: 24.5.0 - build: 3.12release + name: snappy + version: 1.2.1 + build: h8bd8927_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.1-h8bd8927_1.conda + sha256: ec91e86eeb2c6bbf09d51351b851e945185d70661d2ada67204c9a6419d282d3 + md5: 3b3e64af585eadfb52bb90b553db5edf + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + license: BSD-3-Clause + license_family: BSD + size: 42739 + timestamp: 1733501881851 +- kind: conda + name: snappy + version: 1.2.1 + build: h98b9ce2_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.modular.com/max/osx-arm64/max-python-24.5.0-3.12release.conda - sha256: e6cdd0477236d49d4f6586d4a66ffe1c5e5cb188535a8ec09ed742eda12cbf5f - md5: f33d8f4cc5c17d893fdb5d6e162c08c6 + url: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.1-h98b9ce2_1.conda + sha256: 4242f95b215127a006eb664fe26ed5a82df87e90cbdbc7ce7ff4971f0720997f + md5: ded86dee325290da2967a3fea3800eb5 depends: - - max-core ==24.5.0 release - - python 3.12.* - - numpy >=1.18,<2.0 - - python_abi 3.12.* *_cp312 - arch: arm64 - platform: osx - size: 125388933 - timestamp: 1726175523755 + - __osx >=11.0 + - libcxx >=18 + license: BSD-3-Clause + license_family: BSD + size: 35857 + timestamp: 1733502172664 - kind: conda - name: mblack - version: 24.5.0 - build: release + name: sniffio + version: 1.3.1 + build: pyhd8ed1ab_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.modular.com/max/noarch/mblack-24.5.0-release.conda - sha256: 913881fc3aa19db447ed82e898f261a413be9129dc43b9ea600e06030f76dbd5 - md5: 2bc6ce9f257235686dc1b2509cc7198d + url: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda + sha256: c2248418c310bdd1719b186796ae50a8a77ce555228b6acd32768e2543a15012 + md5: bf7a226e58dfb8346c70df36065d86c9 depends: - - python >=3.9,<3.13 - - click >=8.0.0 - - mypy_extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - python - license: MIT - size: 130435 - timestamp: 1726172475910 + - python >=3.9 + license: Apache-2.0 + license_family: Apache + size: 15019 + timestamp: 1733244175724 - kind: conda - name: mojo-jupyter - version: 24.5.0 - build: release + name: sse-starlette + version: 2.2.1 + build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.modular.com/max/noarch/mojo-jupyter-24.5.0-release.conda - sha256: dff2e857eae32ce92fde12a712756d647f0aa312aeb5d79b350b2acbc71a2f96 - md5: 3b7be5cbff5b8015b095e950506be4b3 + url: https://conda.anaconda.org/conda-forge/noarch/sse-starlette-2.2.1-pyhd8ed1ab_0.conda + sha256: 3c6a476e7afb702d841e23c61a0c4cc491929d2e39376d329e67e94c40a236cc + md5: c1ef6bc13dd2caa4b406fb3cb06c2791 depends: - - max-core ==24.5.0 release - - python >=3.9,<3.13 - - jupyter_client >=8.6.2,<8.7 - - python - size: 21595 - timestamp: 1726172475911 + - anyio >=4.7.0 + - python >=3.9 + - starlette >=0.41.3 + license: BSD-3-Clause + license_family: BSD + size: 15324 + timestamp: 1735126414893 - kind: conda - name: mypy_extensions - version: 1.0.0 - build: pyha770c72_0 + name: starlette + version: 0.41.3 + build: pyha770c72_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.0.0-pyha770c72_0.conda - sha256: f240217476e148e825420c6bc3a0c0efb08c0718b7042fae960400c02af858a3 - md5: 4eccaeba205f0aed9ac3a9ea58568ca3 + url: https://conda.anaconda.org/conda-forge/noarch/starlette-0.41.3-pyha770c72_1.conda + sha256: b74fc76107487eb26624c01fc55bfab7eed03ae82e003333c86d8a1eeac53672 + md5: 0207dac04ae2200701fab697f0aaaac4 depends: - - python >=3.5 - license: MIT - license_family: MIT - size: 10492 - timestamp: 1675543414256 + - anyio >=3.4.0,<5 + - python >=3.9 + - typing_extensions >=3.10.0 + license: BSD-3-Clause + license_family: BSD + size: 58838 + timestamp: 1733344472634 - kind: conda - name: ncurses - version: '6.5' - build: h7bae524_1 + name: tk + version: 8.6.13 + build: h5083fa2_1 build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h7bae524_1.conda - sha256: 27d0b9ff78ad46e1f3a6c96c479ab44beda5f96def88e2fe626e0a49429d8afc - md5: cb2b0ea909b97b3d70cd3921d1445e1a + url: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda + sha256: 72457ad031b4c048e5891f3f6cb27a53cb479db68a52d965f796910e71a403a8 + md5: b50a57ba89c32b62428b71a875291c9b depends: - - __osx >=11.0 - license: X11 AND BSD-3-Clause - size: 802321 - timestamp: 1724658775723 + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + size: 3145523 + timestamp: 1699202432999 - kind: conda - name: ncurses - version: '6.5' - build: he02047a_1 - build_number: 1 + name: tk + version: 8.6.13 + build: noxft_h4845f30_101 + build_number: 101 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-he02047a_1.conda - sha256: 6a1d5d8634c1a07913f1c525db6455918cbc589d745fac46d9d6e30340c8731a - md5: 70caf8bb6cf39a0b6b7efc885f51c0fe + url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + md5: d453b98d9c83e71da0741bb0ff4d76bc depends: - - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 - license: X11 AND BSD-3-Clause - size: 889086 - timestamp: 1724658547447 + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + size: 3318875 + timestamp: 1699202167581 - kind: conda - name: numpy - version: 1.26.4 - build: py312h8442bc7_0 + name: tokenizers + version: 0.21.0 + build: py312h8360d73_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/tokenizers-0.21.0-py312h8360d73_0.conda + sha256: 4f504a5e9d77c6d88a8f735c4319429d8bf40b742384f908a2efe0a09acc3cc5 + md5: f953aa733207f3d37acf4a3efbedba89 + depends: + - __glibc >=2.17,<3.0.a0 + - huggingface_hub >=0.16.4,<1.0 + - libgcc >=13 + - libstdcxx >=13 + - openssl >=3.4.0,<4.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - __glibc >=2.17 + license: Apache-2.0 + license_family: APACHE + size: 2258007 + timestamp: 1732734202127 +- kind: conda + name: tokenizers + version: 0.21.0 + build: py312hf3e4074_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-1.26.4-py312h8442bc7_0.conda - sha256: c8841d6d6f61fd70ca80682efbab6bdb8606dc77c68d8acabfbd7c222054f518 - md5: d83fc83d589e2625a3451c9a7e21047c + url: https://conda.anaconda.org/conda-forge/osx-arm64/tokenizers-0.21.0-py312hf3e4074_0.conda + sha256: 5d395333fcb22dc611140286c1f2ea8b3fa220a4931c583587cb612238091555 + md5: 4c732c74b485ef7ac8ec1c548dd45e8e depends: - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libcxx >=16 - - liblapack >=3.9.0,<4.0a0 + - __osx >=11.0 + - huggingface_hub >=0.16.4,<1.0 + - libcxx >=18 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - size: 6073136 - timestamp: 1707226249608 + - __osx >=11.0 + license: Apache-2.0 + license_family: APACHE + size: 1931389 + timestamp: 1732734727624 - kind: conda - name: numpy - version: 1.26.4 - build: py312heda63a1_0 + name: tornado + version: 6.4.2 + build: py312h66e93f0_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/numpy-1.26.4-py312heda63a1_0.conda - sha256: fe3459c75cf84dcef6ef14efcc4adb0ade66038ddd27cadb894f34f4797687d8 - md5: d8285bea2a350f63fab23bf460221f3f + url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.2-py312h66e93f0_0.conda + sha256: 062a3a3a37fa8615ce57929ba7e982c76f5a5810bcebd435950f6d6c4147c310 + md5: e417822cb989e80a0d2b1b576fdd1657 depends: - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libgcc-ng >=12 - - liblapack >=3.9.0,<4.0a0 - - libstdcxx-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - size: 7484186 - timestamp: 1707225809722 + license: Apache-2.0 + license_family: Apache + size: 840414 + timestamp: 1732616043734 - kind: conda - name: openssl - version: 3.3.2 - build: h8359307_0 + name: tornado + version: 6.4.2 + build: py312hea69d52_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.3.2-h8359307_0.conda - sha256: 940fa01c4dc6152158fe8943e05e55a1544cab639df0994e3b35937839e4f4d1 - md5: 1773ebccdc13ec603356e8ff1db9e958 + url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.2-py312hea69d52_0.conda + sha256: 964a2705a36c50040c967b18b45b9cc8de3c2aff4af546979a574e0b38e58e39 + md5: fb0605888a475d6a380ae1d1a819d976 depends: - __osx >=11.0 - - ca-certificates + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: Apache - size: 2882450 - timestamp: 1725410638874 + size: 842549 + timestamp: 1732616081362 - kind: conda - name: openssl - version: 3.3.2 - build: hb9d3cd8_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.3.2-hb9d3cd8_0.conda - sha256: cee91036686419f6dd6086902acf7142b4916e1c4ba042e9ca23e151da012b6d - md5: 4d638782050ab6faa27275bed57e9b4e + name: tqdm + version: 4.67.1 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + sha256: 11e2c85468ae9902d24a27137b6b39b4a78099806e551d390e394a8c34b48e40 + md5: 9efbfdc37242619130ea42b1cc4ed861 depends: - - __glibc >=2.17,<3.0.a0 - - ca-certificates - - libgcc >=13 + - colorama + - python >=3.9 + license: MPL-2.0 or MIT + size: 89498 + timestamp: 1735661472632 +- kind: conda + name: traitlets + version: 5.14.3 + build: pyhd8ed1ab_1 + build_number: 1 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.conda + sha256: f39a5620c6e8e9e98357507262a7869de2ae8cc07da8b7f84e517c9fd6c2b959 + md5: 019a7385be9af33791c989871317e1ed + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + size: 110051 + timestamp: 1733367480074 +- kind: conda + name: transformers + version: 4.47.1 + build: pyhd8ed1ab_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/transformers-4.47.1-pyhd8ed1ab_0.conda + sha256: df8238c3cccbb6bb1d5657e6a75977ac0b832ab61155d5e3d8560c1c4f52abeb + md5: 931d66db156680c42c62812d6533cbf7 + depends: + - datasets !=2.5.0 + - filelock + - huggingface_hub >=0.23.0,<1.0 + - numpy >=1.17 + - packaging >=20.0 + - python >=3.9 + - pyyaml >=5.1 + - regex !=2019.12.17 + - requests + - safetensors >=0.4.1 + - tokenizers >=0.21,<0.22 + - tqdm >=4.27 license: Apache-2.0 - license_family: Apache - size: 2891789 - timestamp: 1725410790053 + license_family: APACHE + size: 3680276 + timestamp: 1734499046193 - kind: conda - name: packaging - version: '24.1' + name: transformers + version: 4.48.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/packaging-24.1-pyhd8ed1ab_0.conda - sha256: 36aca948219e2c9fdd6d80728bcc657519e02f06c2703d8db3446aec67f51d81 - md5: cbe1bb1f21567018ce595d9c2be0f0db + url: https://conda.anaconda.org/conda-forge/noarch/transformers-4.48.0-pyhd8ed1ab_0.conda + sha256: c8dd6d69e4ef67c7d507dec2be4b6964f6ddbe1ce35a822ddf4089505d702f33 + md5: 2c57d4af7b8952484962b40a59cf1537 depends: - - python >=3.8 + - datasets !=2.5.0 + - filelock + - huggingface_hub >=0.23.0,<1.0 + - numpy >=1.17 + - packaging >=20.0 + - python >=3.9 + - pyyaml >=5.1 + - regex !=2019.12.17 + - requests + - safetensors >=0.4.1 + - tokenizers >=0.21,<0.22 + - tqdm >=4.27 license: Apache-2.0 license_family: APACHE - size: 50290 - timestamp: 1718189540074 + size: 3408277 + timestamp: 1736534112195 - kind: conda - name: pathspec - version: 0.12.1 + name: typer + version: 0.15.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_0.conda - sha256: 4e534e66bfe8b1e035d2169d0e5b185450546b17e36764272863e22e0370be4d - md5: 17064acba08d3686f1135b5ec1b32b12 + url: https://conda.anaconda.org/conda-forge/noarch/typer-0.15.1-pyhd8ed1ab_0.conda + sha256: ef695490e895c2ad552c77ec497b899b09fd4ad4ab07edcf5649f5994cf92a35 + md5: 170a0398946d8f5b454e592672b6fc20 depends: - - python >=3.7 - license: MPL-2.0 - license_family: MOZILLA - size: 41173 - timestamp: 1702250135032 + - python >=3.9 + - typer-slim-standard 0.15.1 hd8ed1ab_0 + license: MIT + license_family: MIT + size: 56175 + timestamp: 1733408582623 - kind: conda - name: platformdirs - version: 4.3.6 + name: typer-slim + version: 0.15.1 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.6-pyhd8ed1ab_0.conda - sha256: c81bdeadc4adcda216b2c7b373f0335f5c78cc480d1d55d10f21823590d7e46f - md5: fd8f2b18b65bbf62e8f653100690c8d2 + url: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.15.1-pyhd8ed1ab_0.conda + sha256: d4965516f35e0805199de6596c4ac76c4ad3d6b012be35e532102f9e53ecb860 + md5: 0218b16f5a1dd569e575a7a6415489db depends: - - python >=3.8 + - click >=8.0.0 + - python >=3.9 + - typing_extensions >=3.7.4.3 + constrains: + - rich >=10.11.0 + - typer >=0.15.1,<0.15.2.0a0 + - shellingham >=1.3.0 license: MIT license_family: MIT - size: 20625 - timestamp: 1726613611845 + size: 43592 + timestamp: 1733408569554 - kind: conda - name: python - version: 3.12.6 - build: h739c21a_1_cpython + name: typer-slim-standard + version: 0.15.1 + build: hd8ed1ab_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.15.1-hd8ed1ab_0.conda + sha256: f31c56fe98315da8b9ce848256c17e0b9f87896b41a6ccf0c9cc74644dcef20f + md5: 4e603c43bfdfc7b533be087c3e070cc9 + depends: + - rich + - shellingham + - typer-slim 0.15.1 pyhd8ed1ab_0 + license: MIT + license_family: MIT + size: 49531 + timestamp: 1733408570063 +- kind: conda + name: typing-extensions + version: 4.12.2 + build: hd8ed1ab_1 build_number: 1 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.6-h739c21a_1_cpython.conda - sha256: 99e0b806062b2a4be3016d9a6d253d85e25b5f9ee6bebe442dec6fd6759288f3 - md5: 5beefd0212cdea661f999f0ec29a2e3a + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.12.2-hd8ed1ab_1.conda + sha256: c8e9c1c467b5f960b627d7adc1c65fece8e929a3de89967e91ef0f726422fd32 + md5: b6a408c64b78ec7b779a3e5c7a902433 depends: - - __osx >=11.0 - - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.3,<3.0a0 - - libffi >=3.4,<4.0a0 - - libsqlite >=3.46.1,<4.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.3.2,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.12.* *_cp312 - license: Python-2.0 - size: 12852860 - timestamp: 1727014294263 + - typing_extensions 4.12.2 pyha770c72_1 + license: PSF-2.0 + license_family: PSF + size: 10075 + timestamp: 1733188758872 - kind: conda - name: python - version: 3.12.6 - build: hc5c86c4_1_cpython + name: typing_extensions + version: 4.12.2 + build: pyha770c72_1 build_number: 1 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.6-hc5c86c4_1_cpython.conda - sha256: abae02ac635147181e6b7d4b3c8fde89d298d354ed23576853b86bc1384c50f6 - md5: 00836baacdca254f28c54d2543e97514 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.12.2-pyha770c72_1.conda + sha256: 337be7af5af8b2817f115b3b68870208b30c31d3439bec07bfb2d8f4823e3568 + md5: d17f13df8b65464ca316cbc000a3cb64 depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.6.3,<3.0a0 - - libffi >=3.4,<4.0a0 - - libgcc >=13 - - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.46.1,<4.0a0 - - libuuid >=2.38.1,<3.0a0 - - libxcrypt >=4.4.36 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.3.2,<4.0a0 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.12.* *_cp312 - license: Python-2.0 - size: 31530161 - timestamp: 1727016402403 + - python >=3.9 + license: PSF-2.0 + license_family: PSF + size: 39637 + timestamp: 1733188758212 - kind: conda - name: python-dateutil - version: 2.9.0 + name: tzdata + version: 2024b + build: hc8b5060_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024b-hc8b5060_0.conda + sha256: 4fde5c3008bf5d2db82f2b50204464314cc3c91c1d953652f7bd01d9e52aefdf + md5: 8ac3367aafb1cc0a068483c580af8015 + license: LicenseRef-Public-Domain + size: 122354 + timestamp: 1728047496079 +- kind: conda + name: urllib3 + version: 2.3.0 build: pyhd8ed1ab_0 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0-pyhd8ed1ab_0.conda - sha256: f3ceef02ac164a8d3a080d0d32f8e2ebe10dd29e3a685d240e38b3599e146320 - md5: 2cf4264fffb9e6eff6031c5b6884d61c + url: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.3.0-pyhd8ed1ab_0.conda + sha256: 114919ffa80c328127dab9c8e7a38f9d563c617691fb81fccb11c1e86763727e + md5: 32674f8dbfb7b26410ed580dd3c10a29 depends: - - python >=3.7 - - six >=1.5 - license: Apache-2.0 - license_family: APACHE - size: 222742 - timestamp: 1709299922152 + - brotli-python >=1.0.9 + - h2 >=4,<5 + - pysocks >=1.5.6,<2.0,!=1.5.7 + - python >=3.9 + - zstandard >=0.18.0 + license: MIT + license_family: MIT + size: 100102 + timestamp: 1734859520452 - kind: conda - name: python_abi - version: '3.12' - build: 5_cp312 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.12-5_cp312.conda - sha256: d10e93d759931ffb6372b45d65ff34d95c6000c61a07e298d162a3bc2accebb0 - md5: 0424ae29b104430108f5218a66db7260 - constrains: - - python 3.12.* *_cpython + name: uvicorn + version: 0.34.0 + build: pyh31011fe_0 + subdir: noarch + noarch: python + url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-0.34.0-pyh31011fe_0.conda + sha256: 55c160b0cf9274e2b98bc0f7fcce548bffa8d788bc86aa02801877457040f6fa + md5: 5d448feee86e4740498ec8f8eb40e052 + depends: + - __unix + - click >=7.0 + - h11 >=0.8 + - python >=3.9 + - typing_extensions >=4.0 + license: BSD-3-Clause + license_family: BSD + size: 48643 + timestamp: 1734293057914 +- kind: conda + name: uvicorn-standard + version: 0.34.0 + build: h31011fe_0 + subdir: noarch + noarch: generic + url: https://conda.anaconda.org/conda-forge/noarch/uvicorn-standard-0.34.0-h31011fe_0.conda + sha256: 87e1531e175e75122f9f37608eb953af4c977465ab0ae11283cc01fef954e4ec + md5: 32a94143a7f65d76d2d5da37dcb4ed79 + depends: + - __unix + - httptools >=0.6.3 + - python-dotenv >=0.13 + - pyyaml >=5.1 + - uvicorn 0.34.0 pyh31011fe_0 + - uvloop >=0.14.0,!=0.15.0,!=0.15.1 + - watchfiles >=0.13 + - websockets >=10.4 license: BSD-3-Clause license_family: BSD - size: 6238 - timestamp: 1723823388266 + size: 7203 + timestamp: 1734293058849 - kind: conda - name: python_abi - version: '3.12' - build: 5_cp312 - build_number: 5 + name: uvloop + version: 0.21.0 + build: py312h0bf5046_1 + build_number: 1 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/python_abi-3.12-5_cp312.conda - sha256: 49d624e4b809c799d2bf257b22c23cf3fc4460f5570d9a58e7ad86350aeaa1f4 - md5: b76f9b1c862128e56ac7aa8cd2333de9 + url: https://conda.anaconda.org/conda-forge/osx-arm64/uvloop-0.21.0-py312h0bf5046_1.conda + sha256: b1efa77aa4871d7bb09c8dd297fa9bd9070ba7f0f95f2d12ae9cdd31ce8b6b22 + md5: 4f5110253ba80ebf27e55c4ab333880a + depends: + - __osx >=11.0 + - libuv >=1.49.2,<2.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: MIT OR Apache-2.0 + size: 544097 + timestamp: 1730214653726 +- kind: conda + name: uvloop + version: 0.21.0 + build: py312h66e93f0_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/uvloop-0.21.0-py312h66e93f0_1.conda + sha256: 9337a80165fcf70b06b9d6ba920dad702260ca966419ae77560a15540e41ab72 + md5: 998e481e17c1b6a74572e73b06f2df08 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libuv >=1.49.2,<2.0a0 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT OR Apache-2.0 + size: 701355 + timestamp: 1730214506716 +- kind: conda + name: watchfiles + version: 1.0.3 + build: py312hcd83bfe_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/watchfiles-1.0.3-py312hcd83bfe_0.conda + sha256: b64b78a7d6384bf72a878256802c783c692fe641ab4b806fd7e9f45e18a5e3b4 + md5: 13b89e1aa72aa773806b1f59ec018b67 + depends: + - __osx >=11.0 + - anyio >=3.0.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 constrains: - - python 3.12.* *_cpython - license: BSD-3-Clause - license_family: BSD - size: 6278 - timestamp: 1723823099686 + - __osx >=11.0 + license: MIT + license_family: MIT + size: 363162 + timestamp: 1733999215646 - kind: conda - name: pyzmq - version: 26.2.0 - build: py312hbf22597_2 - build_number: 2 + name: watchfiles + version: 1.0.4 + build: py312h12e396e_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.2.0-py312hbf22597_2.conda - sha256: a2431644cdef4111f7120565090114f52897e687e83c991bd76a3baef8de77c4 - md5: 44f46ddfdd01d242d2fff2d69a0d7cba + url: https://conda.anaconda.org/conda-forge/linux-64/watchfiles-1.0.4-py312h12e396e_0.conda + sha256: b728f525dcae2c10524f9942255346eba62aee9c820ff269d7dd4f7caffb7ffb + md5: df87129c4cb7afc4a3cbad71a1b9e223 + depends: + - __glibc >=2.17,<3.0.a0 + - anyio >=3.0.0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - __glibc >=2.17 + license: MIT + size: 410192 + timestamp: 1736550568524 +- kind: conda + name: websockets + version: '14.1' + build: py312h66e93f0_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/websockets-14.1-py312h66e93f0_0.conda + sha256: 5998940f91765ba991cf286c863c20bcb53db92bb976a2b5a714566b86b0e763 + md5: a79f7ce618bd0a9f4c00c59a03570fcd depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - libsodium >=1.0.20,<1.0.21.0a0 - - libstdcxx >=13 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - zeromq >=4.3.5,<4.4.0a0 license: BSD-3-Clause license_family: BSD - size: 378667 - timestamp: 1725449078945 + size: 242145 + timestamp: 1731498716195 - kind: conda - name: pyzmq - version: 26.2.0 - build: py312hc6335d2_2 - build_number: 2 + name: websockets + version: '14.1' + build: py312hea69d52_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.2.0-py312hc6335d2_2.conda - sha256: 8d46c0f1af50989f308b9da68e6123bc3560f3a3a741b4e7cb8867c603b5a9f1 - md5: ca61d76f24d66c2938af62e882c9a02d + url: https://conda.anaconda.org/conda-forge/osx-arm64/websockets-14.1-py312hea69d52_0.conda + sha256: 98fb04a1a0f53dc604378f94b5795d0b8e462fee01bf0a887cb34d0efdf5d21f + md5: 89b79a9baa7db46ce21f5738a5a3dfda depends: - __osx >=11.0 - - libcxx >=17 - - libsodium >=1.0.20,<1.0.21.0a0 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 - - zeromq >=4.3.5,<4.4.0a0 license: BSD-3-Clause license_family: BSD - size: 359594 - timestamp: 1725449428595 + size: 243131 + timestamp: 1731498944076 - kind: conda - name: readline - version: '8.2' - build: h8228510_1 - build_number: 1 + name: wrapt + version: 1.17.0 + build: py312h66e93f0_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8228510_1.conda - sha256: 5435cf39d039387fbdc977b0a762357ea909a7694d9528ab40f005e9208744d7 - md5: 47d31b792659ce70f470b5c82fdfb7a4 + url: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.17.0-py312h66e93f0_0.conda + sha256: a6fc0f4e90643d0c1fd4aab669b6a79f44a305a5474256f6f2da3354d2310fb4 + md5: ddbe3bb0e1356cb9074dd848570694f9 depends: - - libgcc-ng >=12 - - ncurses >=6.3,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 281456 - timestamp: 1679532220005 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-2-Clause + license_family: BSD + size: 63807 + timestamp: 1732523690292 - kind: conda - name: readline - version: '8.2' - build: h92ec313_1 - build_number: 1 + name: wrapt + version: 1.17.0 + build: py312hea69d52_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h92ec313_1.conda - sha256: a1dfa679ac3f6007362386576a704ad2d0d7a02e98f5d0b115f207a2da63e884 - md5: 8cbb776a2f641b943d413b3e19df71f4 + url: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-1.17.0-py312hea69d52_0.conda + sha256: 0fb35c3d1642f9f47db87bdb33148f88ef19a3af1eb0ee99b5491551c57269c7 + md5: 73414acdb779a8694a14527865b4357a depends: - - ncurses >=6.3,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 250351 - timestamp: 1679532511311 + - __osx >=11.0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: BSD-2-Clause + license_family: BSD + size: 61043 + timestamp: 1732523852129 - kind: conda - name: six - version: 1.16.0 - build: pyh6c4a22f_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/six-1.16.0-pyh6c4a22f_0.tar.bz2 - sha256: a85c38227b446f42c5b90d9b642f2c0567880c15d72492d8da074a59c8f91dd6 - md5: e5f25f8dbc060e9a8d912e432202afc2 + name: xorg-libxau + version: 1.0.12 + build: h5505292_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.12-h5505292_0.conda + sha256: f33e6f013fc36ebc200f09ddead83468544cb5c353a3b50499b07b8c34e28a8d + md5: 50901e0764b7701d8ed7343496f4f301 depends: - - python + - __osx >=11.0 license: MIT license_family: MIT - size: 14259 - timestamp: 1620240338595 + size: 13593 + timestamp: 1734229104321 - kind: conda - name: small_time - version: 0.1.3 - build: h60d57d3_0 - subdir: osx-arm64 - url: https://repo.prefix.dev/mojo-community/osx-arm64/small_time-0.1.3-h60d57d3_0.conda - sha256: 8f08a189fa15d96e6dc8b0cc49aecaefe9caf5a8209ca3ab5d2da91b7e13a3ba + name: xorg-libxau + version: 1.0.12 + build: hb9d3cd8_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda + sha256: ed10c9283974d311855ae08a16dfd7e56241fac632aec3b92e3cfe73cff31038 + md5: f6ebe2cb3f82ba6c057dde5d9debe4f7 depends: - - max >=24.5.0,<25 - arch: arm64 - platform: osx + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT - size: 404869 - timestamp: 1726265944269 + license_family: MIT + size: 14780 + timestamp: 1734229004433 - kind: conda - name: small_time - version: 0.1.3 - build: hb0f4dca_0 + name: xorg-libxdmcp + version: 1.1.5 + build: hb9d3cd8_0 subdir: linux-64 - url: https://repo.prefix.dev/mojo-community/linux-64/small_time-0.1.3-hb0f4dca_0.conda - sha256: 6af5090414abb697ab570f48362ed2910b7188ee6df75ba4d7682d448428675f + url: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda + sha256: 6b250f3e59db07c2514057944a3ea2044d6a8cdde8a47b6497c254520fade1ee + md5: 8035c64cb77ed555e3f150b7b3972480 depends: - - max >=24.5.0,<25 - arch: x86_64 - platform: linux + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 license: MIT - size: 404857 - timestamp: 1726266228925 + license_family: MIT + size: 19901 + timestamp: 1727794976192 - kind: conda - name: tk - version: 8.6.13 - build: h5083fa2_1 - build_number: 1 + name: xorg-libxdmcp + version: 1.1.5 + build: hd74edd7_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h5083fa2_1.conda - sha256: 72457ad031b4c048e5891f3f6cb27a53cb479db68a52d965f796910e71a403a8 - md5: b50a57ba89c32b62428b71a875291c9b + url: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxdmcp-1.1.5-hd74edd7_0.conda + sha256: 9939a166d780700d81023546759102b33fdc2c5f11ef09f5f66c77210fd334c8 + md5: 77c447f48cab5d3a15ac224edb86a968 depends: - - libzlib >=1.2.13,<2.0.0a0 - license: TCL + - __osx >=11.0 + license: MIT + license_family: MIT + size: 18487 + timestamp: 1727795205022 +- kind: conda + name: xxhash + version: 0.8.2 + build: hb547adb_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/xxhash-0.8.2-hb547adb_0.conda + sha256: a70f59f7221ee72c45b39a6b36a33eb9c717ba01921cce1a3c361a4676979a2e + md5: 144cd3b88706507f332f5eb5fb83a33b + license: BSD-2-Clause license_family: BSD - size: 3145523 - timestamp: 1699202432999 + size: 97593 + timestamp: 1689951969732 - kind: conda - name: tk - version: 8.6.13 - build: noxft_h4845f30_101 - build_number: 101 + name: xxhash + version: 0.8.2 + build: hd590300_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e - md5: d453b98d9c83e71da0741bb0ff4d76bc + url: https://conda.anaconda.org/conda-forge/linux-64/xxhash-0.8.2-hd590300_0.conda + sha256: 6fe74a8fd84ab0dc25e4dc3e0c22388dd8accb212897a208b14fe5d4fbb8fc2f + md5: f08fb5c89edfc4aadee1c81d4cfb1fa1 depends: - libgcc-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 - license: TCL + license: BSD-2-Clause license_family: BSD - size: 3318875 - timestamp: 1699202167581 + size: 97691 + timestamp: 1689951608120 - kind: conda - name: tornado - version: 6.4.1 - build: py312h024a12e_1 - build_number: 1 + name: yaml + version: 0.2.5 + build: h3422bc3_2 + build_number: 2 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.4.1-py312h024a12e_1.conda - sha256: 5eefede1d8a2f55892bc582dbcb574b1806f19bc1e3939ce56b79721b9406db7 - md5: 967bc97bb9e258993289546479af971f + url: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h3422bc3_2.tar.bz2 + sha256: 93181a04ba8cfecfdfb162fc958436d868cc37db504c58078eab4c1a3e57fbb7 + md5: 4bb3f014845110883a3c5ee811fd84b4 + license: MIT + license_family: MIT + size: 88016 + timestamp: 1641347076660 +- kind: conda + name: yaml + version: 0.2.5 + build: h7f98852_2 + build_number: 2 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h7f98852_2.tar.bz2 + sha256: a4e34c710eeb26945bdbdaba82d3d74f60a78f54a874ec10d373811a5d217535 + md5: 4cb3ad778ec2d5a7acbdf254eb1c42ae depends: - - __osx >=11.0 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - license: Apache-2.0 - license_family: Apache - size: 841722 - timestamp: 1724956439106 + - libgcc-ng >=9.4.0 + license: MIT + license_family: MIT + size: 89141 + timestamp: 1641346969816 - kind: conda - name: tornado - version: 6.4.1 - build: py312h66e93f0_1 - build_number: 1 + name: yarl + version: 1.18.3 + build: py312h66e93f0_0 subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.4.1-py312h66e93f0_1.conda - sha256: c0c9cc7834e8f43702956afaa5af7b0639c4835c285108a43e6b91687ce53ab8 - md5: af648b62462794649066366af4ecd5b0 + url: https://conda.anaconda.org/conda-forge/linux-64/yarl-1.18.3-py312h66e93f0_0.conda + sha256: a0d93c3bef723e384cff8a29a82a2c6b7a73b39328088f3a2d97c901f56e9a63 + md5: 91df2efaa08730416bec2a4502309275 depends: - __glibc >=2.17,<3.0.a0 + - idna >=2.0 - libgcc >=13 + - multidict >=4.0 + - propcache >=0.2.1 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 license: Apache-2.0 license_family: Apache - size: 837665 - timestamp: 1724956252424 -- kind: conda - name: traitlets - version: 5.14.3 - build: pyhd8ed1ab_0 - subdir: noarch - noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_0.conda - sha256: 8a64fa0f19022828513667c2c7176cfd125001f3f4b9bc00d33732e627dd2592 - md5: 3df84416a021220d8b5700c613af2dc5 - depends: - - python >=3.8 - license: BSD-3-Clause - license_family: BSD - size: 110187 - timestamp: 1713535244513 -- kind: conda - name: tzdata - version: 2024a - build: h8827d51_1 - build_number: 1 - subdir: noarch - noarch: generic - url: https://conda.anaconda.org/conda-forge/noarch/tzdata-2024a-h8827d51_1.conda - sha256: 7d21c95f61319dba9209ca17d1935e6128af4235a67ee4e57a00908a1450081e - md5: 8bfdead4e0fff0383ae4c9c50d0531bd - license: LicenseRef-Public-Domain - size: 124164 - timestamp: 1724736371498 -- kind: conda - name: xz - version: 5.2.6 - build: h166bdaf_0 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.6-h166bdaf_0.tar.bz2 - sha256: 03a6d28ded42af8a347345f82f3eebdd6807a08526d47899a42d62d319609162 - md5: 2161070d867d1b1204ea749c8eec4ef0 - depends: - - libgcc-ng >=12 - license: LGPL-2.1 and GPL-2.0 - size: 418368 - timestamp: 1660346797927 + size: 151393 + timestamp: 1733428897813 - kind: conda - name: xz - version: 5.2.6 - build: h57fd34a_0 + name: yarl + version: 1.18.3 + build: py312hea69d52_0 subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.2.6-h57fd34a_0.tar.bz2 - sha256: 59d78af0c3e071021cfe82dc40134c19dab8cdf804324b62940f5c8cd71803ec - md5: 39c6b54e94014701dd157f4f576ed211 - license: LGPL-2.1 and GPL-2.0 - size: 235693 - timestamp: 1660346961024 + url: https://conda.anaconda.org/conda-forge/osx-arm64/yarl-1.18.3-py312hea69d52_0.conda + sha256: 69c7863809e11bc90c0d935c16e7f151dcc925add08b3894f06059263a8cb9ba + md5: f32f9b16361866a62d6e061fcd7eb400 + depends: + - __osx >=11.0 + - idna >=2.0 + - multidict >=4.0 + - propcache >=0.2.1 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + license: Apache-2.0 + license_family: Apache + size: 141556 + timestamp: 1733429104990 - kind: conda name: zeromq version: 4.3.5 - build: h64debc3_5 - build_number: 5 - subdir: osx-arm64 - url: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h64debc3_5.conda - sha256: b4ba544a04129472651a5df3b8906ed68e7f43bf23e724fd0e368218083c920c - md5: c29dbe9343a0b55b027fa645644c59d9 + build: h3b0a872_7 + build_number: 7 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_7.conda + sha256: a4dc72c96848f764bb5a5176aa93dd1e9b9e52804137b99daeebba277b31ea10 + md5: 3947a35e916fcc6b9825449affbf4214 depends: - - __osx >=11.0 + - __glibc >=2.17,<3.0.a0 - krb5 >=1.21.3,<1.22.0a0 - - libcxx >=17 + - libgcc >=13 - libsodium >=1.0.20,<1.0.21.0a0 + - libstdcxx >=13 license: MPL-2.0 license_family: MOZILLA - size: 296355 - timestamp: 1725430145243 + size: 335400 + timestamp: 1731585026517 - kind: conda name: zeromq version: 4.3.5 - build: ha4adb4c_5 - build_number: 5 - subdir: linux-64 - url: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-ha4adb4c_5.conda - sha256: dd48adc07fcd029c86fbf82e68d0e4818c7744b768e08139379920b56b582814 - md5: e8372041ebb377237db9d0d24c7b5962 + build: hc1bb282_7 + build_number: 7 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hc1bb282_7.conda + sha256: 9e585569fe2e7d3bea71972cd4b9f06b1a7ab8fa7c5139f92a31cbceecf25a8a + md5: f7e6b65943cb73bce0143737fded08f1 depends: - - __glibc >=2.17,<3.0.a0 + - __osx >=11.0 - krb5 >=1.21.3,<1.22.0a0 - - libgcc >=13 + - libcxx >=18 - libsodium >=1.0.20,<1.0.21.0a0 - - libstdcxx >=13 license: MPL-2.0 license_family: MOZILLA - size: 353159 - timestamp: 1725429777124 + size: 281565 + timestamp: 1731585108039 - kind: conda name: zipp - version: 3.20.2 - build: pyhd8ed1ab_0 + version: 3.21.0 + build: pyhd8ed1ab_1 + build_number: 1 subdir: noarch noarch: python - url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.20.2-pyhd8ed1ab_0.conda - sha256: 1e84fcfa41e0afdd87ff41e6fbb719c96a0e098c1f79be342293ab0bd8dea322 - md5: 4daaed111c05672ae669f7036ee5bba3 + url: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + sha256: 567c04f124525c97a096b65769834b7acb047db24b15a56888a322bf3966c3e1 + md5: 0c3cc595284c5e8f0f9900a9b228a332 depends: - - python >=3.8 + - python >=3.9 license: MIT license_family: MIT - size: 21409 - timestamp: 1726248679175 + size: 21809 + timestamp: 1732827613585 +- kind: conda + name: zstandard + version: 0.23.0 + build: py312h15fbf35_1 + build_number: 1 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.23.0-py312h15fbf35_1.conda + sha256: d00ca25c1e28fd31199b26a94f8c96574475704a825d244d7a6351ad3745eeeb + md5: a4cde595509a7ad9c13b1a3809bcfe51 + depends: + - __osx >=11.0 + - cffi >=1.11 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + size: 330788 + timestamp: 1725305806565 +- kind: conda + name: zstandard + version: 0.23.0 + build: py312hef9b889_1 + build_number: 1 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312hef9b889_1.conda + sha256: b97015e146437283f2213ff0e95abdc8e2480150634d81fbae6b96ee09f5e50b + md5: 8b7069e9792ee4e5b4919a7a306d2e67 + depends: + - __glibc >=2.17,<3.0.a0 + - cffi >=1.11 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - zstd >=1.5.6,<1.5.7.0a0 + - zstd >=1.5.6,<1.6.0a0 + license: BSD-3-Clause + license_family: BSD + size: 419552 + timestamp: 1725305670210 +- kind: conda + name: zstd + version: 1.5.6 + build: ha6fb4c9_0 + subdir: linux-64 + url: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.6-ha6fb4c9_0.conda + sha256: c558b9cc01d9c1444031bd1ce4b9cff86f9085765f17627a6cd85fc623c8a02b + md5: 4d056880988120e29d75bfff282e0f45 + depends: + - libgcc-ng >=12 + - libstdcxx-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + size: 554846 + timestamp: 1714722996770 +- kind: conda + name: zstd + version: 1.5.6 + build: hb46c0d2_0 + subdir: osx-arm64 + url: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.6-hb46c0d2_0.conda + sha256: 2d4fd1ff7ee79cd954ca8e81abf11d9d49954dd1fef80f27289e2402ae9c2e09 + md5: d96942c06c3e84bfcc5efb038724a7fd + depends: + - __osx >=11.0 + - libzlib >=1.2.13,<2.0.0a0 + license: BSD-3-Clause + license_family: BSD + size: 405089 + timestamp: 1714723101397 diff --git a/mojoproject.toml b/mojoproject.toml index 1c89314..960dc44 100644 --- a/mojoproject.toml +++ b/mojoproject.toml @@ -19,5 +19,5 @@ test = { cmd = "magic run mojo test -I . tests" } format = { cmd = "magic run mojo format -l 120 lightbug_api" } [dependencies] -max = ">=24.5.0,<25" -lightbug_http = "0.1.4" +max = ">=24.6.0,<25" +lightbug_http = "0.1.8" \ No newline at end of file diff --git a/tests/lightbug_api/test_generate.mojo b/tests/lightbug_api/test_generate.mojo new file mode 100644 index 0000000..253151b --- /dev/null +++ b/tests/lightbug_api/test_generate.mojo @@ -0,0 +1,194 @@ +from testing import * +from external.emberjson import JSON, Object, Array +from lightbug_api.openapi.generate import OpenAPIGenerator + +def test_create_endpoint(): + var generator = OpenAPIGenerator() + + var function_data = JSON.from_string(""" + { + "name": "test_function", + "overloads": [{ + "returnsDoc": "Test response", + "summary": "Test summary", + "description": "Test description. Tags: api test", + "args": [{ + "description": "Test request" + }] + }] + } + """) + + var endpoint = generator.create_endpoint(function_data, "post") + assert_equal(endpoint["summary"], "test_function endpoint") + assert_equal(endpoint["operationId"], "test_function") + assert_equal(endpoint["description"], "Test summary") + assert_true("requestBody" in endpoint) + assert_true("responses" in endpoint) + assert_true("200" in endpoint["responses"][Object]) + +def test_create_components_schema(): + var generator = OpenAPIGenerator() + var components = generator.create_components_schema() + + assert_true("schemas" in components) + assert_true("HTTPRequest" in components["schemas"][Object]) + assert_true("HTTPResponse" in components["schemas"][Object]) + + var http_request = components["schemas"][Object]["HTTPRequest"][Object] + assert_equal(http_request["type"], "object") + assert_true("properties" in http_request) + assert_true("body_raw" in http_request["properties"][Object]) + assert_true("uri" in http_request["properties"][Object]) + assert_true("method" in http_request["properties"][Object]) + +def test_create_paths(): + var generator = OpenAPIGenerator() + + var mojo_doc = JSON.from_string(""" + { + "decl": { + "functions": [{ + "name": "test_handler", + "overloads": [{ + "returnsDoc": "Test response", + "summary": "Test summary" + }] + }] + } + } + """) + + var router_metadata = JSON.from_string(""" + { + "routes": [{ + "handler": "test_handler", + "path": "/test", + "method": "POST" + }] + } + """) + + var paths = generator.create_paths(mojo_doc, router_metadata) + assert_true("/test" in paths) + assert_true("post" in paths["/test"][Object]) + assert_equal(paths["/test"][Object]["post"][Object]["summary"], "test_handler endpoint") + +def test_generate_spec(): + var generator = OpenAPIGenerator() + + var mojo_doc = JSON.from_string(""" + { + "version": "1.0.0", + "decl": { + "name": "Test API", + "functions": [] + } + } + """) + + var router_metadata = JSON.from_string(""" + { + "routes": [] + } + """) + + var spec = generator.generate_spec(mojo_doc, router_metadata) + assert_equal(spec["openapi"], "3.0.0") + assert_equal(spec["info"][Object]["title"], "Test API") + assert_equal(spec["info"][Object]["version"], "1.0.0") + assert_true("paths" in spec) + assert_true("components" in spec) + +def test_endpoint_tags(): + var generator = OpenAPIGenerator() + + # Test 1: Basic tags extraction + var function_data = JSON.from_string(""" + { + "name": "test_function", + "overloads": [{ + "returnsDoc": "Test response", + "summary": "Test summary", + "description": "Some description. Tags: api, test, auth", + "args": [{ + "description": "Test request" + }] + }] + } + """) + + var endpoint = generator.create_endpoint(function_data, "post") + + assert_true("tags" in endpoint) + var tag_array = endpoint["tags"][Array] + assert_equal(len(tag_array), 3) + assert_equal(tag_array[0].__str__(), '"api"') + assert_equal(tag_array[1].__str__(), '"test"') + assert_equal(tag_array[2].__str__(), '"auth"') + + # Test 2: Tags with control characters + var function_data_control_chars = JSON.from_string(''' + { + "name": "test_function", + "overloads": [{ + "returnsDoc": "Test response", + "summary": "Test summary", + "description": "Some description. Tags:\\n hello,\\twhat,\\r\\nup", + "args": [{ + "description": "Test request" + }] + }] + } + ''') + + var endpoint_control_chars = generator.create_endpoint(function_data_control_chars, "post") + + assert_true("tags" in endpoint_control_chars) + var tag_array_control_chars = endpoint_control_chars["tags"][Array] + assert_equal(len(tag_array_control_chars), 3) + assert_equal(tag_array_control_chars[0].__str__(), '"hello"') + assert_equal(tag_array_control_chars[1].__str__(), '"what"') + assert_equal(tag_array_control_chars[2].__str__(), '"up"') + + # Test 3: Tags with extra whitespace + var function_data_whitespace = JSON.from_string(""" + { + "name": "test_function", + "overloads": [{ + "returnsDoc": "Test response", + "summary": "Test summary", + "description": "Some description. Tags: api , test , auth ", + "args": [{ + "description": "Test request" + }] + }] + } + """) + + var endpoint_whitespace = generator.create_endpoint(function_data_whitespace, "post") + + assert_true("tags" in endpoint_whitespace) + var tag_array_whitespace = endpoint_whitespace["tags"][Array] + assert_equal(len(tag_array_whitespace), 3) + assert_equal(tag_array_whitespace[0].__str__(), '"api"') + assert_equal(tag_array_whitespace[1].__str__(), '"test"') + assert_equal(tag_array_whitespace[2].__str__(), '"auth"') + + # Test 4: No tags + var function_data_no_tags = JSON.from_string(""" + { + "name": "test_function", + "overloads": [{ + "returnsDoc": "Test response", + "summary": "Test summary", + "description": "Some description without tags", + "args": [{ + "description": "Test request" + }] + }] + } + """) + + var endpoint_no_tags = generator.create_endpoint(function_data_no_tags, "post") + assert_false("tags" in endpoint_no_tags) From 2b552753e4691968ecf072f469324a0d0cb0d600 Mon Sep 17 00:00:00 2001 From: Val Date: Sat, 11 Jan 2025 18:37:59 +0100 Subject: [PATCH 02/11] update readme --- .lightbug/mojodoc.json | 2 +- .lightbug/openapi_spec.json | 4 +-- README.md | 48 +++++++++++++++++++++++++-- "lightbug.\360\237\224\245" | 6 ++-- lightbug_api/app.mojo | 52 +++++++++++++++++++++--------- lightbug_api/openapi/generate.mojo | 12 ------- 6 files changed, 87 insertions(+), 37 deletions(-) diff --git a/.lightbug/mojodoc.json b/.lightbug/mojodoc.json index 4d0bb56..38fcfc6 100644 --- a/.lightbug/mojodoc.json +++ b/.lightbug/mojodoc.json @@ -54,7 +54,7 @@ "async": false, "constraints": "", "deprecated": "", - "description": "Tags:\n hello, what, up.", + "description": "Tags:\n hello.", "isDef": false, "isStatic": false, "kind": "function", diff --git a/.lightbug/openapi_spec.json b/.lightbug/openapi_spec.json index dddcfd5..d670599 100644 --- a/.lightbug/openapi_spec.json +++ b/.lightbug/openapi_spec.json @@ -42,9 +42,7 @@ "operationId": "hello", "description": "Simple hello world function.", "tags": [ - "\n hello", - "what", - "up" + "hello" ], "responses": { "200": { diff --git a/README.md b/README.md index 52fc6d2..215cf2e 100644 --- a/README.md +++ b/README.md @@ -95,14 +95,58 @@ Once you have a Mojo project set up locally, fn main() raises: var app = App() - app.get("/", hello) - app.post("/", printer) + app.get("/", hello, "hello") + app.post("/printer", printer, "printer") app.start_server() ``` 7. Excellent 😈. Your app is now listening on the selected port. You've got yourself a pure-Mojo API! 🔥 +## API Docs +Lightbug serves API docs for your app automatically at `/docs` by default. +To disable this, add the `docs_enabled=False` flag when creating a new app instance: `App(docs_enabled=False)`. +To describe your routes, add Mojo docstring annotations like below: + +```mojo + +@always_inline +fn printer(req: HTTPRequest) -> HTTPResponse: + """Prints the request body and returns it. + + Args: + req: Any arbitrary HTTP request with a body. + + Returns: + HTTPResponse: 200 OK with the request body. + """ + print("Got a request on ", req.uri.path, " with method ", req.method) + return OK(req.body_raw) + +@always_inline +fn hello(req: HTTPRequest) -> HTTPResponse: + """Simple hello world function. + + Args: + req: Any arbitrary HTTP request. + + Returns: + HTTPResponse: 200 OK with a Hello World message. + + Tags: + hello. + """ + return OK("Hello 🔥!", "text/plain; charset=utf-8") + +fn main() raises: + var app = App() + + app.get("/", hello, "hello") + app.post("/printer", printer, "printer") + + app.start_server() +``` + diff --git "a/lightbug.\360\237\224\245" "b/lightbug.\360\237\224\245" index 94732da..6272c6e 100644 --- "a/lightbug.\360\237\224\245" +++ "b/lightbug.\360\237\224\245" @@ -11,7 +11,6 @@ fn printer(req: HTTPRequest) -> HTTPResponse: Returns: HTTPResponse: 200 OK with the request body. """ - print("Got a request on ", req.uri.path, " with method ", req.method) return OK(req.body_raw) @@ -26,9 +25,9 @@ fn hello(req: HTTPRequest) -> HTTPResponse: HTTPResponse: 200 OK with a Hello World message. Tags: - hello, what, up. + hello. """ - return OK("Hello 🔥!") + return OK("Hello 🔥!", "text/plain; charset=utf-8") fn main() raises: var app = App() @@ -37,3 +36,4 @@ fn main() raises: app.post("/printer", printer, "printer") app.start_server() + diff --git a/lightbug_api/app.mojo b/lightbug_api/app.mojo index d929de4..4df574c 100644 --- a/lightbug_api/app.mojo +++ b/lightbug_api/app.mojo @@ -1,6 +1,7 @@ from os import mkdir from os.path import exists from pathlib import Path +from sys.ffi import external_call from lightbug_http import HTTPRequest, HTTPResponse, Server, NotFound from external.emberjson import JSON, Array, Object, Value, to_string from lightbug_api.openapi.generate import OpenAPIGenerator @@ -12,15 +13,26 @@ from lightbug_api.docs import DocsApp struct App: var router: Router var lightbug_dir: Path + var docs_enabled: Bool fn __init__(inout self) raises: self.router = Router() self.lightbug_dir = Path() + self.docs_enabled = True + + fn __init__(inout self, docs_enabled: Bool) raises: + self.router = Router() + self.lightbug_dir = Path() + self.docs_enabled = docs_enabled fn set_lightbug_dir(mut self, lightbug_dir: Path): self.lightbug_dir = lightbug_dir fn func(mut self, req: HTTPRequest) raises -> HTTPResponse: + if self.docs_enabled and req.uri.path == "/docs" and req.method == "GET": + var openapi_spec = self.generate_openapi_spec() + var docs = DocsApp(to_string(openapi_spec)) + return docs.func(req) for route_ptr in self.router.routes: var route = route_ptr[] if route.path == req.uri.path and route.method == req.method: @@ -62,24 +74,32 @@ struct App: with open((lightbug_dir / "routes.json"), "w") as f: f.write(to_string[pretty=True](routes_obj)) + + var mojodoc_status = external_call["system", UInt8]("magic run mojo doc ./lightbug.🔥 -o " + lightbug_dir.__str__() + "/mojodoc.json") + if mojodoc_status != 0: + logger.error("Failed to generate mojodoc.json") + return - fn start_server(mut self, address: StringLiteral = "0.0.0.0:8080") raises: - logger.info("Starting server at " + String(address)) - self.update_temporary_files() - + fn generate_openapi_spec(self) raises -> JSON: var generator = OpenAPIGenerator() - - var mojo_doc_json: JSON - var router_metadata_json: JSON - print(self.lightbug_dir) - mojo_doc_json = generator.read_mojo_doc((self.lightbug_dir / "mojodoc.json").__str__()) - router_metadata_json = generator.read_router_metadata((self.lightbug_dir / "routes.json").__str__()) + var mojo_doc_json = generator.read_mojo_doc( + (self.lightbug_dir / "mojodoc.json").__str__() + ) + var router_metadata_json = generator.read_router_metadata( + (self.lightbug_dir / "routes.json").__str__() + ) var openapi_spec = generator.generate_spec(mojo_doc_json, router_metadata_json) - - generator.save_spec(openapi_spec, (self.lightbug_dir / "openapi_spec.json").__str__()) - # var server = Server() - # server.listen_and_serve(address, self) - var docs = DocsApp(to_string(openapi_spec)) - docs.start_docs_server(address) + generator.save_spec( + openapi_spec, + (self.lightbug_dir / "openapi_spec.json").__str__() + ) + return openapi_spec + + fn start_server(mut self, address: StringLiteral = "0.0.0.0:8080") raises: + if self.docs_enabled: + logger.info("API Docs ready at: " + "http://" + String(address) + "/docs") + self.update_temporary_files() + var server = Server() + server.listen_and_serve(address, self) diff --git a/lightbug_api/openapi/generate.mojo b/lightbug_api/openapi/generate.mojo index 3d74cb6..c02b042 100644 --- a/lightbug_api/openapi/generate.mojo +++ b/lightbug_api/openapi/generate.mojo @@ -1,6 +1,5 @@ from collections.dict import Dict from external.emberjson import JSON, Value, Array, Object, ParseOptions, parse, to_string -from lightbug_api.logger import logger struct OpenAPIGenerator: var tags: List[Value] @@ -15,7 +14,6 @@ struct OpenAPIGenerator: self.tags = tags fn create_paths(mut self, mojo_doc: JSON, router_metadata: JSON) raises -> JSON: - logger.info("Adding paths") var paths = JSON() var route_map = Dict[String, Tuple[String, String]]() var routes = router_metadata["routes"][Array]._data @@ -25,7 +23,6 @@ struct OpenAPIGenerator: var path = route["path"][String].strip('"') var method = String(route["method"][String].strip('"')).lower() route_map[handler] = (String(path), method) - logger.info("Added to route map: " + method + " " + path + " -> " + handler) for func in mojo_doc["decl"][Object]["functions"][Array]._data: var func_name = func[][Object]["name"].__str__().strip('"') @@ -40,7 +37,6 @@ struct OpenAPIGenerator: var endpoint = self.create_endpoint(func[].object(), http_method) if paths.__contains__(path): - logger.info("Path already exists: " + path + ", adding method: " + http_method) var new_path_item = JSON() var existing_path_item = paths[path][Object] @@ -52,7 +48,6 @@ struct OpenAPIGenerator: paths[path] = new_path_item.object() else: - logger.info("Creating new path: " + path + ", adding method: " + http_method) var path_item = JSON() path_item[http_method] = endpoint.object() paths[path] = path_item.object() @@ -60,7 +55,6 @@ struct OpenAPIGenerator: return paths fn create_endpoint(mut self, function_data: JSON, http_method: String) raises -> JSON: - logger.info("Creating endpoint for " + String(function_data["name"].__str__().strip('"'))) var endpoint = JSON() var func_name = function_data["name"] endpoint["summary"] = String(func_name.__str__().strip('"')) + " endpoint" @@ -133,7 +127,6 @@ struct OpenAPIGenerator: return endpoint fn create_components_schema(self) raises -> JSON: - logger.info("Adding components schema") var components = JSON() var schemas = JSON() @@ -179,7 +172,6 @@ struct OpenAPIGenerator: return components fn generate_spec(mut self, mojo_doc: JSON, router_metadata: JSON) raises -> JSON: - logger.info("Generating OpenAPI specification") var spec = JSON() spec["openapi"] = "3.0.0" @@ -196,18 +188,14 @@ struct OpenAPIGenerator: return spec fn read_mojo_doc(self, filename: String) raises -> JSON: - logger.info("Reading the output of the mojo doc command") with open(filename, "r") as mojo_doc: return parse[ParseOptions(fast_float_parsing=True)](mojo_doc.read()) fn read_router_metadata(self, filename: String) raises -> JSON: - logger.info("Reading Lightbug API router metadata") with open(filename, "r") as router_metadata: return parse[ParseOptions(fast_float_parsing=True)](router_metadata.read()) fn save_spec(self, spec: JSON, filename: String) raises: - logger.info("Saving generated OpenAPI specification to " + filename) with open(filename, "w") as f: f.write(to_string[pretty=True](spec)) - logger.info("OpenAPI specification has been generated and saved") \ No newline at end of file From 50bff77abb759549d24388a8f26849016a009b8f Mon Sep 17 00:00:00 2001 From: Val Date: Sat, 11 Jan 2025 18:38:30 +0100 Subject: [PATCH 03/11] remove .lightbug --- .gitignore | 3 +- .lightbug/mojodoc.json | 104 ------------------------------------ .lightbug/openapi_spec.json | 93 -------------------------------- .lightbug/routes.json | 14 ----- 4 files changed, 2 insertions(+), 212 deletions(-) delete mode 100644 .lightbug/mojodoc.json delete mode 100644 .lightbug/openapi_spec.json delete mode 100644 .lightbug/routes.json diff --git a/.gitignore b/.gitignore index c79b45d..8a9aed1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,5 @@ # magic environments .magic -external \ No newline at end of file +external +.lightbug \ No newline at end of file diff --git a/.lightbug/mojodoc.json b/.lightbug/mojodoc.json deleted file mode 100644 index 38fcfc6..0000000 --- a/.lightbug/mojodoc.json +++ /dev/null @@ -1,104 +0,0 @@ -{ - "decl": { - "aliases": [], - "description": "", - "functions": [ - { - "kind": "function", - "name": "printer", - "overloads": [ - { - "args": [ - { - "convention": "read", - "description": "Any arbitrary HTTP request with a body.", - "kind": "argument", - "name": "req", - "passingKind": "pos_or_kw", - "type": "HTTPRequest" - } - ], - "async": false, - "constraints": "", - "deprecated": "", - "description": "", - "isDef": false, - "isStatic": false, - "kind": "function", - "name": "printer", - "parameters": [], - "raises": false, - "raisesDoc": "", - "returnType": "HTTPResponse", - "returnsDoc": "HTTPResponse: 200 OK with the request body.", - "signature": "printer(req: HTTPRequest) -> HTTPResponse", - "summary": "Prints the request body and returns it." - } - ] - }, - { - "kind": "function", - "name": "hello", - "overloads": [ - { - "args": [ - { - "convention": "read", - "description": "Any arbitrary HTTP request.", - "kind": "argument", - "name": "req", - "passingKind": "pos_or_kw", - "type": "HTTPRequest" - } - ], - "async": false, - "constraints": "", - "deprecated": "", - "description": "Tags:\n hello.", - "isDef": false, - "isStatic": false, - "kind": "function", - "name": "hello", - "parameters": [], - "raises": false, - "raisesDoc": "", - "returnType": "HTTPResponse", - "returnsDoc": "HTTPResponse: 200 OK with a Hello World message.", - "signature": "hello(req: HTTPRequest) -> HTTPResponse", - "summary": "Simple hello world function." - } - ] - }, - { - "kind": "function", - "name": "main", - "overloads": [ - { - "args": [], - "async": false, - "constraints": "", - "deprecated": "", - "description": "", - "isDef": false, - "isStatic": false, - "kind": "function", - "name": "main", - "parameters": [], - "raises": true, - "raisesDoc": "", - "returnType": null, - "returnsDoc": "", - "signature": "main()", - "summary": "" - } - ] - } - ], - "kind": "module", - "name": "lightbug", - "structs": [], - "summary": "", - "traits": [] - }, - "version": "24.6.0" -} \ No newline at end of file diff --git a/.lightbug/openapi_spec.json b/.lightbug/openapi_spec.json deleted file mode 100644 index d670599..0000000 --- a/.lightbug/openapi_spec.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "openapi": "3.0.0", - "info": { - "title": "lightbug", - "version": "24.6.0", - "description": "API generated from Mojo documentation" - }, - "paths": { - "/printer": { - "post": { - "summary": "printer endpoint", - "operationId": "printer", - "description": "Prints the request body and returns it.", - "responses": { - "200": { - "description": "HTTPResponse: 200 OK with the request body.", - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - } - }, - "requestBody": { - "required": true, - "description": "Any arbitrary HTTP request with a body.", - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - } - } - }, - "/": { - "get": { - "summary": "hello endpoint", - "operationId": "hello", - "description": "Simple hello world function.", - "tags": [ - "hello" - ], - "responses": { - "200": { - "description": "HTTPResponse: 200 OK with a Hello World message.", - "content": { - "text/plain": { - "schema": { - "type": "string" - } - } - } - } - } - } - } - }, - "components": { - "schemas": { - "HTTPRequest": { - "type": "object", - "properties": { - "body_raw": { - "type": "string" - }, - "uri": { - "type": "object", - "properties": { - "path": { - "type": "string" - } - } - }, - "method": { - "type": "string" - } - } - }, - "HTTPResponse": { - "type": "object", - "properties": { - "body": { - "type": "string" - } - } - } - } - } -} \ No newline at end of file diff --git a/.lightbug/routes.json b/.lightbug/routes.json deleted file mode 100644 index 9dc2a4e..0000000 --- a/.lightbug/routes.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "routes": [ - { - "path": "/", - "method": "GET", - "handler": "hello" - }, - { - "path": "/printer", - "method": "POST", - "handler": "printer" - } - ] -} \ No newline at end of file From ae39ebc9be7c9b0debcd5cabd1a1459f73b6eea7 Mon Sep 17 00:00:00 2001 From: Val Date: Thu, 16 Jan 2025 16:01:21 +0100 Subject: [PATCH 04/11] move strings --- lightbug_api/routing.mojo | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lightbug_api/routing.mojo b/lightbug_api/routing.mojo index 7645cbe..48c2f12 100644 --- a/lightbug_api/routing.mojo +++ b/lightbug_api/routing.mojo @@ -26,10 +26,10 @@ struct APIRoute(CollectionElement): self.operation_id = existing.operation_id fn __moveinit__(out self: APIRoute, owned existing: APIRoute): - self.path = existing.path - self.method = existing.method + self.path = existing.path^ + self.method = existing.method^ self.handler = existing.handler - self.operation_id = existing.operation_id + self.operation_id = existing.operation_id^ @value From 88951473efbbde5034f9a710be6c68027f2cde78 Mon Sep 17 00:00:00 2001 From: Val Date: Thu, 16 Jan 2025 16:02:22 +0100 Subject: [PATCH 05/11] fix emberjson dependency --- .gitignore | 1 - mojoproject.toml | 3 ++- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 8a9aed1..ae4940f 100644 --- a/.gitignore +++ b/.gitignore @@ -12,5 +12,4 @@ # magic environments .magic -external .lightbug \ No newline at end of file diff --git a/mojoproject.toml b/mojoproject.toml index 960dc44..17b3649 100644 --- a/mojoproject.toml +++ b/mojoproject.toml @@ -20,4 +20,5 @@ format = { cmd = "magic run mojo format -l 120 lightbug_api" } [dependencies] max = ">=24.6.0,<25" -lightbug_http = "0.1.8" \ No newline at end of file +lightbug_http = "==0.1.8" +emberjson = "==0.1.1" \ No newline at end of file From 7833d7a12a9cd78c53b317176ff23d4820b92921 Mon Sep 17 00:00:00 2001 From: Val Date: Thu, 16 Jan 2025 16:07:32 +0100 Subject: [PATCH 06/11] make docs enabled optional param --- "lightbug.\360\237\224\245" | 2 +- lightbug_api/app.mojo | 15 ++++---------- lightbug_api/openapi/generate.mojo | 2 +- magic.lock | 30 +++++++++++++++++++++++++++ tests/lightbug_api/test_generate.mojo | 2 +- 5 files changed, 37 insertions(+), 14 deletions(-) diff --git "a/lightbug.\360\237\224\245" "b/lightbug.\360\237\224\245" index 6272c6e..b19d2f9 100644 --- "a/lightbug.\360\237\224\245" +++ "b/lightbug.\360\237\224\245" @@ -30,7 +30,7 @@ fn hello(req: HTTPRequest) -> HTTPResponse: return OK("Hello 🔥!", "text/plain; charset=utf-8") fn main() raises: - var app = App() + var app = App[docs_enabled=True]() app.get("/", hello, "hello") app.post("/printer", printer, "printer") diff --git a/lightbug_api/app.mojo b/lightbug_api/app.mojo index 4df574c..88d7177 100644 --- a/lightbug_api/app.mojo +++ b/lightbug_api/app.mojo @@ -3,33 +3,26 @@ from os.path import exists from pathlib import Path from sys.ffi import external_call from lightbug_http import HTTPRequest, HTTPResponse, Server, NotFound -from external.emberjson import JSON, Array, Object, Value, to_string +from emberjson import JSON, Array, Object, Value, to_string from lightbug_api.openapi.generate import OpenAPIGenerator from lightbug_api.routing import Router from lightbug_api.logger import logger from lightbug_api.docs import DocsApp @value -struct App: +struct App[docs_enabled: Bool = False]: var router: Router var lightbug_dir: Path - var docs_enabled: Bool fn __init__(inout self) raises: self.router = Router() self.lightbug_dir = Path() - self.docs_enabled = True - - fn __init__(inout self, docs_enabled: Bool) raises: - self.router = Router() - self.lightbug_dir = Path() - self.docs_enabled = docs_enabled fn set_lightbug_dir(mut self, lightbug_dir: Path): self.lightbug_dir = lightbug_dir fn func(mut self, req: HTTPRequest) raises -> HTTPResponse: - if self.docs_enabled and req.uri.path == "/docs" and req.method == "GET": + if docs_enabled and req.uri.path == "/docs" and req.method == "GET": var openapi_spec = self.generate_openapi_spec() var docs = DocsApp(to_string(openapi_spec)) return docs.func(req) @@ -98,7 +91,7 @@ struct App: return openapi_spec fn start_server(mut self, address: StringLiteral = "0.0.0.0:8080") raises: - if self.docs_enabled: + if docs_enabled: logger.info("API Docs ready at: " + "http://" + String(address) + "/docs") self.update_temporary_files() var server = Server() diff --git a/lightbug_api/openapi/generate.mojo b/lightbug_api/openapi/generate.mojo index c02b042..31480fa 100644 --- a/lightbug_api/openapi/generate.mojo +++ b/lightbug_api/openapi/generate.mojo @@ -1,5 +1,5 @@ from collections.dict import Dict -from external.emberjson import JSON, Value, Array, Object, ParseOptions, parse, to_string +from emberjson import JSON, Value, Array, Object, ParseOptions, parse, to_string struct OpenAPIGenerator: var tags: List[Value] diff --git a/magic.lock b/magic.lock index c9987c3..1575356 100644 --- a/magic.lock +++ b/magic.lock @@ -49,6 +49,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.7.0-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.2.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/email_validator-2.2.0-hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/mojo-community/linux-64/emberjson-0.1.1-hb0f4dca_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fastapi-0.115.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fastapi-cli-0.0.7-pyhd8ed1ab_0.conda @@ -267,6 +268,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/dnspython-2.7.0-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/email-validator-2.2.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/email_validator-2.2.0-hd8ed1ab_1.conda + - conda: https://repo.prefix.dev/mojo-community/osx-arm64/emberjson-0.1.1-h60d57d3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.2.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fastapi-0.115.6-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fastapi-cli-0.0.7-pyhd8ed1ab_0.conda @@ -1638,6 +1640,34 @@ packages: license: Unlicense size: 6552 timestamp: 1733300828176 +- kind: conda + name: emberjson + version: 0.1.1 + build: h60d57d3_0 + subdir: osx-arm64 + url: https://repo.prefix.dev/mojo-community/osx-arm64/emberjson-0.1.1-h60d57d3_0.conda + sha256: 2f684a57551b43254573eb4ef0be49d8de45df046d4693a1e467f8b0cf820a88 + depends: + - max ==24.6.0 + arch: arm64 + platform: osx + license: MIT + size: 681608 + timestamp: 1736671803271 +- kind: conda + name: emberjson + version: 0.1.1 + build: hb0f4dca_0 + subdir: linux-64 + url: https://repo.prefix.dev/mojo-community/linux-64/emberjson-0.1.1-hb0f4dca_0.conda + sha256: 31b60dbaad341c90c47f555e01ce2e6fe4290a7ff8bbfe2994266b88210b46a0 + depends: + - max ==24.6.0 + arch: x86_64 + platform: linux + license: MIT + size: 681619 + timestamp: 1736671846359 - kind: conda name: exceptiongroup version: 1.2.2 diff --git a/tests/lightbug_api/test_generate.mojo b/tests/lightbug_api/test_generate.mojo index 253151b..fbea7d3 100644 --- a/tests/lightbug_api/test_generate.mojo +++ b/tests/lightbug_api/test_generate.mojo @@ -1,5 +1,5 @@ from testing import * -from external.emberjson import JSON, Object, Array +from emberjson import JSON, Object, Array from lightbug_api.openapi.generate import OpenAPIGenerator def test_create_endpoint(): From ed1624dc56f2c85b2f21a9982cf5664752a33ebc Mon Sep 17 00:00:00 2001 From: Val Date: Thu, 16 Jan 2025 16:08:04 +0100 Subject: [PATCH 07/11] replace inout with out --- lightbug_api/app.mojo | 2 +- lightbug_api/routing.mojo | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lightbug_api/app.mojo b/lightbug_api/app.mojo index 88d7177..8567609 100644 --- a/lightbug_api/app.mojo +++ b/lightbug_api/app.mojo @@ -14,7 +14,7 @@ struct App[docs_enabled: Bool = False]: var router: Router var lightbug_dir: Path - fn __init__(inout self) raises: + fn __init__(out self) raises: self.router = Router() self.lightbug_dir = Path() diff --git a/lightbug_api/routing.mojo b/lightbug_api/routing.mojo index 48c2f12..2f2f34a 100644 --- a/lightbug_api/routing.mojo +++ b/lightbug_api/routing.mojo @@ -36,7 +36,7 @@ struct APIRoute(CollectionElement): struct Router: var routes: List[APIRoute] - fn __init__(inout self): + fn __init__(out self): self.routes = List[APIRoute]() fn __copyinit__(out self: Router, existing: Router): @@ -45,5 +45,5 @@ struct Router: fn __moveinit__(out self: Router, owned existing: Router): self.routes = existing.routes - fn add_route(inout self, path: String, method: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): + fn add_route(out self, path: String, method: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): self.routes.append(APIRoute(path, method, handler, operation_id)) From 6a986bb7fb161c18bb8a193213e798c13fc004f8 Mon Sep 17 00:00:00 2001 From: Val Date: Thu, 16 Jan 2025 16:20:19 +0100 Subject: [PATCH 08/11] remove str dunder --- lightbug_api/app.mojo | 8 ++++---- lightbug_api/openapi/generate.mojo | 18 +++++++++--------- tests/lightbug_api/test_generate.mojo | 18 +++++++++--------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/lightbug_api/app.mojo b/lightbug_api/app.mojo index 8567609..da5097c 100644 --- a/lightbug_api/app.mojo +++ b/lightbug_api/app.mojo @@ -68,7 +68,7 @@ struct App[docs_enabled: Bool = False]: with open((lightbug_dir / "routes.json"), "w") as f: f.write(to_string[pretty=True](routes_obj)) - var mojodoc_status = external_call["system", UInt8]("magic run mojo doc ./lightbug.🔥 -o " + lightbug_dir.__str__() + "/mojodoc.json") + var mojodoc_status = external_call["system", UInt8]("magic run mojo doc ./lightbug.🔥 -o " + str(lightbug_dir) + "/mojodoc.json") if mojodoc_status != 0: logger.error("Failed to generate mojodoc.json") return @@ -77,16 +77,16 @@ struct App[docs_enabled: Bool = False]: var generator = OpenAPIGenerator() var mojo_doc_json = generator.read_mojo_doc( - (self.lightbug_dir / "mojodoc.json").__str__() + str(self.lightbug_dir / "mojodoc.json") ) var router_metadata_json = generator.read_router_metadata( - (self.lightbug_dir / "routes.json").__str__() + str(self.lightbug_dir / "routes.json") ) var openapi_spec = generator.generate_spec(mojo_doc_json, router_metadata_json) generator.save_spec( openapi_spec, - (self.lightbug_dir / "openapi_spec.json").__str__() + str(self.lightbug_dir / "openapi_spec.json") ) return openapi_spec diff --git a/lightbug_api/openapi/generate.mojo b/lightbug_api/openapi/generate.mojo index 31480fa..3fed49e 100644 --- a/lightbug_api/openapi/generate.mojo +++ b/lightbug_api/openapi/generate.mojo @@ -19,13 +19,13 @@ struct OpenAPIGenerator: var routes = router_metadata["routes"][Array]._data for i in range(len(routes)): var route = routes[i][Object] - var handler = route["handler"].__str__().strip('"') + var handler = str(route["handler"]).strip('"') var path = route["path"][String].strip('"') var method = String(route["method"][String].strip('"')).lower() route_map[handler] = (String(path), method) for func in mojo_doc["decl"][Object]["functions"][Array]._data: - var func_name = func[][Object]["name"].__str__().strip('"') + var func_name = str(func[][Object]["name"]).strip('"') if func_name not in route_map: continue @@ -57,7 +57,7 @@ struct OpenAPIGenerator: fn create_endpoint(mut self, function_data: JSON, http_method: String) raises -> JSON: var endpoint = JSON() var func_name = function_data["name"] - endpoint["summary"] = String(func_name.__str__().strip('"')) + " endpoint" + endpoint["summary"] = String(str(func_name).strip('"')) + " endpoint" endpoint["operationId"] = func_name var responses = JSON() @@ -71,11 +71,11 @@ struct OpenAPIGenerator: for i in range(len(overloads)): var overload = overloads[i][Array][0] # first overload only for now if "returnsDoc" in overload[Object]._data: - response_description = String(overload[Object]["returnsDoc"].__str__().strip('"')) + response_description = String(str(overload[Object]["returnsDoc"]).strip('"')) if "summary" in overload[Object]._data: - endpoint["description"] = String(overload[Object]["summary"].__str__().strip('"')) - if "description" in overload[Object]._data and overload[Object]["description"].__str__().__contains__("Tags:"): - var description = overload[Object]["description"].__str__() + endpoint["description"] = String(str(overload[Object]["summary"]).strip('"')) + if "description" in overload[Object]._data and str(overload[Object]["description"]).__contains__("Tags:"): + var description = str(overload[Object]["description"]) var tags_part = description.split("Tags:")[1] var tags_str = String(tags_part.strip().rstrip('."')) var tags = tags_str.split(",") @@ -83,7 +83,7 @@ struct OpenAPIGenerator: for tag in tags: var stripped_tag = String(tag[].strip()).replace("\\n", "").replace("\\t", "").replace("\\r", "") var cleaned_tag = stripped_tag.strip(" ") - tag_values.append(Value(cleaned_tag.__str__())) + tag_values.append(Value(str(cleaned_tag))) self.set_tags(tag_values) endpoint["tags"] = Array(tag_values) @@ -93,7 +93,7 @@ struct OpenAPIGenerator: for i in range(len(args)): var arg = args[0][Array][i][Object] if "description" in arg._data: - request_description = String(arg["description"].__str__().strip('"')) + request_description = String(str(arg["description"]).strip('"')) break response_200["description"] = response_description diff --git a/tests/lightbug_api/test_generate.mojo b/tests/lightbug_api/test_generate.mojo index fbea7d3..7a9f518 100644 --- a/tests/lightbug_api/test_generate.mojo +++ b/tests/lightbug_api/test_generate.mojo @@ -123,9 +123,9 @@ def test_endpoint_tags(): assert_true("tags" in endpoint) var tag_array = endpoint["tags"][Array] assert_equal(len(tag_array), 3) - assert_equal(tag_array[0].__str__(), '"api"') - assert_equal(tag_array[1].__str__(), '"test"') - assert_equal(tag_array[2].__str__(), '"auth"') + assert_equal(str(tag_array[0]), '"api"') + assert_equal(str(tag_array[1]), '"test"') + assert_equal(str(tag_array[2]), '"auth"') # Test 2: Tags with control characters var function_data_control_chars = JSON.from_string(''' @@ -147,9 +147,9 @@ def test_endpoint_tags(): assert_true("tags" in endpoint_control_chars) var tag_array_control_chars = endpoint_control_chars["tags"][Array] assert_equal(len(tag_array_control_chars), 3) - assert_equal(tag_array_control_chars[0].__str__(), '"hello"') - assert_equal(tag_array_control_chars[1].__str__(), '"what"') - assert_equal(tag_array_control_chars[2].__str__(), '"up"') + assert_equal(str(tag_array_control_chars[0]), '"hello"') + assert_equal(str(tag_array_control_chars[1]), '"what"') + assert_equal(str(tag_array_control_chars[2]), '"up"') # Test 3: Tags with extra whitespace var function_data_whitespace = JSON.from_string(""" @@ -171,9 +171,9 @@ def test_endpoint_tags(): assert_true("tags" in endpoint_whitespace) var tag_array_whitespace = endpoint_whitespace["tags"][Array] assert_equal(len(tag_array_whitespace), 3) - assert_equal(tag_array_whitespace[0].__str__(), '"api"') - assert_equal(tag_array_whitespace[1].__str__(), '"test"') - assert_equal(tag_array_whitespace[2].__str__(), '"auth"') + assert_equal(str(tag_array_whitespace[0]), '"api"') + assert_equal(str(tag_array_whitespace[1]), '"test"') + assert_equal(str(tag_array_whitespace[2]), '"auth"') # Test 4: No tags var function_data_no_tags = JSON.from_string(""" From 6adf1f11401a5513dee4802f89a384a9dd410a2e Mon Sep 17 00:00:00 2001 From: Val Date: Thu, 16 Jan 2025 16:23:59 +0100 Subject: [PATCH 09/11] remove logger --- lightbug_api/app.mojo | 2 +- lightbug_api/docs.mojo | 2 +- lightbug_api/logger.mojo | 66 ---------------------------------------- 3 files changed, 2 insertions(+), 68 deletions(-) delete mode 100644 lightbug_api/logger.mojo diff --git a/lightbug_api/app.mojo b/lightbug_api/app.mojo index da5097c..17ded38 100644 --- a/lightbug_api/app.mojo +++ b/lightbug_api/app.mojo @@ -3,10 +3,10 @@ from os.path import exists from pathlib import Path from sys.ffi import external_call from lightbug_http import HTTPRequest, HTTPResponse, Server, NotFound +from lightbug_http.utils import logger from emberjson import JSON, Array, Object, Value, to_string from lightbug_api.openapi.generate import OpenAPIGenerator from lightbug_api.routing import Router -from lightbug_api.logger import logger from lightbug_api.docs import DocsApp @value diff --git a/lightbug_api/docs.mojo b/lightbug_api/docs.mojo index 1404b79..9ba65cd 100644 --- a/lightbug_api/docs.mojo +++ b/lightbug_api/docs.mojo @@ -1,5 +1,5 @@ from lightbug_http import Server, HTTPRequest, HTTPResponse, OK -from lightbug_api.logger import logger +from lightbug_http.utils import logger @value struct DocsApp: diff --git a/lightbug_api/logger.mojo b/lightbug_api/logger.mojo deleted file mode 100644 index ca76771..0000000 --- a/lightbug_api/logger.mojo +++ /dev/null @@ -1,66 +0,0 @@ -from memory import memcpy, Span - -struct LogLevel(): - alias FATAL = 0 - alias ERROR = 1 - alias WARN = 2 - alias INFO = 3 - alias DEBUG = 4 - - -@value -struct Logger(): - var level: Int - - fn __init__(out self, level: Int = LogLevel.INFO): - self.level = level - - fn _log_message(self, message: String, level: Int): - if self.level >= level: - if level < LogLevel.WARN: - print(message, file=2) - else: - print(message) - - fn info[*Ts: Writable](self, *messages: *Ts): - var msg = String.write("\033[36mINFO\033[0m - ") - @parameter - fn write_message[T: Writable](message: T): - msg.write(message, " ") - messages.each[write_message]() - self._log_message(msg, LogLevel.INFO) - - fn warn[*Ts: Writable](self, *messages: *Ts): - var msg = String.write("\033[33mWARN\033[0m - ") - @parameter - fn write_message[T: Writable](message: T): - msg.write(message, " ") - messages.each[write_message]() - self._log_message(msg, LogLevel.WARN) - - fn error[*Ts: Writable](self, *messages: *Ts): - var msg = String.write("\033[31mERROR\033[0m - ") - @parameter - fn write_message[T: Writable](message: T): - msg.write(message, " ") - messages.each[write_message]() - self._log_message(msg, LogLevel.ERROR) - - fn debug[*Ts: Writable](self, *messages: *Ts): - var msg = String.write("\033[34mDEBUG\033[0m - ") - @parameter - fn write_message[T: Writable](message: T): - msg.write(message, " ") - messages.each[write_message]() - self._log_message(msg, LogLevel.DEBUG) - - fn fatal[*Ts: Writable](self, *messages: *Ts): - var msg = String.write("\033[35mFATAL\033[0m - ") - @parameter - fn write_message[T: Writable](message: T): - msg.write(message, " ") - messages.each[write_message]() - self._log_message(msg, LogLevel.FATAL) - - -alias logger = Logger() From c8e939b0cfdc50589dce6624eee97b64b7b297c9 Mon Sep 17 00:00:00 2001 From: Val Date: Thu, 16 Jan 2025 16:25:19 +0100 Subject: [PATCH 10/11] magic run format --- lightbug_api/app.mojo | 38 ++++++++--------- lightbug_api/docs.mojo | 9 ++-- lightbug_api/openapi/generate.mojo | 68 +++++++++++++++--------------- lightbug_api/routing.mojo | 9 +++- lightbug_api/service.mojo | 3 +- 5 files changed, 66 insertions(+), 61 deletions(-) diff --git a/lightbug_api/app.mojo b/lightbug_api/app.mojo index 17ded38..b13f974 100644 --- a/lightbug_api/app.mojo +++ b/lightbug_api/app.mojo @@ -9,6 +9,7 @@ from lightbug_api.openapi.generate import OpenAPIGenerator from lightbug_api.routing import Router from lightbug_api.docs import DocsApp + @value struct App[docs_enabled: Bool = False]: var router: Router @@ -23,9 +24,9 @@ struct App[docs_enabled: Bool = False]: fn func(mut self, req: HTTPRequest) raises -> HTTPResponse: if docs_enabled and req.uri.path == "/docs" and req.method == "GET": - var openapi_spec = self.generate_openapi_spec() - var docs = DocsApp(to_string(openapi_spec)) - return docs.func(req) + var openapi_spec = self.generate_openapi_spec() + var docs = DocsApp(to_string(openapi_spec)) + return docs.func(req) for route_ptr in self.router.routes: var route = route_ptr[] if route.path == req.uri.path and route.method == req.method: @@ -47,7 +48,7 @@ struct App[docs_enabled: Bool = False]: fn update_temporary_files(mut self) raises: var routes_obj = Object() var routes = List[Value]() - + for route_ptr in self.router.routes: var route = route_ptr[] var route_obj = Object() @@ -55,39 +56,34 @@ struct App[docs_enabled: Bool = False]: route_obj["method"] = route.method route_obj["handler"] = route.operation_id routes.append(route_obj) - + routes_obj["routes"] = Array.from_list(routes) var cwd = Path() var lightbug_dir = cwd / ".lightbug" self.set_lightbug_dir(lightbug_dir) - + if not exists(lightbug_dir): logger.info("Creating .lightbug directory") mkdir(lightbug_dir) - + with open((lightbug_dir / "routes.json"), "w") as f: f.write(to_string[pretty=True](routes_obj)) - - var mojodoc_status = external_call["system", UInt8]("magic run mojo doc ./lightbug.🔥 -o " + str(lightbug_dir) + "/mojodoc.json") + + var mojodoc_status = external_call["system", UInt8]( + "magic run mojo doc ./lightbug.🔥 -o " + str(lightbug_dir) + "/mojodoc.json" + ) if mojodoc_status != 0: logger.error("Failed to generate mojodoc.json") return fn generate_openapi_spec(self) raises -> JSON: var generator = OpenAPIGenerator() - - var mojo_doc_json = generator.read_mojo_doc( - str(self.lightbug_dir / "mojodoc.json") - ) - var router_metadata_json = generator.read_router_metadata( - str(self.lightbug_dir / "routes.json") - ) - + + var mojo_doc_json = generator.read_mojo_doc(str(self.lightbug_dir / "mojodoc.json")) + var router_metadata_json = generator.read_router_metadata(str(self.lightbug_dir / "routes.json")) + var openapi_spec = generator.generate_spec(mojo_doc_json, router_metadata_json) - generator.save_spec( - openapi_spec, - str(self.lightbug_dir / "openapi_spec.json") - ) + generator.save_spec(openapi_spec, str(self.lightbug_dir / "openapi_spec.json")) return openapi_spec fn start_server(mut self, address: StringLiteral = "0.0.0.0:8080") raises: diff --git a/lightbug_api/docs.mojo b/lightbug_api/docs.mojo index 9ba65cd..2aee6b4 100644 --- a/lightbug_api/docs.mojo +++ b/lightbug_api/docs.mojo @@ -1,12 +1,14 @@ from lightbug_http import Server, HTTPRequest, HTTPResponse, OK from lightbug_http.utils import logger + @value struct DocsApp: var openapi_spec: String fn func(mut self, req: HTTPRequest) raises -> HTTPResponse: - var html_response = String(""" + var html_response = String( + """ @@ -25,7 +27,8 @@ struct DocsApp: - """).format(self.openapi_spec) + """ + ).format(self.openapi_spec) return OK(html_response, "text/html; charset=utf-8") fn set_openapi_spec(mut self, openapi_spec: String): @@ -34,4 +37,4 @@ struct DocsApp: fn start_docs_server(mut self, address: StringLiteral = "0.0.0.0:8888") raises: logger.info("Starting docs at " + String(address)) var server = Server() - server.listen_and_serve(address, self) \ No newline at end of file + server.listen_and_serve(address, self) diff --git a/lightbug_api/openapi/generate.mojo b/lightbug_api/openapi/generate.mojo index 3fed49e..c954355 100644 --- a/lightbug_api/openapi/generate.mojo +++ b/lightbug_api/openapi/generate.mojo @@ -1,6 +1,7 @@ from collections.dict import Dict from emberjson import JSON, Value, Array, Object, ParseOptions, parse, to_string + struct OpenAPIGenerator: var tags: List[Value] @@ -23,35 +24,35 @@ struct OpenAPIGenerator: var path = route["path"][String].strip('"') var method = String(route["method"][String].strip('"')).lower() route_map[handler] = (String(path), method) - + for func in mojo_doc["decl"][Object]["functions"][Array]._data: var func_name = str(func[][Object]["name"]).strip('"') - + if func_name not in route_map: continue - + var route_info = route_map[func_name] var path = route_info.get[0][String]() var http_method = route_info.get[1][String]() - + var endpoint = self.create_endpoint(func[].object(), http_method) - + if paths.__contains__(path): var new_path_item = JSON() var existing_path_item = paths[path][Object] - + for key in existing_path_item._data.keys(): var existing_key = key[] new_path_item[existing_key] = existing_path_item[existing_key] - + new_path_item[http_method] = endpoint.object() - + paths[path] = new_path_item.object() else: var path_item = JSON() path_item[http_method] = endpoint.object() paths[path] = path_item.object() - + return paths fn create_endpoint(mut self, function_data: JSON, http_method: String) raises -> JSON: @@ -59,17 +60,17 @@ struct OpenAPIGenerator: var func_name = function_data["name"] endpoint["summary"] = String(str(func_name).strip('"')) + " endpoint" endpoint["operationId"] = func_name - + var responses = JSON() var response_200 = JSON() - + var overloads = Array(function_data["overloads"])._data var request_description = String("Request body") var response_description = String("Successful response") for i in range(len(overloads)): - var overload = overloads[i][Array][0] # first overload only for now + var overload = overloads[i][Array][0] # first overload only for now if "returnsDoc" in overload[Object]._data: response_description = String(str(overload[Object]["returnsDoc"]).strip('"')) if "summary" in overload[Object]._data: @@ -95,14 +96,14 @@ struct OpenAPIGenerator: if "description" in arg._data: request_description = String(str(arg["description"]).strip('"')) break - + response_200["description"] = response_description - + var content = JSON() var text_plain = JSON() var schema = JSON() schema["type"] = "string" - + text_plain["schema"] = schema.object() content["text/plain"] = text_plain.object() response_200["content"] = content.object() @@ -113,30 +114,30 @@ struct OpenAPIGenerator: var request_body = JSON() request_body["required"] = True request_body["description"] = request_description - + var req_content = JSON() var req_text_plain = JSON() var req_schema = JSON() req_schema["type"] = "string" - + req_text_plain["schema"] = req_schema.object() req_content["text/plain"] = req_text_plain.object() request_body["content"] = req_content.object() endpoint["requestBody"] = request_body.object() - + return endpoint fn create_components_schema(self) raises -> JSON: var components = JSON() var schemas = JSON() - + # Define HTTPRequest schema var http_request = JSON() var request_properties = JSON() - + var body_raw = JSON() body_raw["type"] = "string" - + var uri = JSON() var uri_properties = JSON() var path = JSON() @@ -144,47 +145,47 @@ struct OpenAPIGenerator: uri_properties["path"] = path.object() uri["type"] = "object" uri["properties"] = uri_properties.object() - + var method = JSON() method["type"] = "string" - + request_properties["body_raw"] = body_raw.object() request_properties["uri"] = uri.object() request_properties["method"] = method.object() - + http_request["type"] = "object" http_request["properties"] = request_properties.object() - + # Define HTTPResponse schema var http_response = JSON() var response_properties = JSON() var body = JSON() body["type"] = "string" response_properties["body"] = body.object() - + http_response["type"] = "object" http_response["properties"] = response_properties.object() - + schemas["HTTPRequest"] = http_request.object() schemas["HTTPResponse"] = http_response.object() components["schemas"] = schemas.object() - + return components fn generate_spec(mut self, mojo_doc: JSON, router_metadata: JSON) raises -> JSON: var spec = JSON() - + spec["openapi"] = "3.0.0" - + var info = JSON() info["title"] = mojo_doc["decl"][Object]["name"] info["version"] = mojo_doc["version"] info["description"] = "API generated from Mojo documentation" - + spec["info"] = info.object() spec["paths"] = self.create_paths(mojo_doc, router_metadata).object() spec["components"] = self.create_components_schema().object() - + return spec fn read_mojo_doc(self, filename: String) raises -> JSON: @@ -194,8 +195,7 @@ struct OpenAPIGenerator: fn read_router_metadata(self, filename: String) raises -> JSON: with open(filename, "r") as router_metadata: return parse[ParseOptions(fast_float_parsing=True)](router_metadata.read()) - + fn save_spec(self, spec: JSON, filename: String) raises: with open(filename, "w") as f: f.write(to_string[pretty=True](spec)) - \ No newline at end of file diff --git a/lightbug_api/routing.mojo b/lightbug_api/routing.mojo index 2f2f34a..5d4d648 100644 --- a/lightbug_api/routing.mojo +++ b/lightbug_api/routing.mojo @@ -1,6 +1,7 @@ from lightbug_http import HTTPRequest, HTTPResponse, NotFound from lightbug_api.service import not_found + struct APIRoute(CollectionElement): var path: String var method: String @@ -13,7 +14,9 @@ struct APIRoute(CollectionElement): self.handler = not_found self.operation_id = "" - fn __init__(out self, path: String, method: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): + fn __init__( + out self, path: String, method: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String + ): self.path = path self.method = method self.handler = handler @@ -45,5 +48,7 @@ struct Router: fn __moveinit__(out self: Router, owned existing: Router): self.routes = existing.routes - fn add_route(out self, path: String, method: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String): + fn add_route( + out self, path: String, method: String, handler: fn (HTTPRequest) -> HTTPResponse, operation_id: String + ): self.routes.append(APIRoute(path, method, handler, operation_id)) diff --git a/lightbug_api/service.mojo b/lightbug_api/service.mojo index aa35978..dfe71fe 100644 --- a/lightbug_api/service.mojo +++ b/lightbug_api/service.mojo @@ -1,5 +1,6 @@ from lightbug_http import HTTPRequest, HTTPResponse, NotFound + @always_inline fn not_found(req: HTTPRequest) -> HTTPResponse: - return NotFound(req.uri.path) \ No newline at end of file + return NotFound(req.uri.path) From 3f23be7c36a0b2d93d0ff0317ce7b65cdb3d7f98 Mon Sep 17 00:00:00 2001 From: Val Date: Thu, 16 Jan 2025 17:25:38 +0100 Subject: [PATCH 11/11] change address to string --- lightbug_api/app.mojo | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lightbug_api/app.mojo b/lightbug_api/app.mojo index b13f974..25384a4 100644 --- a/lightbug_api/app.mojo +++ b/lightbug_api/app.mojo @@ -86,9 +86,9 @@ struct App[docs_enabled: Bool = False]: generator.save_spec(openapi_spec, str(self.lightbug_dir / "openapi_spec.json")) return openapi_spec - fn start_server(mut self, address: StringLiteral = "0.0.0.0:8080") raises: + fn start_server(mut self, address: String = "0.0.0.0:8080") raises: if docs_enabled: - logger.info("API Docs ready at: " + "http://" + String(address) + "/docs") + logger.info("API Docs ready at: " + "http://" + address + "/docs") self.update_temporary_files() var server = Server() server.listen_and_serve(address, self)