From 94928c9831898c21d952f1ef60a9ed902b357f2f Mon Sep 17 00:00:00 2001 From: shivasankar Date: Wed, 28 May 2025 13:41:37 +0800 Subject: [PATCH 1/5] change magic to pixi --- mojoproject.toml | 57 -- numojo/routines/io/files.mojo | 110 ++- numojo/routines/manipulation.mojo | 40 + pixi.lock | 1246 +++++++++++++++++++++++++++++ pixi.toml | 61 ++ 5 files changed, 1417 insertions(+), 97 deletions(-) delete mode 100644 mojoproject.toml create mode 100644 pixi.lock create mode 100644 pixi.toml diff --git a/mojoproject.toml b/mojoproject.toml deleted file mode 100644 index 2a1a2a9d..00000000 --- a/mojoproject.toml +++ /dev/null @@ -1,57 +0,0 @@ -[project] -name = "NuMojo" -version = "0.7.0" -description = "NuMojo is a library for numerical computing written in Mojo 🔥" -authors = [ - "Shivasankar ", - "MadAlex1997 <>", - "Yuhao Zhu (朱宇浩) ", - "mmenendezg <>", - "sandstromviktor <>", - "durnwalder <>" -] -channels = ["conda-forge", "https://conda.modular.com/max", "https://repo.prefix.dev/modular-community"] -platforms = ["osx-arm64", "linux-64"] -license = "Apache-2.0" -readme = "README.MD" - -[tasks] -# compile the package and copy it to the tests folder -package = "magic run mojo package numojo && cp numojo.mojopkg tests/" -p = "clear && magic run package" - -# format the package -format = "magic run mojo format ./" - -# test whether tests pass on the built package -test = "magic run package && magic run mojo test tests -I tests/ && rm tests/numojo.mojopkg" -t = "clear && magic run test" - -# run individual tests to avoid overheat -test_core = "magic run package && magic run mojo test tests/core -I tests/ && rm tests/numojo.mojopkg" -test_creation = "magic run package && magic run mojo test tests/routines/test_creation.mojo -I tests/ && rm tests/numojo.mojopkg" -test_functional = "magic run package && magic run mojo test tests/routines/test_functional.mojo -I tests/ && rm tests/numojo.mojopkg" -test_indexing = "magic run package && magic run mojo test tests/routines/test_indexing.mojo -I tests/ && rm tests/numojo.mojopkg" -test_linalg = "magic run package && magic run mojo test tests/routines/test_linalg.mojo -I tests/ && rm tests/numojo.mojopkg" -test_manipulation = "magic run package && magic run mojo test tests/routines/test_manipulation.mojo -I tests/ && rm tests/numojo.mojopkg" -test_math = "magic run package && magic run mojo test tests/routines/test_math.mojo -I tests/ && rm tests/numojo.mojopkg" -test_random = "magic run package && magic run mojo test tests/routines/test_random.mojo -I tests/ && rm tests/numojo.mojopkg" -test_statistics = "magic run package && magic run mojo test tests/routines/test_statistics.mojo -I tests/ && rm tests/numojo.mojopkg" -test_sorting = "magic run package && magic run mojo test tests/routines/test_sorting.mojo -I tests/ && rm tests/numojo.mojopkg" -test_searching = "magic run package && magic run mojo test tests/routines/test_searching.mojo -I tests/ && rm tests/numojo.mojopkg" - -# run all final checks before a commit -final = "magic run format && magic run test" -f = "clear && magic run final" - -# Automatically Generate doc pages -doc_pages = "mojo doc numojo/ -o docs.json" - -# run everything and generate docs before release -release = "clear && magic run final && magic run doc_pages" - -[dependencies] -max = "==25.3" -python = ">=3.11" -numpy = ">=2.0" -scipy = ">=1.14" \ No newline at end of file diff --git a/numojo/routines/io/files.mojo b/numojo/routines/io/files.mojo index a08749c0..3465fae7 100644 --- a/numojo/routines/io/files.mojo +++ b/numojo/routines/io/files.mojo @@ -1,53 +1,83 @@ from numojo.routines.creation import fromstring from collections.optional import Optional +from python import Python, PythonObject + + +# We call into the numpy backend for now, this at least let's people go back and forth smoothly. +# might consider implementing a funciton to write a .numojo file which can be read by both numpy and numojo. + + +fn load[ + dtype: DType = f64 +]( + file: String, + allow_pickle: Bool = False, + fix_imports: Bool = True, + encoding: String = "ASCII", + *, + max_header_size: Int = 10000, +) raises -> NDArray[dtype]: + var np = Python.import_module("numpy") + var data = np.load( + file=file, + allow_pickle=allow_pickle, + fix_imports=fix_imports, + encoding=encoding, + max_header_size=max_header_size, + ) + var array = numojo.array[dtype](data=data) + return array^ + + +fn save[ + dtype: DType = f64 +](file: String, arr: NDArray[dtype], allow_pickle: Bool = True) raises: + var np = Python.import_module("numpy") + var data = np.save(file=file, arr=arr.to_numpy(), allow_pickle=allow_pickle) -# contains a custom basic implementation of loadtxt and savetxt to be used temporarily -# until the official implementation is ready -# one could use numpy backend, but it might add a dependency to numpy -# better load files through numpy and then pass it to Numojo through array() function fn loadtxt[ dtype: DType = f64 ]( - filename: String, - delimiter: String = ",", + fname: String, + comments: String = "#", + delimiter: String = " ", skiprows: Int = 0, - usecols: Optional[List[Int]] = None, + ndmin: Int = 0, ) raises -> NDArray[dtype]: - with open(filename, "r") as file: - string = file.read() - var shape_offset_init: Int = string.find("[") - var shape_offset_fin: Int = string.find("]") - var ndim_offset_init: Int = string.find("[", start=shape_offset_fin) - var ndim_offset_fin: Int = string.find("]", start=ndim_offset_init) - var ndim: Int = Int(string[ndim_offset_init + 1 : ndim_offset_fin]) - var ndshape: List[Int] = List[Int]() - for i in range(shape_offset_init + 1, shape_offset_fin): - if string[i].isdigit(): - ndshape.append(Int(string[i])) - var data: List[Scalar[dtype]] = List[Scalar[dtype]]() - for i in range(ndim_offset_fin + 2, len(string)): - if string[i].isdigit(): - var number: String = string[i] - data.append(atof(number).cast[dtype]()) - return array[dtype](data=data, shape=ndshape, order="C") + var np = Python.import_module("numpy") + var data = np.loadtxt( + fname=fname, + comments=comments, + delimiter=delimiter, + skiprows=skiprows, + ndmin=ndmin, + ) + var array = numojo.array[dtype](data=data) + return array^ fn savetxt[ dtype: DType = f64 -](filename: String, array: NDArray[dtype], delimiter: String = ",") raises: - var shape: String = "ndshape=[" - for i in range(array.ndim): - shape += String(array.shape[i]) - if i != array.ndim - 1: - shape = shape + ", " - shape = shape + "]" - print(shape) - - with open(filename, "w") as file: - file.write(shape + "\n") - file.write("ndim=[" + String(array.ndim) + "]\n") - for i in range(array.size): - if i % 10 == 0: - file.write(String("\n")) - file.write(String(array._buf.ptr[i]) + ",") +]( + fname: String, + array: NDArray[dtype], + fmt: String = "%.18e", + delimiter: String = " ", + newline: String = "\n", + header: String = "", + footer: String = "", + comments: String = "#", +) raises: + var np = Python.import_module("numpy") + var np_arr = array.to_numpy() + np.savetxt( + fname=fname, + X=np_arr, + fmt=fmt, + delimiter=delimiter, + newline=newline, + header=header, + footer=footer, + comments=comments, + ) diff --git a/numojo/routines/manipulation.mojo b/numojo/routines/manipulation.mojo index bd504b0a..0f43ab7b 100644 --- a/numojo/routines/manipulation.mojo +++ b/numojo/routines/manipulation.mojo @@ -14,6 +14,7 @@ from sys import simdwidthof from algorithm import vectorize from numojo.core.ndarray import NDArray +from numojo.core.complex import ComplexNDArray from numojo.core.ndshape import NDArrayShape, Shape from numojo.core.ndstrides import NDArrayStrides import numojo.core.matrix as matrix @@ -47,6 +48,19 @@ fn ndim[dtype: DType](array: NDArray[dtype]) -> Int: return array.ndim +fn ndim[dtype: DType](array: ComplexNDArray[dtype]) -> Int: + """ + Returns the number of dimensions of the NDArray. + + Args: + array: A NDArray. + + Returns: + The number of dimensions of the NDArray. + """ + return array.ndim + + fn shape[dtype: DType](array: NDArray[dtype]) -> NDArrayShape: """ Returns the shape of the NDArray. @@ -60,6 +74,18 @@ fn shape[dtype: DType](array: NDArray[dtype]) -> NDArrayShape: return array.shape +fn shape[dtype: DType](array: ComplexNDArray[dtype]) -> NDArrayShape: + """ + Returns the shape of the NDArray. + + Args: + array: A NDArray. + + Returns: The shape of the NDArray. + """ + return array.shape + + fn size[dtype: DType](array: NDArray[dtype], axis: Int) raises -> Int: """ Returns the size of the NDArray. @@ -74,6 +100,20 @@ fn size[dtype: DType](array: NDArray[dtype], axis: Int) raises -> Int: return array.shape[axis] +fn size[dtype: DType](array: ComplexNDArray[dtype], axis: Int) raises -> Int: + """ + Returns the size of the NDArray. + + Args: + array: A NDArray. + axis: The axis to get the size of. + + Returns: + The size of the NDArray. + """ + return array.shape[axis] + + # ===----------------------------------------------------------------------=== # # Changing array shape # ===----------------------------------------------------------------------=== # diff --git a/pixi.lock b/pixi.lock new file mode 100644 index 00000000..510d2ae7 --- /dev/null +++ b/pixi.lock @@ -0,0 +1,1246 @@ +version: 6 +environments: + default: + channels: + - url: https://conda.anaconda.org/conda-forge/ + - url: https://conda.modular.com/max/ + - url: https://repo.prefix.dev/modular-community/ + packages: + 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/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-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/cpython-3.13.3-py313hd8ed1ab_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.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.8.1-pyh31011fe_0.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_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-31_h59b9bed_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-31_he106b2a_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-31_h7ac8fdf_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.29-pthreads_h94d23a6_0.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.49.2-hee588c1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.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/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.modular.com/max/noarch/max-25.3.0-release.conda + - conda: https://conda.modular.com/max/linux-64/max-core-25.3.0-release.conda + - conda: https://conda.modular.com/max/linux-64/max-python-25.3.0-release.conda + - conda: https://conda.modular.com/max/noarch/mblack-25.3.0-release.conda + - conda: https://conda.modular.com/max/noarch/mojo-jupyter-25.3.0-release.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.6-py313h17eae1a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.3-hf636f53_101_cp313.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-gil-3.13.3-h4df99d1_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-7_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.4.0-py313h8e95178_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.15.2-py313h86fcf2b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.1-py313h536fd9c_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/typing_extensions-4.13.2-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_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.22.0-pyhd8ed1ab_0.conda + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-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/cpython-3.13.3-py313hd8ed1ab_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.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.8.1-pyh31011fe_0.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-31_h10e41b3_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-31_hb3479ef_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-20.1.5-ha82da77_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20250104-pl5321hafb1f1b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.0-h286801f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.6-h1da3d7d_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-14.2.0-heb5dd2a_105.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-14.2.0-h2c44a93_105.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-31_hc9a63f6_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.29-openmp_hf332438_0.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.49.2-h3f77e49_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-20.1.5-hdb05f8b_0.conda + - conda: https://conda.modular.com/max/noarch/max-25.3.0-release.conda + - conda: https://conda.modular.com/max/osx-arm64/max-core-25.3.0-release.conda + - conda: https://conda.modular.com/max/osx-arm64/max-python-25.3.0-release.conda + - conda: https://conda.modular.com/max/noarch/mblack-25.3.0-release.conda + - conda: https://conda.modular.com/max/noarch/mojo-jupyter-25.3.0-release.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.2.6-py313h41a2e72_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.0-h81ee809_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.3-h81fe080_101_cp313.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-gil-3.13.3-h4df99d1_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-7_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.4.0-py313he6960b1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.15.2-py313h9a24e0a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.1-py313h90d716c_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/typing_extensions-4.13.2-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_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.22.0-pyhd8ed1ab_0.conda +packages: +- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + md5: d7c89558ba9fa0495403155b64376d81 + license: None + size: 2562 + timestamp: 1578324546067 +- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + build_number: 16 + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + md5: 73aaf86a425cc6e73fcf236a5a46396d + depends: + - _libgcc_mutex 0.1 conda_forge + - libgomp >=7.5.0 + constrains: + - openmp_impl 9999 + license: BSD-3-Clause + license_family: BSD + size: 23621 + timestamp: 1650670423406 +- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d + md5: 62ee74e96c5ebb0af99386de58cf9553 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + size: 252783 + timestamp: 1720974456583 +- conda: 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 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda + sha256: 2a70ed95ace8a3f8a29e6cd1476a943df294a7111dfb3e152e3478c4c889b7ac + md5: 95db94f75ba080a22eb623590993167b + depends: + - __unix + license: ISC + size: 152283 + timestamp: 1745653616541 +- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda + sha256: 8aee789c82d8fdd997840c952a586db63c6890b00e88c4fb6e80a38edd5f51c0 + md5: 94b550b8d3a614dbd326af798c7dfb40 + depends: + - __unix + - python >=3.10 + license: BSD-3-Clause + license_family: BSD + size: 87749 + timestamp: 1747811451319 +- conda: 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 +- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.3-py313hd8ed1ab_101.conda + noarch: generic + sha256: 28baf119fd50412aae5dc7ef5497315aa40f9515ffa4ce3e4498f6b557038412 + md5: 904a822cbd380adafb9070debf8579a8 + depends: + - python >=3.13,<3.14.0a0 + - python_abi * *_cp313 + license: Python-2.0 + size: 47856 + timestamp: 1744663173137 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745 + md5: 63ccfdc3a3ce25b027b8767eb722fca8 + depends: + - python >=3.9 + - zipp >=3.20 + - python + license: Apache-2.0 + size: 34641 + timestamp: 1747934053147 +- conda: 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 +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.8.1-pyh31011fe_0.conda + sha256: 56a7a7e907f15cca8c4f9b0c99488276d4cb10821d2d15df9245662184872e81 + md5: b7d89d860ebcda28a5303526cdee68ab + depends: + - __unix + - platformdirs >=2.5 + - python >=3.8 + - traitlets >=5.3 + license: BSD-3-Clause + license_family: BSD + size: 59562 + timestamp: 1748333186063 +- conda: 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 +- conda: 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 +- conda: 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 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda + sha256: db73f38155d901a610b2320525b9dd3b31e4949215c870685fd92ea61b5ce472 + md5: 01f8d123c96816249efd255a31ad7712 + depends: + - __glibc >=2.17,<3.0.a0 + constrains: + - binutils_impl_linux-64 2.43 + license: GPL-3.0-only + license_family: GPL + size: 671240 + timestamp: 1740155456116 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-31_h59b9bed_openblas.conda + build_number: 31 + sha256: 9839fc4ac0cbb0aa3b9eea520adfb57311838959222654804e58f6f2d1771db5 + md5: 728dbebd0f7a20337218beacffd37916 + depends: + - libopenblas >=0.3.29,<0.3.30.0a0 + - libopenblas >=0.3.29,<1.0a0 + constrains: + - liblapacke =3.9.0=31*_openblas + - liblapack =3.9.0=31*_openblas + - blas =2.131=openblas + - mkl <2025 + - libcblas =3.9.0=31*_openblas + license: BSD-3-Clause + license_family: BSD + size: 16859 + timestamp: 1740087969120 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-31_h10e41b3_openblas.conda + build_number: 31 + sha256: 369586e7688b59b4f92c709b99d847d66d4d095425db327dd32ee5e6ab74697f + md5: 39b053da5e7035c6592102280aa7612a + depends: + - libopenblas >=0.3.29,<0.3.30.0a0 + - libopenblas >=0.3.29,<1.0a0 + constrains: + - liblapacke =3.9.0=31*_openblas + - libcblas =3.9.0=31*_openblas + - blas =2.131=openblas + - mkl <2025 + - liblapack =3.9.0=31*_openblas + license: BSD-3-Clause + license_family: BSD + size: 17123 + timestamp: 1740088119350 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-31_he106b2a_openblas.conda + build_number: 31 + sha256: ede8545011f5b208b151fe3e883eb4e31d495ab925ab7b9ce394edca846e0c0d + md5: abb32c727da370c481a1c206f5159ce9 + depends: + - libblas 3.9.0 31_h59b9bed_openblas + constrains: + - liblapacke =3.9.0=31*_openblas + - liblapack =3.9.0=31*_openblas + - blas =2.131=openblas + license: BSD-3-Clause + license_family: BSD + size: 16796 + timestamp: 1740087984429 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-31_hb3479ef_openblas.conda + build_number: 31 + sha256: f237486cc9118d09d0f3ff8820280de34365f98ee7b7dc5ab923b04c7cbf25a5 + md5: 7353c2bf0e90834cb70545671996d871 + depends: + - libblas 3.9.0 31_h10e41b3_openblas + constrains: + - liblapacke =3.9.0=31*_openblas + - blas =2.131=openblas + - liblapack =3.9.0=31*_openblas + license: BSD-3-Clause + license_family: BSD + size: 17032 + timestamp: 1740088127097 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-20.1.5-ha82da77_0.conda + sha256: 2765b6e23da91807ce2ed44587fbaadd5ba933b0269810b3c22462f9582aedd3 + md5: 4ef1bdb94d42055f511bb358f2048c58 + depends: + - __osx >=11.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + size: 568010 + timestamp: 1747262879889 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda + sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 + md5: c277e0a4d549b03ac1e9d6cbbe3d017b + depends: + - ncurses + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - ncurses >=6.5,<7.0a0 + license: BSD-2-Clause + license_family: BSD + size: 134676 + timestamp: 1738479519902 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20250104-pl5321hafb1f1b_0.conda + sha256: 66aa216a403de0bb0c1340a88d1a06adaff66bae2cfd196731aa24db9859d631 + md5: 44083d2d2c2025afca315c7a172eab2b + depends: + - ncurses + - __osx >=11.0 + - ncurses >=6.5,<7.0a0 + license: BSD-2-Clause + license_family: BSD + size: 107691 + timestamp: 1738479560845 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda + sha256: 33ab03438aee65d6aa667cf7d90c91e5e7d734c19a67aa4c7040742c0a13d505 + md5: db0bfbe7dd197b68ad5f30333bae6ce0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - expat 2.7.0.* + license: MIT + license_family: MIT + size: 74427 + timestamp: 1743431794976 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.0-h286801f_0.conda + sha256: ee550e44765a7bbcb2a0216c063dcd53ac914a7be5386dd0554bd06e6be61840 + md5: 6934bbb74380e045741eb8637641a65b + depends: + - __osx >=11.0 + constrains: + - expat 2.7.0.* + license: MIT + license_family: MIT + size: 65714 + timestamp: 1743431789879 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda + sha256: 764432d32db45466e87f10621db5b74363a9f847d2b8b1f9743746cd160f06ab + md5: ede4673863426c0883c0063d853bbd85 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + size: 57433 + timestamp: 1743434498161 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.6-h1da3d7d_1.conda + sha256: c6a530924a9b14e193ea9adfe92843de2a806d1b7dbfd341546ece9653129e60 + md5: c215a60c2935b517dcda8cad4705734d + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + size: 39839 + timestamp: 1743434670405 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda + sha256: 0024f9ab34c09629621aefd8603ef77bf9d708129b0dd79029e502c39ffc2195 + md5: ea8ac52380885ed41c1baa8f1d6d2b93 + depends: + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 + constrains: + - libgcc-ng ==15.1.0=*_2 + - libgomp 15.1.0 h767d61c_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 829108 + timestamp: 1746642191935 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda + sha256: 0ab5421a89f090f3aa33841036bb3af4ed85e1f91315b528a9d75fab9aad51ae + md5: ddca86c7040dd0e73b2b69bd7833d225 + depends: + - libgcc 15.1.0 h767d61c_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 34586 + timestamp: 1746642200749 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_2.conda + sha256: 914daa4f632b786827ea71b5e07cd00d25fc6e67789db2f830dc481eec660342 + md5: f92e6e0a3c0c0c85561ef61aa59d555d + depends: + - libgfortran5 15.1.0 hcea5267_2 + constrains: + - libgfortran-ng ==15.1.0=*_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 34541 + timestamp: 1746642233221 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-14.2.0-heb5dd2a_105.conda + sha256: 6ca48762c330d1cdbdaa450f197ccc16ffb7181af50d112b4ccf390223d916a1 + md5: ad35937216e65cfeecd828979ee5e9e6 + depends: + - libgfortran5 14.2.0 h2c44a93_105 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 155474 + timestamp: 1743913530958 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_2.conda + sha256: be23750f3ca1a5cb3ada858c4f633effe777487d1ea35fddca04c0965c073350 + md5: 01de444988ed960031dbe84cf4f9b1fc + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15.1.0 + constrains: + - libgfortran 15.1.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 1569986 + timestamp: 1746642212331 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-14.2.0-h2c44a93_105.conda + sha256: de09987e1080f71e2285deec45ccb949c2620a672b375029534fbb878e471b22 + md5: 06f35a3b1479ec55036e1c9872f97f2c + depends: + - llvm-openmp >=8.0.0 + constrains: + - libgfortran 14.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 806283 + timestamp: 1743913488925 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda + sha256: 05fff3dc7e80579bc28de13b511baec281c4343d703c406aefd54389959154fb + md5: fbe7d535ff9d3a168c148e07358cd5b1 + depends: + - __glibc >=2.17,<3.0.a0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 452635 + timestamp: 1746642113092 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-31_h7ac8fdf_openblas.conda + build_number: 31 + sha256: f583661921456e798aba10972a8abbd9d33571c655c1f66eff450edc9cbefcf3 + md5: 452b98eafe050ecff932f0ec832dd03f + depends: + - libblas 3.9.0 31_h59b9bed_openblas + constrains: + - libcblas =3.9.0=31*_openblas + - liblapacke =3.9.0=31*_openblas + - blas =2.131=openblas + license: BSD-3-Clause + license_family: BSD + size: 16790 + timestamp: 1740087997375 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-31_hc9a63f6_openblas.conda + build_number: 31 + sha256: fe55b9aaf82c6c0192c3d1fcc9b8e884f97492dda9a8de5dae29334b3135fab5 + md5: ff57a55a2cbce171ef5707fb463caf19 + depends: + - libblas 3.9.0 31_h10e41b3_openblas + constrains: + - liblapacke =3.9.0=31*_openblas + - libcblas =3.9.0=31*_openblas + - blas =2.131=openblas + license: BSD-3-Clause + license_family: BSD + size: 17033 + timestamp: 1740088134988 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda + sha256: eeff241bddc8f1b87567dd6507c9f441f7f472c27f0860a07628260c000ef27c + md5: a76fd702c93cd2dfd89eff30a5fd45a8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - xz 5.8.1.* + - xz ==5.8.1=*_1 + license: 0BSD + size: 112845 + timestamp: 1746531470399 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_1.conda + sha256: 5ab62c179229640c34491a7de806ad4ab7bec47ea2b5fc2136e3b8cf5ef26a57 + md5: 4e8ef3d79c97c9021b34d682c24c2044 + depends: + - __osx >=11.0 + constrains: + - xz 5.8.1.* + - xz ==5.8.1=*_1 + license: 0BSD + size: 92218 + timestamp: 1746531818330 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda + sha256: 3aa92d4074d4063f2a162cd8ecb45dccac93e543e565c01a787e16a43501f7ee + md5: c7e925f37e3b40d893459e625f6a53f1 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: BSD-2-Clause + size: 91183 + timestamp: 1748393666725 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda + sha256: 0a1875fc1642324ebd6c4ac864604f3f18f57fbcf558a8264f6ced028a3c75b2 + md5: 85ccccb47823dd9f7a99d2c7f530342f + depends: + - __osx >=11.0 + license: BSD-2-Clause + size: 71829 + timestamp: 1748393749336 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.29-pthreads_h94d23a6_0.conda + sha256: cc5389ea254f111ef17a53df75e8e5209ef2ea6117e3f8aced88b5a8e51f11c4 + md5: 0a4d0252248ef9a0f88f2ba8b8a08e12 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libgfortran + - libgfortran5 >=14.2.0 + constrains: + - openblas >=0.3.29,<0.3.30.0a0 + license: BSD-3-Clause + license_family: BSD + size: 5919288 + timestamp: 1739825731827 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.29-openmp_hf332438_0.conda + sha256: 8989d9e01ec8c9b2d48dbb5efbe70b356fcd15990fb53b64fcb84798982c0343 + md5: 0cd1148c68f09027ee0b0f0179f77c30 + depends: + - __osx >=11.0 + - libgfortran >=5 + - libgfortran5 >=13.2.0 + - llvm-openmp >=18.1.8 + constrains: + - openblas >=0.3.29,<0.3.30.0a0 + license: BSD-3-Clause + license_family: BSD + size: 4168442 + timestamp: 1739825514918 +- conda: 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 +- conda: 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 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.2-hee588c1_0.conda + sha256: 525d4a0e24843f90b3ff1ed733f0a2e408aa6dd18b9d4f15465595e078e104a2 + md5: 93048463501053a00739215ea3f36324 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + size: 916313 + timestamp: 1746637007836 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.49.2-h3f77e49_0.conda + sha256: d89f979497cf56eccb099b6ab9558da7bba1f1ba264f50af554e0ea293d9dcf9 + md5: 85f443033cd5b3df82b5cabf79bddb09 + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + size: 899462 + timestamp: 1746637228408 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda + sha256: 6ae3d153e78f6069d503d9309f2cac6de5b93d067fc6433160a4c05226a5dad4 + md5: 1cb1c67961f6dd257eae9e9691b341aa + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc 15.1.0 h767d61c_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 3902355 + timestamp: 1746642227493 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.conda + sha256: 11bea86e11de7d6bce87589197a383344df3fa0a3552dab7e931785ff1159a5b + md5: 9d2072af184b5caa29492bf2344597bb + depends: + - libstdcxx 15.1.0 h8f9b012_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + size: 34647 + timestamp: 1746642266826 +- conda: 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 +- conda: 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 +- conda: 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 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-20.1.5-hdb05f8b_0.conda + sha256: 3515d520338a334c987ce2737dfba1ebd66eb1e360582c7511738ad3dc8a9145 + md5: 66771cb733ad80bd46b66f856601001a + depends: + - __osx >=11.0 + constrains: + - openmp 20.1.5|20.1.5.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + size: 282100 + timestamp: 1747367434936 +- conda: https://conda.modular.com/max/noarch/max-25.3.0-release.conda + noarch: python + sha256: beb3f9b8d4b6e76b36712800f850076a3bd73cb5dc95e9fc193806b64ffd204a + depends: + - max-core ==25.3.0 release + - max-python ==25.3.0 release + - mojo-jupyter ==25.3.0 release + - mblack ==25.3.0 release + license: LicenseRef-Modular-Proprietary + size: 10799 + timestamp: 1746489476724 +- conda: https://conda.modular.com/max/linux-64/max-core-25.3.0-release.conda + sha256: 3df6452ff20c9c3287e76c142d8352fbdc57dd3fa83e3e4094a81322f5f205ce + depends: + - mblack ==25.3.0 release + license: LicenseRef-Modular-Proprietary + size: 230262703 + timestamp: 1746489471236 +- conda: https://conda.modular.com/max/osx-arm64/max-core-25.3.0-release.conda + sha256: a22db5fe4bb0decbd49ef7076fe653e37d9fcf96e8cd41b8176bd833f9926700 + depends: + - mblack ==25.3.0 release + license: LicenseRef-Modular-Proprietary + size: 192365001 + timestamp: 1746490850390 +- conda: https://conda.modular.com/max/linux-64/max-python-25.3.0-release.conda + noarch: python + sha256: dceb06f03fe79e6e977b162ba4f58554a3827dc49e6597006e2fe949c0e48bed + depends: + - click >=8.0.0 + - numpy >=1.18 + - packaging >=24.1 + - tqdm >=4.67.1 + - python-gil >=3.9,<3.14 + - max-core ==25.3.0 release + constrains: + - aiohttp >=3.11.12 + - gguf >=0.14.0 + - hf-transfer >=0.1.9 + - huggingface_hub >=0.28.0 + - nvitop >=1.4.1 + - pillow >=11.0.0 + - psutil >=6.1.1 + - requests >=2.32.3 + - rich >=13.9.4 + - safetensors >=0.5.2 + - scipy >=1.13.0 + - pytorch >=2.5.0,<=2.6.0 + - transformers >=4.49.0,!=4.51.0 + - uvicorn >=0.34.0 + - uvloop >=0.21.0 + - xgrammar >=0.1.18 + - asgiref >=3.8.1 + - fastapi >=0.114.2,<0.115 + - grpcio >=1.68.0 + - grpcio-tools >=1.68.0 + - grpcio-reflection >=1.68.0 + - httpx >=0.28.1,<0.29 + - msgspec >=0.19.0 + - opentelemetry-api >=1.29.0 + - opentelemetry-exporter-otlp-proto-http >=1.27.0,<1.31.1 + - opentelemetry-exporter-prometheus >=0.50b0,<1.1.12.0rc1 + - opentelemetry-sdk >=1.29.0,<2.0 + - prometheus-async >=22.2.0 + - prometheus_client >=0.21.0 + - protobuf ==5.29.3 + - pydantic-settings >=2.7.1 + - pydantic + - pyinstrument >=5.0.1 + - python-json-logger >=2.0.7 + - pyzmq >=26.3.0 + - sentinel >=0.3.0 + - sse-starlette >=2.1.2 + - taskgroup >=0.2.2 + - tokenizers >=0.19.0 + license: LicenseRef-Modular-Proprietary + size: 13093338 + timestamp: 1746489471236 +- conda: https://conda.modular.com/max/osx-arm64/max-python-25.3.0-release.conda + noarch: python + sha256: 29280854293c0a8f642093094e4bc7a7a64bece926b2ca5d98493e4bf488bb50 + depends: + - click >=8.0.0 + - numpy >=1.18 + - packaging >=24.1 + - tqdm >=4.67.1 + - python-gil >=3.9,<3.14 + - max-core ==25.3.0 release + constrains: + - aiohttp >=3.11.12 + - gguf >=0.14.0 + - hf-transfer >=0.1.9 + - huggingface_hub >=0.28.0 + - nvitop >=1.4.1 + - pillow >=11.0.0 + - psutil >=6.1.1 + - requests >=2.32.3 + - rich >=13.9.4 + - safetensors >=0.5.2 + - scipy >=1.13.0 + - pytorch >=2.5.0,<=2.6.0 + - transformers >=4.49.0,!=4.51.0 + - uvicorn >=0.34.0 + - uvloop >=0.21.0 + - xgrammar >=0.1.18 + - asgiref >=3.8.1 + - fastapi >=0.114.2,<0.115 + - grpcio >=1.68.0 + - grpcio-tools >=1.68.0 + - grpcio-reflection >=1.68.0 + - httpx >=0.28.1,<0.29 + - msgspec >=0.19.0 + - opentelemetry-api >=1.29.0 + - opentelemetry-exporter-otlp-proto-http >=1.27.0,<1.31.1 + - opentelemetry-exporter-prometheus >=0.50b0,<1.1.12.0rc1 + - opentelemetry-sdk >=1.29.0,<2.0 + - prometheus-async >=22.2.0 + - prometheus_client >=0.21.0 + - protobuf ==5.29.3 + - pydantic-settings >=2.7.1 + - pydantic + - pyinstrument >=5.0.1 + - python-json-logger >=2.0.7 + - pyzmq >=26.3.0 + - sentinel >=0.3.0 + - sse-starlette >=2.1.2 + - taskgroup >=0.2.2 + - tokenizers >=0.19.0 + license: LicenseRef-Modular-Proprietary + size: 11415264 + timestamp: 1746490850390 +- conda: https://conda.modular.com/max/noarch/mblack-25.3.0-release.conda + noarch: python + sha256: d9b749052c6b240f028529e77f785df2c7a8ec4beca360b11f211de17b2a0cc3 + depends: + - python >=3.9,<3.14 + - click >=8.0.0 + - mypy_extensions >=0.4.3 + - packaging >=22.0 + - pathspec >=0.9.0 + - platformdirs >=2 + - typing_extensions >=v4.12.2 + - python + license: MIT + size: 131780 + timestamp: 1746489476723 +- conda: https://conda.modular.com/max/noarch/mojo-jupyter-25.3.0-release.conda + noarch: python + sha256: 724ab3286a4d7d150f5454bea0ccf10931e38cc221481dedc81aa980a4775304 + depends: + - max-core ==25.3.0 release + - python >=3.9,<3.14 + - jupyter_client >=8.6.2,<8.7 + - python + license: LicenseRef-Modular-Proprietary + size: 23880 + timestamp: 1746489476724 +- conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda + sha256: 6ed158e4e5dd8f6a10ad9e525631e35cee8557718f83de7a4e3966b1f772c4b1 + md5: e9c622e0d00fa24a6292279af3ab6d06 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 11766 + timestamp: 1745776666688 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 + md5: 47e340acb35de30501a76c7c799c41d7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: X11 AND BSD-3-Clause + size: 891641 + timestamp: 1738195959188 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + sha256: 2827ada40e8d9ca69a153a45f7fd14f32b2ead7045d3bbb5d10964898fe65733 + md5: 068d497125e4bf8a66bf707254fff5ae + depends: + - __osx >=11.0 + license: X11 AND BSD-3-Clause + size: 797030 + timestamp: 1738196177597 +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.6-py313h17eae1a_0.conda + sha256: 7da9ebd80a7311e0482c4c6393be0eddf0012b3846df528e375037409b3d2b3d + md5: 7a2d2f9adecd86ed5c29c2115354f615 + depends: + - __glibc >=2.17,<3.0.a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=13 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx >=13 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 8517250 + timestamp: 1747545080496 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.2.6-py313h41a2e72_0.conda + sha256: 2206aa59ee700f00896604178864ebe54ab8e87e479a1707def23636a6a62797 + md5: 6a5bd221d600de2bf1b408678dab01b7 + depends: + - __osx >=11.0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=18 + - liblapack >=3.9.0,<4.0a0 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + constrains: + - numpy-base <0a0 + license: BSD-3-Clause + license_family: BSD + size: 6532195 + timestamp: 1747545087365 +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_1.conda + sha256: b4491077c494dbf0b5eaa6d87738c22f2154e9277e5293175ec187634bd808a0 + md5: de356753cfdbffcde5bb1e86e3aa6cd0 + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + size: 3117410 + timestamp: 1746223723843 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.0-h81ee809_1.conda + sha256: 73d366c1597a10bcd5f3604b5f0734b31c23225536e03782c6a13f9be9d01bff + md5: 5c7aef00ef60738a14e0e612cfc5bcde + depends: + - __osx >=11.0 + - ca-certificates + license: Apache-2.0 + license_family: Apache + size: 3064197 + timestamp: 1746223530698 +- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda + sha256: 289861ed0c13a15d7bbb408796af4de72c2fe67e2bcb0de98f4c3fce259d7991 + md5: 58335b26c38bf4a20f399384c33cbcf9 + depends: + - python >=3.8 + - python + license: Apache-2.0 + license_family: APACHE + size: 62477 + timestamp: 1745345660407 +- conda: 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 +- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda + sha256: 0f48999a28019c329cd3f6fd2f01f09fc32cc832f7d6bbe38087ddac858feaa3 + md5: 424844562f5d337077b445ec6b1398a7 + depends: + - python >=3.9 + - python + license: MIT + license_family: MIT + size: 23531 + timestamp: 1746710438805 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.3-hf636f53_101_cp313.conda + build_number: 101 + sha256: eecb11ea60f8143deeb301eab2e04d04f7acb83659bb20fdfeacd431a5f31168 + md5: 10622e12d649154af0bd76bcf33a7c5c + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.7.0,<3.0a0 + - libffi >=3.4.6,<3.5.0a0 + - libgcc >=13 + - liblzma >=5.8.1,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.49.1,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.5.0,<4.0a0 + - python_abi 3.13.* *_cp313 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + license: Python-2.0 + size: 33268245 + timestamp: 1744665022734 + python_site_packages_path: lib/python3.13/site-packages +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.3-h81fe080_101_cp313.conda + build_number: 101 + sha256: f96468ab1e6f27bda92157bfc7f272d1fbf2ba2f85697bdc5bb106bccba1befb + md5: b3240ae8c42a3230e0b7f831e1c72e9f + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.7.0,<3.0a0 + - libffi >=3.4.6,<3.5.0a0 + - liblzma >=5.8.1,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.49.1,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.5.0,<4.0a0 + - python_abi 3.13.* *_cp313 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + license: Python-2.0 + size: 12136505 + timestamp: 1744663807953 + python_site_packages_path: lib/python3.13/site-packages +- conda: 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 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.3-h4df99d1_101.conda + sha256: 54a19e0ed3be0c3397301482b44008fc8d21058ebb9d17ed7046b14bda0e16f4 + md5: 82c2641f2f0f513f7d2d1b847a2588e3 + depends: + - cpython 3.13.3.* + - python_abi * *_cp313 + license: Python-2.0 + size: 47829 + timestamp: 1744663227117 +- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-7_cp313.conda + build_number: 7 + sha256: 0595134584589064f56e67d3de1d8fcbb673a972946bce25fb593fb092fdcd97 + md5: e84b44e6300f1703cb25d29120c5b1d8 + constrains: + - python 3.13.* *_cp313 + license: BSD-3-Clause + license_family: BSD + size: 6988 + timestamp: 1745258852285 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.4.0-py313h8e95178_0.conda + sha256: 2d08a2fd383ae3d9eb1426d546bd5ae4606644be5ebf14a403beafdb45306aa0 + md5: 30887c086133d76386250ea4e9b46d4b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libsodium >=1.0.20,<1.0.21.0a0 + - libstdcxx >=13 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + - zeromq >=4.3.5,<4.4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 385078 + timestamp: 1743831458342 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.4.0-py313he6960b1_0.conda + sha256: 0e0ee756e1fb46456ff398ef77dce595411043836bc47a92d30c9240c9fcef87 + md5: 7f355f62656985be979c4c0003723d0a + depends: + - __osx >=11.0 + - libcxx >=18 + - libsodium >=1.0.20,<1.0.21.0a0 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + - zeromq >=4.3.5,<4.4.0a0 + license: BSD-3-Clause + license_family: BSD + size: 369287 + timestamp: 1743831518822 +- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda + sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c + md5: 283b96675859b20a825f8fa30f311446 + depends: + - libgcc >=13 + - ncurses >=6.5,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 282480 + timestamp: 1740379431762 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda + sha256: 7db04684d3904f6151eff8673270922d31da1eea7fa73254d01c437f49702e34 + md5: 63ef3f6e6d6d5c589e64f11263dc5676 + depends: + - ncurses >=6.5,<7.0a0 + license: GPL-3.0-only + license_family: GPL + size: 252359 + timestamp: 1740379663071 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.15.2-py313h86fcf2b_0.conda + sha256: c3052b04397f76188611c8d853ac749986874d6a5869292b92ebae7ce093c798 + md5: ca68acd9febc86448eeed68d0c6c8643 + depends: + - __glibc >=2.17,<3.0.a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=13 + - libgfortran + - libgfortran5 >=13.3.0 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx >=13 + - numpy <2.5 + - numpy >=1.21,<3 + - numpy >=1.23.5 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + license: BSD-3-Clause + license_family: BSD + size: 17233404 + timestamp: 1739791996980 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.15.2-py313h9a24e0a_0.conda + sha256: 2cce94fba335df6ea1c7ce5554ba8f0ef8ec0cf1a7e6918bfc2d8b2abf880794 + md5: 45e6244d4265a576a299c0a1d8b09ad9 + depends: + - __osx >=11.0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=18 + - libgfortran >=5 + - libgfortran5 >=13.2.0 + - liblapack >=3.9.0,<4.0a0 + - numpy <2.5 + - numpy >=1.21,<3 + - numpy >=1.23.5 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + license: BSD-3-Clause + license_family: BSD + size: 14548640 + timestamp: 1739792791585 +- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda + sha256: 41db0180680cc67c3fa76544ffd48d6a5679d96f4b71d7498a759e94edc9a2db + md5: a451d576819089b0d672f18768be0f65 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 16385 + timestamp: 1733381032766 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda + sha256: a84ff687119e6d8752346d1d408d5cf360dee0badd487a472aa8ddedfdc219e1 + md5: a0116df4f4ed05c303811a837d5b39d8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: TCL + license_family: BSD + size: 3285204 + timestamp: 1748387766691 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_2.conda + sha256: cb86c522576fa95c6db4c878849af0bccfd3264daf0cc40dd18e7f4a7bfced0e + md5: 7362396c170252e7b7b0c8fb37fe9c78 + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: TCL + license_family: BSD + size: 3125538 + timestamp: 1748388189063 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.1-py313h536fd9c_0.conda + sha256: 282c9c3380217119c779fc4c432b0e4e1e42e9a6265bfe36b6f17f6b5d4e6614 + md5: e9434a5155db25c38ade26f71a2f5a48 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + license: Apache-2.0 + license_family: Apache + size: 873269 + timestamp: 1748003477089 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.1-py313h90d716c_0.conda + sha256: 29c623cfb1f9ea7c1d865cf5f52ae6faa6497ceddbe7841ae27901a21f8cf79f + md5: 1ab3bef3e9aa0bba9eee2dfbedab1dba + depends: + - __osx >=11.0 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + license: Apache-2.0 + license_family: Apache + size: 874352 + timestamp: 1748003547444 +- conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda + sha256: 11e2c85468ae9902d24a27137b6b39b4a78099806e551d390e394a8c34b48e40 + md5: 9efbfdc37242619130ea42b1cc4ed861 + depends: + - colorama + - python >=3.9 + license: MPL-2.0 or MIT + size: 89498 + timestamp: 1735661472632 +- conda: 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 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.13.2-pyh29332c3_0.conda + sha256: a8aaf351e6461de0d5d47e4911257e25eec2fa409d71f3b643bb2f748bde1c08 + md5: 83fc6ae00127671e301c9f44254c31b8 + depends: + - python >=3.9 + - python + license: PSF-2.0 + license_family: PSF + size: 52189 + timestamp: 1744302253997 +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda + sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192 + md5: 4222072737ccff51314b5ece9c7d6f5a + license: LicenseRef-Public-Domain + size: 122968 + timestamp: 1742727099393 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_7.conda + sha256: a4dc72c96848f764bb5a5176aa93dd1e9b9e52804137b99daeebba277b31ea10 + md5: 3947a35e916fcc6b9825449affbf4214 + depends: + - __glibc >=2.17,<3.0.a0 + - krb5 >=1.21.3,<1.22.0a0 + - libgcc >=13 + - libsodium >=1.0.20,<1.0.21.0a0 + - libstdcxx >=13 + license: MPL-2.0 + license_family: MOZILLA + size: 335400 + timestamp: 1731585026517 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hc1bb282_7.conda + sha256: 9e585569fe2e7d3bea71972cd4b9f06b1a7ab8fa7c5139f92a31cbceecf25a8a + md5: f7e6b65943cb73bce0143737fded08f1 + depends: + - __osx >=11.0 + - krb5 >=1.21.3,<1.22.0a0 + - libcxx >=18 + - libsodium >=1.0.20,<1.0.21.0a0 + license: MPL-2.0 + license_family: MOZILLA + size: 281565 + timestamp: 1731585108039 +- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.22.0-pyhd8ed1ab_0.conda + sha256: 3f7a58ff4ff1d337d56af0641a7eba34e7eea0bf32e49934c96ee171640f620b + md5: 234be740b00b8e41567e5b0ed95aaba9 + depends: + - python >=3.9 + license: MIT + license_family: MIT + size: 22691 + timestamp: 1748277499928 diff --git a/pixi.toml b/pixi.toml new file mode 100644 index 00000000..253c79bf --- /dev/null +++ b/pixi.toml @@ -0,0 +1,61 @@ +[project] +channels = [ + "conda-forge", + "https://conda.modular.com/max", + "https://repo.prefix.dev/modular-community", +] +platforms = ["osx-arm64", "linux-64"] +name = "NuMojo" +version = "0.7.0" +description = "NuMojo is a library for numerical computing written in Mojo 🔥" +authors = [ + "Shivasankar ", + "MadAlex1997 <>", + "Yuhao Zhu (朱宇浩) ", + "mmenendezg <>", + "sandstromviktor <>", + "durnwalder <>", +] +license = "Apache-2.0" +readme = "README.MD" + +[tasks] +# compile the package and copy it to the tests folder +package = "pixi run mojo package numojo && cp numojo.mojopkg tests/" +p = "clear && pixi run package" + +# format the package +format = "pixi run mojo format ./" + +# test whether tests pass on the built package +test = "pixi run package && pixi run mojo test tests -I tests/ && rm tests/numojo.mojopkg" +t = "clear && pixi run test" + +# run individual tests to avoid overheat +test_core = "pixi run package && pixi run mojo test tests/core -I tests/ && rm tests/numojo.mojopkg" +test_creation = "pixi run package && pixi run mojo test tests/routines/test_creation.mojo -I tests/ && rm tests/numojo.mojopkg" +test_functional = "pixi run package && pixi run mojo test tests/routines/test_functional.mojo -I tests/ && rm tests/numojo.mojopkg" +test_indexing = "pixi run package && pixi run mojo test tests/routines/test_indexing.mojo -I tests/ && rm tests/numojo.mojopkg" +test_linalg = "pixi run package && pixi run mojo test tests/routines/test_linalg.mojo -I tests/ && rm tests/numojo.mojopkg" +test_manipulation = "pixi run package && pixi run mojo test tests/routines/test_manipulation.mojo -I tests/ && rm tests/numojo.mojopkg" +test_math = "pixi run package && pixi run mojo test tests/routines/test_math.mojo -I tests/ && rm tests/numojo.mojopkg" +test_random = "pixi run package && pixi run mojo test tests/routines/test_random.mojo -I tests/ && rm tests/numojo.mojopkg" +test_statistics = "pixi run package && pixi run mojo test tests/routines/test_statistics.mojo -I tests/ && rm tests/numojo.mojopkg" +test_sorting = "pixi run package && pixi run mojo test tests/routines/test_sorting.mojo -I tests/ && rm tests/numojo.mojopkg" +test_searching = "pixi run package && pixi run mojo test tests/routines/test_searching.mojo -I tests/ && rm tests/numojo.mojopkg" + +# run all final checks before a commit +final = "pixi run format && pixi run test" +f = "clear && pixi run final" + +# Automatically Generate doc pages +doc_pages = "mojo doc numojo/ -o docs.json" + +# run everything and generate docs before release +release = "clear && pixi run final && pixi run doc_pages" + +[dependencies] +max = "==25.3" +python = ">=3.11" +numpy = ">=2.0" +scipy = ">=1.14" From d69770ccf3979c2f4a64baaabd667ad514020449 Mon Sep 17 00:00:00 2001 From: shivasankar Date: Wed, 28 May 2025 14:30:44 +0800 Subject: [PATCH 2/5] added test for load, save --- tests/routines/test_io.mojo | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tests/routines/test_io.mojo diff --git a/tests/routines/test_io.mojo b/tests/routines/test_io.mojo new file mode 100644 index 00000000..c768b167 --- /dev/null +++ b/tests/routines/test_io.mojo @@ -0,0 +1,32 @@ +from numojo.routines.io.files import load, save, loadtxt, savetxt +from numojo import ones, full +from python import Python +import os + +fn test_save_and_load() raises: + var np = Python.import_module("numpy") + var arr = ones[numojo.f32](numojo.Shape(10, 15)) + var fname = "test_save_load.npy" + save(fname, arr) + # Load with numpy for cross-check + var np_loaded = np.load(fname) + np.allclose(np_loaded, arr.to_numpy()) + # Load with numojo + var arr2 = load(fname) + np.allclose(arr2.to_numpy(), arr.to_numpy()) + # Clean up + os.remove(fname) + +fn test_savetxt_and_loadtxt() raises: + var np = Python.import_module("numpy") + var arr = full[numojo.f32](numojo.Shape(10, 15), fill_value = 5.0) + var fname = "test_savetxt_loadtxt.txt" + savetxt(fname, arr, fmt="%.2f") + # Load with numpy for cross-check + var np_loaded = np.loadtxt(fname) + np.allclose(np_loaded, arr.to_numpy()) + # Load with numojo + var arr2 = loadtxt(fname) + np.allclose(arr2.to_numpy(), arr.to_numpy()) + # Clean up + os.remove(fname) From 6e289f83df76784ba52edd44ca63ddeaadd7980a Mon Sep 17 00:00:00 2001 From: shivasankar Date: Wed, 28 May 2025 14:31:29 +0800 Subject: [PATCH 3/5] format tests --- tests/routines/test_io.mojo | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/routines/test_io.mojo b/tests/routines/test_io.mojo index c768b167..5a38d051 100644 --- a/tests/routines/test_io.mojo +++ b/tests/routines/test_io.mojo @@ -3,6 +3,7 @@ from numojo import ones, full from python import Python import os + fn test_save_and_load() raises: var np = Python.import_module("numpy") var arr = ones[numojo.f32](numojo.Shape(10, 15)) @@ -17,9 +18,10 @@ fn test_save_and_load() raises: # Clean up os.remove(fname) + fn test_savetxt_and_loadtxt() raises: var np = Python.import_module("numpy") - var arr = full[numojo.f32](numojo.Shape(10, 15), fill_value = 5.0) + var arr = full[numojo.f32](numojo.Shape(10, 15), fill_value=5.0) var fname = "test_savetxt_loadtxt.txt" savetxt(fname, arr, fmt="%.2f") # Load with numpy for cross-check From bcbbde88e0bd0df0bf3b5571575b6fbf1cf0ad97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ZHU=20Yuhao=20=E6=9C=B1=E5=AE=87=E6=B5=A9?= Date: Thu, 29 May 2025 19:45:01 +0200 Subject: [PATCH 4/5] Ignore pixi.lock for git --- pixi.lock | 1246 ----------------------------------------------------- 1 file changed, 1246 deletions(-) delete mode 100644 pixi.lock diff --git a/pixi.lock b/pixi.lock deleted file mode 100644 index 510d2ae7..00000000 --- a/pixi.lock +++ /dev/null @@ -1,1246 +0,0 @@ -version: 6 -environments: - default: - channels: - - url: https://conda.anaconda.org/conda-forge/ - - url: https://conda.modular.com/max/ - - url: https://repo.prefix.dev/modular-community/ - packages: - 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/linux-64/bzip2-1.0.8-h4bc722e_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-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/cpython-3.13.3-py313hd8ed1ab_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.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.8.1-pyh31011fe_0.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_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-31_h59b9bed_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-31_he106b2a_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-31_h7ac8fdf_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.29-pthreads_h94d23a6_0.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.49.2-hee588c1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.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/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.modular.com/max/noarch/max-25.3.0-release.conda - - conda: https://conda.modular.com/max/linux-64/max-core-25.3.0-release.conda - - conda: https://conda.modular.com/max/linux-64/max-python-25.3.0-release.conda - - conda: https://conda.modular.com/max/noarch/mblack-25.3.0-release.conda - - conda: https://conda.modular.com/max/noarch/mojo-jupyter-25.3.0-release.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.6-py313h17eae1a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.3-hf636f53_101_cp313.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-gil-3.13.3-h4df99d1_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-7_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.4.0-py313h8e95178_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.15.2-py313h86fcf2b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.1-py313h536fd9c_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/typing_extensions-4.13.2-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_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.22.0-pyhd8ed1ab_0.conda - osx-arm64: - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h99b78c6_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-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/cpython-3.13.3-py313hd8ed1ab_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.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.8.1-pyh31011fe_0.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-31_h10e41b3_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-31_hb3479ef_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-20.1.5-ha82da77_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20250104-pl5321hafb1f1b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.0-h286801f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.6-h1da3d7d_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-14.2.0-heb5dd2a_105.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-14.2.0-h2c44a93_105.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-31_hc9a63f6_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.29-openmp_hf332438_0.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.49.2-h3f77e49_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-20.1.5-hdb05f8b_0.conda - - conda: https://conda.modular.com/max/noarch/max-25.3.0-release.conda - - conda: https://conda.modular.com/max/osx-arm64/max-core-25.3.0-release.conda - - conda: https://conda.modular.com/max/osx-arm64/max-python-25.3.0-release.conda - - conda: https://conda.modular.com/max/noarch/mblack-25.3.0-release.conda - - conda: https://conda.modular.com/max/noarch/mojo-jupyter-25.3.0-release.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.2.6-py313h41a2e72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.0-h81ee809_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.3-h81fe080_101_cp313.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-gil-3.13.3-h4df99d1_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-7_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.4.0-py313he6960b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.15.2-py313h9a24e0a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.1-py313h90d716c_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/typing_extensions-4.13.2-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_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.22.0-pyhd8ed1ab_0.conda -packages: -- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 - md5: d7c89558ba9fa0495403155b64376d81 - license: None - size: 2562 - timestamp: 1578324546067 -- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - build_number: 16 - sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 - md5: 73aaf86a425cc6e73fcf236a5a46396d - depends: - - _libgcc_mutex 0.1 conda_forge - - libgomp >=7.5.0 - constrains: - - openmp_impl 9999 - license: BSD-3-Clause - license_family: BSD - size: 23621 - timestamp: 1650670423406 -- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d - md5: 62ee74e96c5ebb0af99386de58cf9553 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - license: bzip2-1.0.6 - license_family: BSD - size: 252783 - timestamp: 1720974456583 -- conda: 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 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda - sha256: 2a70ed95ace8a3f8a29e6cd1476a943df294a7111dfb3e152e3478c4c889b7ac - md5: 95db94f75ba080a22eb623590993167b - depends: - - __unix - license: ISC - size: 152283 - timestamp: 1745653616541 -- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.1-pyh707e725_0.conda - sha256: 8aee789c82d8fdd997840c952a586db63c6890b00e88c4fb6e80a38edd5f51c0 - md5: 94b550b8d3a614dbd326af798c7dfb40 - depends: - - __unix - - python >=3.10 - license: BSD-3-Clause - license_family: BSD - size: 87749 - timestamp: 1747811451319 -- conda: 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 -- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.3-py313hd8ed1ab_101.conda - noarch: generic - sha256: 28baf119fd50412aae5dc7ef5497315aa40f9515ffa4ce3e4498f6b557038412 - md5: 904a822cbd380adafb9070debf8579a8 - depends: - - python >=3.13,<3.14.0a0 - - python_abi * *_cp313 - license: Python-2.0 - size: 47856 - timestamp: 1744663173137 -- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745 - md5: 63ccfdc3a3ce25b027b8767eb722fca8 - depends: - - python >=3.9 - - zipp >=3.20 - - python - license: Apache-2.0 - size: 34641 - timestamp: 1747934053147 -- conda: 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 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.8.1-pyh31011fe_0.conda - sha256: 56a7a7e907f15cca8c4f9b0c99488276d4cb10821d2d15df9245662184872e81 - md5: b7d89d860ebcda28a5303526cdee68ab - depends: - - __unix - - platformdirs >=2.5 - - python >=3.8 - - traitlets >=5.3 - license: BSD-3-Clause - license_family: BSD - size: 59562 - timestamp: 1748333186063 -- conda: 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 -- conda: 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 -- conda: 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 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda - sha256: db73f38155d901a610b2320525b9dd3b31e4949215c870685fd92ea61b5ce472 - md5: 01f8d123c96816249efd255a31ad7712 - depends: - - __glibc >=2.17,<3.0.a0 - constrains: - - binutils_impl_linux-64 2.43 - license: GPL-3.0-only - license_family: GPL - size: 671240 - timestamp: 1740155456116 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-31_h59b9bed_openblas.conda - build_number: 31 - sha256: 9839fc4ac0cbb0aa3b9eea520adfb57311838959222654804e58f6f2d1771db5 - md5: 728dbebd0f7a20337218beacffd37916 - depends: - - libopenblas >=0.3.29,<0.3.30.0a0 - - libopenblas >=0.3.29,<1.0a0 - constrains: - - liblapacke =3.9.0=31*_openblas - - liblapack =3.9.0=31*_openblas - - blas =2.131=openblas - - mkl <2025 - - libcblas =3.9.0=31*_openblas - license: BSD-3-Clause - license_family: BSD - size: 16859 - timestamp: 1740087969120 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.9.0-31_h10e41b3_openblas.conda - build_number: 31 - sha256: 369586e7688b59b4f92c709b99d847d66d4d095425db327dd32ee5e6ab74697f - md5: 39b053da5e7035c6592102280aa7612a - depends: - - libopenblas >=0.3.29,<0.3.30.0a0 - - libopenblas >=0.3.29,<1.0a0 - constrains: - - liblapacke =3.9.0=31*_openblas - - libcblas =3.9.0=31*_openblas - - blas =2.131=openblas - - mkl <2025 - - liblapack =3.9.0=31*_openblas - license: BSD-3-Clause - license_family: BSD - size: 17123 - timestamp: 1740088119350 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-31_he106b2a_openblas.conda - build_number: 31 - sha256: ede8545011f5b208b151fe3e883eb4e31d495ab925ab7b9ce394edca846e0c0d - md5: abb32c727da370c481a1c206f5159ce9 - depends: - - libblas 3.9.0 31_h59b9bed_openblas - constrains: - - liblapacke =3.9.0=31*_openblas - - liblapack =3.9.0=31*_openblas - - blas =2.131=openblas - license: BSD-3-Clause - license_family: BSD - size: 16796 - timestamp: 1740087984429 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.9.0-31_hb3479ef_openblas.conda - build_number: 31 - sha256: f237486cc9118d09d0f3ff8820280de34365f98ee7b7dc5ab923b04c7cbf25a5 - md5: 7353c2bf0e90834cb70545671996d871 - depends: - - libblas 3.9.0 31_h10e41b3_openblas - constrains: - - liblapacke =3.9.0=31*_openblas - - blas =2.131=openblas - - liblapack =3.9.0=31*_openblas - license: BSD-3-Clause - license_family: BSD - size: 17032 - timestamp: 1740088127097 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-20.1.5-ha82da77_0.conda - sha256: 2765b6e23da91807ce2ed44587fbaadd5ba933b0269810b3c22462f9582aedd3 - md5: 4ef1bdb94d42055f511bb358f2048c58 - depends: - - __osx >=11.0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - size: 568010 - timestamp: 1747262879889 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda - sha256: d789471216e7aba3c184cd054ed61ce3f6dac6f87a50ec69291b9297f8c18724 - md5: c277e0a4d549b03ac1e9d6cbbe3d017b - depends: - - ncurses - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - ncurses >=6.5,<7.0a0 - license: BSD-2-Clause - license_family: BSD - size: 134676 - timestamp: 1738479519902 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20250104-pl5321hafb1f1b_0.conda - sha256: 66aa216a403de0bb0c1340a88d1a06adaff66bae2cfd196731aa24db9859d631 - md5: 44083d2d2c2025afca315c7a172eab2b - depends: - - ncurses - - __osx >=11.0 - - ncurses >=6.5,<7.0a0 - license: BSD-2-Clause - license_family: BSD - size: 107691 - timestamp: 1738479560845 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda - sha256: 33ab03438aee65d6aa667cf7d90c91e5e7d734c19a67aa4c7040742c0a13d505 - md5: db0bfbe7dd197b68ad5f30333bae6ce0 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - constrains: - - expat 2.7.0.* - license: MIT - license_family: MIT - size: 74427 - timestamp: 1743431794976 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.0-h286801f_0.conda - sha256: ee550e44765a7bbcb2a0216c063dcd53ac914a7be5386dd0554bd06e6be61840 - md5: 6934bbb74380e045741eb8637641a65b - depends: - - __osx >=11.0 - constrains: - - expat 2.7.0.* - license: MIT - license_family: MIT - size: 65714 - timestamp: 1743431789879 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - sha256: 764432d32db45466e87f10621db5b74363a9f847d2b8b1f9743746cd160f06ab - md5: ede4673863426c0883c0063d853bbd85 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - size: 57433 - timestamp: 1743434498161 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.4.6-h1da3d7d_1.conda - sha256: c6a530924a9b14e193ea9adfe92843de2a806d1b7dbfd341546ece9653129e60 - md5: c215a60c2935b517dcda8cad4705734d - depends: - - __osx >=11.0 - license: MIT - license_family: MIT - size: 39839 - timestamp: 1743434670405 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda - sha256: 0024f9ab34c09629621aefd8603ef77bf9d708129b0dd79029e502c39ffc2195 - md5: ea8ac52380885ed41c1baa8f1d6d2b93 - depends: - - __glibc >=2.17,<3.0.a0 - - _openmp_mutex >=4.5 - constrains: - - libgcc-ng ==15.1.0=*_2 - - libgomp 15.1.0 h767d61c_2 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 829108 - timestamp: 1746642191935 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda - sha256: 0ab5421a89f090f3aa33841036bb3af4ed85e1f91315b528a9d75fab9aad51ae - md5: ddca86c7040dd0e73b2b69bd7833d225 - depends: - - libgcc 15.1.0 h767d61c_2 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 34586 - timestamp: 1746642200749 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.1.0-h69a702a_2.conda - sha256: 914daa4f632b786827ea71b5e07cd00d25fc6e67789db2f830dc481eec660342 - md5: f92e6e0a3c0c0c85561ef61aa59d555d - depends: - - libgfortran5 15.1.0 hcea5267_2 - constrains: - - libgfortran-ng ==15.1.0=*_2 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 34541 - timestamp: 1746642233221 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-14.2.0-heb5dd2a_105.conda - sha256: 6ca48762c330d1cdbdaa450f197ccc16ffb7181af50d112b4ccf390223d916a1 - md5: ad35937216e65cfeecd828979ee5e9e6 - depends: - - libgfortran5 14.2.0 h2c44a93_105 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 155474 - timestamp: 1743913530958 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.1.0-hcea5267_2.conda - sha256: be23750f3ca1a5cb3ada858c4f633effe777487d1ea35fddca04c0965c073350 - md5: 01de444988ed960031dbe84cf4f9b1fc - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=15.1.0 - constrains: - - libgfortran 15.1.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 1569986 - timestamp: 1746642212331 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-14.2.0-h2c44a93_105.conda - sha256: de09987e1080f71e2285deec45ccb949c2620a672b375029534fbb878e471b22 - md5: 06f35a3b1479ec55036e1c9872f97f2c - depends: - - llvm-openmp >=8.0.0 - constrains: - - libgfortran 14.2.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 806283 - timestamp: 1743913488925 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda - sha256: 05fff3dc7e80579bc28de13b511baec281c4343d703c406aefd54389959154fb - md5: fbe7d535ff9d3a168c148e07358cd5b1 - depends: - - __glibc >=2.17,<3.0.a0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 452635 - timestamp: 1746642113092 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-31_h7ac8fdf_openblas.conda - build_number: 31 - sha256: f583661921456e798aba10972a8abbd9d33571c655c1f66eff450edc9cbefcf3 - md5: 452b98eafe050ecff932f0ec832dd03f - depends: - - libblas 3.9.0 31_h59b9bed_openblas - constrains: - - libcblas =3.9.0=31*_openblas - - liblapacke =3.9.0=31*_openblas - - blas =2.131=openblas - license: BSD-3-Clause - license_family: BSD - size: 16790 - timestamp: 1740087997375 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.9.0-31_hc9a63f6_openblas.conda - build_number: 31 - sha256: fe55b9aaf82c6c0192c3d1fcc9b8e884f97492dda9a8de5dae29334b3135fab5 - md5: ff57a55a2cbce171ef5707fb463caf19 - depends: - - libblas 3.9.0 31_h10e41b3_openblas - constrains: - - liblapacke =3.9.0=31*_openblas - - libcblas =3.9.0=31*_openblas - - blas =2.131=openblas - license: BSD-3-Clause - license_family: BSD - size: 17033 - timestamp: 1740088134988 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda - sha256: eeff241bddc8f1b87567dd6507c9f441f7f472c27f0860a07628260c000ef27c - md5: a76fd702c93cd2dfd89eff30a5fd45a8 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - constrains: - - xz 5.8.1.* - - xz ==5.8.1=*_1 - license: 0BSD - size: 112845 - timestamp: 1746531470399 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_1.conda - sha256: 5ab62c179229640c34491a7de806ad4ab7bec47ea2b5fc2136e3b8cf5ef26a57 - md5: 4e8ef3d79c97c9021b34d682c24c2044 - depends: - - __osx >=11.0 - constrains: - - xz 5.8.1.* - - xz ==5.8.1=*_1 - license: 0BSD - size: 92218 - timestamp: 1746531818330 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - sha256: 3aa92d4074d4063f2a162cd8ecb45dccac93e543e565c01a787e16a43501f7ee - md5: c7e925f37e3b40d893459e625f6a53f1 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: BSD-2-Clause - size: 91183 - timestamp: 1748393666725 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda - sha256: 0a1875fc1642324ebd6c4ac864604f3f18f57fbcf558a8264f6ced028a3c75b2 - md5: 85ccccb47823dd9f7a99d2c7f530342f - depends: - - __osx >=11.0 - license: BSD-2-Clause - size: 71829 - timestamp: 1748393749336 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.29-pthreads_h94d23a6_0.conda - sha256: cc5389ea254f111ef17a53df75e8e5209ef2ea6117e3f8aced88b5a8e51f11c4 - md5: 0a4d0252248ef9a0f88f2ba8b8a08e12 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libgfortran - - libgfortran5 >=14.2.0 - constrains: - - openblas >=0.3.29,<0.3.30.0a0 - license: BSD-3-Clause - license_family: BSD - size: 5919288 - timestamp: 1739825731827 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.29-openmp_hf332438_0.conda - sha256: 8989d9e01ec8c9b2d48dbb5efbe70b356fcd15990fb53b64fcb84798982c0343 - md5: 0cd1148c68f09027ee0b0f0179f77c30 - depends: - - __osx >=11.0 - - libgfortran >=5 - - libgfortran5 >=13.2.0 - - llvm-openmp >=18.1.8 - constrains: - - openblas >=0.3.29,<0.3.30.0a0 - license: BSD-3-Clause - license_family: BSD - size: 4168442 - timestamp: 1739825514918 -- conda: 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 -- conda: 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 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.2-hee588c1_0.conda - sha256: 525d4a0e24843f90b3ff1ed733f0a2e408aa6dd18b9d4f15465595e078e104a2 - md5: 93048463501053a00739215ea3f36324 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libzlib >=1.3.1,<2.0a0 - license: Unlicense - size: 916313 - timestamp: 1746637007836 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.49.2-h3f77e49_0.conda - sha256: d89f979497cf56eccb099b6ab9558da7bba1f1ba264f50af554e0ea293d9dcf9 - md5: 85f443033cd5b3df82b5cabf79bddb09 - depends: - - __osx >=11.0 - - libzlib >=1.3.1,<2.0a0 - license: Unlicense - size: 899462 - timestamp: 1746637228408 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda - sha256: 6ae3d153e78f6069d503d9309f2cac6de5b93d067fc6433160a4c05226a5dad4 - md5: 1cb1c67961f6dd257eae9e9691b341aa - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc 15.1.0 h767d61c_2 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 3902355 - timestamp: 1746642227493 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.conda - sha256: 11bea86e11de7d6bce87589197a383344df3fa0a3552dab7e931785ff1159a5b - md5: 9d2072af184b5caa29492bf2344597bb - depends: - - libstdcxx 15.1.0 h8f9b012_2 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - size: 34647 - timestamp: 1746642266826 -- conda: 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 -- conda: 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 -- conda: 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 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-20.1.5-hdb05f8b_0.conda - sha256: 3515d520338a334c987ce2737dfba1ebd66eb1e360582c7511738ad3dc8a9145 - md5: 66771cb733ad80bd46b66f856601001a - depends: - - __osx >=11.0 - constrains: - - openmp 20.1.5|20.1.5.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - size: 282100 - timestamp: 1747367434936 -- conda: https://conda.modular.com/max/noarch/max-25.3.0-release.conda - noarch: python - sha256: beb3f9b8d4b6e76b36712800f850076a3bd73cb5dc95e9fc193806b64ffd204a - depends: - - max-core ==25.3.0 release - - max-python ==25.3.0 release - - mojo-jupyter ==25.3.0 release - - mblack ==25.3.0 release - license: LicenseRef-Modular-Proprietary - size: 10799 - timestamp: 1746489476724 -- conda: https://conda.modular.com/max/linux-64/max-core-25.3.0-release.conda - sha256: 3df6452ff20c9c3287e76c142d8352fbdc57dd3fa83e3e4094a81322f5f205ce - depends: - - mblack ==25.3.0 release - license: LicenseRef-Modular-Proprietary - size: 230262703 - timestamp: 1746489471236 -- conda: https://conda.modular.com/max/osx-arm64/max-core-25.3.0-release.conda - sha256: a22db5fe4bb0decbd49ef7076fe653e37d9fcf96e8cd41b8176bd833f9926700 - depends: - - mblack ==25.3.0 release - license: LicenseRef-Modular-Proprietary - size: 192365001 - timestamp: 1746490850390 -- conda: https://conda.modular.com/max/linux-64/max-python-25.3.0-release.conda - noarch: python - sha256: dceb06f03fe79e6e977b162ba4f58554a3827dc49e6597006e2fe949c0e48bed - depends: - - click >=8.0.0 - - numpy >=1.18 - - packaging >=24.1 - - tqdm >=4.67.1 - - python-gil >=3.9,<3.14 - - max-core ==25.3.0 release - constrains: - - aiohttp >=3.11.12 - - gguf >=0.14.0 - - hf-transfer >=0.1.9 - - huggingface_hub >=0.28.0 - - nvitop >=1.4.1 - - pillow >=11.0.0 - - psutil >=6.1.1 - - requests >=2.32.3 - - rich >=13.9.4 - - safetensors >=0.5.2 - - scipy >=1.13.0 - - pytorch >=2.5.0,<=2.6.0 - - transformers >=4.49.0,!=4.51.0 - - uvicorn >=0.34.0 - - uvloop >=0.21.0 - - xgrammar >=0.1.18 - - asgiref >=3.8.1 - - fastapi >=0.114.2,<0.115 - - grpcio >=1.68.0 - - grpcio-tools >=1.68.0 - - grpcio-reflection >=1.68.0 - - httpx >=0.28.1,<0.29 - - msgspec >=0.19.0 - - opentelemetry-api >=1.29.0 - - opentelemetry-exporter-otlp-proto-http >=1.27.0,<1.31.1 - - opentelemetry-exporter-prometheus >=0.50b0,<1.1.12.0rc1 - - opentelemetry-sdk >=1.29.0,<2.0 - - prometheus-async >=22.2.0 - - prometheus_client >=0.21.0 - - protobuf ==5.29.3 - - pydantic-settings >=2.7.1 - - pydantic - - pyinstrument >=5.0.1 - - python-json-logger >=2.0.7 - - pyzmq >=26.3.0 - - sentinel >=0.3.0 - - sse-starlette >=2.1.2 - - taskgroup >=0.2.2 - - tokenizers >=0.19.0 - license: LicenseRef-Modular-Proprietary - size: 13093338 - timestamp: 1746489471236 -- conda: https://conda.modular.com/max/osx-arm64/max-python-25.3.0-release.conda - noarch: python - sha256: 29280854293c0a8f642093094e4bc7a7a64bece926b2ca5d98493e4bf488bb50 - depends: - - click >=8.0.0 - - numpy >=1.18 - - packaging >=24.1 - - tqdm >=4.67.1 - - python-gil >=3.9,<3.14 - - max-core ==25.3.0 release - constrains: - - aiohttp >=3.11.12 - - gguf >=0.14.0 - - hf-transfer >=0.1.9 - - huggingface_hub >=0.28.0 - - nvitop >=1.4.1 - - pillow >=11.0.0 - - psutil >=6.1.1 - - requests >=2.32.3 - - rich >=13.9.4 - - safetensors >=0.5.2 - - scipy >=1.13.0 - - pytorch >=2.5.0,<=2.6.0 - - transformers >=4.49.0,!=4.51.0 - - uvicorn >=0.34.0 - - uvloop >=0.21.0 - - xgrammar >=0.1.18 - - asgiref >=3.8.1 - - fastapi >=0.114.2,<0.115 - - grpcio >=1.68.0 - - grpcio-tools >=1.68.0 - - grpcio-reflection >=1.68.0 - - httpx >=0.28.1,<0.29 - - msgspec >=0.19.0 - - opentelemetry-api >=1.29.0 - - opentelemetry-exporter-otlp-proto-http >=1.27.0,<1.31.1 - - opentelemetry-exporter-prometheus >=0.50b0,<1.1.12.0rc1 - - opentelemetry-sdk >=1.29.0,<2.0 - - prometheus-async >=22.2.0 - - prometheus_client >=0.21.0 - - protobuf ==5.29.3 - - pydantic-settings >=2.7.1 - - pydantic - - pyinstrument >=5.0.1 - - python-json-logger >=2.0.7 - - pyzmq >=26.3.0 - - sentinel >=0.3.0 - - sse-starlette >=2.1.2 - - taskgroup >=0.2.2 - - tokenizers >=0.19.0 - license: LicenseRef-Modular-Proprietary - size: 11415264 - timestamp: 1746490850390 -- conda: https://conda.modular.com/max/noarch/mblack-25.3.0-release.conda - noarch: python - sha256: d9b749052c6b240f028529e77f785df2c7a8ec4beca360b11f211de17b2a0cc3 - depends: - - python >=3.9,<3.14 - - click >=8.0.0 - - mypy_extensions >=0.4.3 - - packaging >=22.0 - - pathspec >=0.9.0 - - platformdirs >=2 - - typing_extensions >=v4.12.2 - - python - license: MIT - size: 131780 - timestamp: 1746489476723 -- conda: https://conda.modular.com/max/noarch/mojo-jupyter-25.3.0-release.conda - noarch: python - sha256: 724ab3286a4d7d150f5454bea0ccf10931e38cc221481dedc81aa980a4775304 - depends: - - max-core ==25.3.0 release - - python >=3.9,<3.14 - - jupyter_client >=8.6.2,<8.7 - - python - license: LicenseRef-Modular-Proprietary - size: 23880 - timestamp: 1746489476724 -- conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - sha256: 6ed158e4e5dd8f6a10ad9e525631e35cee8557718f83de7a4e3966b1f772c4b1 - md5: e9c622e0d00fa24a6292279af3ab6d06 - depends: - - python >=3.9 - license: MIT - license_family: MIT - size: 11766 - timestamp: 1745776666688 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 - md5: 47e340acb35de30501a76c7c799c41d7 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: X11 AND BSD-3-Clause - size: 891641 - timestamp: 1738195959188 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - sha256: 2827ada40e8d9ca69a153a45f7fd14f32b2ead7045d3bbb5d10964898fe65733 - md5: 068d497125e4bf8a66bf707254fff5ae - depends: - - __osx >=11.0 - license: X11 AND BSD-3-Clause - size: 797030 - timestamp: 1738196177597 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.2.6-py313h17eae1a_0.conda - sha256: 7da9ebd80a7311e0482c4c6393be0eddf0012b3846df528e375037409b3d2b3d - md5: 7a2d2f9adecd86ed5c29c2115354f615 - depends: - - __glibc >=2.17,<3.0.a0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libgcc >=13 - - liblapack >=3.9.0,<4.0a0 - - libstdcxx >=13 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - size: 8517250 - timestamp: 1747545080496 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.2.6-py313h41a2e72_0.conda - sha256: 2206aa59ee700f00896604178864ebe54ab8e87e479a1707def23636a6a62797 - md5: 6a5bd221d600de2bf1b408678dab01b7 - depends: - - __osx >=11.0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libcxx >=18 - - liblapack >=3.9.0,<4.0a0 - - python >=3.13,<3.14.0a0 - - python >=3.13,<3.14.0a0 *_cp313 - - python_abi 3.13.* *_cp313 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - size: 6532195 - timestamp: 1747545087365 -- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_1.conda - sha256: b4491077c494dbf0b5eaa6d87738c22f2154e9277e5293175ec187634bd808a0 - md5: de356753cfdbffcde5bb1e86e3aa6cd0 - depends: - - __glibc >=2.17,<3.0.a0 - - ca-certificates - - libgcc >=13 - license: Apache-2.0 - license_family: Apache - size: 3117410 - timestamp: 1746223723843 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.5.0-h81ee809_1.conda - sha256: 73d366c1597a10bcd5f3604b5f0734b31c23225536e03782c6a13f9be9d01bff - md5: 5c7aef00ef60738a14e0e612cfc5bcde - depends: - - __osx >=11.0 - - ca-certificates - license: Apache-2.0 - license_family: Apache - size: 3064197 - timestamp: 1746223530698 -- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - sha256: 289861ed0c13a15d7bbb408796af4de72c2fe67e2bcb0de98f4c3fce259d7991 - md5: 58335b26c38bf4a20f399384c33cbcf9 - depends: - - python >=3.8 - - python - license: Apache-2.0 - license_family: APACHE - size: 62477 - timestamp: 1745345660407 -- conda: 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 -- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda - sha256: 0f48999a28019c329cd3f6fd2f01f09fc32cc832f7d6bbe38087ddac858feaa3 - md5: 424844562f5d337077b445ec6b1398a7 - depends: - - python >=3.9 - - python - license: MIT - license_family: MIT - size: 23531 - timestamp: 1746710438805 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.3-hf636f53_101_cp313.conda - build_number: 101 - sha256: eecb11ea60f8143deeb301eab2e04d04f7acb83659bb20fdfeacd431a5f31168 - md5: 10622e12d649154af0bd76bcf33a7c5c - depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.7.0,<3.0a0 - - libffi >=3.4.6,<3.5.0a0 - - libgcc >=13 - - liblzma >=5.8.1,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.49.1,<4.0a0 - - libuuid >=2.38.1,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.0,<4.0a0 - - python_abi 3.13.* *_cp313 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - license: Python-2.0 - size: 33268245 - timestamp: 1744665022734 - python_site_packages_path: lib/python3.13/site-packages -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.3-h81fe080_101_cp313.conda - build_number: 101 - sha256: f96468ab1e6f27bda92157bfc7f272d1fbf2ba2f85697bdc5bb106bccba1befb - md5: b3240ae8c42a3230e0b7f831e1c72e9f - depends: - - __osx >=11.0 - - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.7.0,<3.0a0 - - libffi >=3.4.6,<3.5.0a0 - - liblzma >=5.8.1,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.49.1,<4.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.0,<4.0a0 - - python_abi 3.13.* *_cp313 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - license: Python-2.0 - size: 12136505 - timestamp: 1744663807953 - python_site_packages_path: lib/python3.13/site-packages -- conda: 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 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.3-h4df99d1_101.conda - sha256: 54a19e0ed3be0c3397301482b44008fc8d21058ebb9d17ed7046b14bda0e16f4 - md5: 82c2641f2f0f513f7d2d1b847a2588e3 - depends: - - cpython 3.13.3.* - - python_abi * *_cp313 - license: Python-2.0 - size: 47829 - timestamp: 1744663227117 -- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-7_cp313.conda - build_number: 7 - sha256: 0595134584589064f56e67d3de1d8fcbb673a972946bce25fb593fb092fdcd97 - md5: e84b44e6300f1703cb25d29120c5b1d8 - constrains: - - python 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - size: 6988 - timestamp: 1745258852285 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-26.4.0-py313h8e95178_0.conda - sha256: 2d08a2fd383ae3d9eb1426d546bd5ae4606644be5ebf14a403beafdb45306aa0 - md5: 30887c086133d76386250ea4e9b46d4b - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libsodium >=1.0.20,<1.0.21.0a0 - - libstdcxx >=13 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - zeromq >=4.3.5,<4.4.0a0 - license: BSD-3-Clause - license_family: BSD - size: 385078 - timestamp: 1743831458342 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-26.4.0-py313he6960b1_0.conda - sha256: 0e0ee756e1fb46456ff398ef77dce595411043836bc47a92d30c9240c9fcef87 - md5: 7f355f62656985be979c4c0003723d0a - depends: - - __osx >=11.0 - - libcxx >=18 - - libsodium >=1.0.20,<1.0.21.0a0 - - python >=3.13,<3.14.0a0 - - python >=3.13,<3.14.0a0 *_cp313 - - python_abi 3.13.* *_cp313 - - zeromq >=4.3.5,<4.4.0a0 - license: BSD-3-Clause - license_family: BSD - size: 369287 - timestamp: 1743831518822 -- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c - md5: 283b96675859b20a825f8fa30f311446 - depends: - - libgcc >=13 - - ncurses >=6.5,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 282480 - timestamp: 1740379431762 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda - sha256: 7db04684d3904f6151eff8673270922d31da1eea7fa73254d01c437f49702e34 - md5: 63ef3f6e6d6d5c589e64f11263dc5676 - depends: - - ncurses >=6.5,<7.0a0 - license: GPL-3.0-only - license_family: GPL - size: 252359 - timestamp: 1740379663071 -- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.15.2-py313h86fcf2b_0.conda - sha256: c3052b04397f76188611c8d853ac749986874d6a5869292b92ebae7ce093c798 - md5: ca68acd9febc86448eeed68d0c6c8643 - depends: - - __glibc >=2.17,<3.0.a0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libgcc >=13 - - libgfortran - - libgfortran5 >=13.3.0 - - liblapack >=3.9.0,<4.0a0 - - libstdcxx >=13 - - numpy <2.5 - - numpy >=1.21,<3 - - numpy >=1.23.5 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - size: 17233404 - timestamp: 1739791996980 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.15.2-py313h9a24e0a_0.conda - sha256: 2cce94fba335df6ea1c7ce5554ba8f0ef8ec0cf1a7e6918bfc2d8b2abf880794 - md5: 45e6244d4265a576a299c0a1d8b09ad9 - depends: - - __osx >=11.0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libcxx >=18 - - libgfortran >=5 - - libgfortran5 >=13.2.0 - - liblapack >=3.9.0,<4.0a0 - - numpy <2.5 - - numpy >=1.21,<3 - - numpy >=1.23.5 - - python >=3.13,<3.14.0a0 - - python >=3.13,<3.14.0a0 *_cp313 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - size: 14548640 - timestamp: 1739792791585 -- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhd8ed1ab_0.conda - sha256: 41db0180680cc67c3fa76544ffd48d6a5679d96f4b71d7498a759e94edc9a2db - md5: a451d576819089b0d672f18768be0f65 - depends: - - python >=3.9 - license: MIT - license_family: MIT - size: 16385 - timestamp: 1733381032766 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_hd72426e_102.conda - sha256: a84ff687119e6d8752346d1d408d5cf360dee0badd487a472aa8ddedfdc219e1 - md5: a0116df4f4ed05c303811a837d5b39d8 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libzlib >=1.3.1,<2.0a0 - license: TCL - license_family: BSD - size: 3285204 - timestamp: 1748387766691 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_2.conda - sha256: cb86c522576fa95c6db4c878849af0bccfd3264daf0cc40dd18e7f4a7bfced0e - md5: 7362396c170252e7b7b0c8fb37fe9c78 - depends: - - __osx >=11.0 - - libzlib >=1.3.1,<2.0a0 - license: TCL - license_family: BSD - size: 3125538 - timestamp: 1748388189063 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.1-py313h536fd9c_0.conda - sha256: 282c9c3380217119c779fc4c432b0e4e1e42e9a6265bfe36b6f17f6b5d4e6614 - md5: e9434a5155db25c38ade26f71a2f5a48 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: Apache-2.0 - license_family: Apache - size: 873269 - timestamp: 1748003477089 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.1-py313h90d716c_0.conda - sha256: 29c623cfb1f9ea7c1d865cf5f52ae6faa6497ceddbe7841ae27901a21f8cf79f - md5: 1ab3bef3e9aa0bba9eee2dfbedab1dba - depends: - - __osx >=11.0 - - python >=3.13,<3.14.0a0 - - python >=3.13,<3.14.0a0 *_cp313 - - python_abi 3.13.* *_cp313 - license: Apache-2.0 - license_family: Apache - size: 874352 - timestamp: 1748003547444 -- conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - sha256: 11e2c85468ae9902d24a27137b6b39b4a78099806e551d390e394a8c34b48e40 - md5: 9efbfdc37242619130ea42b1cc4ed861 - depends: - - colorama - - python >=3.9 - license: MPL-2.0 or MIT - size: 89498 - timestamp: 1735661472632 -- conda: 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 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.13.2-pyh29332c3_0.conda - sha256: a8aaf351e6461de0d5d47e4911257e25eec2fa409d71f3b643bb2f748bde1c08 - md5: 83fc6ae00127671e301c9f44254c31b8 - depends: - - python >=3.9 - - python - license: PSF-2.0 - license_family: PSF - size: 52189 - timestamp: 1744302253997 -- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192 - md5: 4222072737ccff51314b5ece9c7d6f5a - license: LicenseRef-Public-Domain - size: 122968 - timestamp: 1742727099393 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h3b0a872_7.conda - sha256: a4dc72c96848f764bb5a5176aa93dd1e9b9e52804137b99daeebba277b31ea10 - md5: 3947a35e916fcc6b9825449affbf4214 - depends: - - __glibc >=2.17,<3.0.a0 - - krb5 >=1.21.3,<1.22.0a0 - - libgcc >=13 - - libsodium >=1.0.20,<1.0.21.0a0 - - libstdcxx >=13 - license: MPL-2.0 - license_family: MOZILLA - size: 335400 - timestamp: 1731585026517 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-hc1bb282_7.conda - sha256: 9e585569fe2e7d3bea71972cd4b9f06b1a7ab8fa7c5139f92a31cbceecf25a8a - md5: f7e6b65943cb73bce0143737fded08f1 - depends: - - __osx >=11.0 - - krb5 >=1.21.3,<1.22.0a0 - - libcxx >=18 - - libsodium >=1.0.20,<1.0.21.0a0 - license: MPL-2.0 - license_family: MOZILLA - size: 281565 - timestamp: 1731585108039 -- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.22.0-pyhd8ed1ab_0.conda - sha256: 3f7a58ff4ff1d337d56af0641a7eba34e7eea0bf32e49934c96ee171640f620b - md5: 234be740b00b8e41567e5b0ed95aaba9 - depends: - - python >=3.9 - license: MIT - license_family: MIT - size: 22691 - timestamp: 1748277499928 From 11030c8db48e1c788baa63926b77c832da51cf1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?ZHU=20Yuhao=20=E6=9C=B1=E5=AE=87=E6=B5=A9?= Date: Thu, 29 May 2025 19:45:16 +0200 Subject: [PATCH 5/5] Ignore pixi in gitignore file --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 496e0a39..b43eea43 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,7 @@ # magic environments .magic magic.lock +pixi.lock # pixi environments .pixi