diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 887a2c1..0000000 --- a/.gitattributes +++ /dev/null @@ -1,2 +0,0 @@ -# SCM syntax highlighting & preventing 3-way merges -pixi.lock merge=binary linguist-language=YAML linguist-generated=true diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml index 0a307a5..4c2bd0b 100644 --- a/.github/workflows/coverage.yml +++ b/.github/workflows/coverage.yml @@ -40,7 +40,7 @@ jobs: pytest tests/ -v --tb=short \ --cov=src/reactix \ --cov-report=term-missing \ - --cov-report= + --cov-report=xml:reports/coverage/coverage.xml - name: Add coverage to job summary run: | @@ -50,11 +50,7 @@ jobs: coverage report --show-missing >> $GITHUB_STEP_SUMMARY echo '```' >> $GITHUB_STEP_SUMMARY - # If uploading the coverage report to Codecov: - # uncomment the following lines and make sure you have a Codecov token set in your repository secrets. - # More information: https://docs.codecov.com/docs/quick-start - # - # - name: Upload coverage reports to Codecov with GitHub Action - # uses: codecov/codecov-action@v5 - # env: - # CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file + - name: Upload coverage reports to Codecov with GitHub Action + uses: codecov/codecov-action@v5 + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file diff --git a/README.md b/README.md index 2a098f7..f5d25cf 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,12 @@ -# Reactix – Simulating 1-D reactive transport with differentiable models in JAX +![](https://raw.githubusercontent.com/astoeriko/reactix/refs/heads/develop/img/logo.svg) +# Simulating 1-D reactive transport with differentiable models in JAX + +[![PyPI](https://img.shields.io/pypi/v/reactix)](https://pypi.org/project/reactix/) +[![Python](https://img.shields.io/pypi/pyversions/reactix)](https://pypi.org/project/reactix/) +[![PyTest](https://github.com/astoeriko/reactix/actions/workflows/pytest.yml/badge.svg)](https://github.com/astoeriko/reactix/actions/workflows/pytest.yml) +[![codecov](https://codecov.io/gh/astoeriko/reactix/branch/develop/graph/badge.svg)](https://codecov.io/gh/astoeriko/reactix) +[![License](https://img.shields.io/github/license/astoeriko/reactix)](LICENSE) +[![Docs](https://img.shields.io/badge/docs-latest-blue)](https://astoeriko.github.io/reactix/) Reactix is a Python package for simulating reactive transport of chemical species suitable for one-dimensional systems with **advection, dispersion and kinetic reactions**. @@ -55,8 +63,7 @@ reactix-env\Scripts\activate # Windows Activate the environment before installing the package. -> [!NOTE] -> If you don't have `uv` installed, you can get it with: +> **Note:** If you don't have `uv` installed, you can get it with: ```bash # Linux/macOS diff --git a/diagrams/class-diagram.png b/diagrams/class-diagram.png new file mode 100644 index 0000000..5e51261 Binary files /dev/null and b/diagrams/class-diagram.png differ diff --git a/diagrams/class-diagram.svg b/diagrams/class-diagram.svg new file mode 100644 index 0000000..1687d9e --- /dev/null +++ b/diagrams/class-diagram.svg @@ -0,0 +1 @@ +declare_specieszeros() : Speciesint_zeros() : Speciesadd(name, value) : SpeciesTracerSpeciestracer : jax.ArraySpeciestracer : jax.Arrayreactive_tracer : jax.ArrayCellsn_cells : intcenters : jax.Arrayequally_spaced(length, n_cells, interface_area)Advectionlimiter_type : strDispersionbuild(cells, dispersivity, pore_diffusion)Systemcells : Cellsbcs : listdischarge : callableporosity : jax.Arrayadvection : Advectiondispersion : Dispersionreactions : listspecies_is_mobile : Speciesrhs(time, state)build(porosity, discharge, cells, advection, dispersion, bcs, reactions, species_is_mobile)make_solvert_max : floatt_points : jax.Arrayrtol : floatatol : float__call__(state, system)FixedConcentrationBoundaryboundary : strspecies_selector : callablefixed_concentration : callableis_active : callableKineticReactionrate(time, state, system)*stoichiometry(time, state, system)*FirstOrderDecaydecay_coefficient : jax.Arrayrate(time, state, system)stoichiometry(time, state, system)SpatiallyVaryingvalues : jax.ArrayFor batch reactors, users currentlymust set discharge=0 and dispersion=0which is cumbersomedecay_coefficient can beusesusesusesusesusesusessolvesinitial state \ No newline at end of file diff --git a/diagrams/model-workflow.png b/diagrams/model-workflow.png new file mode 100644 index 0000000..82bb1bc Binary files /dev/null and b/diagrams/model-workflow.png differ diff --git a/diagrams/model-workflow.svg b/diagrams/model-workflow.svg new file mode 100644 index 0000000..c2996ee --- /dev/null +++ b/diagrams/model-workflow.svg @@ -0,0 +1 @@ +Reactix modelling workflowExamples:- Species- TracerSpecies- declare_speciesDefine speciesExamples:- @reaction- KineticReaction- FirstOrderDecay- SpatiallyVaryingDefine reaction processExamples:- Cells- Advection- Dispersion- FixedConcentrationBoundaryDefine transport domainCurrent design assumes a Systemwith transport. Issue #15:Create a separate class formodels without transport(e.g. mixed/batch reactors),so users do not need to settransport parameters to zero.Create SystemCreate solver with make_solverCurrent rhs() handles bothtransport and reactions. For the no-transport case,rhs() should have a differentstructure.Solver calls System.rhs()Unpack species stateCompute transport termsCompute reaction termsCombine transport + reaction termsReturn dstate/dtmore time steps?yesReturn simulation result \ No newline at end of file diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..075b254 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +/.quarto/ diff --git a/docs/_quarto.yml b/docs/_quarto.yml index 5a53502..265385d 100644 --- a/docs/_quarto.yml +++ b/docs/_quarto.yml @@ -15,6 +15,7 @@ website: back-to-top-navigation: true navbar: + logo: img/logo_without_text.svg left: - href: index.qmd text: Home @@ -42,17 +43,17 @@ website: - index.qmd - installation.qmd - quickstart.qmd - + - text: "---" - section: Examples contents: - examples/index.qmd - examples/transport-model.qmd - - - text: "---" + + - text: "---" - href: api/index.qmd text: API reference - + - text: "---" - section: Development contents: @@ -69,13 +70,18 @@ quartodoc: title: "API reference" sections: - title: Transport - desc: Core 1D reactive transport system objects and solver helpers. + desc: Spatial discretization, advection/dispersion schemes, and boundary conditions. contents: - - System - Cells - Advection - Dispersion - FixedConcentrationBoundary + + - title: Systems + desc: Reactive transport and system containers, and solver helpers. + contents: + - TransportSystem + - MixedSystem - make_solver - user_system_parameters diff --git a/docs/api/Advection.qmd b/docs/api/Advection.qmd index 6d37b77..85e6b5a 100644 --- a/docs/api/Advection.qmd +++ b/docs/api/Advection.qmd @@ -106,7 +106,7 @@ Compute the advection rate for mobile species. |--------|-----------------|---------------------------------|------------| | time | jax.Array | Current simulation time. | _required_ | | state | AbstractSpecies | Current species concentrations. | _required_ | -| system | System | The reactive transport system. | _required_ | +| system | TransportSystem | The reactive transport system. | _required_ | #### Returns {.doc-section .doc-section-returns} diff --git a/docs/api/Dispersion.qmd b/docs/api/Dispersion.qmd index eefbb8c..3722bdf 100644 --- a/docs/api/Dispersion.qmd +++ b/docs/api/Dispersion.qmd @@ -62,10 +62,10 @@ Compute dispersion coefficients for each species. #### Parameters {.doc-section .doc-section-parameters} -| Name | Type | Description | Default | -|--------|-----------|--------------------------------|------------| -| time | jax.Array | Current simulation time. | _required_ | -| system | System | The reactive transport system. | _required_ | +| Name | Type | Description | Default | +|--------|-----------------|--------------------------------|------------| +| time | jax.Array | Current simulation time. | _required_ | +| system | TransportSystem | The reactive transport system. | _required_ | #### Returns {.doc-section .doc-section-returns} @@ -87,7 +87,7 @@ Compute the dispersion contribution to the species rate of change. |--------|-----------------|---------------------------------|------------| | time | jax.Array | Current simulation time. | _required_ | | state | AbstractSpecies | Current species concentrations. | _required_ | -| system | System | The reactive transport system. | _required_ | +| system | TransportSystem | The reactive transport system. | _required_ | #### Returns {.doc-section .doc-section-returns} diff --git a/docs/api/FixedConcentrationBoundary.qmd b/docs/api/FixedConcentrationBoundary.qmd index 62b8789..858e9b4 100644 --- a/docs/api/FixedConcentrationBoundary.qmd +++ b/docs/api/FixedConcentrationBoundary.qmd @@ -18,12 +18,12 @@ unphysical behavior. ## Parameters {.doc-section .doc-section-parameters} -| Name | Type | Description | Default | -|---------------------|-----------------------------------------------|---------------------------------------------------------------------------------------------|-------------------------------------| -| fixed_concentration | float or Callable\[\[jax.Array\], jax.Array\] | The fixed concentration value, either constant or time-dependent. | _required_ | -| is_active | Callable\[\[jax.Array, System\], jax.Array\] | Function determining if the boundary condition is active. Inherited from BoundaryCondition. | `lambda t, system: jnp.array(True)` | -| species_selector | Callable | Function to select which species this applies to. Inherited from BoundaryCondition. | _required_ | -| boundary | Literal\[\'left\', \'right\'\] | Which boundary this applies to. Inherited from BoundaryCondition. | _required_ | +| Name | Type | Description | Default | +|---------------------|-------------------------------------------------------|---------------------------------------------------------------------------------------------|-------------------------------------| +| fixed_concentration | float or Callable\[\[jax.Array\], jax.Array\] | The fixed concentration value, either constant or time-dependent. | _required_ | +| is_active | Callable\[\[jax.Array, TransportSystem\], jax.Array\] | Function determining if the boundary condition is active. Inherited from BoundaryCondition. | `lambda t, system: jnp.array(True)` | +| species_selector | Callable | Function to select which species this applies to. Inherited from BoundaryCondition. | _required_ | +| boundary | Literal\[\'left\', \'right\'\] | Which boundary this applies to. Inherited from BoundaryCondition. | _required_ | ## Notes {.doc-section .doc-section-notes} @@ -46,11 +46,11 @@ Compute the advective and dispersive flux at the boundary. #### Parameters {.doc-section .doc-section-parameters} -| Name | Type | Description | Default | -|---------------------|-----------|-------------------------------------|------------| -| time | jax.Array | Current simulation time. | _required_ | -| system | System | The reactive transport system. | _required_ | -| boundary_cell_state | jax.Array | Concentration in the boundary cell. | _required_ | +| Name | Type | Description | Default | +|---------------------|-----------------|-------------------------------------|------------| +| time | jax.Array | Current simulation time. | _required_ | +| system | TransportSystem | The reactive transport system. | _required_ | +| boundary_cell_state | jax.Array | Concentration in the boundary cell. | _required_ | #### Returns {.doc-section .doc-section-returns} diff --git a/docs/api/MixedSystem.qmd b/docs/api/MixedSystem.qmd new file mode 100644 index 0000000..58b2444 --- /dev/null +++ b/docs/api/MixedSystem.qmd @@ -0,0 +1,88 @@ +# MixedSystem { #reactix.MixedSystem } + +```python +MixedSystem( + reactions=list(), + discharge, + inflow_concentration, + volume, + parameters=None, +) +``` + +Represents a mixed (batch) reactor system without spatial transport. + +This class models a well-mixed reactor where species concentrations are +uniform throughout the volume. It supports kinetic reactions, inflow/outflow, +and user-defined parameters. + +## Parameters {.doc-section .doc-section-parameters} + +| Name | Type | Description | Default | +|----------------------|---------------------------------------------------|----------------------------------------------------------------------------------------------------|------------| +| reactions | list\[KineticReaction\] | List of kinetic reactions. Default is empty list. | `list()` | +| discharge | Callable\[\[jax.Array\], jax.Array\] or jax.Array | Function that computes discharge (volumetric flow rate) given time, or a constant discharge value. | _required_ | +| inflow_concentration | AbstractSpecies | Concentration of species in the inflow. | _required_ | +| volume | jax.Array | Volume of the mixed reactor. | _required_ | +| parameters | Any | Additional system parameters. Default is None. | `None` | + +## Methods + +| Name | Description | +| --- | --- | +| [build](#reactix.MixedSystem.build) | Build a configured mixed reactor system. | +| [compute_inflow_outflow](#reactix.MixedSystem.compute_inflow_outflow) | Compute the inflow/outflow contribution to the rate of change of concentrations. | + +### build { #reactix.MixedSystem.build } + +```python +MixedSystem.build( + reactions=None, + discharge, + inflow_concentration, + volume, + parameters=None, +) +``` + +Build a configured mixed reactor system. + +This convenience constructor validates input shapes and +normalizes scalar inputs before creating a MixedSystem instance. + +#### Parameters {.doc-section .doc-section-parameters} + +| Name | Type | Description | Default | +|----------------------|---------------------------------------------------|------------------------------------------------|------------| +| reactions | list\[KineticReaction\] or None | List of kinetic reactions. Default is None. | `None` | +| discharge | Callable\[\[jax.Array\], jax.Array\] or jax.Array | Discharge function or scalar discharge value. | _required_ | +| inflow_concentration | AbstractSpecies | Concentration of species in the inflow. | _required_ | +| volume | jax.Array | Volume of the mixed reactor. | _required_ | +| parameters | Any or None | Additional system parameters. Default is None. | `None` | + +#### Returns {.doc-section .doc-section-returns} + +| Name | Type | Description | +|--------|-------------|----------------------------------| +| | MixedSystem | Configured mixed reactor system. | + +### compute_inflow_outflow { #reactix.MixedSystem.compute_inflow_outflow } + +```python +MixedSystem.compute_inflow_outflow(time, state) +``` + +Compute the inflow/outflow contribution to the rate of change of concentrations. + +#### Parameters {.doc-section .doc-section-parameters} + +| Name | Type | Description | Default | +|--------|-----------------|---------------------------------|------------| +| time | jax.Array | Current simulation time. | _required_ | +| state | AbstractSpecies | Current species concentrations. | _required_ | + +#### Returns {.doc-section .doc-section-returns} + +| Name | Type | Description | +|--------|-----------------|-----------------------------------------------| +| | AbstractSpecies | Rate of change due to inflow/outflow (dc/dt). | \ No newline at end of file diff --git a/docs/api/System.qmd b/docs/api/TransportSystem.qmd similarity index 89% rename from docs/api/System.qmd rename to docs/api/TransportSystem.qmd index 871da99..2425a44 100644 --- a/docs/api/System.qmd +++ b/docs/api/TransportSystem.qmd @@ -1,7 +1,7 @@ -# System { #reactix.System } +# TransportSystem { #reactix.TransportSystem } ```python -System( +TransportSystem( porosity, discharge, cells, @@ -38,13 +38,13 @@ species mobility, reactions, and boundary conditions. | Name | Description | | --- | --- | -| [build](#reactix.System.build) | Build a configured reactive transport system. | -| [cell_velocity](#reactix.System.cell_velocity) | Compute the pore-water velocity in each cell. | +| [build](#reactix.TransportSystem.build) | Build a configured reactive transport system. | +| [cell_velocity](#reactix.TransportSystem.cell_velocity) | Compute the pore-water velocity in each cell. | -### build { #reactix.System.build } +### build { #reactix.TransportSystem.build } ```python -System.build( +TransportSystem.build( cells, advection, dispersion, @@ -60,7 +60,7 @@ System.build( Build a configured reactive transport system. This convenience constructor validates input shapes and -normalizes scalar inputs before creating a System instance. +normalizes scalar inputs before creating a TransportSystem instance. #### Parameters {.doc-section .doc-section-parameters} @@ -71,16 +71,16 @@ normalizes scalar inputs before creating a System instance. | dispersion | Dispersion | Dispersion scheme parameters. | _required_ | | bcs | list\[BoundaryCondition\] or None | List of boundary conditions. Default is None. | `None` | | species_is_mobile | AbstractSpecies | Species mobility information. | _required_ | -| reactions | list\[BoundaryCondition\] or None | List of kinetic reactions. Default is None. | `None` | +| reactions | list\[KineticReaction\] or None | List of kinetic reactions. Default is None. | `None` | | discharge | Callable\[\[jax.Array\], jax.Array\] or jax.Array | Discharge function or scalar discharge value. | _required_ | | porosity | jax.Array | Porosity of the medium, either scalar or per cell. | _required_ | | parameters | Any or None | Additional system parameters. Default is None. Must be created with @user_system_parameters for spatial operations. | `None` | #### Returns {.doc-section .doc-section-returns} -| Name | Type | Description | -|--------|--------|---------------------------------------| -| | System | Configured reactive transport system. | +| Name | Type | Description | +|--------|-----------------|---------------------------------------| +| | TransportSystem | Configured reactive transport system. | #### Raises {.doc-section .doc-section-raises} @@ -88,10 +88,10 @@ normalizes scalar inputs before creating a System instance. |--------|------------|-----------------------------------------------------------------------------------------------------| | | ValueError | If porosity has an invalid shape or a boundary condition is incompatible with the selected species. | -### cell_velocity { #reactix.System.cell_velocity } +### cell_velocity { #reactix.TransportSystem.cell_velocity } ```python -System.cell_velocity(t) +TransportSystem.cell_velocity(t) ``` Compute the pore-water velocity in each cell. diff --git a/docs/api/_sidebar.yml b/docs/api/_sidebar.yml index 4fb525b..e113828 100644 --- a/docs/api/_sidebar.yml +++ b/docs/api/_sidebar.yml @@ -3,14 +3,17 @@ website: - contents: - api/index.qmd - contents: - - api/System.qmd - api/Cells.qmd - api/Advection.qmd - api/Dispersion.qmd - api/FixedConcentrationBoundary.qmd + section: Transport + - contents: + - api/TransportSystem.qmd + - api/MixedSystem.qmd - api/make_solver.qmd - api/user_system_parameters.qmd - section: Transport + section: Systems - contents: - api/declare_species.qmd section: Species diff --git a/docs/api/index.qmd b/docs/api/index.qmd index f9e642a..2755cf4 100644 --- a/docs/api/index.qmd +++ b/docs/api/index.qmd @@ -2,16 +2,24 @@ ## Transport -Core 1D reactive transport system objects and solver helpers. +Spatial discretization, advection/dispersion schemes, and boundary conditions. | | | | --- | --- | -| [System](System.qmd#reactix.System) | Represents a 1D reactive transport system. | | [Cells](Cells.qmd#reactix.Cells) | Represents the spatial discretization of a 1D domain into cells. | | [Advection](Advection.qmd#reactix.Advection) | Handles advection terms in the 1D transport equation using TVD schemes. | | [Dispersion](Dispersion.qmd#reactix.Dispersion) | Handles dispersion and diffusion terms in the transport equation. | | [FixedConcentrationBoundary](FixedConcentrationBoundary.qmd#reactix.FixedConcentrationBoundary) | Boundary condition with fixed concentration at the domain boundary. | -| [make_solver](make_solver.qmd#reactix.make_solver) | Create a JIT-compiled solver function for reactive transport simulations. | + +## Systems + +Reactive transport and system containers, and solver helpers. + +| | | +| --- | --- | +| [TransportSystem](TransportSystem.qmd#reactix.TransportSystem) | Represents a 1D reactive transport system. | +| [MixedSystem](MixedSystem.qmd#reactix.MixedSystem) | Represents a mixed (batch) reactor system without spatial transport. | +| [make_solver](make_solver.qmd#reactix.make_solver) | Create a JIT-compiled solver function for reactix simulations. | | [user_system_parameters](user_system_parameters.qmd#reactix.user_system_parameters) | Decorate system parameter classes with spatial awareness. | ## Species diff --git a/docs/api/make_solver.qmd b/docs/api/make_solver.qmd index 6f17119..fe758f9 100644 --- a/docs/api/make_solver.qmd +++ b/docs/api/make_solver.qmd @@ -13,10 +13,10 @@ make_solver( ) ``` -Create a JIT-compiled solver function for reactive transport simulations. +Create a JIT-compiled solver function for reactix simulations. This function sets up a differential equation solver using diffrax to solve -the reactive transport system over time. +either a TransportSystem or a MixedSystem over time. ## Parameters {.doc-section .doc-section-parameters} diff --git a/docs/examples/transport-model.qmd b/docs/examples/transport-model.qmd index 7031a8f..e258b51 100644 --- a/docs/examples/transport-model.qmd +++ b/docs/examples/transport-model.qmd @@ -20,7 +20,7 @@ from reactix import ( Cells, Dispersion, FixedConcentrationBoundary, - System, + TransportSystem, make_solver, declare_species, KineticReaction, @@ -82,7 +82,7 @@ cells = Cells.equally_spaced(10, n_cells, interface_area=interface_areas) ## Define advection and dispersion parameters and setting The `Advection` and `Dispersion` objects hold parameters and setting needed to compute the advective and dispersive fluxes. -Note that the discharge will be saved in the `System` object (not in `Advection`) because it needs to be accessed by both `Advection` and `Dispersion` (in order to compute the hydrodynamic dispersivity). +Note that the discharge will be saved in the `TransportSystem` object (not in `Advection`) because it needs to be accessed by both `Advection` and `Dispersion` (in order to compute the hydrodynamic dispersivity). The advective flow velocity is computed internally from the discharge based on the cross-sectional areas of the cells and the porosity. ```{python} @@ -136,12 +136,12 @@ bcs = [ ## Set up the system -The next step is to create a `System` object that contains all the previous settings. +The next step is to create a `TransportSystem` object that contains all the previous settings. ```{python} porosity = jnp.ones(n_cells) * 0.3 porosity = porosity.at[100:].set(0.1) -system = System.build( +system = TransportSystem.build( porosity=porosity, discharge=lambda t: jnp.array(1 / 365) * 0.3, cells=cells, diff --git a/docs/img/logo.png b/docs/img/logo.png new file mode 100644 index 0000000..b71b21f Binary files /dev/null and b/docs/img/logo.png differ diff --git a/docs/img/logo.svg b/docs/img/logo.svg new file mode 100644 index 0000000..309e291 --- /dev/null +++ b/docs/img/logo.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/img/logo_without_text.png b/docs/img/logo_without_text.png new file mode 100644 index 0000000..8b12ba5 Binary files /dev/null and b/docs/img/logo_without_text.png differ diff --git a/docs/img/logo_without_text.svg b/docs/img/logo_without_text.svg new file mode 100644 index 0000000..ec76398 --- /dev/null +++ b/docs/img/logo_without_text.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + diff --git a/docs/objects.json b/docs/objects.json index 27cc3aa..0ee691d 100644 --- a/docs/objects.json +++ b/docs/objects.json @@ -1 +1 @@ -{"project": "reactix", "version": "0.0.9999", "count": 56, "items": [{"name": "reactix.System.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/System.html#reactix.System.build", "dispname": "-"}, {"name": "reactix.transport.System.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/System.html#reactix.System.build", "dispname": "reactix.System.build"}, {"name": "reactix.System.cell_velocity", "domain": "py", "role": "function", "priority": "1", "uri": "api/System.html#reactix.System.cell_velocity", "dispname": "-"}, {"name": "reactix.transport.System.cell_velocity", "domain": "py", "role": "function", "priority": "1", "uri": "api/System.html#reactix.System.cell_velocity", "dispname": "reactix.System.cell_velocity"}, {"name": "reactix.System", "domain": "py", "role": "class", "priority": "1", "uri": "api/System.html#reactix.System", "dispname": "-"}, {"name": "reactix.transport.System", "domain": "py", "role": "class", "priority": "1", "uri": "api/System.html#reactix.System", "dispname": "reactix.System"}, {"name": "reactix.Cells.center_distances", "domain": "py", "role": "attribute", "priority": "1", "uri": "api/Cells.html#reactix.Cells.center_distances", "dispname": "-"}, {"name": "reactix.transport.Cells.center_distances", "domain": "py", "role": "attribute", "priority": "1", "uri": "api/Cells.html#reactix.Cells.center_distances", "dispname": "reactix.Cells.center_distances"}, {"name": "reactix.Cells.equally_spaced", "domain": "py", "role": "function", "priority": "1", "uri": "api/Cells.html#reactix.Cells.equally_spaced", "dispname": "-"}, {"name": "reactix.transport.Cells.equally_spaced", "domain": "py", "role": "function", "priority": "1", "uri": "api/Cells.html#reactix.Cells.equally_spaced", "dispname": "reactix.Cells.equally_spaced"}, {"name": "reactix.Cells", "domain": "py", "role": "class", "priority": "1", "uri": "api/Cells.html#reactix.Cells", "dispname": "-"}, {"name": "reactix.transport.Cells", "domain": "py", "role": "class", "priority": "1", "uri": "api/Cells.html#reactix.Cells", "dispname": "reactix.Cells"}, {"name": "reactix.Advection.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.build", "dispname": "-"}, {"name": "reactix.transport.Advection.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.build", "dispname": "reactix.Advection.build"}, {"name": "reactix.Advection.choose_upwind_concentration", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.choose_upwind_concentration", "dispname": "-"}, {"name": "reactix.transport.Advection.choose_upwind_concentration", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.choose_upwind_concentration", "dispname": "reactix.Advection.choose_upwind_concentration"}, {"name": "reactix.Advection.compute_slope", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.compute_slope", "dispname": "-"}, {"name": "reactix.transport.Advection.compute_slope", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.compute_slope", "dispname": "reactix.Advection.compute_slope"}, {"name": "reactix.Advection.mc_limiter", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.mc_limiter", "dispname": "-"}, {"name": "reactix.transport.Advection.mc_limiter", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.mc_limiter", "dispname": "reactix.Advection.mc_limiter"}, {"name": "reactix.Advection.minmod", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.minmod", "dispname": "-"}, {"name": "reactix.transport.Advection.minmod", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.minmod", "dispname": "reactix.Advection.minmod"}, {"name": "reactix.Advection.minmod3", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.minmod3", "dispname": "-"}, {"name": "reactix.transport.Advection.minmod3", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.minmod3", "dispname": "reactix.Advection.minmod3"}, {"name": "reactix.Advection.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.rate", "dispname": "-"}, {"name": "reactix.transport.Advection.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.rate", "dispname": "reactix.Advection.rate"}, {"name": "reactix.Advection", "domain": "py", "role": "class", "priority": "1", "uri": "api/Advection.html#reactix.Advection", "dispname": "-"}, {"name": "reactix.transport.Advection", "domain": "py", "role": "class", "priority": "1", "uri": "api/Advection.html#reactix.Advection", "dispname": "reactix.Advection"}, {"name": "reactix.Dispersion.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.build", "dispname": "-"}, {"name": "reactix.transport.Dispersion.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.build", "dispname": "reactix.Dispersion.build"}, {"name": "reactix.Dispersion.get_dispersion_coefficient", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.get_dispersion_coefficient", "dispname": "-"}, {"name": "reactix.transport.Dispersion.get_dispersion_coefficient", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.get_dispersion_coefficient", "dispname": "reactix.Dispersion.get_dispersion_coefficient"}, {"name": "reactix.Dispersion.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.rate", "dispname": "-"}, {"name": "reactix.transport.Dispersion.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.rate", "dispname": "reactix.Dispersion.rate"}, {"name": "reactix.Dispersion", "domain": "py", "role": "class", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion", "dispname": "-"}, {"name": "reactix.transport.Dispersion", "domain": "py", "role": "class", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion", "dispname": "reactix.Dispersion"}, {"name": "reactix.FixedConcentrationBoundary.compute_flux", "domain": "py", "role": "function", "priority": "1", "uri": "api/FixedConcentrationBoundary.html#reactix.FixedConcentrationBoundary.compute_flux", "dispname": "-"}, {"name": "reactix.transport.FixedConcentrationBoundary.compute_flux", "domain": "py", "role": "function", "priority": "1", "uri": "api/FixedConcentrationBoundary.html#reactix.FixedConcentrationBoundary.compute_flux", "dispname": "reactix.FixedConcentrationBoundary.compute_flux"}, {"name": "reactix.FixedConcentrationBoundary", "domain": "py", "role": "class", "priority": "1", "uri": "api/FixedConcentrationBoundary.html#reactix.FixedConcentrationBoundary", "dispname": "-"}, {"name": "reactix.transport.FixedConcentrationBoundary", "domain": "py", "role": "class", "priority": "1", "uri": "api/FixedConcentrationBoundary.html#reactix.FixedConcentrationBoundary", "dispname": "reactix.FixedConcentrationBoundary"}, {"name": "reactix.make_solver", "domain": "py", "role": "function", "priority": "1", "uri": "api/make_solver.html#reactix.make_solver", "dispname": "-"}, {"name": "reactix.transport.make_solver", "domain": "py", "role": "function", "priority": "1", "uri": "api/make_solver.html#reactix.make_solver", "dispname": "reactix.make_solver"}, {"name": "reactix.user_system_parameters", "domain": "py", "role": "function", "priority": "1", "uri": "api/user_system_parameters.html#reactix.user_system_parameters", "dispname": "-"}, {"name": "reactix.transport.user_system_parameters", "domain": "py", "role": "function", "priority": "1", "uri": "api/user_system_parameters.html#reactix.user_system_parameters", "dispname": "reactix.user_system_parameters"}, {"name": "reactix.declare_species", "domain": "py", "role": "function", "priority": "1", "uri": "api/declare_species.html#reactix.declare_species", "dispname": "-"}, {"name": "reactix.species.declare_species", "domain": "py", "role": "function", "priority": "1", "uri": "api/declare_species.html#reactix.declare_species", "dispname": "reactix.declare_species"}, {"name": "reactix.KineticReaction.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/KineticReaction.html#reactix.KineticReaction.rate", "dispname": "-"}, {"name": "reactix.reactions.KineticReaction.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/KineticReaction.html#reactix.KineticReaction.rate", "dispname": "reactix.KineticReaction.rate"}, {"name": "reactix.KineticReaction", "domain": "py", "role": "class", "priority": "1", "uri": "api/KineticReaction.html#reactix.KineticReaction", "dispname": "-"}, {"name": "reactix.reactions.KineticReaction", "domain": "py", "role": "class", "priority": "1", "uri": "api/KineticReaction.html#reactix.KineticReaction", "dispname": "reactix.KineticReaction"}, {"name": "reactix.reaction", "domain": "py", "role": "function", "priority": "1", "uri": "api/reaction.html#reactix.reaction", "dispname": "-"}, {"name": "reactix.reactions.reaction", "domain": "py", "role": "function", "priority": "1", "uri": "api/reaction.html#reactix.reaction", "dispname": "reactix.reaction"}, {"name": "reactix.SpatiallyConst", "domain": "py", "role": "class", "priority": "1", "uri": "api/SpatiallyConst.html#reactix.SpatiallyConst", "dispname": "-"}, {"name": "reactix.reactions.SpatiallyConst", "domain": "py", "role": "class", "priority": "1", "uri": "api/SpatiallyConst.html#reactix.SpatiallyConst", "dispname": "reactix.SpatiallyConst"}, {"name": "reactix.SpatiallyVarying", "domain": "py", "role": "class", "priority": "1", "uri": "api/SpatiallyVarying.html#reactix.SpatiallyVarying", "dispname": "-"}, {"name": "reactix.reactions.SpatiallyVarying", "domain": "py", "role": "class", "priority": "1", "uri": "api/SpatiallyVarying.html#reactix.SpatiallyVarying", "dispname": "reactix.SpatiallyVarying"}]} \ No newline at end of file +{"project": "reactix", "version": "0.0.9999", "count": 62, "items": [{"name": "reactix.Cells.center_distances", "domain": "py", "role": "attribute", "priority": "1", "uri": "api/Cells.html#reactix.Cells.center_distances", "dispname": "-"}, {"name": "reactix.transport.Cells.center_distances", "domain": "py", "role": "attribute", "priority": "1", "uri": "api/Cells.html#reactix.Cells.center_distances", "dispname": "reactix.Cells.center_distances"}, {"name": "reactix.Cells.equally_spaced", "domain": "py", "role": "function", "priority": "1", "uri": "api/Cells.html#reactix.Cells.equally_spaced", "dispname": "-"}, {"name": "reactix.transport.Cells.equally_spaced", "domain": "py", "role": "function", "priority": "1", "uri": "api/Cells.html#reactix.Cells.equally_spaced", "dispname": "reactix.Cells.equally_spaced"}, {"name": "reactix.Cells", "domain": "py", "role": "class", "priority": "1", "uri": "api/Cells.html#reactix.Cells", "dispname": "-"}, {"name": "reactix.transport.Cells", "domain": "py", "role": "class", "priority": "1", "uri": "api/Cells.html#reactix.Cells", "dispname": "reactix.Cells"}, {"name": "reactix.Advection.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.build", "dispname": "-"}, {"name": "reactix.transport.Advection.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.build", "dispname": "reactix.Advection.build"}, {"name": "reactix.Advection.choose_upwind_concentration", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.choose_upwind_concentration", "dispname": "-"}, {"name": "reactix.transport.Advection.choose_upwind_concentration", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.choose_upwind_concentration", "dispname": "reactix.Advection.choose_upwind_concentration"}, {"name": "reactix.Advection.compute_slope", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.compute_slope", "dispname": "-"}, {"name": "reactix.transport.Advection.compute_slope", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.compute_slope", "dispname": "reactix.Advection.compute_slope"}, {"name": "reactix.Advection.mc_limiter", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.mc_limiter", "dispname": "-"}, {"name": "reactix.transport.Advection.mc_limiter", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.mc_limiter", "dispname": "reactix.Advection.mc_limiter"}, {"name": "reactix.Advection.minmod", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.minmod", "dispname": "-"}, {"name": "reactix.transport.Advection.minmod", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.minmod", "dispname": "reactix.Advection.minmod"}, {"name": "reactix.Advection.minmod3", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.minmod3", "dispname": "-"}, {"name": "reactix.transport.Advection.minmod3", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.minmod3", "dispname": "reactix.Advection.minmod3"}, {"name": "reactix.Advection.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.rate", "dispname": "-"}, {"name": "reactix.transport.Advection.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/Advection.html#reactix.Advection.rate", "dispname": "reactix.Advection.rate"}, {"name": "reactix.Advection", "domain": "py", "role": "class", "priority": "1", "uri": "api/Advection.html#reactix.Advection", "dispname": "-"}, {"name": "reactix.transport.Advection", "domain": "py", "role": "class", "priority": "1", "uri": "api/Advection.html#reactix.Advection", "dispname": "reactix.Advection"}, {"name": "reactix.Dispersion.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.build", "dispname": "-"}, {"name": "reactix.transport.Dispersion.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.build", "dispname": "reactix.Dispersion.build"}, {"name": "reactix.Dispersion.get_dispersion_coefficient", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.get_dispersion_coefficient", "dispname": "-"}, {"name": "reactix.transport.Dispersion.get_dispersion_coefficient", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.get_dispersion_coefficient", "dispname": "reactix.Dispersion.get_dispersion_coefficient"}, {"name": "reactix.Dispersion.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.rate", "dispname": "-"}, {"name": "reactix.transport.Dispersion.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion.rate", "dispname": "reactix.Dispersion.rate"}, {"name": "reactix.Dispersion", "domain": "py", "role": "class", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion", "dispname": "-"}, {"name": "reactix.transport.Dispersion", "domain": "py", "role": "class", "priority": "1", "uri": "api/Dispersion.html#reactix.Dispersion", "dispname": "reactix.Dispersion"}, {"name": "reactix.FixedConcentrationBoundary.compute_flux", "domain": "py", "role": "function", "priority": "1", "uri": "api/FixedConcentrationBoundary.html#reactix.FixedConcentrationBoundary.compute_flux", "dispname": "-"}, {"name": "reactix.transport.FixedConcentrationBoundary.compute_flux", "domain": "py", "role": "function", "priority": "1", "uri": "api/FixedConcentrationBoundary.html#reactix.FixedConcentrationBoundary.compute_flux", "dispname": "reactix.FixedConcentrationBoundary.compute_flux"}, {"name": "reactix.FixedConcentrationBoundary", "domain": "py", "role": "class", "priority": "1", "uri": "api/FixedConcentrationBoundary.html#reactix.FixedConcentrationBoundary", "dispname": "-"}, {"name": "reactix.transport.FixedConcentrationBoundary", "domain": "py", "role": "class", "priority": "1", "uri": "api/FixedConcentrationBoundary.html#reactix.FixedConcentrationBoundary", "dispname": "reactix.FixedConcentrationBoundary"}, {"name": "reactix.TransportSystem.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/TransportSystem.html#reactix.TransportSystem.build", "dispname": "-"}, {"name": "reactix.systems.TransportSystem.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/TransportSystem.html#reactix.TransportSystem.build", "dispname": "reactix.TransportSystem.build"}, {"name": "reactix.TransportSystem.cell_velocity", "domain": "py", "role": "function", "priority": "1", "uri": "api/TransportSystem.html#reactix.TransportSystem.cell_velocity", "dispname": "-"}, {"name": "reactix.systems.TransportSystem.cell_velocity", "domain": "py", "role": "function", "priority": "1", "uri": "api/TransportSystem.html#reactix.TransportSystem.cell_velocity", "dispname": "reactix.TransportSystem.cell_velocity"}, {"name": "reactix.TransportSystem", "domain": "py", "role": "class", "priority": "1", "uri": "api/TransportSystem.html#reactix.TransportSystem", "dispname": "-"}, {"name": "reactix.systems.TransportSystem", "domain": "py", "role": "class", "priority": "1", "uri": "api/TransportSystem.html#reactix.TransportSystem", "dispname": "reactix.TransportSystem"}, {"name": "reactix.MixedSystem.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/MixedSystem.html#reactix.MixedSystem.build", "dispname": "-"}, {"name": "reactix.systems.MixedSystem.build", "domain": "py", "role": "function", "priority": "1", "uri": "api/MixedSystem.html#reactix.MixedSystem.build", "dispname": "reactix.MixedSystem.build"}, {"name": "reactix.MixedSystem.compute_inflow_outflow", "domain": "py", "role": "function", "priority": "1", "uri": "api/MixedSystem.html#reactix.MixedSystem.compute_inflow_outflow", "dispname": "-"}, {"name": "reactix.systems.MixedSystem.compute_inflow_outflow", "domain": "py", "role": "function", "priority": "1", "uri": "api/MixedSystem.html#reactix.MixedSystem.compute_inflow_outflow", "dispname": "reactix.MixedSystem.compute_inflow_outflow"}, {"name": "reactix.MixedSystem", "domain": "py", "role": "class", "priority": "1", "uri": "api/MixedSystem.html#reactix.MixedSystem", "dispname": "-"}, {"name": "reactix.systems.MixedSystem", "domain": "py", "role": "class", "priority": "1", "uri": "api/MixedSystem.html#reactix.MixedSystem", "dispname": "reactix.MixedSystem"}, {"name": "reactix.make_solver", "domain": "py", "role": "function", "priority": "1", "uri": "api/make_solver.html#reactix.make_solver", "dispname": "-"}, {"name": "reactix.systems.make_solver", "domain": "py", "role": "function", "priority": "1", "uri": "api/make_solver.html#reactix.make_solver", "dispname": "reactix.make_solver"}, {"name": "reactix.user_system_parameters", "domain": "py", "role": "function", "priority": "1", "uri": "api/user_system_parameters.html#reactix.user_system_parameters", "dispname": "-"}, {"name": "reactix.systems.user_system_parameters", "domain": "py", "role": "function", "priority": "1", "uri": "api/user_system_parameters.html#reactix.user_system_parameters", "dispname": "reactix.user_system_parameters"}, {"name": "reactix.declare_species", "domain": "py", "role": "function", "priority": "1", "uri": "api/declare_species.html#reactix.declare_species", "dispname": "-"}, {"name": "reactix.species.declare_species", "domain": "py", "role": "function", "priority": "1", "uri": "api/declare_species.html#reactix.declare_species", "dispname": "reactix.declare_species"}, {"name": "reactix.KineticReaction.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/KineticReaction.html#reactix.KineticReaction.rate", "dispname": "-"}, {"name": "reactix.reactions.KineticReaction.rate", "domain": "py", "role": "function", "priority": "1", "uri": "api/KineticReaction.html#reactix.KineticReaction.rate", "dispname": "reactix.KineticReaction.rate"}, {"name": "reactix.KineticReaction", "domain": "py", "role": "class", "priority": "1", "uri": "api/KineticReaction.html#reactix.KineticReaction", "dispname": "-"}, {"name": "reactix.reactions.KineticReaction", "domain": "py", "role": "class", "priority": "1", "uri": "api/KineticReaction.html#reactix.KineticReaction", "dispname": "reactix.KineticReaction"}, {"name": "reactix.reaction", "domain": "py", "role": "function", "priority": "1", "uri": "api/reaction.html#reactix.reaction", "dispname": "-"}, {"name": "reactix.reactions.reaction", "domain": "py", "role": "function", "priority": "1", "uri": "api/reaction.html#reactix.reaction", "dispname": "reactix.reaction"}, {"name": "reactix.SpatiallyConst", "domain": "py", "role": "class", "priority": "1", "uri": "api/SpatiallyConst.html#reactix.SpatiallyConst", "dispname": "-"}, {"name": "reactix.reactions.SpatiallyConst", "domain": "py", "role": "class", "priority": "1", "uri": "api/SpatiallyConst.html#reactix.SpatiallyConst", "dispname": "reactix.SpatiallyConst"}, {"name": "reactix.SpatiallyVarying", "domain": "py", "role": "class", "priority": "1", "uri": "api/SpatiallyVarying.html#reactix.SpatiallyVarying", "dispname": "-"}, {"name": "reactix.reactions.SpatiallyVarying", "domain": "py", "role": "class", "priority": "1", "uri": "api/SpatiallyVarying.html#reactix.SpatiallyVarying", "dispname": "reactix.SpatiallyVarying"}]} \ No newline at end of file diff --git a/docs/quickstart.qmd b/docs/quickstart.qmd index bd64958..1e8edf2 100644 --- a/docs/quickstart.qmd +++ b/docs/quickstart.qmd @@ -24,7 +24,7 @@ import jax import jax.numpy as jnp import matplotlib.pyplot as plt from reactix import ( - System, Cells, Advection, Dispersion, + TransportSystem, Cells, Advection, Dispersion, FixedConcentrationBoundary, declare_species, make_solver ) ``` @@ -81,7 +81,7 @@ porosity = jnp.ones(n_cells) * 0.3 # 30% porosity discharge_rate = lambda t: jnp.array(0.1) # Constant flow rate # Build the complete system -system = System.build( +system = TransportSystem.build( porosity=porosity, discharge=discharge_rate, cells=cells, @@ -148,7 +148,7 @@ class FirstOrderDecay(KineticReaction): decay_reaction = FirstOrderDecay(decay_coefficient=jnp.array(0.1)) # Build system with reactions -reactive_system = System.build( +reactive_system = TransportSystem.build( porosity=porosity, discharge=discharge_rate, cells=cells, diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 0000000..b71b21f Binary files /dev/null and b/img/logo.png differ diff --git a/img/logo.svg b/img/logo.svg new file mode 100644 index 0000000..309e291 --- /dev/null +++ b/img/logo.svg @@ -0,0 +1,107 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/img/logo_without_text.png b/img/logo_without_text.png new file mode 100644 index 0000000..8b12ba5 Binary files /dev/null and b/img/logo_without_text.png differ diff --git a/img/logo_without_text.svg b/img/logo_without_text.svg new file mode 100644 index 0000000..ec76398 --- /dev/null +++ b/img/logo_without_text.svg @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + diff --git a/notebooks/mixed-reactor.ipynb b/notebooks/mixed-reactor.ipynb new file mode 100644 index 0000000..659a517 --- /dev/null +++ b/notebooks/mixed-reactor.ipynb @@ -0,0 +1,206 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "ed74c45c", + "metadata": {}, + "source": [ + "# Mixed reactor example\n", + "\n", + "This notebook shows how to use Reactix to simulate an mixed reactor system.\n", + "\n", + "The system is described by the following ordinary differential equation:\n", + "\n", + "$$\\frac{dc}{dt} = \\frac{Q}{V}\\left(c - c_{\\mathrm{in}}\\right) + r$$\n", + "\n", + "where $c$ is the concentration, $Q$ is the flow rate of the reactor, $V$ its volume, $c_{\\mathrm{in}}$ the inflowing concentration, and $r$ the reaction rates. Initially the concentration in the system is $c_0$.\n", + "\n", + "In this example, we will consider a first order decay reaction:\n", + "\n", + "$$r = - k c$$\n", + "\n", + "However, more complicated reaction kinetics can easily be implemented with Reactix." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bda0f7cf", + "metadata": {}, + "outputs": [], + "source": [ + "import jax\n", + "import jax.numpy as jnp\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "\n", + "from reactix import MixedSystem, declare_species, make_solver, KineticReaction, reaction\n", + "\n", + "jax.config.update(\"jax_enable_x64\", True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b71fb4b0", + "metadata": {}, + "outputs": [], + "source": [ + "Species = declare_species([\"tracer\"])" + ] + }, + { + "cell_type": "markdown", + "id": "b460e0c3", + "metadata": {}, + "source": [ + "## Define the reactions" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "368b2ce4", + "metadata": {}, + "outputs": [], + "source": [ + "@reaction\n", + "class FirstOrderDecay(KineticReaction):\n", + " decay_coefficient: jax.Array\n", + "\n", + " def rate(self, time, state, system):\n", + " return self.decay_coefficient * state.tracer\n", + "\n", + " def stoichiometry(self, time, state, system):\n", + " return {\n", + " \"tracer\": -1,\n", + " }\n", + "\n", + "k = 0.02\n", + "reactions = [FirstOrderDecay(decay_coefficient=k)]" + ] + }, + { + "cell_type": "markdown", + "id": "78970f09", + "metadata": {}, + "source": [ + "## Set up the system" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c715a052", + "metadata": {}, + "outputs": [], + "source": [ + "c_in = jnp.array(1.0)\n", + "Q = jnp.array(0.5)\n", + "V = jnp.array(10.0)\n", + "reactor_system = MixedSystem.build(\n", + " reactions=reactions,\n", + " discharge=Q,\n", + " volume=V,\n", + " inflow_concentration=Species(tracer=c_in),\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "ae184b26", + "metadata": {}, + "source": [ + "## Run the solver" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "85c9a806", + "metadata": {}, + "outputs": [], + "source": [ + "t_points = jnp.linspace(0, 200, 123)\n", + "solve = make_solver(t_max=200, t_points=t_points, rtol=1e-6, atol=1e-18)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "16f3240d", + "metadata": {}, + "outputs": [], + "source": [ + "# Create an array of zeros with the length of the number of cells\n", + "val0 = jnp.zeros(())\n", + "\n", + "# Set up the initial conditions (all zeros in this case)\n", + "state = Species(tracer=val0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4b648470", + "metadata": {}, + "outputs": [], + "source": [ + "solution = solve(state, reactor_system)" + ] + }, + { + "cell_type": "markdown", + "id": "93affd4b", + "metadata": {}, + "source": [ + "## Compare the solution against an analytical solution" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ddac6db3", + "metadata": {}, + "outputs": [], + "source": [ + "c_0 = val0\n", + "c_steady = Q / (Q + k * V) * c_in\n", + "c_analytical = c_steady + (c_0 - c_steady) * np.exp(-(Q / V + k) * t_points)\n", + "\n", + "plt.plot(t_points, solution.ys.tracer, label=\"Numerical Solution\")\n", + "plt.plot(t_points, c_analytical, label=\"Analytical Solution\", linestyle=\"--\")\n", + "plt.legend()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "d81c0b40", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.13.9" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/pathogen-model.ipynb b/notebooks/pathogen-model.ipynb index 5b91f24..927b948 100644 --- a/notebooks/pathogen-model.ipynb +++ b/notebooks/pathogen-model.ipynb @@ -9,25 +9,49 @@ "source": [ "import jax\n", "import jax.numpy as jnp\n", - "import numpy as np\n", "import matplotlib.pyplot as plt\n", "\n", - "from reactix import (\n", - " Advection,\n", - " Cells,\n", - " Dispersion,\n", - " FixedConcentrationBoundary,\n", - " System,\n", - " make_solver,\n", - " declare_species,\n", - " KineticReaction,\n", - " reaction,\n", - " SpatiallyConst,\n", - " SpatiallyVarying,\n", - " user_system_parameters\n", - ")\n", + "import reactix as rx\n", "\n", - "from dataclasses import dataclass" + "jax.config.update(\"jax_enable_x64\", True)" + ] + }, + { + "cell_type": "markdown", + "id": "beb577fd", + "metadata": {}, + "source": [ + "# Pathogen transport model\n", + "\n", + "This notebook demonstrates how to set up a reactive-transport model that simulates transport of a pathogen (modeled as a colloid) in porous media. The model couples advective-dispersive transport with attachment, detachment, and decay processes.\n", + "\n", + "## Model equations\n", + "\n", + "The transport of mobile pathogens and attached pathogens is governed by the following system of coupled partial differential equations, assuming constant coefficients.\n", + "\n", + "Mobile phase pathogen (aqueous concentration, mol/L of water):\n", + "\n", + "$$\\frac{\\partial C_m}{\\partial t} + \\frac{\\rho_b}{\\theta}\\frac{\\partial S}{\\partial t} = -v\\frac{\\partial C_m}{\\partial x} + D\\frac{\\partial^2 C_m}{\\partial x^2} - k_a C_m + k_d \\frac{S}{\\rho_b/\\theta} - \\lambda_m C_m$$\n", + "\n", + "Solid phase pathogen (attached concentration, mol/kg of solids):\n", + "\n", + "$$\\frac{\\partial S}{\\partial t} = k_a \\frac{\\theta}{\\rho_b} C_m - k_d S - \\lambda_s S$$\n", + "\n", + "Where:\n", + "- $C_m$ = mobile pathogen concentration (mol/L of water)\n", + "- $S$ = attached pathogen concentration (mol/kg of solids)\n", + "- $\\theta$ = porosity (fraction)\n", + "- $\\rho_b$ = bulk density of porous medium (kg/m³)\n", + "- $v$ = pore water velocity (m/d)\n", + "- $D$ = hydrodynamic dispersion coefficient (m²/d)\n", + "- $k_a$ = attachment rate coefficient (1/d)\n", + "- $k_d$ = detachment rate coefficient (1/d)\n", + "- $\\lambda_m$ = decay rate for mobile pathogens (1/d)\n", + "- $\\lambda_s$ = decay rate for attached pathogens (1/d)\n", + "\n", + "## Simulated species\n", + "\n", + "The following code set up three species that will be used in the simulation – mobile and attached pathogens, and a conservative tracer for comparison. The second line indicates for each species if transport calculations are carried out – for the attached pathogens this is deactivated.\n" ] }, { @@ -37,10 +61,65 @@ "metadata": {}, "outputs": [], "source": [ - "Species = declare_species([\"tracer\", \"mobile_pathogen\", \"attached_pathogen\"])\n", + "Species = rx.declare_species([\"tracer\", \"mobile_pathogen\", \"attached_pathogen\"])\n", "species_is_mobile = Species(tracer=True, mobile_pathogen=True, attached_pathogen=False)" ] }, + { + "cell_type": "markdown", + "id": "ad80ee54", + "metadata": {}, + "source": [ + "## System-wide parameters\n", + "\n", + "Converting between solid-phase and aqueous-phase concentrations in the reaction terms requires knowing the porosity and bulk density of the porous medium.\n", + "These are both system-wide properties rather than being specific to one reaction.\n", + "While the porosity is a native property of a `System` in Reactix (because it is also required for transport calculations), the bulk density is, by default, not stored in the `System`\n", + "\n", + "However, users can define a custom class that holds system-wide parameters and pass it to the `System`. Parameter `x` can be accessed as `system.parameters.x` where `system` is an `System` object.\n", + "\n", + "The custom parameter class needs to be defined using the `user_system_parameters` decorator. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c3af3f9a", + "metadata": {}, + "outputs": [], + "source": [ + "@rx.user_system_parameters\n", + "class SystemParameters:\n", + " # Provide parameter names as attributes of the class\n", + " solid_density: jax.Array\n", + "\n", + " # Parameters can also be calculated from other system parameters\n", + " def bulk_density(self, system):\n", + " return (1 - system.porosity) * self.solid_density" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ba7b12df", + "metadata": {}, + "outputs": [], + "source": [ + "# Create a SystemParameters instance to store the parameter values\n", + "# Solid density typical for quartz sand: 2.65 g/cm³\n", + "system_parameters = SystemParameters(solid_density=rx.SpatiallyConst(jnp.array(2.65))) # g/cm³" + ] + }, + { + "cell_type": "markdown", + "id": "82519479", + "metadata": {}, + "source": [ + "## Reaction kinetics and stoichiometry\n", + "\n", + "Each reaction term is defined in a separate class, providing a custom rate expression and the stoichiometric coefficients. Note how we can use the same variable name for the decay parameter of the decay reaction of attached and mobile pathogens because they are contained by different classes." + ] + }, { "cell_type": "code", "execution_count": null, @@ -48,8 +127,8 @@ "metadata": {}, "outputs": [], "source": [ - "@reaction\n", - "class MobilePathogenDecay(KineticReaction):\n", + "@rx.reaction\n", + "class MobilePathogenDecay(rx.KineticReaction):\n", " decay_coefficient: jax.Array\n", "\n", " def rate(self, time, state, system):\n", @@ -60,8 +139,8 @@ " \"mobile_pathogen\": -1,\n", " }\n", "\n", - "@reaction\n", - "class AttachedPathogenDecay(KineticReaction):\n", + "@rx.reaction\n", + "class AttachedPathogenDecay(rx.KineticReaction):\n", " decay_coefficient: jax.Array\n", "\n", " def rate(self, time, state, system):\n", @@ -72,8 +151,8 @@ " \"attached_pathogen\": -1,\n", " }\n", "\n", - "@reaction\n", - "class Attachment(KineticReaction):\n", + "@rx.reaction\n", + "class Attachment(rx.KineticReaction):\n", " attachment_coefficient: jax.Array\n", "\n", " def rate(self, time, state, system):\n", @@ -86,8 +165,8 @@ " \"attached_pathogen\": system.porosity / bulk_density\n", " }\n", " \n", - "@reaction\n", - "class Detachment(KineticReaction):\n", + "@rx.reaction\n", + "class Detachment(rx.KineticReaction):\n", " detachment_coefficient: jax.Array\n", "\n", " def rate(self, time, state, system):\n", @@ -102,44 +181,36 @@ ] }, { - "cell_type": "code", - "execution_count": null, - "id": "add50723", + "cell_type": "markdown", + "id": "8079009a", "metadata": {}, - "outputs": [], "source": [ - "n_cells = 200\n", - "reactions = [\n", - " Attachment(attachment_coefficient=0.02),\n", - " Detachment(detachment_coefficient=1e-2),\n", - " MobilePathogenDecay(decay_coefficient=1e-5),\n", - " AttachedPathogenDecay(decay_coefficient=1e-4),\n", - "]" + "After defining the form of the reaction rates in the reaction classes, specific parameter values are provided when creating an instance of each reaction class." ] }, { "cell_type": "code", "execution_count": null, - "id": "01746b6c", + "id": "add50723", "metadata": {}, "outputs": [], "source": [ - "@user_system_parameters\n", - "class SystemParameters:\n", - " solid_density: jax.Array\n", - "\n", - " def bulk_density(self, system):\n", - " return (1 - system.porosity) * self.solid_density" + "reactions = [\n", + " Attachment(attachment_coefficient=1), # 1/d\n", + " Detachment(detachment_coefficient=1e-3), # 1/d\n", + " MobilePathogenDecay(decay_coefficient=5e-2), # 1/d\n", + " AttachedPathogenDecay(decay_coefficient=5e-2), # 1/d\n", + "]" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "9e965afb", + "cell_type": "markdown", + "id": "1a1233f6", "metadata": {}, - "outputs": [], "source": [ - "system_parameters = SystemParameters(solid_density=SpatiallyConst(jnp.array(2.65))) # g/cm3" + "## Discretization and transport parameters\n", + "\n", + "The simulation is set up on a uniform grid, and parameters and options for the dispersion and advection terms are provided." ] }, { @@ -149,50 +220,93 @@ "metadata": {}, "outputs": [], "source": [ - "jax.config.update(\"jax_enable_x64\", True)\n", - "interface_areas = jnp.ones(n_cells + 1)\n", - "#interface_areas = interface_areas.at[100:].set(2)\n", - "cells = Cells.equally_spaced(10, n_cells, interface_area=interface_areas)\n", - "dispersion = Dispersion.build(\n", + "n_cells = 200\n", + "column_length = 10.0 # meters\n", + "interface_areas = jnp.ones(n_cells + 1) # Uniform cross-sectional area\n", + "cells = rx.Cells.equally_spaced(column_length, n_cells, interface_area=interface_areas)\n", + "\n", + "\n", + "dispersion = rx.Dispersion.build(\n", " cells=cells,\n", - " dispersivity=jnp.array(0.1),\n", + " dispersivity=jnp.array(0.05), # m\n", " pore_diffusion=Species(\n", - " tracer=jnp.array(1e-9 * 3600 * 24),\n", + " tracer=jnp.array(1e-9 * 3600 * 24), # m²/d\n", " mobile_pathogen=jnp.array(1e-9 * 3600 * 24),\n", " attached_pathogen=jnp.array(1e-9 * 3600 * 24),\n", " ),\n", ")\n", - "advection = Advection.build(\n", + "advection = rx.Advection.build(\n", " limiter_type=\"minmod\",\n", - ")\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "id": "b7ba644e", + "metadata": {}, + "source": [ + "## Boundary conditions\n", + "\n", + "The model simulates a pulse injection experiment. A rectangular pulse of pathogen-bearing water is injected from the left boundary, followed by a flushing period with pathogen-free water.\n", + "\n", + "In total, we need to set up four boundary conditions – one per side for the tracer and the mobile pathogens. Since the attached pathogens are not transported, no boundary condition is needed for them.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "45181e68", + "metadata": {}, + "outputs": [], + "source": [ + "t_stop_injection = 20\n", "bcs = [\n", - " FixedConcentrationBoundary(\n", + " rx.FixedConcentrationBoundary(\n", " boundary=\"left\",\n", " species_selector=lambda s: getattr(s, \"tracer\"),\n", - " fixed_concentration=lambda t: jnp.array(10.0),\n", + " fixed_concentration=lambda t: jnp.select([t < t_stop_injection], [jnp.array(10.0)], default=jnp.array(0.0)),\n", " ),\n", - " FixedConcentrationBoundary(\n", + " rx.FixedConcentrationBoundary(\n", " boundary=\"right\",\n", " species_selector=lambda s: getattr(s, \"tracer\"),\n", " fixed_concentration=lambda t: jnp.array(0.0),\n", " ),\n", - " FixedConcentrationBoundary(\n", + " rx.FixedConcentrationBoundary(\n", " boundary=\"left\",\n", " species_selector=lambda s: getattr(s, \"mobile_pathogen\"),\n", - " fixed_concentration=lambda t: jnp.array(10.0),\n", + " fixed_concentration=lambda t: jnp.select([t < t_stop_injection], [jnp.array(10.0)], default=jnp.array(0.0)),\n", " ),\n", - " FixedConcentrationBoundary(\n", + " rx.FixedConcentrationBoundary(\n", " boundary=\"right\",\n", " species_selector=lambda s: getattr(s, \"mobile_pathogen\"),\n", " fixed_concentration=lambda t: jnp.array(0.0),\n", " )\n", - "]\n", + "]\n" + ] + }, + { + "cell_type": "markdown", + "id": "1732a3d1", + "metadata": {}, + "source": [ + "## System set-up\n", + "\n", + "All previously defined components of the model are now passed to a `System` object to set up the model." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7ec6bc86", + "metadata": {}, + "outputs": [], + "source": [ "\n", "porosity= jnp.ones(n_cells) * 0.3\n", - "system = System.build(\n", + "system = rx.TransportSystem.build(\n", " porosity=porosity,\n", " # velocity=lambda t: jnp.array(1 / 365) * jnp.sin(np.pi * 2 * 1 / 5000 * t),\n", - " discharge=lambda t: jnp.array(1 / 365) * 0.3,\n", + " discharge=lambda t: jnp.array(1),\n", " cells=cells,\n", " advection=advection,\n", " dispersion=dispersion,\n", @@ -203,6 +317,16 @@ ")" ] }, + { + "cell_type": "markdown", + "id": "85d731ef", + "metadata": {}, + "source": [ + "## Initial conditions\n", + "\n", + "Lastly, all concentrations are set to zero throughout the domain as the initial value." + ] + }, { "cell_type": "code", "execution_count": null, @@ -210,18 +334,23 @@ "metadata": {}, "outputs": [], "source": [ - "t_points = jnp.linspace(0, 8000, 123)\n", - "solver = make_solver(t_max=8000, t_points=t_points, rtol=1e-3, atol=1e-3)\n", - "val0 = jnp.zeros(cells.n_cells)\n", - "#val0 = val0.at[slice(10,20)].set(10.0)\n", - "\n", - "state = Species(\n", - " tracer=val0,\n", - " mobile_pathogen=val0,\n", - " attached_pathogen=val0\n", + "zeros = jnp.zeros(cells.n_cells)\n", + "\n", + "initial_state = Species(\n", + " tracer=zeros,\n", + " mobile_pathogen=zeros,\n", + " attached_pathogen=zeros\n", ")\n" ] }, + { + "cell_type": "markdown", + "id": "252471c9", + "metadata": {}, + "source": [ + "## Provide solver options and run the simulation" + ] + }, { "cell_type": "code", "execution_count": null, @@ -229,10 +358,26 @@ "metadata": {}, "outputs": [], "source": [ - "solution = solver(state, system)\n", + "t_points = jnp.linspace(0, 100, 300)\n", + "solver = rx.make_solver(t_max=100, t_points=t_points, rtol=1e-6, atol=1e-8)\n", + "solution = solver(initial_state, system)\n", "#%timeit solution = solver(state, system)" ] }, + { + "cell_type": "markdown", + "id": "75f177ae", + "metadata": {}, + "source": [ + "## Simulation results\n", + "\n", + "This section presents the results of the reactive-transport simulation, showing how the three species (conservative tracer, mobile pathogen, and attached pathogen) evolve in space and time under the imposed pulse-injection boundary conditions.\n", + "\n", + "### Tracer concentration profiles at several times\n", + "\n", + "The first plot shows how the conservative tracer moves quickly through the entire domain." + ] + }, { "cell_type": "code", "execution_count": null, @@ -240,19 +385,58 @@ "metadata": {}, "outputs": [], "source": [ - "plt.plot(cells.centers[:], solution.ys.tracer.T[:,0::10]);\n", - "plt.show()" + "plt.plot(cells.centers[:], solution.ys.tracer.T[:,:120:3]);\n", + "plt.xlabel(\"Distance (m)\")\n", + "plt.ylabel(\"Tracer Concentration\")" + ] + }, + { + "cell_type": "markdown", + "id": "73c8f0c4", + "metadata": {}, + "source": [ + "### Mobile pathogen concentration profiles\n", + "\n", + "In contrast to the conservative tracer, the mobile pathogens are subject to attachment and filtration on the porous medium surfaces. The plot below shows significant attenuation in the first several meters of the domain, where the high attachment coefficient leads to rapid removal from the mobile phase." ] }, { "cell_type": "code", "execution_count": null, - "id": "e193781c", + "id": "eba0f796", "metadata": {}, "outputs": [], "source": [ - "plt.plot(cells.centers[:], solution.ys.attached_pathogen.T[:,0::10]);\n", - "plt.show()" + "plt.plot(cells.centers[:], solution.ys.mobile_pathogen.T[:, 0:30]);\n", + "plt.xlabel(\"Distance (m)\")\n", + "plt.ylabel(\"Mobile Pathogen Concentration\")\n", + "#plt.yscale(\"log\")\n", + "#plt.ylim(bottom=1e-3)" + ] + }, + { + "cell_type": "markdown", + "id": "424c7b6f", + "metadata": {}, + "source": [ + "### Breakthrough curve of the mobile pathogens\n", + "\n", + "The breakthrough curve (BTC) plots the concentration of mobile pathogens at a fixed location (5 m into the column) as a function of time.\n", + "After the stop of the injection, it shows the typical tailing behaviour caused by detachment of pathogens from the solid phase." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "202350f1", + "metadata": {}, + "outputs": [], + "source": [ + "plt.plot(solution.ts, solution.ys.mobile_pathogen.T[100,:]);\n", + "plt.xlabel(\"Time\")\n", + "plt.ylabel(\"Mobile Pathogen Concentration\")\n", + "plt.yscale(\"log\")\n", + "plt.ylim(bottom=1e-4)" ] }, { @@ -280,11 +464,19 @@ "ani = animation.ArtistAnimation(fig=fig, artists=artists, interval=40)\n", "plt.show()" ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "4ebcb174", + "metadata": {}, + "outputs": [], + "source": [] } ], "metadata": { "kernelspec": { - "display_name": "default", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -298,7 +490,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.5" + "version": "3.13.9" } }, "nbformat": 4, diff --git a/notebooks/transport-model.ipynb b/notebooks/transport-model.ipynb index 8104f18..bf61d3f 100644 --- a/notebooks/transport-model.ipynb +++ b/notebooks/transport-model.ipynb @@ -27,7 +27,7 @@ " Cells,\n", " Dispersion,\n", " FixedConcentrationBoundary,\n", - " System,\n", + " TransportSystem,\n", " make_solver,\n", " declare_species,\n", " KineticReaction,\n", @@ -142,7 +142,7 @@ "## Define advection and dispersion parameters and setting\n", "\n", "The `Advection` and `Dispersion` objects hold parameters and setting needed to compute the advective and dispersive fluxes.\n", - "Note that the discharge will be saved in the `System` object (not in `Advection`) because it needs to be accessed by both `Advection` and `Dispersion` (in order to compute the hydrodynamic dispersivity).\n", + "Note that the discharge will be saved in the `TransportSystem` object (not in `Advection`) because it needs to be accessed by both `Advection` and `Dispersion` (in order to compute the hydrodynamic dispersivity).\n", "The advective flow velocity is computed internally from the discharge based on the cross-sectional areas of the cells and the porosity." ] }, @@ -220,7 +220,7 @@ "source": [ "## Set up the system\n", "\n", - "The next step is to create a `System` object that contains all the previous settings." + "The next step is to create a `TransportSystem` object that contains all the previous settings." ] }, { @@ -232,7 +232,7 @@ "source": [ "porosity = jnp.ones(n_cells) * 0.3\n", "porosity = porosity.at[100:].set(0.1)\n", - "system = System.build(\n", + "system = TransportSystem.build(\n", " porosity=porosity,\n", " discharge=lambda t: jnp.array(1 / 365) * 0.3,\n", " cells=cells,\n", diff --git a/notebooks/transport_with_pymc.ipynb b/notebooks/transport_with_pymc.ipynb index 550c40e..7a64ba6 100644 --- a/notebooks/transport_with_pymc.ipynb +++ b/notebooks/transport_with_pymc.ipynb @@ -1,18 +1,57 @@ { "cells": [ + { + "cell_type": "markdown", + "id": "c1aa613a", + "metadata": {}, + "source": [ + "# Parameter estimation with PyMC\n", + "\n", + "This notebook demonstrates how Reactix can be coupled with PyMC for Bayesian inference of reaction parameter values.\n", + "\n", + "[PyMC](https://www.pymc.io/) is a library for Bayesian modeling and parameter inference. It can be used to define the prior distributions and likelihood, and offers a range of modern samplers, among them the No-U-turn sampler (NUTS). Using this sampler requires the computation of gradients of the posterior with respect to parameters. Since Reactix is built on JAX, this can be achieved through automatic differentiation. All this is done under the hood by PyMC, so the user only needs to define the model and run the sampler.\n", + "\n", + "This notebooks shows a toy example with a simple first-order decay reaction coupled to advective-dispersive transport.\n", + "Based on an artificial concentration measurement, we will estimate the decay constant.\n", + "\n", + "## Package imports" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "a015cae5-632b-451f-a107-3902af5dfe97", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "env: EQX_ON_ERROR=nan\n" + ] + } + ], "source": [ + "# Ensure that that the ODE solver return NaN values when it fails instead of raising an error.\n", + "# This is important to prevent the NUTS sampler from crashing when the ODE solver fails to integrate the system of equations,\n", + "# but rather registering a divergence for the given parameter combination.\n", "%env EQX_ON_ERROR=nan" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, + "id": "8f4b2f0f", + "metadata": {}, + "outputs": [], + "source": [ + "import pytensor\n", + "pytensor.config.exception_verbosity = \"high\"" + ] + }, + { + "cell_type": "code", + "execution_count": 5, "id": "9ff039d9-af08-4303-a907-5db4a96050e6", "metadata": {}, "outputs": [], @@ -22,51 +61,54 @@ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import dataclasses\n", + "import pandas as pd\n", + "import xarray as xr\n", "\n", "from reactix import (\n", " Advection,\n", " Cells,\n", " Dispersion,\n", " FixedConcentrationBoundary,\n", - " System,\n", + " TransportSystem,\n", " make_solver,\n", " declare_species,\n", " KineticReaction,\n", " reaction,\n", - " SpatiallyConst,\n", - " SpatiallyVarying\n", ")\n", - "\n", - "from dataclasses import dataclass" + "import pytensor.tensor as pt\n", + "import pymc as pm\n", + "import nutpie" ] }, { "cell_type": "code", - "execution_count": null, - "id": "06bc296f", + "execution_count": 6, + "id": "858c1ec4", "metadata": {}, "outputs": [], "source": [ - "import pytensor.tensor as pt\n", - "import pytensor\n", - "import pymc as pm\n", - "import nutpie" + "# Enable 64-bit floating-point precision in JAX\n", + "# See here: https://docs.kidger.site/diffrax/usage/how-to-choose-a-solver/#stiff-problems\n", + "jax.config.update(\"jax_enable_x64\", True)" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "858c1ec4", + "cell_type": "markdown", + "id": "3ee0ad2f", "metadata": {}, - "outputs": [], "source": [ + "## Define the reactive-transport model\n", "\n", - "jax.config.update(\"jax_enable_x64\", True)" + "In this example, we will use a simple reactive transport model with a reactive compound that is degraded with first-order decay kinetics.\n", + "\n", + "### Reaction kinetics\n", + "\n", + "We define a custom first-order decay reaction with Reactix:" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "15bb6a7f", "metadata": {}, "outputs": [], @@ -86,14 +128,28 @@ "Species = declare_species([\"tracer\", \"reactive_tracer\"])" ] }, + { + "cell_type": "markdown", + "id": "2752e270", + "metadata": {}, + "source": [ + "### Transport system\n", + "\n", + "We set up a system with constant flow velocity and uniform discretization. At the inflow boundary, a constant-concentration boundary is applied with a time-invariant inflow concentration.\n", + "\n", + "To keep the code in the PyMC model definition concise, we define a function for setting up the reactive-transport system that takes all the parameters that we want to estimate as inputs. In this case, we want to estimate the first-order decay constant.\n", + "Note that `make_system` takes an argument `decay_coefficient` which is then passed as a value to the `FirstOrderDecay` reaction object." + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "1721c501-5617-420d-afd0-012d4ab732d4", "metadata": {}, "outputs": [], "source": [ "def make_system(decay_coefficient):\n", + " # Define the set of species and reactions\n", " species_is_mobile = Species(tracer=True, reactive_tracer=True)\n", " n_cells = 200\n", " reactions = [\n", @@ -101,8 +157,11 @@ " decay_coefficient=decay_coefficient\n", " )\n", " ]\n", + " # Define the cell geometry\n", " interface_areas = jnp.ones(n_cells + 1)\n", " cells = Cells.equally_spaced(10, n_cells, interface_area=interface_areas)\n", + "\n", + " # Set transport process options\n", " dispersion = Dispersion.build(\n", " cells=cells,\n", " dispersivity=jnp.array(0.1),\n", @@ -114,6 +173,7 @@ " advection = Advection.build(\n", " limiter_type=\"upwind\",\n", " )\n", + " # Define the boundary conditions\n", " bcs = [\n", " FixedConcentrationBoundary(\n", " boundary=\"left\",\n", @@ -137,9 +197,10 @@ " )\n", " ]\n", "\n", + " # Set up the system\n", " porosity= jnp.ones(n_cells) * 0.3\n", " #porosity = porosity.at[100:].set(0.1)\n", - " return System.build(\n", + " return TransportSystem.build(\n", " porosity=porosity,\n", " # velocity=lambda t: jnp.array(1 / 365) * jnp.sin(np.pi * 2 * 1 / 5000 * t),\n", " discharge=lambda t: jnp.array(1 / 365) * 0.3,\n", @@ -152,35 +213,145 @@ " )" ] }, + { + "cell_type": "markdown", + "id": "a3b11448", + "metadata": {}, + "source": [ + "## Define the PyMC model\n", + "\n", + "### Measurement point\n", + "\n", + "Below, we create an concentration data point that will be used for parameter estimation.\n", + "We set a concentration of 0.5 at the 40th cell at the 20th time point.\n" + ] + }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, + "id": "2da0d311", + "metadata": {}, + "outputs": [], + "source": [ + "idx_time = np.array([20,])\n", + "idx_space = np.array([40,])\n", + "\n", + "measurement = xr.DataArray(\n", + " data=[0.5],\n", + " name=\"concentration_measurement\",\n", + " dims=\"measurement_nr\",\n", + " coords={\"measurement_nr\": pd.RangeIndex(len(idx_time))}\n", + ")" + ] + }, + { + "cell_type": "markdown", + "id": "c17ef2e7", + "metadata": {}, + "source": [ + "### Passing coordinates and defining prior distributions\n", + "\n", + "PyMC return an `InferenceData` object with named arrays that have dimensions and coordinates (based on Xarray).\n", + "In order to save the time as a coordinate for the simulated concentrations, we need to create a dictionary with all the coodinates." + ] + }, + { + "cell_type": "code", + "execution_count": 10, "id": "853ceb90", "metadata": {}, "outputs": [], "source": [ "t_points = jnp.linspace(0, 8000, 123)\n", + "\n", "coords = {\n", " \"time_dense\": np.array(t_points),\n", - "}\n", + " **measurement.coords\n", + "}\n" + ] + }, + { + "cell_type": "markdown", + "id": "2939797b", + "metadata": {}, + "source": [ + "We can then pass these coordinates to the PyMC model. The first step in the model is to define prior distributions for all parameters that we would like to estimate.\n", + "\n", + "Here, we chose a half-normal distribution with a standard deviation of 0.01 for the decay coefficient and pass it to the function that builds the reactive-transport system.\n", + "\n", + "Finally, we also add the cell center locations as a coordinate to the PyMC `model`. This can only be done after creating the `system`, when the cell geometry is known." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "96e3a15e", + "metadata": {}, + "outputs": [], + "source": [ "\n", "with pm.Model(coords=coords) as model:\n", " decay_coefficient = pm.HalfNormal(\"k_dec\", 0.01)\n", " system = make_system(decay_coefficient)\n", " model.add_coord(\"x\", np.array(system.cells.centers))\n", - " val0 = jnp.zeros(system.cells.n_cells)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "6b096196", + "metadata": {}, + "source": [ + "### Setting up the solver\n", + "\n", + "PyMC is built around the PyTensor library, whereas Reactix uses JAX. In order to be able to use JAX together with PyMC, the JAX code needs to be wrapped with the `pytensor.wrap_jax` decorator." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "605c6710", + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "with model:\n", + " # Initial conditions: all species start at zero concentration\n", + " zeros = jnp.zeros(system.cells.n_cells)\n", " initial_state = Species(\n", - " tracer=val0,\n", - " reactive_tracer=val0\n", + " tracer=zeros,\n", + " reactive_tracer=zeros\n", " )\n", "\n", + "\n", + " # Wrap the solver function with PyTensor to make it compatible with PyMC\n", " @pytensor.wrap_jax\n", " def solve_pt(y0, system):\n", " solve_fn_dense = make_solver(t_max=8000, t_points=t_points, rtol=1e-6, atol=1e-6)\n", " return solve_fn_dense(y0, system).ys\n", " \n", - " solution = solve_pt(initial_state, system)\n", + " # Solve the system of ODEs using the initial state and the system definition\n", + " solution = solve_pt(initial_state, system)\n" + ] + }, + { + "cell_type": "markdown", + "id": "359f9a7e", + "metadata": {}, + "source": [ + "### Saving outputs and defining the likelihood" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "fdbefc0a", + "metadata": {}, + "outputs": [], + "source": [ "\n", + "with model:\n", + " # Save all concentrations as deterministic variables in the PyMC model for later analysis\n", " fields = dataclasses.fields(solution)\n", " for field in fields:\n", " pm.Deterministic(\n", @@ -188,116 +359,333 @@ " getattr(solution, field.name),\n", " dims=(\"time_dense\", \"x\"),\n", " )\n", - " pm.Normal(\"made_up_point\", mu=solution.reactive_tracer[20, 40], sigma=0.1, observed=0.5)\n" + "\n", + " # Define a normal likelihood for the observations, using the model's predicted concentration at the specified time and space indices as the mean\n", + " pm.Normal(\"made_up_point\", mu=solution.reactive_tracer[idx_time, idx_space], sigma=0.1, observed=measurement.values, dims=(\"measurement_nr\"))\n" + ] + }, + { + "cell_type": "markdown", + "id": "5eeb5d52", + "metadata": {}, + "source": [ + "## Sample the prior distribution" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 14, "id": "ee25de4d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "Sampling: [k_dec, made_up_point]\n" + ] + } + ], "source": [ "with model:\n", " prior = pm.sample_prior_predictive(draws=50)" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "fca11dc7", + "cell_type": "markdown", + "id": "7d25cdb3", "metadata": {}, - "outputs": [], "source": [ - "compiled = nutpie.compile_pymc_model(model, backend=\"jax\", gradient_backend=\"jax\")\n", - "sampler = nutpie.sample(compiled, chains=2, blocking=False)" + "### Prior predictive checks\n", + "\n", + "The following plots show several draws from the prior of the simulated concentrations. This is a good check to assess if the chosen prior distributions for the parameters are reasonable. The measured concentrations is plotted alongside as a black dot.\n", + "\n", + "#### Concentration profile at the time of measurement" ] }, { "cell_type": "code", - "execution_count": null, - "id": "d492fbb1", + "execution_count": 15, + "id": "276fcb22", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 15, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd8HPWZ+PHPzM5sV++SbUnuvWNjG9v03kMgcDknJFxCSCOE5EcS7kg4cpQkxCkHyR0hJAcJBAKEYhxMscHGGNvYuHdbllWttlqVrfP9/TGrtYW7vLKweN6v174ijWZnvrO2o4fv9/k+j6aUUgghhBBC9BN6Xw9ACCGEECKVJLgRQgghRL8iwY0QQggh+hUJboQQQgjRr0hwI4QQQoh+RYIbIYQQQvQrEtwIIYQQol+R4EYIIYQQ/YoEN0IIIYToVyS4EZ9YTzzxBJqmsWrVqpRd88c//jGapqXser3hjTfeYMaMGXi9XnJzc/niF79IfX19j6/3l7/8hfnz5x/2Z5qm8eMf/7jH1+4Lp8Of4am2dOlSbrnlFqZMmYLL5ULTNPbs2XPc7//Rj37EpEmTyM7Oxu12M3jwYL7yla9QUVFxyLl33303l19+OSUlJWiaxhe/+MXDXnPjxo3cdtttzJgxA5/Ph6ZpLF68uGcPmALH8++qsrKSa665hsGDB+Pz+cjIyGDSpEn89re/JRaL9dHIRU9IcCM+VW655RaWL1/e18M4oiVLlnDJJZdQUFDAP/7xD371q1/xxhtvcN555xEOh3t0zaMFN8uXL+eWW245iRGLT4I333yTN954g0GDBjFz5swTfn9LSws33ngjf/rTn1i4cCF33nknr7zyCtOnT6exsbHbub/85S9pbGzkyiuvxOl0HvGaq1at4sUXXyQ7O5vzzjvvhMeUSsf776q9vZ309HT+/d//nZdeeomnn36as846i29+85vceuutffgE4oQpIT6h/vjHPypArVy5sq+HcsqcccYZavTo0SoajSaPLVu2TAHqkUce6dE1L7vsMlVaWpqiEfa9e+65R8n/dXUXj8eTX//sZz9TgNq9e/dJXXPBggUKUH/4wx+OeC+fz6e+8IUvHHNMzz77rALU22+/fVJj+rjdu3cf13VP9t/V9ddfrwzDUKFQ6GSHLE4RmbkRfWbLli3ceOONFBQU4HK5GDRoEPPmzTtkhiIYDPK1r32N3NxccnJyuPbaa6muru52zjPPPMOFF15IUVERHo+HUaNGcdddd9He3t7tvMMtaZSVlXH55ZezcOFCJk+ejMfjYeTIkTz++OO98+BHUFVVxcqVK/nXf/1XDMNIHp85cybDhw/nhRdeOOFrnn322bz66qtUVFSgaVry1eXjy1JdS4FvvfUW//Zv/0ZOTg7p6enMmzeP9vZ2amtruf7668nMzKSoqIg777yTaDTa7Z6RSIT77ruPkSNH4nK5yMvL4+abb2b//v0nPP5XX32ViRMn4nK5KC8v5+c///lhz1NK8cgjjzBx4kQ8Hg9ZWVlcd9117Nq165DPY+zYsaxcuZLZs2fj9XoZPHgwDzzwAJZlJc+zLIv77ruPESNG4PF4yMzMZPz48fzqV7/qdr3t27dz0003kZ+fj8vlYtSoUfz3f//3CT/nydL11P9feV5eHkC3v4sncq8TGVMq/858XCr+XeXl5aHrOg6H46THI04N49inCJF6H330EWeddRa5ubnce++9DBs2jJqaGl566SUikQgulyt57i233MJll13GX/7yFyorK/ne977H5z//ed56663kOdu3b+fSSy/l9ttvx+fzsWXLFh588EE++OCDbucdbTzf/e53ueuuuygoKOCxxx7jy1/+MkOHDmXOnDlHfW88Hkcpdcx76Lp+1P/D37BhAwDjx48/5Gfjx49n2bJlx7zHxz3yyCN85StfYefOnScUHN1yyy1ce+21PP3006xZs4Yf/vCHxGIxtm7dyrXXXstXvvIV3njjDR588EGKi4u54447ADsouOqqq3j33Xf5/ve/z8yZM6moqOCee+7h7LPPZtWqVXg8nuMaw5tvvslVV13FjBkzePrpp4nH4zz00EPU1dUdcu5Xv/pVnnjiCb71rW/x4IMP0tTUxL333svMmTP56KOPKCgoSJ5bW1vLv/zLv/Dd736Xe+65hxdeeIEf/OAHFBcXM2/ePAAeeughfvzjH3P33XczZ84cotEoW7ZsoaWlJXmdTZs2MXPmTAYNGsQvfvELCgsL+ec//8m3vvUtGhoauOeee476fKn6e5NKsVgs+ay33347w4cP59prr+3Ve6by78zh9OTflVKKeDxOMBjk9ddf54knnuC73/3uIYGe+ATr24kj8Wl17rnnqszMTFVfX3/Ec7qWpW677bZuxx966CEFqJqamsO+z7IsFY1G1ZIlSxSgPvroo+TPDrekUVpaqtxut6qoqEge6+zsVNnZ2eqrX/3qMZ+ltLRUAcd83XPPPUe9zlNPPaUAtXz58kN+9pWvfEU5nc5jjuVwjrYs9fFxdX3m3/zmN7udd/XVVytAPfzww92OT5w4UU2ePDn5/V//+lcFqL///e/dzlu5cuUJL61Nnz5dFRcXq87OzuSx1tZWlZ2d3e3PcPny5QpQv/jFL7q9v7KyUnk8HvX9738/eWzu3LkKUCtWrOh27ujRo9VFF12U/P7yyy9XEydOPOr4LrroIjVgwAAVCAS6Hf/GN76h3G63ampqOur7u8ZyrNeRln2OpKfLUjU1Nd3uO336dFVVVXXU9xxtWepgR1uWOpG/M/F4XEWj0eRrx44dClBvvPFGt+OxWCz5np78u7r//vuTn4OmaepHP/rRMZ9RfLJIGCpOuY6ODpYsWcKXv/zl5NT30Vx55ZXdvu/6L7CKigoKCwsB2LVrF3fffTdvvfUW9fX13f6LePPmzYf9r7aDTZw4kUGDBiW/d7vdDB8+/LC7RT7u5ZdfPq5k3+Li4mOeAxxxJ9Cp3CF0+eWXd/t+1KhRvPjii1x22WWHHH/99deT37/yyitkZmZyxRVXdNtdMnHiRAoLC1m8eDFf+9rXjnn/9vZ2Vq5cyW233Ybb7U4eT0tL44orruBPf/pTt3tqmsbnP//5bvcsLCxkwoQJh+zQKSwsZNq0ad2OjR8/nrVr1ya/nzZtGq+++iq33XZbcvYoPT09+fNQKMSbb77J1772Nbxeb7f7Xnrppfz2t7/l/fff55JLLjniM/7+978nGAwe87PIzc095jmpkJuby8qVKwmHw2zevJmHHnqIc845h8WLF1NUVNRr9z2RvzNf+tKXuv3Zdzn//PO7fT937txD/txP5N/VF7/4Rc4//3yampp46623+NnPfkYgEOA3v/nNiT6e6CMS3IhTrrm5mXg8zoABA47r/JycnG7fdy1ZdXZ2AtDW1sbs2bNxu93cd999DB8+HK/XS2VlJddee23yvBO5R9d9jue9o0ePPu7lheMZw8d3pwA0NTWRnZ19zHukysfv1bUr5nDHQ6FQ8vu6ujpaWlqOuIumoaHhuO7f3NyMZVnJ4PVgHz9WV1eHUqrb0tPBBg8e3O374/mz/sEPfoDP5+PJJ5/kd7/7HQ6Hgzlz5vDggw8ydepUGhsbicVi/OY3vzniL7xjPevQoUNT8vcmVQzDYOrUqQDMmjWLiy++mPLych544IFDco1S6UT+zvz4xz/mG9/4RvL7mpoarrzySn73u98xZcqU5PG0tLTk1z35d1VYWJj8e3bhhReSlZXFXXfdxZe+9CUmTZp0gk8o+oIEN+KUy87OxuFwsG/fvpRc76233qK6uprFixczd+7c5PGD8yN605AhQ45rhueee+45ak2ZsWPHArB+/XouvfTSbj9bv3598uefZF1J3wsXLjzszw/+pXM0WVlZaJpGbW3tIT/7+LHc3Fw0TePdd9/tlqvV5XDHjsUwDO644w7uuOMOWlpaeOONN/jhD3/IRRddRGVlJVlZWTgcDv71X/+Vr3/964e9Rnl5+VHvcd5557FkyZJjjuULX/gCTzzxxAk/w8kaMGAAxcXFbNu2rVfvcyJ/Z8rKyigrK0t+31XLZ8SIEcnA7ONS8e+qa6Zv27ZtEtycJiS4Eaecx+Nh7ty5PPvss/z0pz896Wn3rmnlj/8S+/3vf39S1z1eqVqWKikpYdq0aTz55JPceeedyZ0Z77//Plu3buX222/v0fiOdwYqFS6//PJk8u/06dN7fB2fz8e0adN4/vnn+dnPfpZcmgoGg7z88suH3POBBx6gqqqK66+//qTGfziZmZlcd911VFVVcfvtt7Nnzx5Gjx7NOeecw5o1axg/fvxR670cySdtWerjduzYwb59+w5ZFk61VP2dOZJU/Lt6++23AXu2TZweJLgRfeLhhx/mrLPOYvr06dx1110MHTqUuro6XnrpJX7/+98f93/hg72lMysri1tvvZV77rkH0zR56qmn+Oijj3rxCQ4YN25cyq714IMPcsEFF/DZz36W2267jfr6eu666y7Gjh3LzTff3O3crv+CPVYl2nHjxvH888/z6KOPMmXKFHRdP+J/5Z6sz33uczz11FNceumlfPvb32batGmYpsm+fft4++23ueqqq7jmmmuO61r/+Z//ycUXX8wFF1zAd7/7XeLxOA8++CA+n4+mpqbkebNmzeIrX/kKN998M6tWrWLOnDn4fD5qampYunQp48aNO648n4NdccUVjB07lqlTp5KXl0dFRQXz58+ntLSUYcOGAfCrX/2Ks846i9mzZ/O1r32NsrIygsEgO3bs4OWXXz7mLr0RI0ac0JiOZv/+/clZoPXr1wPw2muvkZeXR15eXrcZTcMwmDt3Lm+++SYA69at4zvf+Q7XXXcdgwcPRtd11q9fzy9/+UtycnK48847u91ryZIlyS3a8XiciooKnnvuOcDOdenKo+vo6GDBggWAHUh0vbehoQGfz5fMR0rl35kjOd5/V/fccw91dXXMmTOHkpISWlpaWLhwIf/7v//LZz/72W5LX+ITrm/zmcWn2aZNm9RnP/tZlZOTo5xOpxo0aJD64he/mCyUdaQifm+//fYhOy/ee+89NWPGDOX1elVeXp665ZZb1IcffqgA9cc//jF53pF2S1122WWHjG/u3Llq7ty5KXve4/X666+rM888U7ndbpWdna3mzZun6urqDjkvNzdXnXnmmce8XlNTk7ruuutUZmam0jSt2/NzhN1SH//Muz63/fv3dzv+hS98Qfl8vm7HotGo+vnPf64mTJig3G638vv9auTIkeqrX/2q2r59+/F8BEkvvfSSGj9+fPLvxwMPPHDEIn6PP/64mj59uvL5fMrj8aghQ4aoefPmqVWrViXPmTt3rhozZswh7/3CF77QbUfZL37xCzVz5kyVm5ubvPeXv/xltWfPnm7v2717t/rSl76kSkpKlGmaKi8vT82cOVPdd999J/ScJ6vr38ThXh//O/zxY7W1terzn/+8GjJkiPJ6vcrpdKrBgwerW2+9Ve3du/eQex1tl9fB/ya7Cuwd7vXx3Xs9/TtzvEX8lDq+f1cvvfSSOv/881VBQYEyDEP5/X41bdo09etf/7pbAUDxyacpdRwZbUKIT5RNmzYxZswYXnnllUN2MAkhxKedVCgW4jT09ttvM2PGDAlshBDiMGTmRghxSlmW1a3VweFIJVghxMmQmRshxCl17733YprmUV/HSpIWQoijkZkbIcQpVV1dfUjj04/r6fZqIYQACW6EEEII0c/IspQQQggh+pVPZdaeZVlUV1eTlpZ2SpsRCiGEEKLnlFIEg0GKi4uP2nftUxncVFdXM3DgwL4ehhBCCCF6oLKy8qjNlz+VwU1Xaf/KykrS09P7eDRCCCGEOB6tra0MHDjwmC16PpXBTddSVHp6ugQ3QgghxGnmWCklklAshBBCiH5FghshhBBC9CsS3AghhBCiX5HgRgghhBD9igQ3QgghhOhX+jS4eeedd7jiiisoLi5G0zRefPHFY75n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8cADDxxy/Gc/+xmf/exnj/s6ubm5OByOQ2Zp6uvrD5nN6VJUVERJSQkZGRnJY6NGjUIpxb59+w77HpfLRXp6erfXqWB67BmWyMHLUi77f2PYhfws04ll2ctLLfEiyjur2NEWBG8m7liU7Jh9njeRd7M/ks+UNDcAK3Y3EYtbyfv5fMNwe8oxNGie27U09UK3mjgnYsT0QtLzPHhifsbWzuZXH/6qx9cSQgghTpUeF/G77LLLDjl+8cUX88477xz3dZxOJ1OmTGHRokXdji9atOiICcKzZs2iuro6WTgQYNu2bei6zoABA4773qeC03sguOmauWl02R+5nijkpwwn0XgEpRQNajAGcQK1W8jKyQcgp7UFgPZEQ9IWRx6uvDbSgPZonHVVgeT9NE2jsCCxNFUKylDEK2oJb9vWo/HrDp1pl5UBMLH6PD6qWs+y6mU9upYQQghxqvQouGlra+tWvK+LaZonnKx7xx138Nhjj/H444+zefNmvvOd77B3715uvfVWwF5SOngH1k033UROTg4333wzmzZt4p133uF73/seX/rSl/B4PD15nF7j8id2QwG+iF1crzWxg8qlEjupTCeWAlQ7DU67Vo3av4XyrqTiZru1RV2ej/RoEKXpvBbcntwSvvRjS1MF+ZcCkOFUdE5MzN689GKPn2HYGQVkFnhxx3yMq53L/NXzsZR17DcKIYQQfaRHwc3YsWN55plnDjn+9NNPM3r06BO61g033MD8+fO59957mThxIu+88w4LFiygtNSulFtTU9Ot5o3f72fRokW0tLQwdepU/uVf/oUrrriCX//61z15lF7lSjsQAPrDMQACieAm3bIDsZj7wHbwIHZ38LSmbUwaUYaloDBg75hqznFSHLFnq1Y3B5meCG6WbK7vdk+fbzhuTymGBo1nJ/JuXnoRFY/36Bl0h84Zl5cB9uzNnvpKFu5e2KNrCSGEEKdCj7qC//u//zuf+cxn2LlzJ+eeey4Ab775Jn/961959tlnT/h6t912G7fddtthf/bEE08ccmzkyJGHLGV9ErkzXMmvfcn+UgYQJd/KIuhoJX5QIb/2aDmYMKR9N54sL614yG1rxQDChka2277e/lAu03M90BJiTVULgY4oGV47SNI0jcL8y9hT8QiNA6DEo2B/Cx0ffIBvxowePcewKQV8+M+9NO6DSVXn85s1v+GC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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "trace = sampler.inspect()\n" + "prior.prior.reactive_tracer.isel(chain=0, time_dense=idx_time[0]).plot.line(x=\"x\", hue=\"draw\", add_legend=False);\n", + "plt.scatter(system.cells.centers[idx_space], measurement.values, color=\"k\", label=\"measurement\")" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "c9230034", + "cell_type": "markdown", + "id": "4ce025a8", "metadata": {}, - "outputs": [], "source": [ - "sampler.abort()" + "#### Breakthrough curve at the measurement location" ] }, { "cell_type": "code", - "execution_count": null, - "id": "35abfdbf", + "execution_count": 16, + "id": "c8813155", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQAAgIBJREFUeJzs3XdgVeX9+PH3OXff7E0WJOwtSxEUEak4a9VqqVTRWlupo1Lqt6K1dVSL39pabX/Vr6jVWmet1qJSFRUQBRTZQ/ZIyN65Se485/n9ccOFGEYIgUsun1d7eu898/MkKfnkmZpSSiGEEEIIESP0aAcghBBCCNGVJLkRQgghREyR5EYIIYQQMUWSGyGEEELEFEluhBBCCBFTJLkRQgghREyR5EYIIYQQMUWSGyGEEELEFEluhBBCCBFTJLkR4iT3wgsvoGkaX331VZfd8/7770fTtC673/Hw0UcfMW7cONxuN+np6dxwww1UVlZGO6xj9sknn3DjjTcycOBA4uLiyM3N5Tvf+Q4rV67s8D0qKyu54YYbSE9Px+12M27cOD7++OM25zQ2NvLwww9z7rnn0qNHD+Lj4xk2bBj/+7//i8/na3Pu7t270TTtoNtrr73WJeUW4kSS5EaIU9BNN93EsmXLoh3GIS1evJiLLrqIrKws/vOf//DEE0/w0UcfMXnyZPx+f7TDOyZPPfUUu3fv5o477mD+/Pk88cQTVFZWcuaZZ/LJJ58c8Xq/38/kyZP5+OOPeeKJJ/jPf/5DVlYWF154IYsXL46cV1RUxOOPP86oUaOYO3cu8+bN46qrruL+++/n0ksv5WAr79x+++0sW7aszXb++ed3afmFOCGUEOKk9vzzzytArVixItqhnDCnn366Gjx4sAoGg5F9n3/+uQLUk08+GcXIjl1FRUW7fR6PR2VlZanJkycf8fq//vWvClBLly6N7AsGg2rw4MHqjDPOiOxrampSTU1N7a5/9NFHFaCWLFkS2bdr1y4FqEcfffRoiyPESUlqboSIss2bN3PNNdeQlZWFw+GgZ8+eTJ8+vV0Nhcfj4ac//Snp6emkpaVx5ZVXUlpa2uac119/nSlTppCdnY3L5WLQoEHMnj2b5ubmNucdrFmqoKCASy+9lPfff59Ro0bhcrkYOHAgf/vb345PwQ+hpKSEFStWcN1112G1WiP7x48fT//+/fn3v/991Pfctm0biYmJXH311W32f/LJJ1gsFn79618fc9wdlZmZ2W5ffHw8gwcPpri4+IjX//vf/2bAgAGMGzcuss9qtXLttdfy5ZdfUlJSAkBcXBxxcXHtrj/jjDMAOvQsIborSW6EiKK1a9dy+umns3z5ch588EH++9//MmfOHPx+P4FAoM25N910EzabjVdeeYXf//73LFq0iGuvvbbNOdu2bePiiy/mueee4/3332fmzJn885//5Nvf/naH4/nFL37Bz3/+c/7zn/8wfPhwfvSjH/Hpp58e8VrDMAiFQkfcTNM87H02bNgAwPDhw9sdGz58eOT40ejXrx/PPPMM//rXv/jzn/8MQHl5OdOmTWPChAncf//9h71eKdWhsoVCoaOODaChoYFVq1YxZMiQI567YcOGQ35tADZu3HjY6/c1fR3sWY888gh2ux23283ZZ5/NvHnzOhK+ECefaFcdCXEqO++881RycrKqrKw85Dn7mqVuueWWNvt///vfK0CVlZUd9DrTNFUwGFSLFy9WgFq7dm3k2H333ae++X//Xr16KafTqfbs2RPZ5/V6VWpqqrr55puPWJZevXop4Ijbfffdd9j7vPzyywpQy5Yta3fsJz/5ibLb7UeM5VB++tOfKrvdrpYtW6bOO+88lZmZqUpLS4943b7vQUe2zvjBD36grFar+uqrr454rs1mO+j3Y+nSpQpQr7zyyiGvXbt2rXK5XOqKK65os7+0tFT9+Mc/Vv/85z/VkiVL1Msvv6zOPPNMBahnnnnm6AskRJTtr/MVQpxQLS0tLF68mB/96EdkZGQc8fzLLruszed9f6nv2bOHHj16ALBz507uvfdePvnkEyorK9t0Gv36668P+hf/gUaMGEHPnj0jn51OJ/3792fPnj1HjO+dd97pUGffnJycI54DHHI017GM8vrTn/7E8uXLmTRpEoFAgPfff5/s7OwjXvftb3+bFStWdPq5h/PrX/+al19+mb/85S+MHj26Q9cc7mtwqGO7d+/m0ksvJT8/n2effbbNsezsbObOndtm39VXX83YsWOZPXs2N9xwQ5smQiFOdvLTKkSU1NXVYRgGeXl5HTo/LS2tzWeHwwGA1+sFoKmpiQkTJuB0OnnooYfo378/breb4uJirrzyysh5R/OMfc/pyLWDBw8+6Aicb9L1w7eG74uhpqam3bHa2lpS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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "trace.warmup_sample_stats.diverging.plot.line(x=\"draw\", hue=\"chain\")" + "prior.prior.reactive_tracer.isel(chain=0, x=idx_space[0]).plot.line(x=\"time_dense\", hue=\"draw\", add_legend=False);\n", + "plt.scatter(t_points[idx_time], prior.observed_data.made_up_point, color=\"k\", label=\"measurement\")" ] }, { - "cell_type": "code", - "execution_count": null, - "id": "9c1c306d", + "cell_type": "markdown", + "id": "a9159ded", "metadata": {}, - "outputs": [], "source": [ - "trace.warmup_posterior.k_dec.isel(chain=0, draw=slice(100, None)).plot.line(x=\"draw\")" + "## Sample the posterior distribution\n", + "\n", + "Finally, we can sample the posterior distribution. We can use a state-of-the-art HMC sampler since gradient calculations are provided through automatic differentiation by JAX under the hood. Here we use the Nutpie sampler for PyMC. Note that you need to specify that JAX should be used as a backend for the posterior and gradient evaluation.\n", + "\n", + "Note that sampling can take a while since thousands of model runs are needed. In order to be able to see intermediate results while the sampler is still running, we let the sampler run in the background by using nutpie's option `blocking=False`. " ] }, { "cell_type": "code", - "execution_count": null, - "id": "63a3c605", + "execution_count": 17, + "id": "d492fbb1", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/html": [ + "\n", + "\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "trace.warmup_sample_stats.step_size.plot.line(x=\"draw\")\n", - "plt.yscale(\"log\")" + "compiled = nutpie.compile_pymc_model(model, backend=\"jax\", gradient_backend=\"jax\")\n", + "sampler = nutpie.sample(compiled, chains=2, blocking=False)\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "id": "fd562ddc", + "metadata": {}, + "source": [ + "After a while, we can use `sampler.inspect()` to obtain the intermediate results of the sampler and inspect them." ] }, { "cell_type": "code", - "execution_count": null, - "id": "a12de2d8", + "execution_count": 36, + "id": "c13d2092", "metadata": {}, "outputs": [], "source": [ - "trace.warmup_posterior.reactive_tracer.isel(chain=0, time_dense=20).plot.line(x=\"x\", hue=\"draw\", add_legend=False);" + "# Inspect intermediate results of the sampler\n", + "trace = sampler.inspect()" ] }, { "cell_type": "code", - "execution_count": null, - "id": "430a404d", + "execution_count": 37, + "id": "8b5a51b9", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "[,\n", + " ]" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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SQCJiYm88MILtbkv4snZ2qbmNhEREb846cEkly1bxh//+EcGDBjA/v37Afj3v//NTz/9VGs7d0ZzNbcpSBIREfGHkwqS5s6dy7Bhw2jUqBFr166lvLwcgKKiImWXao2a20RERPzppIKk5557jhkzZvD2228TEhLiWj5gwADWrl1bazt3RlPvNhEREb86qSBp27ZtXHzxxTWWx8TEkJ+ff6r7JIAySSIiIv51UkFSy5Yt2blzZ43lP/30Ex06dDjlnRI0BICIiIifnVSQ9Oc//5kHHniAlStXYrFYOHDgAB999BETJ05k7Nixtb2PZyY1t4mIiPjVSQ0B8PDDD1NQUMAll1xCWVkZF198MWFhYUycOJF77723tvfxDKXmNhEREX866XGSnn/+eSZNmsSWLVuw2+10796dqKio2ty3M5ua20RERPzqpIMkgIiICPr06VNb+yKe1NwmIiLiVyccJN1www0n/Kaff/75Se2MeFJzm4iIiD+dcOF2bGys6ysmJoZFixaxevVq1/Nr1qxh0aJFxMbG1smOnnGUSRIREfGrE84kvfvuu67HjzzyCDfddBMzZszAarUCYLPZGDt2LDExMbW/l2ci1SSJiIj41UkNATBr1iwmTpzoCpAArFYrEyZMYNasWbW2c2c2Z3Obf/dCRETkTHVSQVJVVRVpaWk1lqelpWG3K/NRK5ytbYqSRERE/OKkerfdfvvt3HHHHezcuZN+/foBsGLFCl588UVuv/32Wt3BM5aa20RERPzqpIKkKVOmkJCQwN///neysrIAc6qShx9+mAcffLBWd/DMpd5tIiIi/nRSQVJQUBAPP/wwDz/8MIWFhQA+C7Z//vln+vTpQ1hY2Knt5ZlIvdtERET86qRqkjzFxMQcs0fb8OHD2b9//6lu4gylTJKIiIg/nXKQdDyGPuBPnmqSRERE/KpOgyQ5BWpuExER8SsFSQFLzW0iIiL+pCApUDmb25RJEhER8Ys6DZIsriYj+c2cvzvVJImIiPjFSQVJH3744TGfe+ihh1yPVbh9KtTcJiIi4k8nFSTde++9fP311zWWjx8/3iuAKioqokOHDie/d2cyFW6LiIj41UkFSbNnz+aPf/wjP/74o2vZfffdx6effsrixYtrbefOaK4hABQkiYiI+MNJBUlXXHEFM2bM4Prrr2f16tWMHTuWzz//nMWLF9O1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2L17t7FixQrj6quvNqKjo13H8+KLLxqxsbHG559/bmzcuNG45ZZbjJYtWxqFhYV+3nPfioqKjNTUVCM1NdUAjNdee81ITU01MjIyDMM4seMZM2aM0bp1a2PhwoXG2rVrjUsvvdTo3bu3UVVV5a/D8nK8YywqKjIefPBBY/ny5UZ6erqxePFio3///karVq3qzTH+5S9/MWJjY40lS5YYWVlZrq/S0lLXOvX5PP7a8TWEc/jYY48ZP/74o5Genm5s2LDBePzxx42goCBj/vz5hmHU7/NnGMc/voZw/nzx7N1mGIF1DhUkBZg333zTaNeunREaGmqcd955Xl1365uRI0caLVu2NEJCQozExETjhhtuMDZv3ux63m63G08//bSRkJBghIWFGRdffLGxceNGP+7x8S1evNgAanyNHj3aMIwTO56jR48a9957r9GkSROjUaNGxtVXX21kZmb64Wh8O94xlpaWGkOHDjWaNWtmhISEGG3btjVGjx5dY/8D+Rh9HRtgvPvuu6516vN5/LXjawjn8I477nBdI5s1a2ZcdtllrgDJMOr3+TOM4x9fQzh/vlQPkgLpHFoMwzBqNzclIiIiUv+pJklERETEBwVJIiIiIj4oSBIRERHxQUGSiIiIiA8KkkRERER8UJAkIiIi4oOCJBEREREfFCSJiIiI+KAgSUTOKIMHD2bcuHH+3g0RqQcUJImIiIj4oCBJRMShoqLC37sgIgFEQZKINFglJSXceuutREVF0bJlS1599VWv59u3b89zzz3HbbfdRmxsLHfffTcAjzzyCJ07dyYiIoIOHTrw5JNPUllZCUBBQQFWq5U1a9YAYBgGTZo04fzzz3e97yeffELLli1P01GKSF1RkCQiDdZDDz3E4sWL+eKLL5g/fz5LlixxBTdOr7zyCj169GDNmjU8+eSTAERHR/Pee++xZcsWXn/9dd5++23+/ve/AxAbG8s555zDkiVLANiwYYPre2FhIQBLlixh0KBBp+koRaSuKEgSkQapuLiYmTNnMmXKFC6//HJ69uzJ+++/j81m81rv0ksvZeLEiXTq1IlOnToB8MQTTzBgwADat2/PNddcw4MPPsinn37qes3gwYNdQdKSJUu47LLL6NGjBz/99JNr2eDBg0/LcYpI3Qn29w6IiNSFXbt2UVFRQf/+/V3LmjRpQpcuXbzW69OnT43XfvbZZ0ydOpWdO3dSXFxMVVUVMTExrucHDx7MzJkzsdvtLF26lMsuu4y2bduydOlSzjvvPLZv365MkkgDoEySiDRIhmGc0HqRkZFeP69YsYKbb76Z4cOH8/XXX5OamsqkSZO8irovvvhiioqKWLt2LcuWLWPw4MEMGjSIpUuXsnjxYpo3b063bt1q9XhE5PRTJklEGqROnToREhLCihUraNu2LQBHjhz51SzPzz//TLt27Zg0aZJrWUZGhtc6zrqkN954A4vFQvfu3UlMTCQ1NZWvv/5aWSSRBkKZJBFpkKKiorjzzjt56KGHWLRoEZs2beK2224jKOj4l71OnTqRmZnJ7Nmz2bVrF9OmTeOLL76osd7gwYP58MMPGTRoEBaLhbi4OLp3786cOXNUjyTSQChIEpEG65VXXuHiiy/m2muvZciQIVx00UUkJycf9zXXXXcd48eP59577+Wcc85h+fLlrl5vni655BJsNptXQDRo0CBsNpsySSINhMU40YZ7ERERkTOIMkkiIiIiPihIEhEREfFBQZKIiIiIDwqSRERERHxQkCQiIiLig4IkERERER8UJImIiIj4oCBJRERExAcFSSIiIiI+KEgSERER8UFBkoiIiIgP/w8kHMZY6iBUmgAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "prior.prior.reactive_tracer.isel(chain=0, time_dense=20).plot.line(x=\"x\", hue=\"draw\", add_legend=False);" + "# Plot the evolution of the decay coefficient during the warmup phase of the sampler\n", + "trace.warmup_posterior.k_dec.plot.line(x=\"draw\")" ] }, { "cell_type": "code", - "execution_count": null, - "id": "6895010e", + "execution_count": 40, + "id": "76644c9c", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjcsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvTLEjVAAAAAlwSFlzAAAPYQAAD2EBqD+naQABAABJREFUeJzs3Xd0HNX58PHvlO1Fq96r1eUmF7lhGwi9QwJpBEggtARCgOQHaRCSvAQInRAg9N67jTHuxrh3W5YtWdXqvWzfnXn/GFnGdIIL5X7O0TnW7uzMnTuS/fje57lX0nVdRxAEQRAE4VtCPtwNEARBEARBOJBEcCMIgiAIwreKCG4EQRAEQfhWEcGNIAiCIAjfKiK4EQRBEAThW0UEN4IgCIIgfKuI4EYQBEEQhG8VEdwIgiAIgvCtIoIbQRAEQRC+VURwI3xtPf7440iSxLp16w7YOW+88UYkSTpg5zsYFixYwLRp07Db7SQkJHDBBRfQ0dHxP5/v2Wef5a677vrE9yRJ4sYbb/yfz304fBOe4aH2/vvvc9FFFzFx4kQsFguSJFFfX/+FP//HP/6R8vJy4uLisFqt5OXlcfHFF9PQ0PCxY//0pz9xyimnkJ6ejiRJXHDBBZ94zu3bt3P55Zczbdo0HA4HkiSxZMmS/+0GD4Av8nvV1NTEmWeeSV5eHg6Hg5iYGMrLy7nvvvuIRCKHqeXC/0IEN8J3ykUXXcTKlSsPdzM+1dKlSznxxBNJTk7mjTfe4O6772bBggV873vfIxgM/k/n/KzgZuXKlVx00UVfocXC18HChQtZsGABWVlZTJ8+/Ut/vq+vjx//+Mc88cQTzJs3j2uvvZa3336bKVOm0N3dvd+xd955J93d3Zx22mmYzeZPPee6det4/fXXiYuL43vf+96XbtOB9EV/r7xeL263mz//+c+8+eabPP/88xxxxBFcccUVXHrppYfxDoQvTReEr6nHHntMB/S1a9ce7qYcMpMnT9ZLS0v1cDg88tqKFSt0QL///vv/p3OefPLJenZ29gFq4eF3ww036OKvrv1Fo9GRP9922206oNfV1X2lc86dO1cH9EceeeRTr+VwOPTzzz//c9v00ksv6YC+ePHir9Smj6qrq/tC5/2qv1fnnHOOrqqqHggEvmqThUNEjNwIh01VVRU//vGPSU5OxmKxkJWVxXnnnfexEYrBwUEuu+wyEhISiI+P56yzzqKlpWW/Y1544QWOO+44UlNTsdlslJSUcN111+H1evc77pOmNHJycjjllFOYN28eEyZMwGazUVxczKOPPnpwbvxTNDc3s3btWn72s5+hqurI69OnT6ewsJDXXnvtS5/zyCOPZM6cOTQ0NCBJ0sjXXh+dlto7Fbho0SJ++ctfEh8fj9vt5rzzzsPr9dLW1sY555yDx+MhNTWVa6+9lnA4vN81Q6EQf//73ykuLsZisZCYmMjPf/5zOjs7v3T758yZw/jx47FYLOTm5vKvf/3rE4/TdZ3777+f8ePHY7PZiI2N5Qc/+AG1tbUf64/Ro0ezdu1aZs6cid1uJy8vj3/+859omjZynKZp/P3vf6eoqAibzYbH42Hs2LHcfffd+52vurqan/zkJyQlJWGxWCgpKeHf//73l77Pr0qWD/xf5YmJiQD7/Sx+mWt9mTYdyJ+ZjzoQv1eJiYnIsoyiKF+5PcKhoX7+IYJw4G3evJkjjjiChIQEbrrpJgoKCmhtbeXNN98kFAphsVhGjr3ooos4+eSTefbZZ2lqauJ3v/sd5557LosWLRo5prq6mpNOOomrrroKh8NBVVUVt9xyC2vWrNnvuM9qzzXXXMN1111HcnIyDz/8MBdeeCH5+fnMmjXrMz8bjUbRdf1zryHL8mf+hb9t2zYAxo4d+7H3xo4dy4oVKz73Gh91//33c/HFF7N79+4vFRxddNFFnHXWWTz//PNs3LiRP/zhD0QiEXbu3MlZZ53FxRdfzIIFC7jllltIS0vj6quvBoyg4PTTT2f58uX8/ve/Z/r06TQ0NHDDDTdw5JFHsm7dOmw22xdqw8KFCzn99NOZNm0azz//PNFolFtvvZX29vaPHXvJJZfw+OOPc+WVV3LLLbfQ09PDTTfdxPTp09m8eTPJyckjx7a1tfHTn/6Ua665hhtuuIHXXnuN66+/nrS0NM477zwAbr31Vm688Ub+9Kc/MWvWLMLhMFVVVfT19Y2cp7KykunTp5OVlcXtt99OSkoK7777LldeeSVdXV3ccMMNn3l/B+rn5kCKRCIj93rVVVdRWFjIWWeddVCveSB/Zj7J//J7pes60WiUwcFB5s+fz+OPP84111zzsUBP+Bo7vANHwnfV0UcfrXs8Hr2jo+NTj9k7LXX55Zfv9/qtt96qA3pra+snfk7TND0cDutLly7VAX3z5s0j733SlEZ2drZutVr1hoaGkdf8fr8eFxenX3LJJZ97L9nZ2TrwuV833HDDZ57nmWee0QF95cqVH3vv4osv1s1m8+e25ZN81rTUR9u1t8+vuOKK/Y4744wzdEC/44479nt9/Pjx+oQJE0a+f+6553RAf+WVV/Y7bu3atV96am3KlCl6Wlqa7vf7R14bGBjQ4+Li9nuGK1eu1AH99ttv3+/zTU1Nus1m03//+9+PvDZ79mwd0FevXr3fsaWlpfrxxx8/8v0pp5yijx8//jPbd/zxx+sZGRl6f3//fq//+te/1q1Wq97T0/OZn9/bls/7+rRpn0/zv05Ltba27nfdKVOm6M3NzZ/5mc+alvqwz5qW+jI/M9FoVA+HwyNfNTU1OqAvWLBgv9cjkcjIZ/6X36ubb755pB8kSdL/+Mc/fu49Cl8vIgwVDjmfz8fSpUu58MILR4a+P8tpp5223/d7/wfW0NBASkoKALW1tfzpT39i0aJFdHR07Pc/4h07dnzi/9o+bPz48WRlZY18b7VaKSws/MRqkY966623vlCyb1pa2uceA3xqJdChrBA65ZRT9vu+pKSE119/nZNPPvljr8+fP3/k+7fffhuPx8Opp566X3XJ+PHjSUlJYcmSJVx22WWfe32v18vatWu5/PLLsVqtI6+7XC5OPfVUnnjiif2uKUkS55577n7XTElJYdy4cR+r0ElJSaGiomK/18aOHcumTZtGvq+oqGDOnDlcfvnlI6NHbrd75P1AIMDChQu57LLLsNvt+133pJNO4r777mPVqlWceOKJn3qPDz74IIODg5/bFwkJCZ97zIGQkJDA2rVrCQaD7Nixg1tvvZWjjjqKJUuWkJqaetCu+2V+Zn7xi1/s9+z3OuaYY/b7fvbs2R977l/m9+qCCy7gmGOOoaenh0WLFnHbbbfR39/Pvffe+2VvTzhMRHAjHHK9vb1Eo1EyMjK+0PHx8fH7fb93ysrv9wMwNDTEzJkzsVqt/P3vf6ewsBC73U5TUxNnnXXWyHFf5hp7r/NFPltaWvqFpxe+SBs+Wp0C0NPTQ1xc3Ode40D56LX2VsV80uuBQGDk+/b2dvr6+j61iqarq+sLXb+3txdN00aC1w/76Gvt7e3our7f1NOH5eXl7ff9F3nW119/PQ6Hg6effpoHHngARVGYNWsWt9xyC5MmTaK7u5tIJMK99977qf/gfd695ufnH5CfmwNFVVUmTZoEwIwZMzjhhBPIzc3ln//858dyjQ6kL/Mzc+ONN/LrX/965PvW1lZOO+00HnjgASZOnDjyusvlGvnz//J7lZKSMvJzdtxxxxEbG8t1113HL37xC8rLy7/kHQqHgwhuhEMuLi4ORVHYs2fPATnfokWLaGlpYcmSJcyePXvk9Q/nRxxMo0aN+kIjPDfccMNnrikzevRoALZu3cpJJ52033tbt24def/rbG/S97x58z7x/Q//o/NZYmNjkSSJtra2j7330dcSEhKQJInly5fvl6u11ye99nlUVeXqq6/m6quvpq+vjwULFvCHP/yB448/nqamJmJjY1EUhZ/97Gf86le/+sRz5ObmfuY1vve977F06dLPbcv555/P448//qXv4avKyMggLS2NXbt2HdTrfJmfmZycHHJycka+37uWT1FR0Uhg9lEH4vdq70jfrl27RHDzDSGCG+GQs9lszJ49m5deeol//OMfX3nYfe+w8kf/EXvwwQe/0nm/qAM1LZWenk5FRQVPP/0011577UhlxqpVq9i5cydXXXXV/9S+LzoCdSCccsopI8m/U6ZM+Z/P43A4qKio4NVXX+W2224bmZoaHBzkrbfe+tg1//nPf9Lc3Mw555zzldr/STweDz/4wQ9obm7mqquuor6+ntLSUo466ig2btzI2LFjP3O9l0/zdZuW+qiamhr27NnzsWnhA+1A/cx8mgPxe7V48WLAGG0TvhlEcCMcFnfccQdHHHEEU6ZM4brrriM/P5/29nbefPNNHnzwwS/8P3wwSjpjY2O59NJLueGGGzCZTDzzzDNs3rz5IN7BPmPGjDlg57rllls49thjOfvss7n88svp6OjguuuuY/To0fz85z/f79i9/4P9vJVox4wZw6uvvsp//vMfJk6ciCzLn/q/3K/qRz/6Ec888wwnnXQSv/nNb6ioqMBkMrFnzx4WL17M6aefzplnnvmFzvW3v/2NE044gWOPPZZrrrmGaDTKLbfcgsPhoKenZ+S4GTNmcPHFF/Pzn/+cdevWMWvWLBwOB62trbz//vuMGTPmC+X5fNipp57K6NGjmTRpEomJiTQ0NHDXXXeRnZ1NQUEBAHfffTdHHHEEM2fO5LLLLiMnJ4fBwUFqamp46623PrdKr6io6Eu16bN0dnaOjAJt3boVgHfeeYfExEQSExP3G9FUVZXZs2ezcOFCALZs2cJvf/tbfvCDH5CXl4csy2zdupU777yT+Ph4rr322v2utXTp0pES7Wg0SkNDAy+//DJg5LrszaPz+XzMnTsXMAKJvZ/t6urC4XCM5CMdyJ+ZT/NFf69uuOEG2tvbmTVrFunp6fT19TFv3jz++9//cvbZZ+839SV8zR3efGbhu6yyslI/++yz9fj4eN1sNutZWVn6BRdcMLJQ1qct4rd48eKPVV588MEH+rRp03S73a4nJibqF110kb5hwwYd0B977LGR4z6tWurkk0/+WPtmz56tz549+4Dd7xc1f/58ferUqbrVatXj4uL08847T29vb//YcQkJCfrUqVM/93w9PT36D37wA93j8eiSJO13/3xKtdRH+3xvv3V2du73+vnnn687HI79XguHw/q//vUvfdy4cbrVatWdTqdeXFysX3LJJXp1dfUX6YIRb775pj527NiRn49//vOfn7qI36OPPqpPmTJFdzgcus1m00eNGqWfd955+rp160aOmT17tl5WVvaxz55//vn7VZTdfvvt+vTp0/WEhISRa1944YV6fX39fp+rq6vTf/GLX+jp6em6yWTSExMT9enTp+t///vfv9R9flV7fyc+6eujP8Mffa2trU0/99xz9VGjRul2u103m816Xl6efumll+qNjY0fu9ZnVXl9+Hdy7wJ7n/T10eq9//Vn5osu4qfrX+z36s0339SPOeYYPTk5WVdVVXc6nXpFRYV+zz337LcAoPD1J+n6F8hoEwTha6WyspKysjLefvvtj1UwCYIgfNeJFYoF4Rto8eLFTJs2TQQ2giAIn0CM3AiCcEhpmrbfVgefRKwEKwjCVyFGbgRBOKRuuukmTCbTZ359XpK0IAjCZxEjN4IgHFItLS0f2/j0o/7X8mpBEAQQwY0gCIIgCN8yYlpKEARBEIRvle9k1p6mabS0tOByuQ7pZoSCIAiCIPzvdF1ncHCQtLS0z9x37TsZ3LS0tJCZmXm4myEIgiAIwv+gqanpMzdf/k4GN3uX9m9qasLtdh/m1giCIAiC8EUMDAyQmZn5uVv0fCeDm71TUW63WwQ3giAIgvAN83kpJSKhWBAEQRCEbxUR3AiCIAiC8K0ightBEARBEL5VRHAjCIIgCMK3ighuBEEQBEH4VhHBjSAIgiAI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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ - "prior.prior.reactive_tracer.isel(chain=0, x=-1).plot.line(x=\"time_dense\", hue=\"draw\", add_legend=False);" + "# Plot concentration profiles in the warmup posterior\n", + "trace.warmup_posterior.reactive_tracer.isel(chain=0, time_dense=20, draw=slice(20, None)).plot.line(x=\"x\", hue=\"draw\", add_legend=False);" ] }, { "cell_type": "code", "execution_count": null, - "id": "cecd4b29", + "id": "e0781b8b", "metadata": {}, "outputs": [], "source": [] @@ -305,7 +693,7 @@ ], "metadata": { "kernelspec": { - "display_name": "default", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -319,7 +707,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.13.3" + "version": "3.13.9" } }, "nbformat": 4, diff --git a/pixi.lock b/pixi.lock deleted file mode 100644 index 455075c..0000000 --- a/pixi.lock +++ /dev/null @@ -1,6087 +0,0 @@ -version: 6 -environments: - default: - channels: - - url: https://conda.anaconda.org/conda-forge/ - indexes: - - https://pypi.org/simple - packages: - linux-64: - - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-5_kmp_llvm.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/adwaita-icon-theme-49.0-unix_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.14-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.11.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-25.1.0-py313h07c4f96_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/arviz-0.22.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-atk-2.38.0-h0630a04_3.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-core-2.40.3-h0630a04_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-h04ea711_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyh71513ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.9.1-h48c9088_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.2-he7b75e1_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.12.4-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.1-h92c474e_6.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.6-h82d11aa_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.10.4-h94feff3_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.22.0-h57f3b0d_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.13.3-h2b1cf8c_6.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.8.6-h4e5ac4b_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.4-h92c474e_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.7-h92c474e_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.34.4-h60c762c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.606-h32384e2_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.16.1-h3a458e0_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.13.2-h3a5f585_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.15.0-h2a74896_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.11.0-h3d7a050_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.13.0-hf38f1be_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.2-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.44-hdf8817f_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.44-h4852527_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/blas-2.137-mkl.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/blas-devel-3.9.0-37_hcf00494_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyh29332c3_4.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.2.0-h82add2a_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hb03c661_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb03c661_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py313h7033f15_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.10.5-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/cachetools-6.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3394656_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.10.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py313hf01b4d8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.1-pyhd8ed1ab_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/comm-0.2.3-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.3.0-hb991d5c_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cons-0.4.7-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py313h7037e92_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.9-py313hd8ed1ab_100.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/crc32c-2.8-py313h54dd161_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.28-hd9c7081_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h3c4dab8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.17-py313h5d5ffb9_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.2.18-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.1-h5888daf_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/epoxy-1.5.10-hb03c661_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/etuples-0.3.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.60.1-py313h3dea7bd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.1-ha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-14.3.0-h76bdaa0_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.3.0-hd9e9e21_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-14.3.0-h298d278_12.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.4-h2b0a6b4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.86.0-hf516916_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.14-hecca717_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-13.1.2-h87b6fe6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.43-h021d004_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-14.3.0-he448592_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-14.3.0-he663afc_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-14.3.0-h95f728e_12.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py313h253c126_100.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.1.0-h15599e2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/hicolor-icon-theme-0.17-ha770c72_2.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.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/iniconfig-2.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.0.1-pyha191276_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipympl-0.9.8-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.6.0-pyhfa0c392_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py313h78bf25f_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.4.10-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.15-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py313hc8edb43_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-ha97dd6f_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20250512.1-cxx17_hba17884_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.4-h3f801dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-21.0.0-hf201b43_9_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-compute-21.0.0-h8c2c5c3_9_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-37_h5875eb1_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb03c661_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb03c661_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb03c661_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-37_hfef963f_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.3-default_h99862b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-21.1.3-default_h746c552_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-hb8b1518_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.16.0-h4e3cde8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.24-h86f0d12_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.125-hb03c661_1.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/libegl-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libegl-devel-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.1-hecca717_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/libfreetype-2.14.1-ha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.1-h73754d4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-h767d61c_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.3.0-h85bb3a7_107.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h6f5c62b_11.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-hcd61629_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-devel-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.86.0-h1fed272_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-devel-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-h767d61c_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.39.0-hdb79228_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.39.0-hdbdcf42_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.73.1-h3288cfb_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.12.1-default_h7f8ec31_1002.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.0-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-37_h5e43f62_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapacke-3.9.0-37_hdba1596_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.4-hf7376ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.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/libnghttp2-1.67.0-had1ee68_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libntlm-1.8-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-1.21.0-hb9b0907_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.21.0-ha770c72_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.50-h421ea60_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.0-h3675c94_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.31.1-h49aed37_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.08.12-h7b12aa8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.60.0-h61e6d4b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.3.0-hd08acf3_7.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.50.4-h0c1763c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h8f9b012_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-14.3.0-h85bb3a7_107.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-h4852527_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h8261f1e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.0-hb04c3b8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-he9a06e4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libvulkan-loader-1.4.328.1-h5279c79_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.12.2-hca5e8e5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-21.1.4-h4922eb0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/logical-unification-0.4.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.3-py313h3dea7bd_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.10.7-py313h78bf25f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.7-py313h683a580_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/maturin-1.9.6-py310hf7d6592_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/minikanren-1.0.5-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.4-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mkl-2024.2.2-ha770c72_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mkl-devel-2024.2.2-ha770c72_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mkl-include-2024.2.2-ha770c72_17.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mkl-service-2.5.2-py313he761fc5_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py313h7037e92_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/multipledispatch-0.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.16.1-py313h08cd8bf_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.3-py313hf6604e3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nutpie-0.15.2-py313h5c7d99a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-h55fea9a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openldap-2.6.10-he970967_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.4-h26f9b46_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.2.1-hd747db4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.3.3-py313h08cd8bf_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/linux-64/pango-1.56.4-hadf4263_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/patsy-1.0.2-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.46-h1321c63_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-pyhd8ed1ab_1004.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py313ha492abd_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.2-pyh145f28c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.1.1-py313h07c4f96_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-21.0.0-py313he109ebe_1_cpu.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pymc-5.26.0-hd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pymc-base-5.26.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.9.3-py313h85046ba_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pytensor-2.35.1-py313hd2d30e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pytensor-base-2.35.1-np2py313h73dcb5b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.9-h2b335a9_100_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.9-h4df99d1_100.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-graphviz-0.21-pyhbacfb6d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py313h3dea7bd_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hfb55c3c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.9.3-h5c1c036_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2025.08.12-h5301d42_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.27.1-py313h843e2db_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.26-h5ac9029_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.2-py313h11c21cd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh0d859eb_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h03e3b7b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.5-py313h29aa505_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.13.0-hb60516a_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh0d859eb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.4.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/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.2-py313h07c4f96_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.15.0-h396c80c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.24.0-h3e06ad9_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.11.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.14-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.17.3-py313h07c4f96_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2025.10.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/xarray-einstats-0.9.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-h4f16b4b_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.5-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.46-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-he73a12e_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.12-h4f16b4b_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcomposite-0.4.6-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcursor-1.2.3-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.6-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.2-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxinerama-1.1.5-h5888daf_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.4-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.12-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-hb9d3cd8_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.6-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2024.1-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zarr-3.1.3-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h387f397_9.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py313h54dd161_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda - - pypi: https://files.pythonhosted.org/packages/8f/aa/ba0014cc4659328dc818a28827be78e6d97312ab0cb98105a770924dc11e/absl_py-2.3.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/12/0c/96102c01dd02ae740d4afc3644d5c7d7fc51d3feefd67300a2aa1ddbf7cb/chex-0.1.91-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/aa/1d/236424e689f62d7fe58f8b10f08c63a49c68efba087eabdd09198a9bbf38/diffrax-0.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e5/0a/f4d72ffb64ab3edc1fa66261f81ee3b4142ab14cd8aa1dfc7bbeca5ee4ba/dm_tree-0.1.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/c6/ce/c3bc53bdda6edb050859939a8e91e206123f96f50906e7ba7c027c6c535f/equinox-0.13.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4b/7a/f4095d4e3044e5e4ed11c062e7c2dbddf128f16f7485fa262a213f6169ff/flowjax-17.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a3/61/8001b38461d751cd1a0c3a6ae84346796a5758123f3ed97a1b121dfbf4f3/gast-0.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b3/77/4e6c9a54247810eff8ac8a1af7dc1be0779b52df0d82f3fc8586061914f3/jax-0.8.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8f/f0/cde1d84c737bdb75712f70d69561120ce91f3f294acf2fba573c0de740b6/jaxlib-0.8.0-cp313-cp313-manylinux_2_27_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b8/97/88264b1af140f66ba7ca6eb2f3a108be233ee278bb3f1d5c750243e7458a/jaxtyping-0.3.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/1b/a9/2d8d6002eb124e79f7c9ee2311b62f35289fc7e75ee0bbfbe5a4c7295bb9/lineax-0.0.8-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/14/f3/091ba84e5395d7fe5b30c081a44dec881cd84b408db1763ee50768b2ab63/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/23/cd/066e86230ae37ed0be70aae89aabf03ca8d9f39c8aea0dec8029455b5540/opt_einsum-3.4.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/b8/ec/19c6cc6064c7fc8f0cd6d5b37c4747849e66040c6ca98f86565efc2c227c/optax-0.2.6-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ac/08/085ca409275952524e907156d9091a76b97d2c81a1099b2cb48a08c5ca3c/optimistix-0.0.11-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ca/2c/ae8eb6c197ec055bb4bc4a10859561c783fd602b2816acff7faf9c230df7/paramax-0.0.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/fe/b6/e116761ceeb880b7ad4c6a7e1203538754dd7dda42538f08d6daaf8dfa4d/tensorflow_probability-0.25.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - - pypi: ./ -packages: -- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-5_kmp_llvm.conda - build_number: 5 - sha256: 261526e6bc3866db41ad32c6ccfb3694b07fe8a0ab91616a71fa90f8b365154b - md5: af759c8ce5aed7e5453dca614c5bb831 - depends: - - llvm-openmp >=9.0.1 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 8250 - timestamp: 1760488483285 -- conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - sha256: a3967b937b9abf0f2a99f3173fa4630293979bd1644709d89580e7c62a544661 - md5: aaa2a381ccc56eac91d63b6c1240312f - depends: - - cpython - - python-gil - license: MIT - license_family: MIT - purls: [] - size: 8191 - timestamp: 1744137672556 -- pypi: https://files.pythonhosted.org/packages/8f/aa/ba0014cc4659328dc818a28827be78e6d97312ab0cb98105a770924dc11e/absl_py-2.3.1-py3-none-any.whl - name: absl-py - version: 2.3.1 - sha256: eeecf07f0c2a93ace0772c92e596ace6d3d3996c042b2128459aaae2a76de11d - requires_python: '>=3.8' -- conda: https://conda.anaconda.org/conda-forge/noarch/adwaita-icon-theme-49.0-unix_0.conda - sha256: a362b4f5c96a0bf4def96be1a77317e2730af38915eb9bec85e2a92836501ed7 - md5: b3f0179590f3c0637b7eb5309898f79e - depends: - - __unix - - hicolor-icon-theme - - librsvg - license: LGPL-3.0-or-later OR CC-BY-SA-3.0 - license_family: LGPL - purls: [] - size: 631452 - timestamp: 1758743294412 -- conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.14-hb9d3cd8_0.conda - sha256: b9214bc17e89bf2b691fad50d952b7f029f6148f4ac4fe7c60c08f093efdf745 - md5: 76df83c2a9035c54df5d04ff81bcc02d - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: LGPL-2.1-or-later - license_family: GPL - purls: [] - size: 566531 - timestamp: 1744668655747 -- conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.11.0-pyhcf101f3_0.conda - sha256: 7378b5b9d81662d73a906fabfc2fb81daddffe8dc0680ed9cda7a9562af894b0 - md5: 814472b61da9792fae28156cb9ee54f5 - depends: - - exceptiongroup >=1.0.2 - - idna >=2.8 - - python >=3.10 - - sniffio >=1.1 - - typing_extensions >=4.5 - - python - constrains: - - trio >=0.31.0 - - uvloop >=0.21 - license: MIT - license_family: MIT - purls: - - pkg:pypi/anyio?source=compressed-mapping - size: 138159 - timestamp: 1758634638734 -- conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda - sha256: bea62005badcb98b1ae1796ec5d70ea0fc9539e7d59708ac4e7d41e2f4bb0bad - md5: 8ac12aff0860280ee0cff7fa2cf63f3b - depends: - - argon2-cffi-bindings - - python >=3.9 - - typing-extensions - constrains: - - argon2_cffi ==999 - license: MIT - license_family: MIT - purls: - - pkg:pypi/argon2-cffi?source=hash-mapping - size: 18715 - timestamp: 1749017288144 -- conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-25.1.0-py313h07c4f96_1.conda - sha256: 49761e3f489914ee783173f26b278943d9169275f81e56785b57738e22ea1958 - md5: 0d56c6a245ef9528644a33947a4dca4f - depends: - - __glibc >=2.17,<3.0.a0 - - cffi >=1.0.1 - - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: MIT - license_family: MIT - purls: - - pkg:pypi/argon2-cffi-bindings?source=hash-mapping - size: 35539 - timestamp: 1759486367130 -- conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - sha256: 792da8131b1b53ff667bd6fc617ea9087b570305ccb9913deb36b8e12b3b5141 - md5: 85c4f19f377424eafc4ed7911b291642 - depends: - - python >=3.10 - - python-dateutil >=2.7.0 - - python-tzdata - - python - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/arrow?source=compressed-mapping - size: 113854 - timestamp: 1760831179410 -- conda: https://conda.anaconda.org/conda-forge/noarch/arviz-0.22.0-pyhd8ed1ab_0.conda - sha256: 1c85f9c4b21a451f0386e8d4676b08107c804d49b3ad5211448dff4080372e11 - md5: edeb8dea41e8cd6ef8127de4a8dece13 - depends: - - h5netcdf >=1.0.2 - - matplotlib-base >=3.8 - - numpy >=1.26.0 - - packaging - - pandas >=2.1.0 - - python >=3.10 - - scipy >=1.11.0 - - setuptools >=60.0.0 - - typing_extensions >=4.1.0 - - xarray >=2023.7.0 - - xarray-einstats >=0.3 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/arviz?source=hash-mapping - size: 1477179 - timestamp: 1752135391904 -- conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.0-pyhd8ed1ab_1.conda - sha256: 93b14414b3b3ed91e286e1cbe4e7a60c4e1b1c730b0814d1e452a8ac4b9af593 - md5: 8f587de4bcf981e26228f268df374a9b - depends: - - python >=3.9 - constrains: - - astroid >=2,<4 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/asttokens?source=hash-mapping - size: 28206 - timestamp: 1733250564754 -- conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda - sha256: 3b7233041e462d9eeb93ea1dfe7b18aca9c358832517072054bb8761df0c324b - md5: d9d0f99095a9bb7e3641bca8c6ad2ac7 - depends: - - python >=3.9 - - typing_extensions >=4.0.0 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/async-lru?source=hash-mapping - size: 17335 - timestamp: 1742153708859 -- conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-atk-2.38.0-h0630a04_3.tar.bz2 - sha256: 26ab9386e80bf196e51ebe005da77d57decf6d989b4f34d96130560bc133479c - md5: 6b889f174df1e0f816276ae69281af4d - depends: - - at-spi2-core >=2.40.0,<2.41.0a0 - - atk-1.0 >=2.36.0 - - dbus >=1.13.6,<2.0a0 - - libgcc-ng >=9.3.0 - - libglib >=2.68.1,<3.0a0 - license: LGPL-2.1-or-later - license_family: LGPL - purls: [] - size: 339899 - timestamp: 1619122953439 -- conda: https://conda.anaconda.org/conda-forge/linux-64/at-spi2-core-2.40.3-h0630a04_0.tar.bz2 - sha256: c4f9b66bd94c40d8f1ce1fad2d8b46534bdefda0c86e3337b28f6c25779f258d - md5: 8cb2fc4cd6cc63f1369cfa318f581cc3 - depends: - - dbus >=1.13.6,<2.0a0 - - libgcc-ng >=9.3.0 - - libglib >=2.68.3,<3.0a0 - - xorg-libx11 - - xorg-libxi - - xorg-libxtst - license: LGPL-2.1-or-later - license_family: LGPL - purls: [] - size: 658390 - timestamp: 1625848454791 -- conda: https://conda.anaconda.org/conda-forge/linux-64/atk-1.0-2.38.0-h04ea711_2.conda - sha256: df682395d05050cd1222740a42a551281210726a67447e5258968dd55854302e - md5: f730d54ba9cd543666d7220c9f7ed563 - depends: - - libgcc-ng >=12 - - libglib >=2.80.0,<3.0a0 - - libstdcxx-ng >=12 - constrains: - - atk-1.0 2.38.0 - license: LGPL-2.0-or-later - license_family: LGPL - purls: [] - size: 355900 - timestamp: 1713896169874 -- conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyh71513ae_0.conda - sha256: f6c3c19fa599a1a856a88db166c318b148cac3ee4851a9905ed8a04eeec79f45 - md5: c7944d55af26b6d2d7629e27e9a972c1 - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/attrs?source=compressed-mapping - size: 60101 - timestamp: 1759762331492 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.9.1-h48c9088_3.conda - sha256: e9c3dece30c12dfac995a8386bd2d1225d0b5f14c0753fcf4fef086047f77048 - md5: afdbdbe7f786f47a36a51fdc2fe91210 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - aws-c-cal >=0.9.2,<0.9.3.0a0 - - aws-c-io >=0.22.0,<0.22.1.0a0 - - aws-c-http >=0.10.4,<0.10.5.0a0 - - aws-c-sdkutils >=0.2.4,<0.2.5.0a0 - - aws-c-common >=0.12.4,<0.12.5.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 122946 - timestamp: 1757625693207 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.2-he7b75e1_1.conda - sha256: 30ecca069fdae0aa6a8bb64c47eb5a8d9a7bef7316181e8cbb08b7cb47d8b20f - md5: c04d1312e7feec369308d656c18e7f3e - depends: - - __glibc >=2.17,<3.0.a0 - - aws-c-common >=0.12.4,<0.12.5.0a0 - - libgcc >=14 - - openssl >=3.5.1,<4.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 50942 - timestamp: 1752240577225 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.12.4-hb03c661_0.conda - sha256: 6c9e1b9e82750c39ac0251dcfbeebcbb00a1af07c0d7e3fb1153c4920da316eb - md5: ae5621814cb99642c9308977fe90ed0d - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 236420 - timestamp: 1752193614294 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.1-h92c474e_6.conda - sha256: 154d4a699f4d8060b7f2cec497a06e601cbd5c8cde6736ced0fb7e161bc6f1bb - md5: 3490e744cb8b9d5a3b9785839d618a17 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - aws-c-common >=0.12.4,<0.12.5.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 22116 - timestamp: 1752240005329 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.5.6-h82d11aa_3.conda - sha256: 849d645bf5c7923d9b0d4ba02050714c856495e34b0328b46c0c968045691117 - md5: a6374ed86387e0b1967adc8d8988db86 - depends: - - __glibc >=2.17,<3.0.a0 - - libstdcxx >=14 - - libgcc >=14 - - aws-c-io >=0.22.0,<0.22.1.0a0 - - aws-c-common >=0.12.4,<0.12.5.0a0 - - aws-checksums >=0.2.7,<0.2.8.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 58941 - timestamp: 1757606335645 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.10.4-h94feff3_3.conda - sha256: ce1fb6eb7a3bb633112b334647382c4a28a1bf85ab7b02b53a34aebc984a8e89 - md5: 8dd69714ac24879be0865676eb333f6b - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - aws-c-cal >=0.9.2,<0.9.3.0a0 - - aws-c-compression >=0.3.1,<0.3.2.0a0 - - aws-c-io >=0.22.0,<0.22.1.0a0 - - aws-c-common >=0.12.4,<0.12.5.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 224208 - timestamp: 1757610690937 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.22.0-h57f3b0d_1.conda - sha256: 3dc378afddcdaf4179daccba1ef0b755eea264ff739ceab1d499b271340ea874 - md5: 2de3494a513d360155b7f4da7b017840 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - aws-c-cal >=0.9.2,<0.9.3.0a0 - - s2n >=1.5.26,<1.5.27.0a0 - - aws-c-common >=0.12.4,<0.12.5.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 180809 - timestamp: 1758212800114 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.13.3-h2b1cf8c_6.conda - sha256: e4d782791591d6d19e1ea196e1f9494a4c30b0a052555648b64098a682ce9703 - md5: 7bb5e26afec09a59283ec1783798d74a - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - aws-c-common >=0.12.4,<0.12.5.0a0 - - aws-c-io >=0.22.0,<0.22.1.0a0 - - aws-c-http >=0.10.4,<0.10.5.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 216041 - timestamp: 1757626689282 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.8.6-h4e5ac4b_5.conda - sha256: 2e1fdbcbb3da881ae0eb381697f4f1ece2bd9f534b05e7ed9f21b0e6cbac6f32 - md5: 1557911474d926a8bd7b32a5f02bba35 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - openssl >=3.5.2,<4.0a0 - - aws-c-http >=0.10.4,<0.10.5.0a0 - - aws-c-common >=0.12.4,<0.12.5.0a0 - - aws-checksums >=0.2.7,<0.2.8.0a0 - - aws-c-io >=0.22.0,<0.22.1.0a0 - - aws-c-auth >=0.9.1,<0.9.2.0a0 - - aws-c-cal >=0.9.2,<0.9.3.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 137467 - timestamp: 1757647972268 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.4-h92c474e_1.conda - sha256: a9e071a584be0257b2ec6ab6e1f203e9d6b16d2da2233639432727ffbf424f3d - md5: 4ab554b102065910f098f88b40163835 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - aws-c-common >=0.12.4,<0.12.5.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 59146 - timestamp: 1752240966518 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.7-h92c474e_2.conda - sha256: 7168007329dfb1c063cd5466b33a1f2b8a28a00f587a0974d97219432361b4db - md5: 248831703050fe9a5b2680a7589fdba9 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - aws-c-common >=0.12.4,<0.12.5.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 76748 - timestamp: 1752241068761 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.34.4-h60c762c_0.conda - sha256: 4fce59fd1fc9848cb060e9ad59f0934ff848ca06455eb487ea52152d7299b7ed - md5: d41cf259f1b3e2a2347b11b98f64623d - depends: - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - aws-c-io >=0.22.0,<0.22.1.0a0 - - aws-c-common >=0.12.4,<0.12.5.0a0 - - aws-c-sdkutils >=0.2.4,<0.2.5.0a0 - - aws-c-s3 >=0.8.6,<0.8.7.0a0 - - aws-c-http >=0.10.4,<0.10.5.0a0 - - aws-c-event-stream >=0.5.6,<0.5.7.0a0 - - aws-c-mqtt >=0.13.3,<0.13.4.0a0 - - aws-c-cal >=0.9.2,<0.9.3.0a0 - - aws-c-auth >=0.9.1,<0.9.2.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 408260 - timestamp: 1758141985203 -- conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.606-h32384e2_4.conda - sha256: 9ec76250145458fed50f02ac26af254c90a90d49249649e0eb81f9ddb6176384 - md5: 31067fbcb4ddfd76bc855532cc228568 - depends: - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - aws-crt-cpp >=0.34.4,<0.34.5.0a0 - - aws-c-event-stream >=0.5.6,<0.5.7.0a0 - - aws-c-common >=0.12.4,<0.12.5.0a0 - - libcurl >=8.14.1,<9.0a0 - - libzlib >=1.3.1,<2.0a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 3367060 - timestamp: 1758606136188 -- conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.16.1-h3a458e0_0.conda - sha256: cba633571e7368953520a4f66dc74c3942cc12f735e0afa8d3d5fc3edf35c866 - md5: 1d4e0d37da5f3c22ecd44033f673feba - depends: - - __glibc >=2.17,<3.0.a0 - - libcurl >=8.14.1,<9.0a0 - - libgcc >=14 - - libstdcxx >=14 - - openssl >=3.5.4,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 348231 - timestamp: 1760926677260 -- conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.13.2-h3a5f585_1.conda - sha256: fc1df5ea2595f4f16d0da9f7713ce5fed20cb1bfc7fb098eda7925c7d23f0c45 - md5: 4e921d9c85e6559c60215497978b3cdb - depends: - - __glibc >=2.17,<3.0.a0 - - azure-core-cpp >=1.16.1,<1.16.2.0a0 - - libgcc >=14 - - libstdcxx >=14 - - openssl >=3.5.4,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 249684 - timestamp: 1761066654684 -- conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.15.0-h2a74896_1.conda - sha256: 58879f33cd62c30a4d6a19fd5ebc59bd0c4560f575bd02645d93d342b6f881d2 - md5: ffd553ff98ce5d74d3d89ac269153149 - depends: - - __glibc >=2.17,<3.0.a0 - - azure-core-cpp >=1.16.1,<1.16.2.0a0 - - azure-storage-common-cpp >=12.11.0,<12.11.1.0a0 - - libgcc >=14 - - libstdcxx >=14 - license: MIT - license_family: MIT - purls: [] - size: 576406 - timestamp: 1761080005291 -- conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.11.0-h3d7a050_1.conda - sha256: eb590e5c47ee8e6f8cc77e9c759da860ae243eed56aceb67ce51db75f45c9a50 - md5: 89985ba2a3742f34be6aafd6a8f3af8c - depends: - - __glibc >=2.17,<3.0.a0 - - azure-core-cpp >=1.16.1,<1.16.2.0a0 - - libgcc >=14 - - libstdcxx >=14 - - libxml2 - - libxml2-16 >=2.14.6 - - openssl >=3.5.4,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 149620 - timestamp: 1761066643066 -- conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.13.0-hf38f1be_1.conda - sha256: 9f3d0f484e97cef5f019b7faef0c07fb7ee6c584e3a6e2954980f440978a365e - md5: f10b9303c7239fbce3580a60a92bcf97 - depends: - - __glibc >=2.17,<3.0.a0 - - azure-core-cpp >=1.16.1,<1.16.2.0a0 - - azure-storage-blobs-cpp >=12.15.0,<12.15.1.0a0 - - azure-storage-common-cpp >=12.11.0,<12.11.1.0a0 - - libgcc >=14 - - libstdcxx >=14 - license: MIT - license_family: MIT - purls: [] - size: 299198 - timestamp: 1761094654852 -- conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda - sha256: 1c656a35800b7f57f7371605bc6507c8d3ad60fbaaec65876fce7f73df1fc8ac - md5: 0a01c169f0ab0f91b26e77a3301fbfe4 - depends: - - python >=3.9 - - pytz >=2015.7 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/babel?source=hash-mapping - size: 6938256 - timestamp: 1738490268466 -- conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.2-pyha770c72_0.conda - sha256: b949bd0121bb1eabc282c4de0551cc162b621582ee12b415e6f8297398e3b3b4 - md5: 749ebebabc2cae99b2e5b3edd04c6ca2 - depends: - - python >=3.10 - - soupsieve >=1.2 - - typing-extensions - license: MIT - license_family: MIT - purls: - - pkg:pypi/beautifulsoup4?source=compressed-mapping - size: 89146 - timestamp: 1759146127397 -- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.44-hdf8817f_2.conda - sha256: 014eda0be99345946706a8141ecf32f619c731152831b85e4a752b4917c4528c - md5: f0716b5f7e87e83678d50da21e7a54b4 - depends: - - ld_impl_linux-64 2.44 ha97dd6f_2 - - sysroot_linux-64 - license: GPL-3.0-only - license_family: GPL - purls: [] - size: 3797704 - timestamp: 1758810925961 -- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_linux-64-2.44-h4852527_2.conda - sha256: fd73320b4b3df2b18a1c2a9e17ed8c1402e1530c03a7d5af8240469b389128dd - md5: 9102871743e92e2eea2f2b3bfef74ed0 - depends: - - binutils_impl_linux-64 2.44 hdf8817f_2 - license: GPL-3.0-only - license_family: GPL - purls: [] - size: 35965 - timestamp: 1758810959224 -- conda: https://conda.anaconda.org/conda-forge/linux-64/blas-2.137-mkl.conda - build_number: 37 - sha256: b6604fabf3b08471dcde8dee0d5c06283b5f1b8b757e0daefa3b43dceffe5df0 - md5: 9deb2d32720cc73c9991dbd9e24b499e - depends: - - blas-devel 3.9.0 37*_mkl - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 17383 - timestamp: 1760212912064 -- conda: https://conda.anaconda.org/conda-forge/linux-64/blas-devel-3.9.0-37_hcf00494_mkl.conda - build_number: 37 - sha256: 495b41bc268412b27007ba94d2ca836b55164b0880c2dd03381279388ed901e6 - md5: 3a3a2906daecd117aad30e4d68276394 - depends: - - libblas 3.9.0 37_h5875eb1_mkl - - libcblas 3.9.0 37_hfef963f_mkl - - liblapack 3.9.0 37_h5e43f62_mkl - - liblapacke 3.9.0 37_hdba1596_mkl - - mkl >=2024.2.2,<2025.0a0 - - mkl-devel 2024.2.* - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 17203 - timestamp: 1760212795259 -- conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.2.0-pyh29332c3_4.conda - sha256: a05971bb80cca50ce9977aad3f7fc053e54ea7d5321523efc7b9a6e12901d3cd - md5: f0b4c8e370446ef89797608d60a564b3 - depends: - - python >=3.9 - - webencodings - - python - constrains: - - tinycss >=1.1.0,<1.5 - license: Apache-2.0 AND MIT - purls: - - pkg:pypi/bleach?source=hash-mapping - size: 141405 - timestamp: 1737382993425 -- conda: https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.2.0-h82add2a_4.conda - sha256: 0aba699344275b3972bd751f9403316edea2ceb942db12f9f493b63c74774a46 - md5: a30e9406c873940383555af4c873220d - depends: - - bleach ==6.2.0 pyh29332c3_4 - - tinycss2 - license: Apache-2.0 AND MIT - purls: [] - size: 4213 - timestamp: 1737382993425 -- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.1.0-hb03c661_4.conda - sha256: 294526a54fa13635341729f250d0b1cf8f82cad1e6b83130304cbf3b6d8b74cc - md5: eaf3fbd2aa97c212336de38a51fe404e - depends: - - __glibc >=2.17,<3.0.a0 - - brotli-bin 1.1.0 hb03c661_4 - - libbrotlidec 1.1.0 hb03c661_4 - - libbrotlienc 1.1.0 hb03c661_4 - - libgcc >=14 - license: MIT - license_family: MIT - purls: [] - size: 19883 - timestamp: 1756599394934 -- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.1.0-hb03c661_4.conda - sha256: 444903c6e5c553175721a16b7c7de590ef754a15c28c99afbc8a963b35269517 - md5: ca4ed8015764937c81b830f7f5b68543 - depends: - - __glibc >=2.17,<3.0.a0 - - libbrotlidec 1.1.0 hb03c661_4 - - libbrotlienc 1.1.0 hb03c661_4 - - libgcc >=14 - license: MIT - license_family: MIT - purls: [] - size: 19615 - timestamp: 1756599385418 -- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py313h7033f15_4.conda - sha256: b1941426e564d326097ded7af8b525540be219be7a88ca961d58a8d4fc116db2 - md5: bc8624c405856b1d047dd0a81829b08c - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - constrains: - - libbrotlicommon 1.1.0 hb03c661_4 - license: MIT - license_family: MIT - purls: - - pkg:pypi/brotli?source=compressed-mapping - size: 353639 - timestamp: 1756599425945 -- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - sha256: c30daba32ddebbb7ded490f0e371eae90f51e72db620554089103b4a6934b0d5 - md5: 51a19bba1b8ebfb60df25cde030b7ebc - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: bzip2-1.0.6 - license_family: BSD - purls: [] - size: 260341 - timestamp: 1757437258798 -- conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda - sha256: f8003bef369f57396593ccd03d08a8e21966157269426f71e943f96e4b579aeb - md5: f7f0d6cc2dc986d42ac2689ec88192be - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - purls: [] - size: 206884 - timestamp: 1744127994291 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.10.5-hbd8a1cb_0.conda - sha256: 3b5ad78b8bb61b6cdc0978a6a99f8dfb2cc789a451378d054698441005ecbdb6 - md5: f9e5fbc24009179e8b0409624691758a - depends: - - __unix - license: ISC - purls: [] - size: 155907 - timestamp: 1759649036195 -- conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - noarch: python - sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17 - md5: 9b347a7ec10940d3f7941ff6c460b551 - depends: - - cached_property >=1.5.2,<1.5.3.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 4134 - timestamp: 1615209571450 -- conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7 - md5: 576d629e47797577ab0f1b351297ef4a - depends: - - python >=3.6 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/cached-property?source=hash-mapping - size: 11065 - timestamp: 1615209567874 -- conda: https://conda.anaconda.org/conda-forge/noarch/cachetools-6.2.1-pyhd8ed1ab_0.conda - sha256: 4e2bf69b6f42e669e85ed6ffc9ebfa5c8cd23f968e03745bf34d9a6d4ccf2736 - md5: 94e54066d0b9c3864771cfd7458f3e2c - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cachetools?source=compressed-mapping - size: 16493 - timestamp: 1760287707303 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3394656_0.conda - sha256: 3bd6a391ad60e471de76c0e9db34986c4b5058587fbf2efa5a7f54645e28c2c7 - md5: 09262e66b19567aff4f592fb53b28760 - depends: - - __glibc >=2.17,<3.0.a0 - - fontconfig >=2.15.0,<3.0a0 - - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - icu >=75.1,<76.0a0 - - libexpat >=2.6.4,<3.0a0 - - libgcc >=13 - - libglib >=2.82.2,<3.0a0 - - libpng >=1.6.47,<1.7.0a0 - - libstdcxx >=13 - - libxcb >=1.17.0,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - pixman >=0.44.2,<1.0a0 - - xorg-libice >=1.1.2,<2.0a0 - - xorg-libsm >=1.2.5,<2.0a0 - - xorg-libx11 >=1.8.11,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - - xorg-libxrender >=0.9.12,<0.10.0a0 - license: LGPL-2.1-only or MPL-1.1 - purls: [] - size: 978114 - timestamp: 1741554591855 -- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.10.5-pyhd8ed1ab_0.conda - sha256: 955bac31be82592093f6bc006e09822cd13daf52b28643c9a6abd38cd5f4a306 - md5: 257ae203f1d204107ba389607d375ded - depends: - - python >=3.10 - license: ISC - purls: - - pkg:pypi/certifi?source=hash-mapping - size: 160248 - timestamp: 1759648987029 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py313hf01b4d8_0.conda - sha256: cbead764b88c986642578bb39f77d234fbc3890bd301ed29f849a6d3898ed0fc - md5: 062317cc1cd26fbf6454e86ddd3622c4 - depends: - - __glibc >=2.17,<3.0.a0 - - libffi >=3.4.6,<3.5.0a0 - - libgcc >=14 - - pycparser - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cffi?source=compressed-mapping - size: 298211 - timestamp: 1758716239290 -- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - sha256: b32f8362e885f1b8417bac2b3da4db7323faa12d5db62b7fd6691c02d60d6f59 - md5: a22d1fd9bf98827e280a02875d9a007a - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/charset-normalizer?source=compressed-mapping - size: 50965 - timestamp: 1760437331772 -- pypi: https://files.pythonhosted.org/packages/12/0c/96102c01dd02ae740d4afc3644d5c7d7fc51d3feefd67300a2aa1ddbf7cb/chex-0.1.91-py3-none-any.whl - name: chex - version: 0.1.91 - sha256: 6fc4cbfc22301c08d4a7ef706045668410100962eba8ba6af03fa07f4e5dcf9b - requires_dist: - - absl-py>=2.3.1 - - typing-extensions>=4.15.0 - - jax>=0.7.0 - - jaxlib>=0.7.0 - - numpy>=1.24.1 - - toolz>=1.0.0 - - sphinx>=6.0.0 ; extra == 'docs' - - sphinx-book-theme>=1.0.1 ; extra == 'docs' - - sphinxcontrib-katex ; extra == 'docs' - - cloudpickle==3.1.0 ; extra == 'test' - - dm-tree>=0.1.9 ; extra == 'test' - requires_python: '>=3.11' -- conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.1-pyhd8ed1ab_0.conda - sha256: 21ecead7268241007bf65691610cd7314da68c1f88113092af690203b5780db5 - md5: 364ba6c9fb03886ac979b482f39ebb92 - depends: - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/cloudpickle?source=hash-mapping - size: 25870 - timestamp: 1736947650712 -- 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 - purls: - - pkg:pypi/colorama?source=hash-mapping - size: 27011 - timestamp: 1733218222191 -- conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda - sha256: 576a44729314ad9e4e5ebe055fbf48beb8116b60e58f9070278985b2b634f212 - md5: 2da13f2b299d8e1995bafbbe9689a2f7 - depends: - - python >=3.9 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/comm?source=hash-mapping - size: 14690 - timestamp: 1753453984907 -- conda: https://conda.anaconda.org/conda-forge/linux-64/conda-gcc-specs-14.3.0-hb991d5c_7.conda - sha256: d2fc6de5c21d92bf6a4c2f51040662ea34ed94baa7c2758ba685fd3b0032f7cb - md5: 39586596e88259bae48f904fb1025b77 - depends: - - gcc_impl_linux-64 >=14.3.0,<14.3.1.0a0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 33231 - timestamp: 1759965946160 -- conda: https://conda.anaconda.org/conda-forge/noarch/cons-0.4.7-pyhd8ed1ab_2.conda - sha256: 2edb605f79d96a2e05bc86bd153c6f03239981f68b25e129429640ebaf316d3b - md5: 31b1db820db9a562fb374ed9339d844c - depends: - - logical-unification >=0.4.0 - - python >=3.9 - license: LGPL-3.0-only - license_family: LGPL - purls: - - pkg:pypi/cons?source=hash-mapping - size: 14816 - timestamp: 1752393486187 -- conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py313h7037e92_2.conda - sha256: 5c31b1113f9e5a21bb6c2434795e10c8ee52e82dbc533fa4ec3041b5a28ea7fa - md5: 6c8b4c12099023fcd85e520af74fd755 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - numpy >=1.25 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/contourpy?source=hash-mapping - size: 296706 - timestamp: 1756544800085 -- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.9-py313hd8ed1ab_100.conda - noarch: generic - sha256: 108fa0c9d7e31bccf57e57543ce4ec3030075a105942ac6726d417364e832108 - md5: 5f5fbb99d541cd96deb2584e273d19f3 - depends: - - python >=3.13,<3.14.0a0 - - python_abi * *_cp313 - license: Python-2.0 - purls: [] - size: 48231 - timestamp: 1760610941760 -- conda: https://conda.anaconda.org/conda-forge/linux-64/crc32c-2.8-py313h54dd161_0.conda - sha256: 9207a2cc057b995bab052ad92aafeb339b8cef70dafe35babf80bb46dfab296c - md5: 320704f926abd5d31ff1a0ce7059fc6d - depends: - - python - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 - license: LGPL-2.1-or-later - purls: - - pkg:pypi/crc32c?source=hash-mapping - size: 75595 - timestamp: 1760685215999 -- conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhd8ed1ab_1.conda - sha256: 9827efa891e507a91a8a2acf64e210d2aff394e1cde432ad08e1f8c66b12293c - md5: 44600c4667a319d67dbe0681fc0bc833 - depends: - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/cycler?source=hash-mapping - size: 13399 - timestamp: 1733332563512 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.28-hd9c7081_0.conda - sha256: ee09ad7610c12c7008262d713416d0b58bf365bc38584dce48950025850bdf3f - md5: cae723309a49399d2949362f4ab5c9e4 - depends: - - __glibc >=2.17,<3.0.a0 - - krb5 >=1.21.3,<1.22.0a0 - - libgcc >=13 - - libntlm >=1.8,<2.0a0 - - libstdcxx >=13 - - libxcrypt >=4.4.36 - - openssl >=3.5.0,<4.0a0 - license: BSD-3-Clause-Attribution - license_family: BSD - purls: [] - size: 209774 - timestamp: 1750239039316 -- conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h3c4dab8_0.conda - sha256: 3b988146a50e165f0fa4e839545c679af88e4782ec284cc7b6d07dd226d6a068 - md5: 679616eb5ad4e521c83da4650860aba7 - depends: - - libstdcxx >=13 - - libgcc >=13 - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libexpat >=2.7.0,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - libglib >=2.84.2,<3.0a0 - license: GPL-2.0-or-later - license_family: GPL - purls: [] - size: 437860 - timestamp: 1747855126005 -- conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.17-py313h5d5ffb9_0.conda - sha256: 4c12ca7541d488f64ee92d6368e9a0a418e919c0b8c51517ff329b4259b4aaf8 - md5: be318961d544421f4c8d8a91bff4f118 - depends: - - python - - libgcc >=14 - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 - license: MIT - license_family: MIT - purls: - - pkg:pypi/debugpy?source=hash-mapping - size: 2868018 - timestamp: 1758162048107 -- conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - sha256: c17c6b9937c08ad63cb20a26f403a3234088e57d4455600974a0ce865cb14017 - md5: 9ce473d1d1be1cc3810856a48b3fab32 - depends: - - python >=3.9 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/decorator?source=hash-mapping - size: 14129 - timestamp: 1740385067843 -- conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - sha256: 9717a059677553562a8f38ff07f3b9f61727bd614f505658b0a5ecbcf8df89be - md5: 961b3a227b437d82ad7054484cfa71b2 - depends: - - python >=3.6 - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/defusedxml?source=hash-mapping - size: 24062 - timestamp: 1615232388757 -- conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-1.2.18-pyhd8ed1ab_0.conda - sha256: d614bcff10696f1efc714df07651b50bf3808401fcc03814309ecec242cc8870 - md5: 0cef44b1754ae4d6924ac0eef6b9fdbe - depends: - - python >=3.9 - - wrapt <2,>=1.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/deprecated?source=hash-mapping - size: 14382 - timestamp: 1737987072859 -- pypi: https://files.pythonhosted.org/packages/aa/1d/236424e689f62d7fe58f8b10f08c63a49c68efba087eabdd09198a9bbf38/diffrax-0.7.0-py3-none-any.whl - name: diffrax - version: 0.7.0 - sha256: aa9645c40552f11a2d32042ef6b9fcd53c1f0f6bdbe32d37cb788669ca9910be - requires_dist: - - equinox>=0.11.10 - - jax>=0.4.38 - - jaxtyping>=0.2.24 - - lineax>=0.0.5 - - optimistix>=0.0.10 - - typing-extensions>=4.5.0 - - wadler-lindig>=0.1.1 - requires_python: '>=3.10,<4.0' -- pypi: https://files.pythonhosted.org/packages/e5/0a/f4d72ffb64ab3edc1fa66261f81ee3b4142ab14cd8aa1dfc7bbeca5ee4ba/dm_tree-0.1.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl - name: dm-tree - version: 0.1.9 - sha256: f68b0efad76703dd4648586c75618a48cdd671b68c3266fe980e323c15423607 - requires_dist: - - absl-py>=0.6.1 - - attrs>=18.2.0 - - numpy>=1.21 - - numpy>=1.21.2 ; python_full_version >= '3.10' - - numpy>=1.23.3 ; python_full_version >= '3.11' - - numpy>=1.26.0 ; python_full_version >= '3.12' - - numpy>=2.1.0 ; python_full_version >= '3.13' - - wrapt>=1.11.2 - requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/noarch/donfig-0.8.1.post1-pyhd8ed1ab_1.conda - sha256: d58e97d418f71703e822c422af5b9c431e3621a0ecdc8b0334c1ca33e076dfe7 - md5: c56a7fa5597ad78b62e1f5d21f7f8b8f - depends: - - python >=3.9 - - pyyaml - license: MIT - license_family: MIT - purls: - - pkg:pypi/donfig?source=hash-mapping - size: 22491 - timestamp: 1734368817583 -- conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.1-h5888daf_0.conda - sha256: 1bcc132fbcc13f9ad69da7aa87f60ea41de7ed4d09f3a00ff6e0e70e1c690bc2 - md5: bfd56492d8346d669010eccafe0ba058 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 69544 - timestamp: 1739569648873 -- conda: https://conda.anaconda.org/conda-forge/linux-64/epoxy-1.5.10-hb03c661_2.conda - sha256: a5b51e491fec22bcc1765f5b2c8fff8a97428e9a5a7ee6730095fb9d091b0747 - md5: 057083b06ccf1c2778344b6dabace38b - depends: - - __glibc >=2.17,<3.0.a0 - - libdrm >=2.4.125,<2.5.0a0 - - libegl >=1.7.0,<2.0a0 - - libegl-devel - - libgcc >=14 - - libgl >=1.7.0,<2.0a0 - - libgl-devel - - libglx >=1.7.0,<2.0a0 - - libglx-devel - - xorg-libx11 >=1.8.12,<2.0a0 - - xorg-libxdamage >=1.1.6,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - - xorg-libxfixes >=6.0.1,<7.0a0 - - xorg-libxxf86vm >=1.1.6,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 411735 - timestamp: 1758743520805 -- pypi: https://files.pythonhosted.org/packages/c6/ce/c3bc53bdda6edb050859939a8e91e206123f96f50906e7ba7c027c6c535f/equinox-0.13.2-py3-none-any.whl - name: equinox - version: 0.13.2 - sha256: bc1ee687e4841945d8b776664403839639a05e2f2c02c1da353ff3386e0e43b0 - requires_dist: - - jax>=0.4.38,!=0.7.0,!=0.7.1 - - jaxtyping>=0.2.20 - - typing-extensions>=4.5.0 - - wadler-lindig>=0.1.0 - - pre-commit ; extra == 'dev' - - griffe==1.7.3 ; extra == 'docs' - - hippogriffe==0.2.2 ; extra == 'docs' - - mkdocs-include-exclude-files==0.1.0 ; extra == 'docs' - - mkdocs-ipynb==0.1.1 ; extra == 'docs' - - mkdocs-material==9.6.7 ; extra == 'docs' - - mkdocs==1.6.1 ; extra == 'docs' - - mkdocstrings-python==1.16.8 ; extra == 'docs' - - mkdocstrings==0.28.3 ; extra == 'docs' - - pymdown-extensions==10.14.3 ; extra == 'docs' - - beartype ; extra == 'tests' - - jaxlib ; extra == 'tests' - - optax ; extra == 'tests' - - pytest ; extra == 'tests' - requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/noarch/etuples-0.3.10-pyhd8ed1ab_1.conda - sha256: 92b79c5f79eefcee3dc604a96f5546f52bb65329eea043ccb541b692956c8fb5 - md5: 315e9d823f7763da48e072e59bfd0e8e - depends: - - cons - - multipledispatch - - python >=3.9 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/etuples?source=hash-mapping - size: 18084 - timestamp: 1752608449672 -- conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - sha256: ce61f4f99401a4bd455b89909153b40b9c823276aefcbb06f2044618696009ca - md5: 72e42d28960d875c7654614f8b50939a - depends: - - python >=3.9 - - typing_extensions >=4.6.0 - license: MIT and PSF-2.0 - purls: - - pkg:pypi/exceptiongroup?source=hash-mapping - size: 21284 - timestamp: 1746947398083 -- conda: https://conda.anaconda.org/conda-forge/noarch/executing-2.2.1-pyhd8ed1ab_0.conda - sha256: 210c8165a58fdbf16e626aac93cc4c14dbd551a01d1516be5ecad795d2422cad - md5: ff9efb7f7469aed3c4a8106ffa29593c - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/executing?source=compressed-mapping - size: 30753 - timestamp: 1756729456476 -- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda - sha256: 19025a4078ff3940d97eb0da29983d5e0deac9c3e09b0eabf897daeaf9d1114e - md5: 66b8b26023b8efdf8fcb23bac4b6325d - depends: - - python >=3.10 - license: Unlicense - purls: - - pkg:pypi/filelock?source=hash-mapping - size: 17976 - timestamp: 1759948208140 -- pypi: https://files.pythonhosted.org/packages/4b/7a/f4095d4e3044e5e4ed11c062e7c2dbddf128f16f7485fa262a213f6169ff/flowjax-17.2.1-py3-none-any.whl - name: flowjax - version: 17.2.1 - sha256: 19e93bb0e9bf9e374bdc433c1fac845259a9172dbbe1b1d79c79cbaffa74da13 - requires_dist: - - equinox>=0.10 - - jax>=0.4.16 - - jaxtyping - - optax - - paramax - - tqdm - - beartype ; extra == 'dev' - - ipython ; extra == 'dev' - - nbsphinx ; extra == 'dev' - - numpyro ; extra == 'dev' - - pytest ; extra == 'dev' - - ruff ; extra == 'dev' - - sphinx-autodoc-typehints ; extra == 'dev' - - sphinx-book-theme ; extra == 'dev' - - sphinx-copybutton ; extra == 'dev' - - sphinx<8.2 ; extra == 'dev' - requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b - md5: 0c96522c6bdaed4b1566d11387caaf45 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 397370 - timestamp: 1566932522327 -- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - sha256: c52a29fdac682c20d252facc50f01e7c2e7ceac52aa9817aaf0bb83f7559ec5c - md5: 34893075a5c9e55cdafac56607368fc6 - license: OFL-1.1 - license_family: Other - purls: [] - size: 96530 - timestamp: 1620479909603 -- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 - sha256: 00925c8c055a2275614b4d983e1df637245e19058d79fc7dd1a93b8d9fb4b139 - md5: 4d59c254e01d9cde7957100457e2d5fb - license: OFL-1.1 - license_family: Other - purls: [] - size: 700814 - timestamp: 1620479612257 -- conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-ubuntu-0.83-h77eed37_3.conda - sha256: 2821ec1dc454bd8b9a31d0ed22a7ce22422c0aef163c59f49dfdf915d0f0ca14 - md5: 49023d73832ef61042f6a237cb2687e7 - license: LicenseRef-Ubuntu-Font-Licence-Version-1.0 - license_family: Other - purls: [] - size: 1620504 - timestamp: 1727511233259 -- conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda - sha256: 7093aa19d6df5ccb6ca50329ef8510c6acb6b0d8001191909397368b65b02113 - md5: 8f5b0b297b59e1ac160ad4beec99dbee - depends: - - __glibc >=2.17,<3.0.a0 - - freetype >=2.12.1,<3.0a0 - - libexpat >=2.6.3,<3.0a0 - - libgcc >=13 - - libuuid >=2.38.1,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 265599 - timestamp: 1730283881107 -- conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - sha256: a997f2f1921bb9c9d76e6fa2f6b408b7fa549edd349a77639c9fe7a23ea93e61 - md5: fee5683a3f04bd15cbd8318b096a27ab - depends: - - fonts-conda-forge - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 3667 - timestamp: 1566974674465 -- conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-0.tar.bz2 - sha256: 53f23a3319466053818540bcdf2091f253cbdbab1e0e9ae7b9e509dcaa2a5e38 - md5: f766549260d6815b0c52253f1fb1bb29 - depends: - - font-ttf-dejavu-sans-mono - - font-ttf-inconsolata - - font-ttf-source-code-pro - - font-ttf-ubuntu - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 4102 - timestamp: 1566932280397 -- conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.60.1-py313h3dea7bd_0.conda - sha256: 063df49ae505478a6904f137a49ca4caf1afeccdc582133be231b0bc15601427 - md5: 904860fc0d57532d28e9c6c4501f19a9 - depends: - - __glibc >=2.17,<3.0.a0 - - brotli - - libgcc >=14 - - munkres - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: MIT - license_family: MIT - purls: - - pkg:pypi/fonttools?source=hash-mapping - size: 2927817 - timestamp: 1759187293931 -- conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda - sha256: 2509992ec2fd38ab27c7cdb42cf6cadc566a1cc0d1021a2673475d9fa87c6276 - md5: d3549fd50d450b6d9e7dddff25dd2110 - depends: - - cached-property >=1.3.0 - - python >=3.9,<4 - license: MPL-2.0 - license_family: MOZILLA - purls: - - pkg:pypi/fqdn?source=hash-mapping - size: 16705 - timestamp: 1733327494780 -- conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.1-ha770c72_0.conda - sha256: bf8e4dffe46f7d25dc06f31038cacb01672c47b9f45201f065b0f4d00ab0a83e - md5: 4afc585cd97ba8a23809406cd8a9eda8 - depends: - - libfreetype 2.14.1 ha770c72_0 - - libfreetype6 2.14.1 h73754d4_0 - license: GPL-2.0-only OR FTL - purls: [] - size: 173114 - timestamp: 1757945422243 -- conda: https://conda.anaconda.org/conda-forge/linux-64/fribidi-1.0.16-hb03c661_0.conda - sha256: 858283ff33d4c033f4971bf440cebff217d5552a5222ba994c49be990dacd40d - md5: f9f81ea472684d75b9dd8d0b328cf655 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: LGPL-2.1-or-later - purls: [] - size: 61244 - timestamp: 1757438574066 -- pypi: https://files.pythonhosted.org/packages/a3/61/8001b38461d751cd1a0c3a6ae84346796a5758123f3ed97a1b121dfbf4f3/gast-0.6.0-py3-none-any.whl - name: gast - version: 0.6.0 - sha256: 52b182313f7330389f72b069ba00f174cfe2a06411099547288839c6cbafbd54 - requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*' -- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc-14.3.0-h76bdaa0_7.conda - sha256: 5eae0f13f8012215c18fba5b74e10686c4720f5c6038a6cfbedcb91fe59eea3d - md5: cd5d2db69849f2fc7b592daf86c3015a - depends: - - conda-gcc-specs - - gcc_impl_linux-64 14.3.0.* - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 31025 - timestamp: 1759966082917 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-14.3.0-hd9e9e21_7.conda - sha256: bddd2b13469334fdd474281753cf0b347ac16c3e123ecfdce556ba16fbda9454 - md5: 54876317578ad4bf695aad97ff8398d9 - depends: - - binutils_impl_linux-64 >=2.40 - - libgcc >=14.3.0 - - libgcc-devel_linux-64 14.3.0 h85bb3a7_107 - - libgomp >=14.3.0 - - libsanitizer 14.3.0 hd08acf3_7 - - libstdcxx >=14.3.0 - - sysroot_linux-64 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 69987984 - timestamp: 1759965829687 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_linux-64-14.3.0-h298d278_12.conda - sha256: 0c56509170aa709cf80ef0663e17a1ab22fc57051794088994fc60290b352f46 - md5: 051081e67fa626cf3021e507e4a73c79 - depends: - - gcc_impl_linux-64 14.3.0.* - - binutils_linux-64 - - sysroot_linux-64 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 27952 - timestamp: 1759866571695 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gdk-pixbuf-2.44.4-h2b0a6b4_0.conda - sha256: f47222f58839bcc77c15f11a8814c1d8cb8080c5ca6ba83398a12b640fd3c85c - md5: c379d67c686fb83475c1a6ed41cc41ff - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libglib >=2.86.0,<3.0a0 - - libjpeg-turbo >=3.1.0,<4.0a0 - - liblzma >=5.8.1,<6.0a0 - - libpng >=1.6.50,<1.7.0a0 - - libtiff >=4.7.1,<4.8.0a0 - license: LGPL-2.1-or-later - license_family: LGPL - purls: [] - size: 572093 - timestamp: 1761082340749 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.2.2-h5888daf_1005.conda - sha256: 6c33bf0c4d8f418546ba9c250db4e4221040936aef8956353bc764d4877bc39a - md5: d411fc29e338efb48c5fd4576d71d881 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 119654 - timestamp: 1726600001928 -- conda: https://conda.anaconda.org/conda-forge/linux-64/glib-tools-2.86.0-hf516916_0.conda - sha256: b77316bd5c8680bde4e5a7ab7013c8f0f10c1702cc6c3b0fd0fac3923a31fec3 - md5: 1a8e49615381c381659de1bc6a3bf9ec - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libglib 2.86.0 h1fed272_0 - license: LGPL-2.1-or-later - purls: [] - size: 117284 - timestamp: 1757403341964 -- conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hbabe93e_0.conda - sha256: dc824dc1d0aa358e28da2ecbbb9f03d932d976c8dca11214aa1dcdfcbd054ba2 - md5: ff862eebdfeb2fd048ae9dc92510baca - depends: - - gflags >=2.2.2,<2.3.0a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 143452 - timestamp: 1718284177264 -- conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.14-hecca717_2.conda - sha256: 25ba37da5c39697a77fce2c9a15e48cf0a84f1464ad2aafbe53d8357a9f6cc8c - md5: 2cd94587f3a401ae05e03a6caf09539d - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - license: LGPL-2.0-or-later - license_family: LGPL - purls: [] - size: 99596 - timestamp: 1755102025473 -- conda: https://conda.anaconda.org/conda-forge/linux-64/graphviz-13.1.2-h87b6fe6_0.conda - sha256: efbd7d483f3d79b7882515ccf229eceb7f4ff636ea2019044e98243722f428be - md5: 0adddc9b820f596638d8b0ff9e3b4823 - depends: - - __glibc >=2.17,<3.0.a0 - - adwaita-icon-theme - - cairo >=1.18.4,<2.0a0 - - fonts-conda-ecosystem - - gdk-pixbuf >=2.42.12,<3.0a0 - - gtk3 >=3.24.43,<4.0a0 - - gts >=0.7.6,<0.8.0a0 - - libexpat >=2.7.1,<3.0a0 - - libgcc >=14 - - libgd >=2.3.3,<2.4.0a0 - - libglib >=2.84.3,<3.0a0 - - librsvg >=2.58.4,<3.0a0 - - libstdcxx >=14 - - libwebp-base >=1.6.0,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - pango >=1.56.4,<2.0a0 - license: EPL-1.0 - license_family: Other - purls: [] - size: 2427887 - timestamp: 1754732581595 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gtk3-3.24.43-h021d004_4.conda - sha256: fc8abccb4b0d454891847bdd8163332ff8607aa33ea9cf1e43b3828fc88c42ce - md5: a891e341072432fafb853b3762957cbf - depends: - - __glibc >=2.17,<3.0.a0 - - at-spi2-atk >=2.38.0,<3.0a0 - - atk-1.0 >=2.38.0 - - cairo >=1.18.4,<2.0a0 - - epoxy >=1.5.10,<1.6.0a0 - - fontconfig >=2.15.0,<3.0a0 - - fonts-conda-ecosystem - - fribidi >=1.0.10,<2.0a0 - - gdk-pixbuf >=2.42.12,<3.0a0 - - glib-tools - - harfbuzz >=10.4.0 - - hicolor-icon-theme - - libcups >=2.3.3,<2.4.0a0 - - libcups >=2.3.3,<3.0a0 - - libexpat >=2.6.4,<3.0a0 - - libgcc >=13 - - libglib >=2.82.2,<3.0a0 - - liblzma >=5.6.4,<6.0a0 - - libxkbcommon >=1.8.0,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - pango >=1.56.1,<2.0a0 - - wayland >=1.23.1,<2.0a0 - - xorg-libx11 >=1.8.11,<2.0a0 - - xorg-libxcomposite >=0.4.6,<1.0a0 - - xorg-libxcursor >=1.2.3,<2.0a0 - - xorg-libxdamage >=1.1.6,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - - xorg-libxfixes >=6.0.1,<7.0a0 - - xorg-libxi >=1.8.2,<2.0a0 - - xorg-libxinerama >=1.1.5,<1.2.0a0 - - xorg-libxrandr >=1.5.4,<2.0a0 - - xorg-libxrender >=0.9.12,<0.10.0a0 - license: LGPL-2.0-or-later - license_family: LGPL - purls: [] - size: 5563940 - timestamp: 1741694746664 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gts-0.7.6-h977cf35_4.conda - sha256: b5cd16262fefb836f69dc26d879b6508d29f8a5c5948a966c47fe99e2e19c99b - md5: 4d8df0b0db060d33c9a702ada998a8fe - depends: - - libgcc-ng >=12 - - libglib >=2.76.3,<3.0a0 - - libstdcxx-ng >=12 - license: LGPL-2.0-or-later - license_family: LGPL - purls: [] - size: 318312 - timestamp: 1686545244763 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx-14.3.0-he448592_7.conda - sha256: 7acf0ee3039453aa69f16da063136335a3511f9c157e222def8d03c8a56a1e03 - md5: 91dc0abe7274ac5019deaa6100643265 - depends: - - gcc 14.3.0.* - - gxx_impl_linux-64 14.3.0.* - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 30403 - timestamp: 1759966121169 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_impl_linux-64-14.3.0-he663afc_7.conda - sha256: 597579f6ce995c2a53dcb290c75d94819ca92f898687162f992a208a5ea1b65b - md5: 2700e7aad63bca8c26c2042a6a7214d6 - depends: - - gcc_impl_linux-64 14.3.0 hd9e9e21_7 - - libstdcxx-devel_linux-64 14.3.0 h85bb3a7_107 - - sysroot_linux-64 - - tzdata - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 15187856 - timestamp: 1759966051354 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gxx_linux-64-14.3.0-h95f728e_12.conda - sha256: 559996c580c31b939702b819368ad19d2f610bbb5b568d033e3c78bea49e730f - md5: 7778058aa8b54953ddd09c3297e59e4d - depends: - - gxx_impl_linux-64 14.3.0.* - - gcc_linux-64 ==14.3.0 h298d278_12 - - binutils_linux-64 - - sysroot_linux-64 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 27050 - timestamp: 1759866571696 -- conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda - sha256: f64b68148c478c3bfc8f8d519541de7d2616bf59d44485a5271041d40c061887 - md5: 4b69232755285701bc86a5afe4d9933a - depends: - - python >=3.9 - - typing_extensions - license: MIT - license_family: MIT - purls: - - pkg:pypi/h11?source=hash-mapping - size: 37697 - timestamp: 1745526482242 -- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - sha256: 84c64443368f84b600bfecc529a1194a3b14c3656ee2e832d15a20e0329b6da3 - md5: 164fc43f0b53b6e3a7bc7dce5e4f1dc9 - depends: - - python >=3.10 - - hyperframe >=6.1,<7 - - hpack >=4.1,<5 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/h2?source=compressed-mapping - size: 95967 - timestamp: 1756364871835 -- conda: https://conda.anaconda.org/conda-forge/noarch/h5netcdf-1.7.3-pyhd8ed1ab_0.conda - sha256: a7f9999242156b981eaffabc38eb3baf66c51af2ea89749df83b089f48e42c6e - md5: 4ce3dfa4440b4aa5364f4a6fcc3d7cb3 - depends: - - h5py - - packaging - - python >=3.9 - license: BSD-3-Clause - purls: - - pkg:pypi/h5netcdf?source=hash-mapping - size: 52353 - timestamp: 1761062104664 -- conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py313h253c126_100.conda - sha256: 646c0530c26a92bbd868c0c8999dd906d5f84a870657376e7c74858794d9041d - md5: 88f6a689eee8b8358f092e4e08ced962 - depends: - - __glibc >=2.17,<3.0.a0 - - cached-property - - hdf5 >=1.14.6,<1.14.7.0a0 - - libgcc >=14 - - numpy >=1.23,<3 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/h5py?source=hash-mapping - size: 1328465 - timestamp: 1760616656123 -- conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.1.0-h15599e2_0.conda - sha256: df2a964f5b7dd652b59da018f1d2d9ae402b815c4e5d849384344df358d2a565 - md5: 7704b1edaa8316b8792424f254c1f586 - depends: - - __glibc >=2.17,<3.0.a0 - - cairo >=1.18.4,<2.0a0 - - graphite2 >=1.3.14,<2.0a0 - - icu >=75.1,<76.0a0 - - libexpat >=2.7.1,<3.0a0 - - libfreetype >=2.14.1 - - libfreetype6 >=2.14.1 - - libgcc >=14 - - libglib >=2.86.0,<3.0a0 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 2058414 - timestamp: 1759365674184 -- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda - sha256: 4f173af9e2299de7eee1af3d79e851bca28ee71e7426b377e841648b51d48614 - md5: c74d83614aec66227ae5199d98852aaf - depends: - - __glibc >=2.17,<3.0.a0 - - libaec >=1.1.4,<2.0a0 - - libcurl >=8.14.1,<9.0a0 - - libgcc >=14 - - libgfortran - - libgfortran5 >=14.3.0 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.1,<4.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 3710057 - timestamp: 1753357500665 -- conda: https://conda.anaconda.org/conda-forge/linux-64/hicolor-icon-theme-0.17-ha770c72_2.tar.bz2 - sha256: 336f29ceea9594f15cc8ec4c45fdc29e10796573c697ee0d57ebb7edd7e92043 - md5: bbf6f174dcd3254e19a2f5d2295ce808 - license: GPL-2.0-or-later - license_family: GPL - purls: [] - size: 13841 - timestamp: 1605162808667 -- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - sha256: 6ad78a180576c706aabeb5b4c8ceb97c0cb25f1e112d76495bff23e3779948ba - md5: 0a802cb9888dd14eeefc611f05c40b6e - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/hpack?source=hash-mapping - size: 30731 - timestamp: 1737618390337 -- conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda - sha256: 04d49cb3c42714ce533a8553986e1642d0549a05dc5cc48e0d43ff5be6679a5b - md5: 4f14640d58e2cc0aa0819d9d8ba125bb - depends: - - python >=3.9 - - h11 >=0.16 - - h2 >=3,<5 - - sniffio 1.* - - anyio >=4.0,<5.0 - - certifi - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/httpcore?source=hash-mapping - size: 49483 - timestamp: 1745602916758 -- conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - sha256: cd0f1de3697b252df95f98383e9edb1d00386bfdd03fdf607fa42fe5fcb09950 - md5: d6989ead454181f4f9bc987d3dc4e285 - depends: - - anyio - - certifi - - httpcore 1.* - - idna - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/httpx?source=hash-mapping - size: 63082 - timestamp: 1733663449209 -- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 - md5: 8e6923fc12f1fe8f8c4e5c9f343256ac - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/hyperframe?source=hash-mapping - size: 17397 - timestamp: 1737618427549 -- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda - sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e - md5: 8b189310083baabfb622af68fd9d3ae3 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: MIT - license_family: MIT - purls: [] - size: 12129203 - timestamp: 1720853576813 -- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - sha256: ae89d0299ada2a3162c2614a9d26557a92aa6a77120ce142f8e0109bbf0342b0 - md5: 53abe63df7e10a6ba605dc5f9f961d36 - depends: - - python >=3.10 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/idna?source=compressed-mapping - size: 50721 - timestamp: 1760286526795 -- 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 - license_family: APACHE - purls: - - pkg:pypi/importlib-metadata?source=hash-mapping - size: 34641 - timestamp: 1747934053147 -- conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda - sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19 - md5: 9614359868482abba1bd15ce465e3c42 - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/iniconfig?source=compressed-mapping - size: 13387 - timestamp: 1760831448842 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.0.1-pyha191276_0.conda - sha256: cf1606f123c7652a8594a5fae68c83c0d8bd891cc125243e0e23bcc5ad2d76e8 - md5: 637e206802904ecc10a558262631f132 - depends: - - python - - __linux - - comm >=0.1.1 - - debugpy >=1.6.5 - - ipython >=7.23.1 - - jupyter_client >=8.0.0 - - jupyter_core >=4.12,!=5.0.* - - matplotlib-inline >=0.1 - - nest-asyncio >=1.4 - - packaging >=22 - - psutil >=5.7 - - python >=3.10 - - pyzmq >=25 - - tornado >=6.2 - - traitlets >=5.4.0 - - python - constrains: - - appnope >=0.1.2 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/ipykernel?source=hash-mapping - size: 131994 - timestamp: 1760459840504 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipympl-0.9.8-pyhcf101f3_0.conda - sha256: ae6f3ff0f3d524dc7469293dc41488ec7d3ffe6de07ac6d9feede4a051689e03 - md5: 32a83ababd92433f97b7a22392e0ea6d - depends: - - ipython <10 - - ipywidgets >=7.6.0,<9 - - matplotlib-base >=3.5.0,<4 - - numpy - - pillow - - python >=3.10 - - traitlets <6 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/ipympl?source=hash-mapping - size: 240951 - timestamp: 1760104175360 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.6.0-pyhfa0c392_0.conda - sha256: 5b679431867704b46c0f412de1a4963bf2c9b65e55a325a22c4624f88b939453 - md5: ad6641ef96dd7872acbb802fa3fcb8d1 - depends: - - __unix - - pexpect >4.3 - - decorator - - exceptiongroup - - ipython_pygments_lexers - - jedi >=0.16 - - matplotlib-inline - - pickleshare - - prompt-toolkit >=3.0.41,<3.1.0 - - pygments >=2.4.0 - - python >=3.11 - - stack_data - - traitlets >=5.13.0 - - typing_extensions >=4.6 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/ipython?source=hash-mapping - size: 638573 - timestamp: 1759151815538 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - sha256: 894682a42a7d659ae12878dbcb274516a7031bbea9104e92f8e88c1f2765a104 - md5: bd80ba060603cc228d9d81c257093119 - depends: - - pygments - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/ipython-pygments-lexers?source=hash-mapping - size: 13993 - timestamp: 1737123723464 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.7-pyhd8ed1ab_0.conda - sha256: fd496e7d48403246f534c5eec09fc1e63ac7beb1fa06541d6ba71f56b30cf29b - md5: 7c9449eac5975ef2d7753da262a72707 - depends: - - comm >=0.1.3 - - ipython >=6.1.0 - - jupyterlab_widgets >=3.0.15,<3.1.0 - - python >=3.9 - - traitlets >=4.3.1 - - widgetsnbextension >=4.0.14,<4.1.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/ipywidgets?source=hash-mapping - size: 114557 - timestamp: 1746454722402 -- conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda - sha256: 08e838d29c134a7684bca0468401d26840f41c92267c4126d7b43a6b533b0aed - md5: 0b0154421989637d424ccf0f104be51a - depends: - - arrow >=0.15.0 - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/isoduration?source=hash-mapping - size: 19832 - timestamp: 1733493720346 -- pypi: https://files.pythonhosted.org/packages/b3/77/4e6c9a54247810eff8ac8a1af7dc1be0779b52df0d82f3fc8586061914f3/jax-0.8.0-py3-none-any.whl - name: jax - version: 0.8.0 - sha256: d190158bc019756c6a0f6b3d5fc8783471fb407e6deaff559eaac60dd5ee850a - requires_dist: - - jaxlib<=0.8.0,>=0.8.0 - - ml-dtypes>=0.5.0 - - numpy>=2.0 - - opt-einsum - - scipy>=1.13 - - jaxlib==0.8.0 ; extra == 'minimum-jaxlib' - - jaxlib==0.7.2 ; extra == 'ci' - - jaxlib<=0.8.0,>=0.8.0 ; extra == 'tpu' - - libtpu==0.0.24.* ; extra == 'tpu' - - requests ; extra == 'tpu' - - jaxlib<=0.8.0,>=0.8.0 ; extra == 'cuda' - - jax-cuda12-plugin[with-cuda]<=0.8.0,>=0.8.0 ; extra == 'cuda' - - jaxlib<=0.8.0,>=0.8.0 ; extra == 'cuda12' - - jax-cuda12-plugin[with-cuda]<=0.8.0,>=0.8.0 ; extra == 'cuda12' - - jaxlib<=0.8.0,>=0.8.0 ; extra == 'cuda13' - - jax-cuda13-plugin[with-cuda]<=0.8.0,>=0.8.0 ; extra == 'cuda13' - - jaxlib<=0.8.0,>=0.8.0 ; extra == 'cuda12-local' - - jax-cuda12-plugin<=0.8.0,>=0.8.0 ; extra == 'cuda12-local' - - jaxlib<=0.8.0,>=0.8.0 ; extra == 'cuda13-local' - - jax-cuda13-plugin<=0.8.0,>=0.8.0 ; extra == 'cuda13-local' - - jaxlib<=0.8.0,>=0.8.0 ; extra == 'rocm' - - jax-rocm60-plugin<=0.8.0,>=0.8.0 ; extra == 'rocm' - - kubernetes ; extra == 'k8s' - - xprof ; extra == 'xprof' - requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/8f/f0/cde1d84c737bdb75712f70d69561120ce91f3f294acf2fba573c0de740b6/jaxlib-0.8.0-cp313-cp313-manylinux_2_27_x86_64.whl - name: jaxlib - version: 0.8.0 - sha256: 66c6f576f54a63ed052f5c469bef4db723f5f050b839ec0c429573011341bd58 - requires_dist: - - scipy>=1.13 - - numpy>=2.0 - - ml-dtypes>=0.5.0 - requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/b8/97/88264b1af140f66ba7ca6eb2f3a108be233ee278bb3f1d5c750243e7458a/jaxtyping-0.3.3-py3-none-any.whl - name: jaxtyping - version: 0.3.3 - sha256: a1c2f0f4351a8deda84b0e3b5c5a50894a1cdae2b82d841279fce4393aff4a7c - requires_dist: - - wadler-lindig>=0.1.3 - - pre-commit>=4.3.0 ; extra == 'dev' - - griffe==1.7.3 ; extra == 'docs' - - hippogriffe==0.2.1 ; extra == 'docs' - - mkdocs-include-exclude-files==0.1.0 ; extra == 'docs' - - mkdocs-ipynb==0.1.1 ; extra == 'docs' - - mkdocs-material==9.6.7 ; extra == 'docs' - - mkdocs==1.6.1 ; extra == 'docs' - - mkdocstrings-python==1.16.8 ; extra == 'docs' - - mkdocstrings==0.28.3 ; extra == 'docs' - - pymdown-extensions==10.14.3 ; extra == 'docs' - - beartype>=0.21.0 ; extra == 'tests' - - cloudpickle>=3.1.1 ; extra == 'tests' - - equinox>=0.13.1 ; extra == 'tests' - - ipython>=8.37.0 ; extra == 'tests' - - jax>=0.5.3 ; extra == 'tests' - - mlx[cpu]>=0.29.1 ; extra == 'tests' - - numpy<2 ; extra == 'tests' - - pytest-asyncio>=1.2.0 ; extra == 'tests' - - pytest>=8.4.2 ; extra == 'tests' - - tensorflow>=2.18.1 ; extra == 'tests' - - typeguard==2.13.3 ; extra == 'tests' - requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda - sha256: 92c4d217e2dc68983f724aa983cca5464dcb929c566627b26a2511159667dba8 - md5: a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 - depends: - - parso >=0.8.3,<0.9.0 - - python >=3.9 - license: Apache-2.0 AND MIT - purls: - - pkg:pypi/jedi?source=hash-mapping - size: 843646 - timestamp: 1733300981994 -- conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhd8ed1ab_0.conda - sha256: f1ac18b11637ddadc05642e8185a851c7fab5998c6f5470d716812fae943b2af - md5: 446bd6c8cb26050d528881df495ce646 - depends: - - markupsafe >=2.0 - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jinja2?source=hash-mapping - size: 112714 - timestamp: 1741263433881 -- conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda - sha256: 4e08ccf9fa1103b617a4167a270768de736a36be795c6cd34c2761100d332f74 - md5: 0fc93f473c31a2f85c0bde213e7c63ca - depends: - - python >=3.9 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/json5?source=hash-mapping - size: 34191 - timestamp: 1755034963991 -- conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py313h78bf25f_2.conda - sha256: 9174f5209f835cc8918acddc279be919674d874179197e025181fe2a71cb0bce - md5: c1375f38e5f3ee38a9ee0e405a601c35 - depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jsonpointer?source=hash-mapping - size: 18143 - timestamp: 1756754243113 -- conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda - sha256: ac377ef7762e49cb9c4f985f1281eeff471e9adc3402526eea78e6ac6589cf1d - md5: 341fd940c242cf33e832c0402face56f - depends: - - attrs >=22.2.0 - - jsonschema-specifications >=2023.3.6 - - python >=3.9 - - referencing >=0.28.4 - - rpds-py >=0.7.1 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/jsonschema?source=hash-mapping - size: 81688 - timestamp: 1755595646123 -- conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda - sha256: 0a4f3b132f0faca10c89fdf3b60e15abb62ded6fa80aebfc007d05965192aa04 - md5: 439cd0f567d697b20a8f45cb70a1005a - depends: - - python >=3.10 - - referencing >=0.31.0 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/jsonschema-specifications?source=hash-mapping - size: 19236 - timestamp: 1757335715225 -- conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda - sha256: aef6705fe1335e6472e1b6365fcdb586356b18dceff72d8d6a315fc90e900ccf - md5: 13e31c573c884962318a738405ca3487 - depends: - - jsonschema >=4.25.1,<4.25.2.0a0 - - fqdn - - idna - - isoduration - - jsonpointer >1.13 - - rfc3339-validator - - rfc3986-validator >0.1.0 - - rfc3987-syntax >=1.1.0 - - uri-template - - webcolors >=24.6.0 - license: MIT - license_family: MIT - purls: [] - size: 4744 - timestamp: 1755595646123 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - sha256: 897ad2e2c2335ef3c2826d7805e16002a1fd0d509b4ae0bc66617f0e0ff07bc2 - md5: 62b7c96c6cd77f8173cc5cada6a9acaa - depends: - - importlib-metadata >=4.8.3 - - jupyter_server >=1.1.2 - - python >=3.10 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-lsp?source=hash-mapping - size: 60377 - timestamp: 1756388269267 -- 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 - purls: - - pkg:pypi/jupyter-client?source=hash-mapping - size: 106342 - timestamp: 1733441040958 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - sha256: 1d34b80e5bfcd5323f104dbf99a2aafc0e5d823019d626d0dce5d3d356a2a52a - md5: b38fe4e78ee75def7e599843ef4c1ab0 - depends: - - __unix - - python - - platformdirs >=2.5 - - python >=3.10 - - traitlets >=5.3 - - python - constrains: - - pywin32 >=300 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-core?source=compressed-mapping - size: 65503 - timestamp: 1760643864586 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - sha256: 37e6ac3ccf7afcc730c3b93cb91a13b9ae827fd306f35dd28f958a74a14878b5 - md5: f56000b36f09ab7533877e695e4e8cb0 - depends: - - jsonschema-with-format-nongpl >=4.18.0 - - packaging - - python >=3.9 - - python-json-logger >=2.0.4 - - pyyaml >=5.3 - - referencing - - rfc3339-validator - - rfc3986-validator >=0.1.1 - - traitlets >=5.3 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-events?source=hash-mapping - size: 23647 - timestamp: 1738765986736 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - sha256: 74c4e642be97c538dae1895f7052599dfd740d8bd251f727bce6453ce8d6cd9a - md5: d79a87dcfa726bcea8e61275feed6f83 - depends: - - anyio >=3.1.0 - - argon2-cffi >=21.1 - - jinja2 >=3.0.3 - - jupyter_client >=7.4.4 - - jupyter_core >=4.12,!=5.0.* - - jupyter_events >=0.11.0 - - jupyter_server_terminals >=0.4.4 - - nbconvert-core >=6.4.4 - - nbformat >=5.3.0 - - overrides >=5.0 - - packaging >=22.0 - - prometheus_client >=0.9 - - python >=3.10 - - pyzmq >=24 - - send2trash >=1.8.2 - - terminado >=0.8.3 - - tornado >=6.2.0 - - traitlets >=5.6.0 - - websocket-client >=1.7 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-server?source=hash-mapping - size: 347094 - timestamp: 1755870522134 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - sha256: 0890fc79422191bc29edf17d7b42cff44ba254aa225d31eb30819f8772b775b8 - md5: 2d983ff1b82a1ccb6f2e9d8784bdd6bd - depends: - - python >=3.9 - - terminado >=0.8.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyter-server-terminals?source=hash-mapping - size: 19711 - timestamp: 1733428049134 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.4.10-pyhd8ed1ab_0.conda - sha256: 1ce33112e545bcfc41f92747f4f8b0f36310937339334bfaabe2496a65b3f5b2 - md5: 0fc7cfcd261709ef5591c1ea3415e8a7 - depends: - - async-lru >=1.0.0 - - httpx >=0.25.0,<1 - - importlib-metadata >=4.8.3 - - ipykernel >=6.5.0,!=6.30.0 - - jinja2 >=3.0.3 - - jupyter-lsp >=2.0.0 - - jupyter_core - - jupyter_server >=2.4.0,<3 - - jupyterlab_server >=2.27.1,<3 - - notebook-shim >=0.2 - - packaging - - python >=3.10 - - setuptools >=41.1.0 - - tomli >=1.2.2 - - tornado >=6.2.0 - - traitlets - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyterlab?source=compressed-mapping - size: 8034306 - timestamp: 1761146412485 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - sha256: dc24b900742fdaf1e077d9a3458fd865711de80bca95fe3c6d46610c532c6ef0 - md5: fd312693df06da3578383232528c468d - depends: - - pygments >=2.4.1,<3 - - python >=3.9 - constrains: - - jupyterlab >=4.0.8,<5.0.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyterlab-pygments?source=hash-mapping - size: 18711 - timestamp: 1733328194037 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - sha256: 381d2d6a259a3be5f38a69463e0f6c5dcf1844ae113058007b51c3bef13a7cee - md5: a63877cb23de826b1620d3adfccc4014 - depends: - - babel >=2.10 - - jinja2 >=3.0.3 - - json5 >=0.9.0 - - jsonschema >=4.18 - - jupyter_server >=1.21,<3 - - packaging >=21.3 - - python >=3.10 - - requests >=2.31 - - python - license: BSD-3-Clause - purls: - - pkg:pypi/jupyterlab-server?source=compressed-mapping - size: 51621 - timestamp: 1761145478692 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.15-pyhd8ed1ab_0.conda - sha256: 6214d345861b106076e7cb38b59761b24cd340c09e3f787e4e4992036ca3cd7e - md5: ad100d215fad890ab0ee10418f36876f - depends: - - python >=3.9 - constrains: - - jupyterlab >=3,<5 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jupyterlab-widgets?source=hash-mapping - size: 189133 - timestamp: 1746450926999 -- conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda - sha256: a922841ad80bd7b222502e65c07ecb67e4176c4fa5b03678a005f39fcc98be4b - md5: ad8527bf134a90e1c9ed35fa0b64318c - constrains: - - sysroot_linux-64 ==2.17 - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 - license_family: GPL - purls: [] - size: 943486 - timestamp: 1729794504440 -- conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda - sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 - md5: b38117a3c920364aff79f870c984b4a3 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: LGPL-2.1-or-later - purls: [] - size: 134088 - timestamp: 1754905959823 -- conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py313hc8edb43_1.conda - sha256: 1a046c37e54239efc2768ce4a2fbaf721314cda3ef8358e85c8e544b5e4b133a - md5: 87215c60837a8494bf3453d08b404eed - depends: - - python - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/kiwisolver?source=hash-mapping - size: 77227 - timestamp: 1756467528380 -- 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 - purls: [] - size: 1370023 - timestamp: 1719463201255 -- conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.0-pyhd8ed1ab_0.conda - sha256: 6370d6a458b4f11a9ab5db7eb05e895f55f276e6aa4c4bbac7dde412c87fae35 - md5: c9ee16acbcea5cc91d9f3eb1d8f903bd - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/lark?source=compressed-mapping - size: 94267 - timestamp: 1758590674960 -- conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda - sha256: d6a61830a354da022eae93fa896d0991385a875c6bba53c82263a289deda9db8 - md5: 000e85703f0fd9594c81710dd5066471 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.7.0,<4.8.0a0 - license: MIT - license_family: MIT - purls: [] - size: 248046 - timestamp: 1739160907615 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.44-ha97dd6f_2.conda - sha256: 707dfb8d55d7a5c6f95c772d778ef07a7ca85417d9971796f7d3daad0b615de8 - md5: 14bae321b8127b63cba276bd53fac237 - depends: - - __glibc >=2.17,<3.0.a0 - constrains: - - binutils_impl_linux-64 2.44 - license: GPL-3.0-only - license_family: GPL - purls: [] - size: 747158 - timestamp: 1758810907507 -- conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda - sha256: 412381a43d5ff9bbed82cd52a0bbca5b90623f62e41007c9c42d3870c60945ff - md5: 9344155d33912347b37f0ae6c410a835 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 264243 - timestamp: 1745264221534 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20250512.1-cxx17_hba17884_0.conda - sha256: dcd1429a1782864c452057a6c5bc1860f2b637dc20a2b7e6eacd57395bbceff8 - md5: 83b160d4da3e1e847bf044997621ed63 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - constrains: - - libabseil-static =20250512.1=cxx17* - - abseil-cpp =20250512.1 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 1310612 - timestamp: 1750194198254 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.4-h3f801dc_0.conda - sha256: 410ab78fe89bc869d435de04c9ffa189598ac15bb0fe1ea8ace8fb1b860a2aa3 - md5: 01ba04e414e47f95c03d6ddd81fd37be - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 36825 - timestamp: 1749993532943 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-21.0.0-hf201b43_9_cpu.conda - build_number: 9 - sha256: ef08458a66ad9b3d263d4f15a2a7607dbed24198135ada7f5f49550034551d96 - md5: ab1b9e37890974d94a94f1f7744c7d61 - depends: - - __glibc >=2.17,<3.0.a0 - - aws-crt-cpp >=0.34.4,<0.34.5.0a0 - - aws-sdk-cpp >=1.11.606,<1.11.607.0a0 - - azure-core-cpp >=1.16.1,<1.16.2.0a0 - - azure-identity-cpp >=1.13.2,<1.13.3.0a0 - - azure-storage-blobs-cpp >=12.15.0,<12.15.1.0a0 - - azure-storage-files-datalake-cpp >=12.13.0,<12.13.1.0a0 - - bzip2 >=1.0.8,<2.0a0 - - glog >=0.7.1,<0.8.0a0 - - libabseil * cxx17* - - libabseil >=20250512.1,<20250513.0a0 - - libbrotlidec >=1.1.0,<1.2.0a0 - - libbrotlienc >=1.1.0,<1.2.0a0 - - libgcc >=14 - - libgoogle-cloud >=2.39.0,<2.40.0a0 - - libgoogle-cloud-storage >=2.39.0,<2.40.0a0 - - libopentelemetry-cpp >=1.21.0,<1.22.0a0 - - libprotobuf >=6.31.1,<6.31.2.0a0 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - lz4-c >=1.10.0,<1.11.0a0 - - orc >=2.2.1,<2.2.2.0a0 - - snappy >=1.2.2,<1.3.0a0 - - zstd >=1.5.7,<1.6.0a0 - constrains: - - apache-arrow-proc =*=cpu - - arrow-cpp <0.0a0 - - parquet-cpp <0.0a0 - license: Apache-2.0 - purls: [] - size: 6178242 - timestamp: 1761150296137 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-compute-21.0.0-h8c2c5c3_9_cpu.conda - build_number: 9 - sha256: 6e2d1e384af5fc33e0853a45378b77a65c09a238e70808b9a339741effa9e887 - md5: 34939b1399e92a38859212dd7c40b0a7 - depends: - - __glibc >=2.17,<3.0.a0 - - libarrow 21.0.0 hf201b43_9_cpu - - libgcc >=14 - - libre2-11 >=2025.8.12 - - libstdcxx >=14 - - libutf8proc >=2.11.0,<2.12.0a0 - - re2 - license: Apache-2.0 - purls: [] - size: 3071627 - timestamp: 1761150392062 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.9.0-37_h5875eb1_mkl.conda - build_number: 37 - sha256: 815cc467cb4ffe421f72cff675da33287555ec977388ed5baa09be90448efcbe - md5: 888c2ae634bce09709dffd739ba9f1bc - depends: - - mkl >=2024.2.2,<2025.0a0 - constrains: - - liblapacke 3.9.0 37*_mkl - - liblapack 3.9.0 37*_mkl - - blas 2.137 mkl - - libcblas 3.9.0 37*_mkl - track_features: - - blas_mkl - - blas_mkl_2 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 17867 - timestamp: 1760212752777 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.1.0-hb03c661_4.conda - sha256: 2338a92d1de71f10c8cf70f7bb9775b0144a306d75c4812276749f54925612b6 - md5: 1d29d2e33fe59954af82ef54a8af3fe1 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: MIT - license_family: MIT - purls: [] - size: 69333 - timestamp: 1756599354727 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.1.0-hb03c661_4.conda - sha256: fcec0d26f67741b122f0d5eff32f0393d7ebd3ee6bb866ae2f17f3425a850936 - md5: 5cb5a1c9a94a78f5b23684bcb845338d - depends: - - __glibc >=2.17,<3.0.a0 - - libbrotlicommon 1.1.0 hb03c661_4 - - libgcc >=14 - license: MIT - license_family: MIT - purls: [] - size: 33406 - timestamp: 1756599364386 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.1.0-hb03c661_4.conda - sha256: d42c7f0afce21d5279a0d54ee9e64a2279d35a07a90e0c9545caae57d6d7dc57 - md5: 2e55011fa483edb8bfe3fd92e860cd79 - depends: - - __glibc >=2.17,<3.0.a0 - - libbrotlicommon 1.1.0 hb03c661_4 - - libgcc >=14 - license: MIT - license_family: MIT - purls: [] - size: 289680 - timestamp: 1756599375485 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.9.0-37_hfef963f_mkl.conda - build_number: 37 - sha256: d3d3bf31803396001e74de27f266781cd9d5f9e34b288762b9e6e1183a7815a4 - md5: f66eb9a9396715013772b8a3ef7396be - depends: - - libblas 3.9.0 37_h5875eb1_mkl - constrains: - - liblapacke 3.9.0 37*_mkl - - blas 2.137 mkl - - liblapack 3.9.0 37*_mkl - track_features: - - blas_mkl - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 17495 - timestamp: 1760212763579 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.3-default_h99862b1_0.conda - sha256: a882d8aed8625a3cdf9d4062a437f17aa5628cc3b3d8984a5b2ba79abe4a9404 - md5: 351153facc71be73b27482c6ec2204b4 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libllvm21 >=21.1.3,<21.2.0a0 - - libstdcxx >=14 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 21041961 - timestamp: 1760315552873 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-21.1.3-default_h746c552_0.conda - sha256: 45a8dbd9a7a4eed4da300e692a6f87d39aecd105eec15977cf6cc78091b48be7 - md5: 8e9dbb05e5f7105e265d5775d44e6160 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libllvm21 >=21.1.3,<21.2.0a0 - - libstdcxx >=14 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 12341791 - timestamp: 1760315971541 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 - sha256: fd1d153962764433fe6233f34a72cdeed5dcf8a883a85769e8295ce940b5b0c5 - md5: c965a5aa0d5c1c37ffc62dff36e28400 - depends: - - libgcc-ng >=9.4.0 - - libstdcxx-ng >=9.4.0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 20440 - timestamp: 1633683576494 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-hb8b1518_5.conda - sha256: cb83980c57e311783ee831832eb2c20ecb41e7dee6e86e8b70b8cef0e43eab55 - md5: d4a250da4737ee127fb1fa6452a9002e - depends: - - __glibc >=2.17,<3.0.a0 - - krb5 >=1.21.3,<1.22.0a0 - - libgcc >=13 - - libstdcxx >=13 - - libzlib >=1.3.1,<2.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 4523621 - timestamp: 1749905341688 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.16.0-h4e3cde8_0.conda - sha256: f21af777602d17ced05f168898e759fb0bac5af09ba72c5ece245dd0f14e0fec - md5: a401aa9329350320c7d3809a7a5a1640 - depends: - - __glibc >=2.17,<3.0.a0 - - krb5 >=1.21.3,<1.22.0a0 - - libgcc >=14 - - libnghttp2 >=1.67.0,<2.0a0 - - libssh2 >=1.11.1,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.4,<4.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: curl - license_family: MIT - purls: [] - size: 459851 - timestamp: 1760977209182 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.24-h86f0d12_0.conda - sha256: 8420748ea1cc5f18ecc5068b4f24c7a023cc9b20971c99c824ba10641fb95ddf - md5: 64f0c503da58ec25ebd359e4d990afa8 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - purls: [] - size: 72573 - timestamp: 1747040452262 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.125-hb03c661_1.conda - sha256: c076a213bd3676cc1ef22eeff91588826273513ccc6040d9bea68bccdc849501 - md5: 9314bc5a1fe7d1044dc9dfd3ef400535 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libpciaccess >=0.18,<0.19.0a0 - license: MIT - license_family: MIT - purls: [] - size: 310785 - timestamp: 1757212153962 -- 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 - purls: [] - size: 134676 - timestamp: 1738479519902 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libegl-1.7.0-ha4b6fd6_2.conda - sha256: 7fd5408d359d05a969133e47af580183fbf38e2235b562193d427bb9dad79723 - md5: c151d5eb730e9b7480e6d48c0fc44048 - depends: - - __glibc >=2.17,<3.0.a0 - - libglvnd 1.7.0 ha4b6fd6_2 - license: LicenseRef-libglvnd - purls: [] - size: 44840 - timestamp: 1731330973553 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libegl-devel-1.7.0-ha4b6fd6_2.conda - sha256: f6e7095260305dc05238062142fb8db4b940346329b5b54894a90610afa6749f - md5: b513eb83b3137eca1192c34bf4f013a7 - depends: - - __glibc >=2.17,<3.0.a0 - - libegl 1.7.0 ha4b6fd6_2 - - libgl-devel 1.7.0 ha4b6fd6_2 - - xorg-libx11 - license: LicenseRef-libglvnd - purls: [] - size: 30380 - timestamp: 1731331017249 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 - md5: 172bf1cd1ff8629f2b1179945ed45055 - depends: - - libgcc-ng >=12 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 112766 - timestamp: 1702146165126 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.1-hecca717_0.conda - sha256: da2080da8f0288b95dd86765c801c6e166c4619b910b11f9a8446fb852438dc2 - md5: 4211416ecba1866fab0c6470986c22d6 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - constrains: - - expat 2.7.1.* - license: MIT - license_family: MIT - purls: [] - size: 74811 - timestamp: 1752719572741 -- 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 - purls: [] - size: 57433 - timestamp: 1743434498161 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype-2.14.1-ha770c72_0.conda - sha256: 4641d37faeb97cf8a121efafd6afd040904d4bca8c46798122f417c31d5dfbec - md5: f4084e4e6577797150f9b04a4560ceb0 - depends: - - libfreetype6 >=2.14.1 - license: GPL-2.0-only OR FTL - purls: [] - size: 7664 - timestamp: 1757945417134 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.1-h73754d4_0.conda - sha256: 4a7af818a3179fafb6c91111752954e29d3a2a950259c14a2fc7ba40a8b03652 - md5: 8e7251989bca326a28f4a5ffbd74557a - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libpng >=1.6.50,<1.7.0a0 - - libzlib >=1.3.1,<2.0a0 - constrains: - - freetype >=2.14.1 - license: GPL-2.0-only OR FTL - purls: [] - size: 386739 - timestamp: 1757945416744 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-h767d61c_7.conda - sha256: 08f9b87578ab981c7713e4e6a7d935e40766e10691732bba376d4964562bcb45 - md5: c0374badb3a5d4b1372db28d19462c53 - depends: - - __glibc >=2.17,<3.0.a0 - - _openmp_mutex >=4.5 - constrains: - - libgomp 15.2.0 h767d61c_7 - - libgcc-ng ==15.2.0=*_7 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 822552 - timestamp: 1759968052178 -- conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-14.3.0-h85bb3a7_107.conda - sha256: 57a1e792e9cffb3e641c84d3830eb637a81c85f33bdc3d45ac7b653c701f9d68 - md5: 84915638a998fae4d495fa038683a73e - depends: - - __unix - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 2731390 - timestamp: 1759965626607 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_7.conda - sha256: 2045066dd8e6e58aaf5ae2b722fb6dfdbb57c862b5f34ac7bfb58c40ef39b6ad - md5: 280ea6eee9e2ddefde25ff799c4f0363 - depends: - - libgcc 15.2.0 h767d61c_7 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 29313 - timestamp: 1759968065504 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgd-2.3.3-h6f5c62b_11.conda - sha256: 19e5be91445db119152217e8e8eec4fd0499d854acc7d8062044fb55a70971cd - md5: 68fc66282364981589ef36868b1a7c78 - depends: - - __glibc >=2.17,<3.0.a0 - - fontconfig >=2.15.0,<3.0a0 - - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - icu >=75.1,<76.0a0 - - libexpat >=2.6.4,<3.0a0 - - libgcc >=13 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libpng >=1.6.45,<1.7.0a0 - - libtiff >=4.7.0,<4.8.0a0 - - libwebp-base >=1.5.0,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - license: GD - license_family: BSD - purls: [] - size: 177082 - timestamp: 1737548051015 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_7.conda - sha256: 9ca24328e31c8ef44a77f53104773b9fe50ea8533f4c74baa8489a12de916f02 - md5: 8621a450add4e231f676646880703f49 - depends: - - libgfortran5 15.2.0 hcd61629_7 - constrains: - - libgfortran-ng ==15.2.0=*_7 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 29275 - timestamp: 1759968110483 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-hcd61629_7.conda - sha256: e93ceda56498d98c9f94fedec3e2d00f717cbedfc97c49be0e5a5828802f2d34 - md5: f116940d825ffc9104400f0d7f1a4551 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=15.2.0 - constrains: - - libgfortran 15.2.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 1572758 - timestamp: 1759968082504 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_2.conda - sha256: dc2752241fa3d9e40ce552c1942d0a4b5eeb93740c9723873f6fcf8d39ef8d2d - md5: 928b8be80851f5d8ffb016f9c81dae7a - depends: - - __glibc >=2.17,<3.0.a0 - - libglvnd 1.7.0 ha4b6fd6_2 - - libglx 1.7.0 ha4b6fd6_2 - license: LicenseRef-libglvnd - purls: [] - size: 134712 - timestamp: 1731330998354 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-devel-1.7.0-ha4b6fd6_2.conda - sha256: e281356c0975751f478c53e14f3efea6cd1e23c3069406d10708d6c409525260 - md5: 53e7cbb2beb03d69a478631e23e340e9 - depends: - - __glibc >=2.17,<3.0.a0 - - libgl 1.7.0 ha4b6fd6_2 - - libglx-devel 1.7.0 ha4b6fd6_2 - license: LicenseRef-libglvnd - purls: [] - size: 113911 - timestamp: 1731331012126 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.86.0-h1fed272_0.conda - sha256: 33336bd55981be938f4823db74291e1323454491623de0be61ecbe6cf3a4619c - md5: b8e4c93f4ab70c3b6f6499299627dbdc - depends: - - __glibc >=2.17,<3.0.a0 - - libffi >=3.4.6,<3.5.0a0 - - libgcc >=14 - - libiconv >=1.18,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - pcre2 >=10.46,<10.47.0a0 - constrains: - - glib 2.86.0 *_0 - license: LGPL-2.1-or-later - purls: [] - size: 3978602 - timestamp: 1757403291664 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_2.conda - sha256: 1175f8a7a0c68b7f81962699751bb6574e6f07db4c9f72825f978e3016f46850 - md5: 434ca7e50e40f4918ab701e3facd59a0 - depends: - - __glibc >=2.17,<3.0.a0 - license: LicenseRef-libglvnd - purls: [] - size: 132463 - timestamp: 1731330968309 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_2.conda - sha256: 2d35a679624a93ce5b3e9dd301fff92343db609b79f0363e6d0ceb3a6478bfa7 - md5: c8013e438185f33b13814c5c488acd5c - depends: - - __glibc >=2.17,<3.0.a0 - - libglvnd 1.7.0 ha4b6fd6_2 - - xorg-libx11 >=1.8.10,<2.0a0 - license: LicenseRef-libglvnd - purls: [] - size: 75504 - timestamp: 1731330988898 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-devel-1.7.0-ha4b6fd6_2.conda - sha256: 0a930e0148ab6e61089bbcdba25a2e17ee383e7de82e7af10cc5c12c82c580f3 - md5: 27ac5ae872a21375d980bd4a6f99edf3 - depends: - - __glibc >=2.17,<3.0.a0 - - libglx 1.7.0 ha4b6fd6_2 - - xorg-libx11 >=1.8.10,<2.0a0 - - xorg-xorgproto - license: LicenseRef-libglvnd - purls: [] - size: 26388 - timestamp: 1731331003255 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-h767d61c_7.conda - sha256: e9fb1c258c8e66ee278397b5822692527c5f5786d372fe7a869b900853f3f5ca - md5: f7b4d76975aac7e5d9e6ad13845f92fe - depends: - - __glibc >=2.17,<3.0.a0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 447919 - timestamp: 1759967942498 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-2.39.0-hdb79228_0.conda - sha256: d3341cf69cb02c07bbd1837968f993da01b7bd467e816b1559a3ca26c1ff14c5 - md5: a2e30ccd49f753fd30de0d30b1569789 - depends: - - __glibc >=2.17,<3.0.a0 - - libabseil * cxx17* - - libabseil >=20250512.1,<20250513.0a0 - - libcurl >=8.14.1,<9.0a0 - - libgcc >=14 - - libgrpc >=1.73.1,<1.74.0a0 - - libprotobuf >=6.31.1,<6.31.2.0a0 - - libstdcxx >=14 - - openssl >=3.5.1,<4.0a0 - constrains: - - libgoogle-cloud 2.39.0 *_0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 1307909 - timestamp: 1752048413383 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-2.39.0-hdbdcf42_0.conda - sha256: 59eb8365f0aee384f2f3b2a64dcd454f1a43093311aa5f21a8bb4bd3c79a6db8 - md5: bd21962ff8a9d1ce4720d42a35a4af40 - depends: - - __glibc >=2.17,<3.0.a0 - - libabseil - - libcrc32c >=1.1.2,<1.2.0a0 - - libcurl - - libgcc >=14 - - libgoogle-cloud 2.39.0 hdb79228_0 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - openssl - license: Apache-2.0 - license_family: Apache - purls: [] - size: 804189 - timestamp: 1752048589800 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.73.1-h3288cfb_1.conda - sha256: bc9d32af6167b1f5bcda216dc44eddcb27f3492440571ab12f6e577472a05e34 - md5: ff63bb12ac31c176ff257e3289f20770 - depends: - - __glibc >=2.17,<3.0.a0 - - c-ares >=1.34.5,<2.0a0 - - libabseil * cxx17* - - libabseil >=20250512.1,<20250513.0a0 - - libgcc >=14 - - libprotobuf >=6.31.1,<6.31.2.0a0 - - libre2-11 >=2025.8.12 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.4,<4.0a0 - - re2 - constrains: - - grpc-cpp =1.73.1 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 8349777 - timestamp: 1761058442526 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libhwloc-2.12.1-default_h7f8ec31_1002.conda - sha256: f7fbc792dbcd04bf27219c765c10c239937b34c6c1a1f77a5827724753e02da1 - md5: c01021ae525a76fe62720c7346212d74 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - libxml2 - - libxml2-16 >=2.14.6 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 2450642 - timestamp: 1757624375958 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f - md5: 915f5995e94f60e9a4826e0b0920ee88 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: LGPL-2.1-only - purls: [] - size: 790176 - timestamp: 1754908768807 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libjpeg-turbo-3.1.0-hb9d3cd8_0.conda - sha256: 98b399287e27768bf79d48faba8a99a2289748c65cd342ca21033fab1860d4a4 - md5: 9fa334557db9f63da6c9285fd2a48638 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - constrains: - - jpeg <0.0.0a - license: IJG AND BSD-3-Clause AND Zlib - purls: [] - size: 628947 - timestamp: 1745268527144 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.9.0-37_h5e43f62_mkl.conda - build_number: 37 - sha256: 1919047509e5067052130db19d7e9afcf74c045f45cbbf72940919f3875359de - md5: 0c4af651539e79160cd3f0783391e918 - depends: - - libblas 3.9.0 37_h5875eb1_mkl - constrains: - - liblapacke 3.9.0 37*_mkl - - blas 2.137 mkl - - libcblas 3.9.0 37*_mkl - track_features: - - blas_mkl - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 17510 - timestamp: 1760212773952 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapacke-3.9.0-37_hdba1596_mkl.conda - build_number: 37 - sha256: 57f1abac9fb6b12ba421b34e7687302031a57782092bb0d86720fb7cfb7c9ae0 - md5: 4e76080972d13c913f178c90726b21ce - depends: - - libblas 3.9.0 37_h5875eb1_mkl - - libcblas 3.9.0 37_hfef963f_mkl - - liblapack 3.9.0 37_h5e43f62_mkl - constrains: - - blas 2.137 mkl - track_features: - - blas_mkl - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 17532 - timestamp: 1760212784429 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.4-hf7376ad_0.conda - sha256: 5be6d2c4d931bd32aec92d27854d1f46d6fcfefa772e5ceadfa150e8ff5d4442 - md5: da21f286c4466912cc579911068034b6 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - libxml2 - - libxml2-16 >=2.14.6 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - size: 44344723 - timestamp: 1761083791644 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - sha256: f2591c0069447bbe28d4d696b7fcb0c5bd0b4ac582769b89addbcf26fb3430d8 - md5: 1a580f7796c7bf6393fddb8bbbde58dc - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - constrains: - - xz 5.8.1.* - license: 0BSD - purls: [] - size: 112894 - timestamp: 1749230047870 -- 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 - license_family: BSD - purls: [] - size: 91183 - timestamp: 1748393666725 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda - sha256: a4a7dab8db4dc81c736e9a9b42bdfd97b087816e029e221380511960ac46c690 - md5: b499ce4b026493a13774bcf0f4c33849 - depends: - - __glibc >=2.17,<3.0.a0 - - c-ares >=1.34.5,<2.0a0 - - libev >=4.33,<4.34.0a0 - - libev >=4.33,<5.0a0 - - libgcc >=14 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.2,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 666600 - timestamp: 1756834976695 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libntlm-1.8-hb9d3cd8_0.conda - sha256: 3b3f19ced060013c2dd99d9d46403be6d319d4601814c772a3472fe2955612b0 - md5: 7c7927b404672409d9917d49bff5f2d6 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: LGPL-2.1-or-later - purls: [] - size: 33418 - timestamp: 1734670021371 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_2.conda - sha256: 215086c108d80349e96051ad14131b751d17af3ed2cb5a34edd62fa89bfe8ead - md5: 7df50d44d4a14d6c31a2c54f2cd92157 - depends: - - __glibc >=2.17,<3.0.a0 - - libglvnd 1.7.0 ha4b6fd6_2 - license: LicenseRef-libglvnd - purls: [] - size: 50757 - timestamp: 1731330993524 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-1.21.0-hb9b0907_1.conda - sha256: ba9b09066f9abae9b4c98ffedef444bbbf4c068a094f6c77d70ef6f006574563 - md5: 1c0320794855f457dea27d35c4c71e23 - depends: - - libabseil * cxx17* - - libabseil >=20250512.1,<20250513.0a0 - - libcurl >=8.14.1,<9.0a0 - - libgrpc >=1.73.1,<1.74.0a0 - - libopentelemetry-cpp-headers 1.21.0 ha770c72_1 - - libprotobuf >=6.31.1,<6.31.2.0a0 - - libzlib >=1.3.1,<2.0a0 - - nlohmann_json - - prometheus-cpp >=1.3.0,<1.4.0a0 - constrains: - - cpp-opentelemetry-sdk =1.21.0 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 885397 - timestamp: 1751782709380 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.21.0-ha770c72_1.conda - sha256: b3a1b36d5f92fbbfd7b6426982a99561bdbd7e4adbafca1b7f127c9a5ab0a60f - md5: 9e298d76f543deb06eb0f3413675e13a - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 363444 - timestamp: 1751782679053 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hb9d3cd8_0.conda - sha256: 0bd91de9b447a2991e666f284ae8c722ffb1d84acb594dbd0c031bd656fa32b2 - md5: 70e3400cbbfa03e96dcde7fc13e38c7b - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - purls: [] - size: 28424 - timestamp: 1749901812541 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.50-h421ea60_1.conda - sha256: e75a2723000ce3a4b9fd9b9b9ce77553556c93e475a4657db6ed01abc02ea347 - md5: 7af8e91b0deb5f8e25d1a595dea79614 - depends: - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - libzlib >=1.3.1,<2.0a0 - license: zlib-acknowledgement - purls: [] - size: 317390 - timestamp: 1753879899951 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.0-h3675c94_0.conda - sha256: 81d9ac5c23257745eb73b81103b3c42442ac13c5d38226916debbf55573540dd - md5: 064887eafa473cbfae9ee8bedd3b7432 - depends: - - __glibc >=2.17,<3.0.a0 - - icu >=75.1,<76.0a0 - - krb5 >=1.21.3,<1.22.0a0 - - libgcc >=14 - - openldap >=2.6.10,<2.7.0a0 - - openssl >=3.5.3,<4.0a0 - license: PostgreSQL - purls: [] - size: 2849367 - timestamp: 1758820440469 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-6.31.1-h49aed37_2.conda - sha256: 1679f16c593d769f3dab219adb1117cbaaddb019080c5a59f79393dc9f45b84f - md5: 94cb88daa0892171457d9fdc69f43eca - depends: - - __glibc >=2.17,<3.0.a0 - - libabseil * cxx17* - - libabseil >=20250512.1,<20250513.0a0 - - libgcc >=14 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 4645876 - timestamp: 1760550892361 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.08.12-h7b12aa8_1.conda - sha256: 6940b44710fd571440c9795daf5bed6a56a1db6ff9ad52dcd5b8b2f8b123a635 - md5: 0a801dabf8776bb86b12091d2f99377e - depends: - - __glibc >=2.17,<3.0.a0 - - libabseil * cxx17* - - libabseil >=20250512.1,<20250513.0a0 - - libgcc >=14 - - libstdcxx >=14 - constrains: - - re2 2025.08.12.* - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 210955 - timestamp: 1757447478835 -- conda: https://conda.anaconda.org/conda-forge/linux-64/librsvg-2.60.0-h61e6d4b_0.conda - sha256: 960b137673b2b8293e2a12d194add72967b3bf12fcdf691e7ad8bd5c8318cec3 - md5: 91e6d4d684e237fba31b9815c4b40edf - depends: - - __glibc >=2.17,<3.0.a0 - - cairo >=1.18.4,<2.0a0 - - gdk-pixbuf >=2.44.3,<3.0a0 - - libgcc >=14 - - libglib >=2.86.0,<3.0a0 - - libxml2-16 >=2.14.6 - - pango >=1.56.4,<2.0a0 - constrains: - - __glibc >=2.17 - license: LGPL-2.1-or-later - purls: [] - size: 3421977 - timestamp: 1759327942156 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-14.3.0-hd08acf3_7.conda - sha256: 73eb65f58ed086cf73fb9af3be4a9b288f630e9c2e1caacc75aff5f265d2dda2 - md5: 716f4c96e07207d74e635c915b8b3f8b - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14.3.0 - - libstdcxx >=14.3.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 5110341 - timestamp: 1759965766003 -- 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 - purls: [] - size: 205978 - timestamp: 1716828628198 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.50.4-h0c1763c_0.conda - sha256: 6d9c32fc369af5a84875725f7ddfbfc2ace795c28f246dc70055a79f9b2003da - md5: 0b367fad34931cb79e0d6b7e5c06bb1c - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 - license: blessing - purls: [] - size: 932581 - timestamp: 1753948484112 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - sha256: fa39bfd69228a13e553bd24601332b7cfeb30ca11a3ca50bb028108fe90a7661 - md5: eecce068c7e4eddeb169591baac20ac4 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.0,<4.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 304790 - timestamp: 1745608545575 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h8f9b012_7.conda - sha256: 1b981647d9775e1cdeb2fab0a4dd9cd75a6b0de2963f6c3953dbd712f78334b3 - md5: 5b767048b1b3ee9a954b06f4084f93dc - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc 15.2.0 h767d61c_7 - constrains: - - libstdcxx-ng ==15.2.0=*_7 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 3898269 - timestamp: 1759968103436 -- conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-14.3.0-h85bb3a7_107.conda - sha256: 54ba5632d93faebbec3899d9df84c6e71c4574d70a2f3babfc5aac4247874038 - md5: eaf0f047b048c4d86a4b8c60c0e95f38 - depends: - - __unix - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 13244605 - timestamp: 1759965656146 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-h4852527_7.conda - sha256: 024fd46ac3ea8032a5ec3ea7b91c4c235701a8bf0e6520fe5e6539992a6bd05f - md5: f627678cf829bd70bccf141a19c3ad3e - depends: - - libstdcxx 15.2.0 h8f9b012_7 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - size: 29343 - timestamp: 1759968157195 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h8261f1e_0.conda - sha256: ddda0d7ee67e71e904a452010c73e32da416806f5cb9145fb62c322f97e717fb - md5: 72b531694ebe4e8aa6f5745d1015c1b4 - depends: - - __glibc >=2.17,<3.0.a0 - - lerc >=4.0.0,<5.0a0 - - libdeflate >=1.24,<1.25.0a0 - - libgcc >=14 - - libjpeg-turbo >=3.1.0,<4.0a0 - - liblzma >=5.8.1,<6.0a0 - - libstdcxx >=14 - - libwebp-base >=1.6.0,<2.0a0 - - libzlib >=1.3.1,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - license: HPND - purls: [] - size: 437211 - timestamp: 1758278398952 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.0-hb04c3b8_0.conda - sha256: f8977233dc19cb8530f3bc71db87124695db076e077db429c3231acfa980c4ac - md5: 34fb73fd2d5a613d8f17ce2eaa15a8a5 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: MIT - license_family: MIT - purls: [] - size: 85741 - timestamp: 1757742873826 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-he9a06e4_0.conda - sha256: e5ec6d2ad7eef538ddcb9ea62ad4346fde70a4736342c4ad87bd713641eb9808 - md5: 80c07c68d2f6870250959dcc95b209d1 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 37135 - timestamp: 1758626800002 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libvulkan-loader-1.4.328.1-h5279c79_0.conda - sha256: bbabc5c48b63ff03f440940a11d4648296f5af81bb7630d98485405cd32ac1ce - md5: 372a62464d47d9e966b630ffae3abe73 - depends: - - __glibc >=2.17,<3.0.a0 - - libstdcxx >=14 - - libgcc >=14 - - xorg-libx11 >=1.8.12,<2.0a0 - - xorg-libxrandr >=1.5.4,<2.0a0 - constrains: - - libvulkan-headers 1.4.328.1.* - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 197672 - timestamp: 1759972155030 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda - sha256: 3aed21ab28eddffdaf7f804f49be7a7d701e8f0e46c856d801270b470820a37b - md5: aea31d2e5b1091feca96fcfe945c3cf9 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - constrains: - - libwebp 1.6.0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 429011 - timestamp: 1752159441324 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_0.conda - sha256: 666c0c431b23c6cec6e492840b176dde533d48b7e6fb8883f5071223433776aa - md5: 92ed62436b625154323d40d5f2f11dd7 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - pthread-stubs - - xorg-libxau >=1.0.11,<2.0a0 - - xorg-libxdmcp - license: MIT - license_family: MIT - purls: [] - size: 395888 - timestamp: 1727278577118 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c - md5: 5aa797f8787fe7a17d1b0821485b5adc - depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later - purls: [] - size: 100393 - timestamp: 1702724383534 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.12.2-hca5e8e5_0.conda - sha256: e11e8890a097c9e16a3fc40f2540d887ef2497e7f31f6e5a744aa951f82dbeea - md5: 3c3e5ccbb2d96ac75e1b8b028586db5c - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - libxcb >=1.17.0,<2.0a0 - - libxml2 - - libxml2-16 >=2.14.6 - - xkeyboard-config - - xorg-libxau >=1.0.12,<2.0a0 - license: MIT/X11 Derivative - license_family: MIT - purls: [] - size: 830418 - timestamp: 1760990182307 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda - sha256: ec0735ae56c3549149eebd7dc22c0bed91fd50c02eaa77ff418613ddda190aa8 - md5: e512be7dc1f84966d50959e900ca121f - depends: - - __glibc >=2.17,<3.0.a0 - - icu >=75.1,<76.0a0 - - libgcc >=14 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libxml2-16 2.15.1 ha9997c6_0 - - libzlib >=1.3.1,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 45283 - timestamp: 1761015644057 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda - sha256: 71436e72a286ef8b57d6f4287626ff91991eb03c7bdbe835280521791efd1434 - md5: e7733bc6785ec009e47a224a71917e84 - depends: - - __glibc >=2.17,<3.0.a0 - - icu >=75.1,<76.0a0 - - libgcc >=14 - - libiconv >=1.18,<2.0a0 - - liblzma >=5.8.1,<6.0a0 - - libzlib >=1.3.1,<2.0a0 - constrains: - - libxml2 2.15.1 - license: MIT - license_family: MIT - purls: [] - size: 556302 - timestamp: 1761015637262 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda - sha256: 0694760a3e62bdc659d90a14ae9c6e132b525a7900e59785b18a08bb52a5d7e5 - md5: 87e6096ec6d542d1c1f8b33245fe8300 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libxml2 - - libxml2-16 >=2.14.6 - license: MIT - license_family: MIT - purls: [] - size: 245434 - timestamp: 1757963724977 -- 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 - purls: [] - size: 60963 - timestamp: 1727963148474 -- pypi: https://files.pythonhosted.org/packages/1b/a9/2d8d6002eb124e79f7c9ee2311b62f35289fc7e75ee0bbfbe5a4c7295bb9/lineax-0.0.8-py3-none-any.whl - name: lineax - version: 0.0.8 - sha256: 1bd21d6c41afda233769d1c1096329ee75181825c9136be65c92b41f6daa1ddb - requires_dist: - - equinox>=0.11.10 - - jax>=0.4.38 - - jaxtyping>=0.2.24 - - typing-extensions>=4.5.0 - - hippogriffe==0.2.0 ; extra == 'docs' - - mkdocs-include-exclude-files==0.1.0 ; extra == 'docs' - - mkdocs-ipynb==0.1.0 ; extra == 'docs' - - mkdocs-material==9.6.7 ; extra == 'docs' - - mkdocs==1.6.1 ; extra == 'docs' - - mkdocstrings[python]==0.28.3 ; extra == 'docs' - - pymdown-extensions==10.14.3 ; extra == 'docs' - requires_python: ~=3.10 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-21.1.4-h4922eb0_0.conda - sha256: d018aacb17fb7cc3a3871020cc9e27aade4b450abc8efc84975025c1b02d273e - md5: bd436383c8b7d4c64af6e0e382ce277a - depends: - - __glibc >=2.17,<3.0.a0 - constrains: - - openmp 21.1.4|21.1.4.* - - intel-openmp <0.0a0 - license: Apache-2.0 WITH LLVM-exception - purls: [] - size: 3220151 - timestamp: 1761130841658 -- conda: https://conda.anaconda.org/conda-forge/noarch/logical-unification-0.4.7-pyhd8ed1ab_0.conda - sha256: 5a3995f2b6c47d0b4842f3842490920e2dbf074854667d8649dd5abe81914a54 - md5: f2815c465aa44db830f0b31b7e6baaff - depends: - - multipledispatch - - python >=3.10 - - toolz - license: BSD-3-Clause - purls: - - pkg:pypi/logical-unification?source=hash-mapping - size: 18830 - timestamp: 1761054211310 -- conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-h5888daf_1.conda - sha256: 47326f811392a5fd3055f0f773036c392d26fdb32e4d8e7a8197eed951489346 - md5: 9de5350a85c4a20c685259b889aa6393 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 167055 - timestamp: 1733741040117 -- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e - md5: 5b5203189eb668f042ac2b0826244964 - depends: - - mdurl >=0.1,<1 - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/markdown-it-py?source=hash-mapping - size: 64736 - timestamp: 1754951288511 -- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.3-py313h3dea7bd_0.conda - sha256: a530a411bdaaf0b1e4de8869dfaca46cb07407bc7dc0702a9e231b0e5ce7ca85 - md5: c14389156310b8ed3520d84f854be1ee - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - constrains: - - jinja2 >=3.0.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/markupsafe?source=hash-mapping - size: 25909 - timestamp: 1759055357045 -- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.10.7-py313h78bf25f_0.conda - sha256: 95f61b054d69fe384b20b3f2163f783ee3e1450e9e1bed2ca9ee14069678b9d7 - md5: a9e249d3fa6fc485e307e62eb2d33c5a - depends: - - matplotlib-base >=3.10.7,<3.10.8.0a0 - - pyside6 >=6.7.2 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - tornado >=5 - license: PSF-2.0 - license_family: PSF - purls: [] - size: 17436 - timestamp: 1760560635535 -- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.7-py313h683a580_0.conda - sha256: 8aaf695a4e45bc6549d1089a9c2cf59350c8ccb6c84604159ba516f14a182a41 - md5: 5858a4032f99c89b175f7f5161c7b0cd - depends: - - __glibc >=2.17,<3.0.a0 - - contourpy >=1.0.1 - - cycler >=0.10 - - fonttools >=4.22.0 - - freetype - - kiwisolver >=1.3.1 - - libfreetype >=2.14.1 - - libfreetype6 >=2.14.1 - - libgcc >=14 - - libstdcxx >=14 - - numpy >=1.23 - - numpy >=1.23,<3 - - packaging >=20.0 - - pillow >=8 - - pyparsing >=2.3.1 - - python >=3.13,<3.14.0a0 - - python-dateutil >=2.7 - - python_abi 3.13.* *_cp313 - - qhull >=2020.2,<2020.3.0a0 - - tk >=8.6.13,<8.7.0a0 - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/matplotlib?source=hash-mapping - size: 8406146 - timestamp: 1760560610181 -- conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.1.7-pyhd8ed1ab_1.conda - sha256: 69b7dc7131703d3d60da9b0faa6dd8acbf6f6c396224cf6aef3e855b8c0c41c6 - md5: af6ab708897df59bd6e7283ceab1b56b - depends: - - python >=3.9 - - traitlets - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/matplotlib-inline?source=hash-mapping - size: 14467 - timestamp: 1733417051523 -- conda: https://conda.anaconda.org/conda-forge/linux-64/maturin-1.9.6-py310hf7d6592_0.conda - noarch: python - sha256: 8a178e6f6c360102ea648b6097e8cd1f2beeb1e0975c5b4b15c057f9b96e069f - md5: 896ebf8ae1f31a90cf1bcc5fd3a219ab - depends: - - python - - tomli >=1.1.0 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - openssl >=3.5.4,<4.0a0 - constrains: - - __glibc >=2.17 - license: MIT - license_family: MIT - purls: - - pkg:pypi/maturin?source=hash-mapping - size: 7132663 - timestamp: 1759889711754 -- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 - md5: 592132998493b3ff25fd7479396e8351 - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/mdurl?source=hash-mapping - size: 14465 - timestamp: 1733255681319 -- conda: https://conda.anaconda.org/conda-forge/noarch/minikanren-1.0.5-pyhd8ed1ab_1.conda - sha256: aced546f3dbc7f8710182b1f1ec30d2aaec2f4f9b48513d7d95fb2004ee775f6 - md5: ef7868bd5e40d31a8a41312e91ec6a9c - depends: - - cons >=0.4.0 - - etuples >=0.3.1 - - logical-unification >=0.4.1 - - multipledispatch - - python >=3.10 - - toolz - - typing_extensions - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/minikanren?source=hash-mapping - size: 27317 - timestamp: 1755897118661 -- conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.4-pyhcf101f3_0.conda - sha256: 609ea628ace5c6cdbdce772704e6cb159ead26969bb2f386ca1757632b0f74c6 - md5: f5a4d548d1d3bdd517260409fc21e205 - depends: - - python >=3.10 - - typing_extensions - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/mistune?source=hash-mapping - size: 72996 - timestamp: 1756495311698 -- conda: https://conda.anaconda.org/conda-forge/linux-64/mkl-2024.2.2-ha770c72_17.conda - sha256: 1e59d0dc811f150d39c2ff2da930d69dcb91cb05966b7df5b7d85133006668ed - md5: e4ab075598123e783b788b995afbdad0 - depends: - - _openmp_mutex * *_llvm - - _openmp_mutex >=4.5 - - llvm-openmp >=20.1.8 - - tbb 2021.* - license: LicenseRef-IntelSimplifiedSoftwareOct2022 - license_family: Proprietary - purls: [] - size: 124988693 - timestamp: 1753975818422 -- conda: https://conda.anaconda.org/conda-forge/linux-64/mkl-devel-2024.2.2-ha770c72_17.conda - sha256: 01c3758bca466c236373aa66545843f75dcdf01d825abd517ec457dcac956655 - md5: e67269e07e58be5672f06441316f05f2 - depends: - - mkl 2024.2.2 ha770c72_17 - - mkl-include 2024.2.2 ha770c72_17 - license: LicenseRef-IntelSimplifiedSoftwareOct2022 - license_family: Proprietary - purls: [] - size: 36163 - timestamp: 1753976468337 -- conda: https://conda.anaconda.org/conda-forge/linux-64/mkl-include-2024.2.2-ha770c72_17.conda - sha256: a0d74957b116491448584dc956221c77b8a5b41f83e2dd0a24c236272254a05a - md5: c18fd07c02239a7eb744ea728db39630 - license: LicenseRef-IntelSimplifiedSoftwareOct2022 - license_family: Proprietary - purls: [] - size: 811427 - timestamp: 1753976072857 -- conda: https://conda.anaconda.org/conda-forge/linux-64/mkl-service-2.5.2-py313he761fc5_1.conda - sha256: 94378641118710e4c9bb2f9e19bfcea9ddeedaf926d147ea810e123696985ccf - md5: acab50b8afb94c8da0729e9608eeefcf - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - mkl >=2024.2.2,<2025.0a0 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/mkl-service?source=hash-mapping - size: 75867 - timestamp: 1758281384819 -- pypi: https://files.pythonhosted.org/packages/14/f3/091ba84e5395d7fe5b30c081a44dec881cd84b408db1763ee50768b2ab63/ml_dtypes-0.5.3-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - name: ml-dtypes - version: 0.5.3 - sha256: 6936283b56d74fbec431ca57ce58a90a908fdbd14d4e2d22eea6d72bb208a7b7 - requires_dist: - - numpy>=1.21 - - numpy>=1.21.2 ; python_full_version >= '3.10' - - numpy>=1.23.3 ; python_full_version >= '3.11' - - numpy>=1.26.0 ; python_full_version >= '3.12' - - numpy>=2.1.0 ; python_full_version >= '3.13' - - absl-py ; extra == 'dev' - - pytest ; extra == 'dev' - - pytest-xdist ; extra == 'dev' - - pylint>=2.6.0 ; extra == 'dev' - - pyink ; extra == 'dev' - requires_python: '>=3.9' -- conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py313h7037e92_0.conda - sha256: bf8072a1eeb1a5f9c2b215a398762cbd473846e29fbdf81fc4f6c0b75493a734 - md5: 3d35f7d3fd814124efa1a5b5d03144a4 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/msgpack?source=hash-mapping - size: 102657 - timestamp: 1759930626652 -- conda: https://conda.anaconda.org/conda-forge/noarch/multipledispatch-0.6.0-pyhd8ed1ab_1.conda - sha256: c6216a21154373b340c64f321f22fec51db4ee6156c2e642fa58368103ac5d09 - md5: 121a57fce7fff0857ec70fa03200962f - depends: - - python >=3.6 - - six - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/multipledispatch?source=hash-mapping - size: 17254 - timestamp: 1721907640382 -- conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - sha256: d09c47c2cf456de5c09fa66d2c3c5035aa1fa228a1983a433c47b876aa16ce90 - md5: 37293a85a0f4f77bbd9cf7aaefc62609 - depends: - - python >=3.9 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/munkres?source=hash-mapping - size: 15851 - timestamp: 1749895533014 -- conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda - sha256: a20cff739d66c2f89f413e4ba4c6f6b59c50d5c30b5f0d840c13e8c9c2df9135 - md5: 6bb0d77277061742744176ab555b723c - depends: - - jupyter_client >=6.1.12 - - jupyter_core >=4.12,!=5.0.* - - nbformat >=5.1 - - python >=3.8 - - traitlets >=5.4 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/nbclient?source=hash-mapping - size: 28045 - timestamp: 1734628936013 -- conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda - sha256: 8f575e5c042b17f4677179a6ba474bdbe76573936d3d3e2aeb42b511b9cb1f3f - md5: cfc86ccc3b1de35d36ccaae4c50391f5 - depends: - - beautifulsoup4 - - bleach-with-css !=5.0.0 - - defusedxml - - importlib-metadata >=3.6 - - jinja2 >=3.0 - - jupyter_core >=4.7 - - jupyterlab_pygments - - markupsafe >=2.0 - - mistune >=2.0.3,<4 - - nbclient >=0.5.0 - - nbformat >=5.7 - - packaging - - pandocfilters >=1.4.1 - - pygments >=2.4.1 - - python >=3.10 - - traitlets >=5.1 - - python - constrains: - - pandoc >=2.9.2,<4.0.0 - - nbconvert ==7.16.6 *_1 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/nbconvert?source=compressed-mapping - size: 199273 - timestamp: 1760797634443 -- conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - sha256: 7a5bd30a2e7ddd7b85031a5e2e14f290898098dc85bea5b3a5bf147c25122838 - md5: bbe1963f1e47f594070ffe87cdf612ea - depends: - - jsonschema >=2.6 - - jupyter_core >=4.12,!=5.0.* - - python >=3.9 - - python-fastjsonschema >=2.15 - - traitlets >=5.1 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/nbformat?source=hash-mapping - size: 100945 - timestamp: 1733402844974 -- 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 - purls: [] - size: 891641 - timestamp: 1738195959188 -- conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - sha256: bb7b21d7fd0445ddc0631f64e66d91a179de4ba920b8381f29b9d006a42788c0 - md5: 598fd7d4d0de2455fb74f56063969a97 - depends: - - python >=3.9 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/nest-asyncio?source=hash-mapping - size: 11543 - timestamp: 1733325673691 -- conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_1.conda - sha256: fd2cbd8dfc006c72f45843672664a8e4b99b2f8137654eaae8c3d46dca776f63 - md5: 16c2a0e9c4a166e53632cfca4f68d020 - constrains: - - nlohmann_json-abi ==3.12.0 - license: MIT - license_family: MIT - purls: [] - size: 136216 - timestamp: 1758194284857 -- conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - sha256: 7b920e46b9f7a2d2aa6434222e5c8d739021dbc5cc75f32d124a8191d86f9056 - md5: e7f89ea5f7ea9401642758ff50a2d9c1 - depends: - - jupyter_server >=1.8,<3 - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/notebook-shim?source=hash-mapping - size: 16817 - timestamp: 1733408419340 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numcodecs-0.16.1-py313h08cd8bf_2.conda - sha256: 5ff756ee38c4e7d13230703f7f8ee017df6217aa783b841a1642845804573e01 - md5: 9b0bbd18cd7c0ac846810433191e7078 - depends: - - __glibc >=2.17,<3.0.a0 - - deprecated - - libgcc >=14 - - libstdcxx >=14 - - msgpack-python - - numpy >=1.23,<3 - - numpy >=1.24 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - typing_extensions - license: MIT - license_family: MIT - purls: - - pkg:pypi/numcodecs?source=hash-mapping - size: 818047 - timestamp: 1759814333161 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.3-py313hf6604e3_0.conda - sha256: 88d45c6dbedabbc8ebb19555bb3d04b5e2846ae8a7dfc2c0204b54f5f6efaef7 - md5: 3122d20dc438287e125fb5acff1df170 - depends: - - python - - libgcc >=14 - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - liblapack >=3.9.0,<4.0a0 - - libblas >=3.9.0,<4.0a0 - - python_abi 3.13.* *_cp313 - - libcblas >=3.9.0,<4.0a0 - constrains: - - numpy-base <0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/numpy?source=hash-mapping - size: 8888776 - timestamp: 1757505485589 -- conda: https://conda.anaconda.org/conda-forge/linux-64/nutpie-0.15.2-py313h5c7d99a_0.conda - sha256: d3598222e7cf0880fbbe27a3441a7dba36551220d46987cafcfd50d8f72bdcb3 - md5: c5e25bb255fb4d097db8f8d22f6b58fe - depends: - - __glibc >=2.17,<3.0.a0 - - arviz >=0.20.0 - - libgcc >=14 - - numpy >=1.23,<3 - - pandas >=2.0 - - pyarrow-core >=12.0.0 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - xarray >=2025.01.2 - constrains: - - numba >=0.60 - - pymc-base >=5.20.1 - - __glibc >=2.17 - license: MIT - license_family: MIT - purls: - - pkg:pypi/nutpie?source=hash-mapping - size: 1401009 - timestamp: 1752749450255 -- conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-h55fea9a_0.conda - sha256: 3900f9f2dbbf4129cf3ad6acf4e4b6f7101390b53843591c53b00f034343bc4d - md5: 11b3379b191f63139e29c0d19dee24cd - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libpng >=1.6.50,<1.7.0a0 - - libstdcxx >=14 - - libtiff >=4.7.1,<4.8.0a0 - - libzlib >=1.3.1,<2.0a0 - license: BSD-2-Clause - license_family: BSD - purls: [] - size: 355400 - timestamp: 1758489294972 -- conda: https://conda.anaconda.org/conda-forge/linux-64/openldap-2.6.10-he970967_0.conda - sha256: cb0b07db15e303e6f0a19646807715d28f1264c6350309a559702f4f34f37892 - md5: 2e5bf4f1da39c0b32778561c3c4e5878 - depends: - - __glibc >=2.17,<3.0.a0 - - cyrus-sasl >=2.1.27,<3.0a0 - - krb5 >=1.21.3,<1.22.0a0 - - libgcc >=13 - - libstdcxx >=13 - - openssl >=3.5.0,<4.0a0 - license: OLDAP-2.8 - license_family: BSD - purls: [] - size: 780253 - timestamp: 1748010165522 -- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.4-h26f9b46_0.conda - sha256: e807f3bad09bdf4075dbb4168619e14b0c0360bacb2e12ef18641a834c8c5549 - md5: 14edad12b59ccbfa3910d42c72adc2a0 - depends: - - __glibc >=2.17,<3.0.a0 - - ca-certificates - - libgcc >=14 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 3119624 - timestamp: 1759324353651 -- pypi: https://files.pythonhosted.org/packages/23/cd/066e86230ae37ed0be70aae89aabf03ca8d9f39c8aea0dec8029455b5540/opt_einsum-3.4.0-py3-none-any.whl - name: opt-einsum - version: 3.4.0 - sha256: 69bb92469f86a1565195ece4ac0323943e83477171b91d24c35afe028a90d7cd - requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/b8/ec/19c6cc6064c7fc8f0cd6d5b37c4747849e66040c6ca98f86565efc2c227c/optax-0.2.6-py3-none-any.whl - name: optax - version: 0.2.6 - sha256: f875251a5ab20f179d4be57478354e8e21963373b10f9c3b762b94dcb8c36d91 - requires_dist: - - absl-py>=0.7.1 - - chex>=0.1.87 - - jax>=0.5.3 - - jaxlib>=0.5.3 - - numpy>=1.18.0 - - sphinx>=6.0.0 ; extra == 'docs' - - sphinx-book-theme>=1.0.1 ; extra == 'docs' - - sphinxcontrib-katex ; extra == 'docs' - - sphinx-autodoc-typehints ; extra == 'docs' - - ipython>=8.8.0 ; extra == 'docs' - - myst-nb>=1.0.0 ; extra == 'docs' - - matplotlib>=3.5.0 ; extra == 'docs' - - sphinx-gallery>=0.14.0 ; extra == 'docs' - - sphinx-collections>=0.0.1 ; extra == 'docs' - - flax ; extra == 'docs' - - sphinx-contributors ; extra == 'docs' - - setuptools ; extra == 'docs' - - flax>=0.5.3 ; extra == 'test' - - scipy>=1.7.1 ; extra == 'test' - - scikit-learn ; extra == 'test' - requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/ac/08/085ca409275952524e907156d9091a76b97d2c81a1099b2cb48a08c5ca3c/optimistix-0.0.11-py3-none-any.whl - name: optimistix - version: 0.0.11 - sha256: acb4fb23b598db03e376900fcb61aee8dd511de41411e849661c0ffe9e4cd1c6 - requires_dist: - - equinox>=0.11.11 - - jax>=0.4.38,!=0.7.0,!=0.7.1 - - jaxtyping>=0.2.24 - - lineax>=0.0.6 - - typing-extensions>=4.5.0 - - pre-commit ; extra == 'dev' - - griffe==1.7.3 ; extra == 'docs' - - hippogriffe==0.2.2 ; extra == 'docs' - - mkdocs-include-exclude-files==0.1.0 ; extra == 'docs' - - mkdocs-ipynb==0.1.1 ; extra == 'docs' - - mkdocs-material==9.6.7 ; extra == 'docs' - - mkdocs==1.6.1 ; extra == 'docs' - - mkdocstrings-python==1.16.8 ; extra == 'docs' - - mkdocstrings==0.28.3 ; extra == 'docs' - - pymdown-extensions==10.14.3 ; extra == 'docs' - - beartype>=0.20.2 ; extra == 'tests' - - diffrax>=0.7.0 ; extra == 'tests' - - jaxlib ; extra == 'tests' - - optax>=0.2.4 ; extra == 'tests' - - pytest>=8.3.5 ; extra == 'tests' - requires_python: ~=3.10 -- conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.2.1-hd747db4_0.conda - sha256: 8d91d6398fc63a94d238e64e4983d38f6f9555460f11bed00abb2da04dbadf7c - md5: ddab8b2af55b88d63469c040377bd37e - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libprotobuf >=6.31.1,<6.31.2.0a0 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - lz4-c >=1.10.0,<1.11.0a0 - - snappy >=1.2.2,<1.3.0a0 - - tzdata - - zstd >=1.5.7,<1.6.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 1316445 - timestamp: 1759424644934 -- conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda - sha256: 1840bd90d25d4930d60f57b4f38d4e0ae3f5b8db2819638709c36098c6ba770c - md5: e51f1e4089cad105b6cac64bd8166587 - depends: - - python >=3.9 - - typing_utils - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/overrides?source=hash-mapping - size: 30139 - timestamp: 1734587755455 -- 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 - purls: - - pkg:pypi/packaging?source=hash-mapping - size: 62477 - timestamp: 1745345660407 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.3.3-py313h08cd8bf_1.conda - sha256: c4ce5f75d175cb264dc98af6db14378222b63955c63bf1b5e30e042e81624fae - md5: 9e87d4bda0c2711161d765332fa38781 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - - numpy >=1.22.4 - - numpy >=1.23,<3 - - python >=3.13,<3.14.0a0 - - python-dateutil >=2.8.2 - - python-tzdata >=2022.7 - - python_abi 3.13.* *_cp313 - - pytz >=2020.1 - constrains: - - xlrd >=2.0.1 - - scipy >=1.10.0 - - fsspec >=2022.11.0 - - odfpy >=1.4.1 - - beautifulsoup4 >=4.11.2 - - python-calamine >=0.1.7 - - numexpr >=2.8.4 - - pytables >=3.8.0 - - pandas-gbq >=0.19.0 - - tzdata >=2022.7 - - pyxlsb >=1.0.10 - - xarray >=2022.12.0 - - pyqt5 >=5.15.9 - - lxml >=4.9.2 - - matplotlib >=3.6.3 - - openpyxl >=3.1.0 - - qtpy >=2.3.0 - - psycopg2 >=2.9.6 - - pyarrow >=10.0.1 - - tabulate >=0.9.0 - - zstandard >=0.19.0 - - html5lib >=1.1 - - bottleneck >=1.3.6 - - numba >=0.56.4 - - sqlalchemy >=2.0.0 - - pyreadstat >=1.2.0 - - gcsfs >=2022.11.0 - - fastparquet >=2022.12.0 - - s3fs >=2022.11.0 - - blosc >=1.21.3 - - xlsxwriter >=3.0.5 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pandas?source=hash-mapping - size: 15131510 - timestamp: 1759266202915 -- conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - sha256: 2bb9ba9857f4774b85900c2562f7e711d08dd48e2add9bee4e1612fbee27e16f - md5: 457c2c8c08e54905d6954e79cb5b5db9 - depends: - - python !=3.0,!=3.1,!=3.2,!=3.3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pandocfilters?source=hash-mapping - size: 11627 - timestamp: 1631603397334 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pango-1.56.4-hadf4263_0.conda - sha256: 3613774ad27e48503a3a6a9d72017087ea70f1426f6e5541dbdb59a3b626eaaf - md5: 79f71230c069a287efe3a8614069ddf1 - depends: - - __glibc >=2.17,<3.0.a0 - - cairo >=1.18.4,<2.0a0 - - fontconfig >=2.15.0,<3.0a0 - - fonts-conda-ecosystem - - fribidi >=1.0.10,<2.0a0 - - harfbuzz >=11.0.1 - - libexpat >=2.7.0,<3.0a0 - - libfreetype >=2.13.3 - - libfreetype6 >=2.13.3 - - libgcc >=13 - - libglib >=2.84.2,<3.0a0 - - libpng >=1.6.49,<1.7.0a0 - - libzlib >=1.3.1,<2.0a0 - license: LGPL-2.1-or-later - purls: [] - size: 455420 - timestamp: 1751292466873 -- pypi: https://files.pythonhosted.org/packages/ca/2c/ae8eb6c197ec055bb4bc4a10859561c783fd602b2816acff7faf9c230df7/paramax-0.0.3-py3-none-any.whl - name: paramax - version: 0.0.3 - sha256: 60ffd4ba705969c80f779d57986c3d5011d5b14869c8f3560df1d8fd2808933f - requires_dist: - - equinox - - jax - - jaxtyping - - beartype ; extra == 'dev' - - pytest ; extra == 'dev' - - ruff ; extra == 'dev' - - sphinx ; extra == 'dev' - - sphinx-autodoc-typehints ; extra == 'dev' - - sphinx-book-theme ; extra == 'dev' - - sphinx-copybutton ; extra == 'dev' - requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda - sha256: 30de7b4d15fbe53ffe052feccde31223a236dae0495bab54ab2479de30b2990f - md5: a110716cdb11cf51482ff4000dc253d7 - depends: - - python >=3.10 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/parso?source=hash-mapping - size: 81562 - timestamp: 1755974222274 -- conda: https://conda.anaconda.org/conda-forge/noarch/patsy-1.0.2-pyhcf101f3_0.conda - sha256: 9678f4745e6b82b36fab9657a19665081862268cb079cf9acf878ab2c4fadee9 - md5: 8678577a52161cc4e1c93fcc18e8a646 - depends: - - numpy >=1.4.0 - - python >=3.10 - - python - license: BSD-2-Clause AND PSF-2.0 - purls: - - pkg:pypi/patsy?source=hash-mapping - size: 193450 - timestamp: 1760998269054 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.46-h1321c63_0.conda - sha256: 5c7380c8fd3ad5fc0f8039069a45586aa452cf165264bc5a437ad80397b32934 - md5: 7fa07cb0fb1b625a089ccc01218ee5b1 - depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - libgcc >=14 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 1209177 - timestamp: 1756742976157 -- conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda - sha256: 202af1de83b585d36445dc1fda94266697341994d1a3328fabde4989e1b3d07a - md5: d0d408b1f18883a944376da5cf8101ea - depends: - - ptyprocess >=0.5 - - python >=3.9 - license: ISC - purls: - - pkg:pypi/pexpect?source=hash-mapping - size: 53561 - timestamp: 1733302019362 -- conda: https://conda.anaconda.org/conda-forge/noarch/pickleshare-0.7.5-pyhd8ed1ab_1004.conda - sha256: e2ac3d66c367dada209fc6da43e645672364b9fd5f9d28b9f016e24b81af475b - md5: 11a9d1d09a3615fc07c3faf79bc0b943 - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pickleshare?source=hash-mapping - size: 11748 - timestamp: 1733327448200 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-11.3.0-py313ha492abd_3.conda - sha256: b5d03d663d73c682fb88b4f71b9431a79362eca4a6201650a44f1ca9d467a7cf - md5: 3354141a95eee5d29000147578dbc13f - depends: - - python - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - openjpeg >=2.5.3,<3.0a0 - - libwebp-base >=1.6.0,<2.0a0 - - tk >=8.6.13,<8.7.0a0 - - libtiff >=4.7.0,<4.8.0a0 - - libxcb >=1.17.0,<2.0a0 - - libfreetype >=2.14.1 - - libfreetype6 >=2.14.1 - - libzlib >=1.3.1,<2.0a0 - - libjpeg-turbo >=3.1.0,<4.0a0 - - python_abi 3.13.* *_cp313 - - lcms2 >=2.17,<3.0a0 - license: HPND - purls: - - pkg:pypi/pillow?source=hash-mapping - size: 1040551 - timestamp: 1758208668856 -- conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.2-pyh145f28c_0.conda - sha256: 20fe420bb29c7e655988fd0b654888e6d7755c1d380f82ca2f1bd2493b95d650 - md5: e7ab34d5a93e0819b62563c78635d937 - depends: - - python >=3.13.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pip?source=hash-mapping - size: 1179951 - timestamp: 1753925011027 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda - sha256: 43d37bc9ca3b257c5dd7bf76a8426addbdec381f6786ff441dc90b1a49143b6a - md5: c01af13bdc553d1a8fbfff6e8db075f0 - depends: - - libgcc >=14 - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - license: MIT - license_family: MIT - purls: [] - size: 450960 - timestamp: 1754665235234 -- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda - sha256: 7efd51b48d908de2d75cbb3c4a2e80dd9454e1c5bb8191b261af3136f7fa5888 - md5: 5c7a868f8241e64e1cf5fdf4962f23e2 - depends: - - python >=3.10 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/platformdirs?source=hash-mapping - size: 23625 - timestamp: 1759953252315 -- conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda - sha256: a8eb555eef5063bbb7ba06a379fa7ea714f57d9741fe0efdb9442dbbc2cccbcc - md5: 7da7ccd349dbf6487a7778579d2bb971 - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pluggy?source=hash-mapping - size: 24246 - timestamp: 1747339794916 -- conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda - sha256: 013669433eb447548f21c3c6b16b2ed64356f726b5f77c1b39d5ba17a8a4b8bc - md5: a83f6a2fdc079e643237887a37460668 - depends: - - __glibc >=2.17,<3.0.a0 - - libcurl >=8.10.1,<9.0a0 - - libgcc >=13 - - libstdcxx >=13 - - libzlib >=1.3.1,<2.0a0 - - zlib - license: MIT - license_family: MIT - purls: [] - size: 199544 - timestamp: 1730769112346 -- conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda - sha256: 13dc67de68db151ff909f2c1d2486fa7e2d51355b25cee08d26ede1b62d48d40 - md5: a1e91db2d17fd258c64921cb38e6745a - depends: - - python >=3.10 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/prometheus-client?source=hash-mapping - size: 54592 - timestamp: 1758278323953 -- conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - sha256: 4817651a276016f3838957bfdf963386438c70761e9faec7749d411635979bae - md5: edb16f14d920fb3faf17f5ce582942d6 - depends: - - python >=3.10 - - wcwidth - constrains: - - prompt_toolkit 3.0.52 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/prompt-toolkit?source=hash-mapping - size: 273927 - timestamp: 1756321848365 -- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.1.1-py313h07c4f96_0.conda - sha256: 8c41d8905e7dda7fe943672bae9c8de311182df2df549ad38a8349a555bda6da - md5: 98ab666fc28aaf6ab5067601ce2dc94d - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/psutil?source=hash-mapping - size: 478011 - timestamp: 1760894127748 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973 - md5: b3c17d95b5a10c6e64a21fa17573e70e - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - purls: [] - size: 8252 - timestamp: 1726802366959 -- conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - sha256: a7713dfe30faf17508ec359e0bc7e0983f5d94682492469bd462cdaae9c64d83 - md5: 7d9daffbb8d8e0af0f769dbbcd173a54 - depends: - - python >=3.9 - license: ISC - purls: - - pkg:pypi/ptyprocess?source=hash-mapping - size: 19457 - timestamp: 1733302371990 -- conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - sha256: 71bd24600d14bb171a6321d523486f6a06f855e75e547fa0cb2a0953b02047f0 - md5: 3bfdfb8dbcdc4af1ae3f9a8eb3948f04 - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pure-eval?source=hash-mapping - size: 16668 - timestamp: 1733569518868 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-21.0.0-py313he109ebe_1_cpu.conda - build_number: 1 - sha256: 1219d3bdfb5a690c90f561eab5779ba10c8e89f730ea269b305a7e098ee3287b - md5: 91bebcdab448722d7b919ffe4f9504e2 - depends: - - __glibc >=2.17,<3.0.a0 - - libarrow 21.0.0.* *cpu - - libarrow-compute 21.0.0.* *cpu - - libgcc >=14 - - libstdcxx >=14 - - libzlib >=1.3.1,<2.0a0 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - constrains: - - numpy >=1.21,<3 - - apache-arrow-proc * cpu - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pyarrow?source=hash-mapping - size: 5324655 - timestamp: 1759397360734 -- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6 - md5: 12c566707c80111f9799308d9e265aef - depends: - - python >=3.9 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pycparser?source=hash-mapping - size: 110100 - timestamp: 1733195786147 -- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a - md5: 6b6ece66ebcae2d5f326c77ef2c5a066 - depends: - - python >=3.9 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/pygments?source=hash-mapping - size: 889287 - timestamp: 1750615908735 -- conda: https://conda.anaconda.org/conda-forge/noarch/pymc-5.26.0-hd8ed1ab_0.conda - noarch: python - sha256: cd896272d506557edeb4805a96cdb60f55a8e65c3d116c436f183fe0f8d485ea - md5: b3e9c6b5c564e3d9dd77802055acbfed - depends: - - pymc-base 5.26.0 pyhd8ed1ab_0 - - pytensor - - python-graphviz - license: Apache-2.0 - license_family: Apache - purls: [] - size: 12162 - timestamp: 1760698105184 -- conda: https://conda.anaconda.org/conda-forge/noarch/pymc-base-5.26.0-pyhd8ed1ab_0.conda - sha256: ed0fde39f8b8af17527d944d01f17f5e19ad740c91b26c7917fba9cfe5b5ac99 - md5: fc677fccf2e0adec2e6a916e6fd110e1 - depends: - - arviz >=0.13.0 - - cachetools >=4.2.1 - - cloudpickle - - numpy >=1.25.0 - - pandas >=0.24.0 - - pytensor-base >=2.35.0,<2.36 - - python >=3.11 - - rich >=13.7.1 - - scipy >=1.4.1 - - threadpoolctl >=3.1.0,<4.0.0 - - typing_extensions >=3.7.4 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/pymc?source=hash-mapping - size: 357273 - timestamp: 1760698101476 -- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda - sha256: 6814b61b94e95ffc45ec539a6424d8447895fef75b0fec7e1be31f5beee883fb - md5: 6c8979be6d7a17692793114fa26916e8 - depends: - - python >=3.10 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyparsing?source=compressed-mapping - size: 104044 - timestamp: 1758436411254 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.9.3-py313h85046ba_1.conda - sha256: 8d143b89d075b39fa25e69ad9be2396f4b591a205f95b2bf5a81a14cd397c56f - md5: bb7ac52bfa917611096023598a7df152 - depends: - - __glibc >=2.17,<3.0.a0 - - libclang13 >=21.1.2 - - libegl >=1.7.0,<2.0a0 - - libgcc >=14 - - libgl >=1.7.0,<2.0a0 - - libopengl >=1.7.0,<2.0a0 - - libstdcxx >=14 - - libvulkan-loader >=1.4.313.0,<2.0a0 - - libxml2 - - libxml2-16 >=2.14.6 - - libxslt >=1.1.43,<2.0a0 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - qt6-main 6.9.3.* - - qt6-main >=6.9.3,<6.10.0a0 - license: LGPL-3.0-only - license_family: LGPL - purls: - - pkg:pypi/pyside6?source=hash-mapping - - pkg:pypi/shiboken6?source=hash-mapping - size: 10101334 - timestamp: 1759403237088 -- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8 - md5: 461219d1a5bd61342293efa2c0c90eac - depends: - - __unix - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pysocks?source=hash-mapping - size: 21085 - timestamp: 1733217331982 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pytensor-2.35.1-py313hd2d30e1_0.conda - sha256: 52e1130654294efae5f76e13df004b710d2aa810497c6d2b54d5a87adcd81ea0 - md5: 10da87ac9e9ea5ffe8c9ba190e6da34b - depends: - - python - - pytensor-base ==2.35.1 np2py313h73dcb5b_0 - - gxx - - gcc_linux-64 14.* - - sysroot_linux-64 2.17.* - - gxx_linux-64 14.* - - blas * mkl - - mkl-service - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 11366 - timestamp: 1760990915544 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pytensor-base-2.35.1-np2py313h73dcb5b_0.conda - sha256: 9f927981726c4c0832bb421912c7ef4da7852523e8522cf82364f1ee6b849634 - md5: aae3c8cdda15e95e22fadf2c30fc2668 - depends: - - python - - setuptools >=59.0.0 - - scipy >=1,<2 - - numpy >=1.17.0 - - filelock >=3.15 - - etuples - - logical-unification - - minikanren - - cons - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 - - numpy >=1.23,<3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pytensor?source=hash-mapping - size: 2766860 - timestamp: 1760990915538 -- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-8.4.2-pyhd8ed1ab_0.conda - sha256: 41053d9893e379a3133bb9b557b98a3d2142fca474fb6b964ba5d97515f78e2d - md5: 1f987505580cb972cf28dc5f74a0f81b - depends: - - colorama >=0.4 - - exceptiongroup >=1 - - iniconfig >=1 - - packaging >=20 - - pluggy >=1.5,<2 - - pygments >=2.7.2 - - python >=3.10 - - tomli >=1 - constrains: - - pytest-faulthandler >=2 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pytest?source=hash-mapping - size: 276734 - timestamp: 1757011891753 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.9-h2b335a9_100_cp313.conda - build_number: 100 - sha256: 317ee7a38f4cc97336a2aedf9c79e445adf11daa0d082422afa63babcd5117e4 - md5: 78ba5c3a7aecc68ab3a9f396d3b69d06 - depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.7.1,<3.0a0 - - libffi >=3.4.6,<3.5.0a0 - - libgcc >=14 - - liblzma >=5.8.1,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.50.4,<4.0a0 - - libuuid >=2.41.2,<3.0a0 - - libzlib >=1.3.1,<2.0a0 - - ncurses >=6.5,<7.0a0 - - openssl >=3.5.4,<4.0a0 - - python_abi 3.13.* *_cp313 - - readline >=8.2,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - license: Python-2.0 - purls: [] - size: 37323303 - timestamp: 1760612239629 - python_site_packages_path: lib/python3.13/site-packages -- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664 - md5: 5b8d21249ff20967101ffa321cab24e8 - depends: - - python >=3.9 - - six >=1.5 - - python - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/python-dateutil?source=hash-mapping - size: 233310 - timestamp: 1751104122689 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - sha256: df9aa74e9e28e8d1309274648aac08ec447a92512c33f61a8de0afa9ce32ebe8 - md5: 23029aae904a2ba587daba708208012f - depends: - - python >=3.9 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/fastjsonschema?source=hash-mapping - size: 244628 - timestamp: 1755304154927 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.9-h4df99d1_100.conda - sha256: d5d64ed07d8a36cb13a087acaf5f1303fc566affb3c5bf082a63081663746e68 - md5: 21ca8d20a21c650dd9983feff6e25824 - depends: - - cpython 3.13.9.* - - python_abi * *_cp313 - license: Python-2.0 - purls: [] - size: 48222 - timestamp: 1760611020390 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-graphviz-0.21-pyhbacfb6d_0.conda - sha256: b0139f80dea17136451975e4c0fefb5c86893d8b7bc6360626e8b025b8d8003a - md5: 606d94da4566aa177df7615d68b29176 - depends: - - graphviz >=2.46.1 - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/graphviz?source=hash-mapping - size: 38837 - timestamp: 1749998558249 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - sha256: 4790787fe1f4e8da616edca4acf6a4f8ed4e7c6967aa31b920208fc8f95efcca - md5: a61bf9ec79426938ff785eb69dbb1960 - depends: - - python >=3.6 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/python-json-logger?source=hash-mapping - size: 13383 - timestamp: 1677079727691 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - sha256: e8392a8044d56ad017c08fec2b0eb10ae3d1235ac967d0aab8bd7b41c4a5eaf0 - md5: 88476ae6ebd24f39261e0854ac244f33 - depends: - - python >=3.9 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/tzdata?source=hash-mapping - size: 144160 - timestamp: 1742745254292 -- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - build_number: 8 - sha256: 210bffe7b121e651419cb196a2a63687b087497595c9be9d20ebe97dd06060a7 - md5: 94305520c52a4aa3f6c2b1ff6008d9f8 - constrains: - - python 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 7002 - timestamp: 1752805902938 -- conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - sha256: 8d2a8bf110cc1fc3df6904091dead158ba3e614d8402a83e51ed3a8aa93cdeb0 - md5: bc8e3267d44011051f2eb14d22fb0960 - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pytz?source=hash-mapping - size: 189015 - timestamp: 1742920947249 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py313h3dea7bd_0.conda - sha256: 40dcd6718dce5fbee8aabdd0519f23d456d8feb2e15ac352eaa88bbfd3a881af - md5: 4794ea0adaebd9f844414e594b142cb2 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyyaml?source=compressed-mapping - size: 207109 - timestamp: 1758892173548 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hfb55c3c_0.conda - noarch: python - sha256: a00a41b66c12d9c60e66b391e9a4832b7e28743348cf4b48b410b91927cd7819 - md5: 3399d43f564c905250c1aea268ebb935 - depends: - - python - - __glibc >=2.17,<3.0.a0 - - libstdcxx >=14 - - libgcc >=14 - - _python_abi3_support 1.* - - cpython >=3.12 - - zeromq >=4.3.5,<4.4.0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pyzmq?source=hash-mapping - size: 212218 - timestamp: 1757387023399 -- conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda - sha256: 776363493bad83308ba30bcb88c2552632581b143e8ee25b1982c8c743e73abc - md5: 353823361b1d27eb3960efb076dfcaf6 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 - license: LicenseRef-Qhull - purls: [] - size: 552937 - timestamp: 1720813982144 -- conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.9.3-h5c1c036_0.conda - sha256: 999ce4a6af5f9570373047f7c61ccc86d17bef294b402b7297b8efc25ec3b5e9 - md5: cc0bffcaf6410aba9c6581dfdc18012d - depends: - - __glibc >=2.17,<3.0.a0 - - alsa-lib >=1.2.14,<1.3.0a0 - - dbus >=1.16.2,<2.0a0 - - double-conversion >=3.3.1,<3.4.0a0 - - fontconfig >=2.15.0,<3.0a0 - - fonts-conda-ecosystem - - harfbuzz >=12.0.0 - - icu >=75.1,<76.0a0 - - krb5 >=1.21.3,<1.22.0a0 - - libclang-cpp21.1 >=21.1.2,<21.2.0a0 - - libclang13 >=21.1.2 - - libcups >=2.3.3,<2.4.0a0 - - libdrm >=2.4.125,<2.5.0a0 - - libegl >=1.7.0,<2.0a0 - - libfreetype >=2.14.1 - - libfreetype6 >=2.14.1 - - libgcc >=14 - - libgl >=1.7.0,<2.0a0 - - libglib >=2.86.0,<3.0a0 - - libjpeg-turbo >=3.1.0,<4.0a0 - - libllvm21 >=21.1.2,<21.2.0a0 - - libpng >=1.6.50,<1.7.0a0 - - libpq >=18.0,<19.0a0 - - libsqlite >=3.50.4,<4.0a0 - - libstdcxx >=14 - - libtiff >=4.7.1,<4.8.0a0 - - libvulkan-loader >=1.4.313.0,<2.0a0 - - libwebp-base >=1.6.0,<2.0a0 - - libxcb >=1.17.0,<2.0a0 - - libxkbcommon >=1.11.0,<2.0a0 - - libxml2 - - libxml2-16 >=2.14.6 - - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.3,<4.0a0 - - pcre2 >=10.46,<10.47.0a0 - - wayland >=1.24.0,<2.0a0 - - xcb-util >=0.4.1,<0.5.0a0 - - xcb-util-cursor >=0.1.5,<0.2.0a0 - - xcb-util-image >=0.4.0,<0.5.0a0 - - xcb-util-keysyms >=0.4.1,<0.5.0a0 - - xcb-util-renderutil >=0.3.10,<0.4.0a0 - - xcb-util-wm >=0.4.2,<0.5.0a0 - - xorg-libice >=1.1.2,<2.0a0 - - xorg-libsm >=1.2.6,<2.0a0 - - xorg-libx11 >=1.8.12,<2.0a0 - - xorg-libxcomposite >=0.4.6,<1.0a0 - - xorg-libxcursor >=1.2.3,<2.0a0 - - xorg-libxdamage >=1.1.6,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - - xorg-libxrandr >=1.5.4,<2.0a0 - - xorg-libxtst >=1.2.5,<2.0a0 - - xorg-libxxf86vm >=1.1.6,<2.0a0 - - zstd >=1.5.7,<1.6.0a0 - constrains: - - qt 6.9.3 - license: LGPL-3.0-only - license_family: LGPL - purls: [] - size: 54537863 - timestamp: 1759251856141 -- conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2025.08.12-h5301d42_1.conda - sha256: 9b9e736254d2794e557be60569f67e416a494d3a55c13b21398fd0346bcf2d8b - md5: 4637c13ff87424af0f6a981ab6f5ffa5 - depends: - - libre2-11 2025.08.12 h7b12aa8_1 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 27303 - timestamp: 1757447492040 -- pypi: ./ - name: reactix - version: '0.1' - sha256: 0d36af2fad4eedbf491db7e53e9a747877c9abdbc00fed6fc2b2a4e2986ee79d - requires_dist: - - numpy - - arviz - - pymc - - nutpie<0.16.0 - - jax - - diffrax - - equinox - requires_python: '>=3.11' - editable: true -- 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 - purls: [] - size: 282480 - timestamp: 1740379431762 -- conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda - sha256: 0577eedfb347ff94d0f2fa6c052c502989b028216996b45c7f21236f25864414 - md5: 870293df500ca7e18bedefa5838a22ab - depends: - - attrs >=22.2.0 - - python >=3.10 - - rpds-py >=0.7.0 - - typing_extensions >=4.4.0 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/referencing?source=hash-mapping - size: 51788 - timestamp: 1760379115194 -- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - sha256: 8dc54e94721e9ab545d7234aa5192b74102263d3e704e6d0c8aa7008f2da2a7b - md5: db0c6b99149880c8ba515cf4abe93ee4 - depends: - - certifi >=2017.4.17 - - charset-normalizer >=2,<4 - - idna >=2.5,<4 - - python >=3.9 - - urllib3 >=1.21.1,<3 - constrains: - - chardet >=3.0.2,<6 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/requests?source=hash-mapping - size: 59263 - timestamp: 1755614348400 -- conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda - sha256: 2e4372f600490a6e0b3bac60717278448e323cab1c0fecd5f43f7c56535a99c5 - md5: 36de09a8d3e5d5e6f4ee63af49e59706 - depends: - - python >=3.9 - - six - license: MIT - license_family: MIT - purls: - - pkg:pypi/rfc3339-validator?source=hash-mapping - size: 10209 - timestamp: 1733600040800 -- conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - sha256: 2a5b495a1de0f60f24d8a74578ebc23b24aa53279b1ad583755f223097c41c37 - md5: 912a71cc01012ee38e6b90ddd561e36f - depends: - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/rfc3986-validator?source=hash-mapping - size: 7818 - timestamp: 1598024297745 -- conda: https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda - sha256: 70001ac24ee62058557783d9c5a7bbcfd97bd4911ef5440e3f7a576f9e43bc92 - md5: 7234f99325263a5af6d4cd195035e8f2 - depends: - - python >=3.9 - - lark >=1.2.2 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/rfc3987-syntax?source=hash-mapping - size: 22913 - timestamp: 1752876729969 -- conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - sha256: edfb44d0b6468a8dfced728534c755101f06f1a9870a7ad329ec51389f16b086 - md5: a247579d8a59931091b16a1e932bbed6 - depends: - - markdown-it-py >=2.2.0 - - pygments >=2.13.0,<3.0.0 - - python >=3.10 - - typing_extensions >=4.0.0,<5.0.0 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/rich?source=compressed-mapping - size: 200840 - timestamp: 1760026188268 -- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.27.1-py313h843e2db_1.conda - sha256: a976e90dbd229f7dcd357b0f9a5b637bf85243f3a3e844c1e266472cae53e359 - md5: 06c117e49934b564ef9ff6e61f279301 - depends: - - python - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python_abi 3.13.* *_cp313 - constrains: - - __glibc >=2.17 - license: MIT - license_family: MIT - purls: - - pkg:pypi/rpds-py?source=hash-mapping - size: 389189 - timestamp: 1756737629819 -- conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.5.26-h5ac9029_0.conda - sha256: 14acdf5685f457988dba0053b9d29f1861b1c8fff6da13ec863d6a2b6ac75bff - md5: 0cfd80e699ae130623c0f42c6c6cf798 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - openssl >=3.5.2,<4.0a0 - license: Apache-2.0 - license_family: Apache - purls: [] - size: 390887 - timestamp: 1758013933691 -- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.2-py313h11c21cd_0.conda - sha256: 3c26c268a4db6ff62103f6b245f650d3cd7478240335405c07e05bae85af4d36 - md5: 85a80978a04be9c290b8fe6d9bccff1c - depends: - - __glibc >=2.17,<3.0.a0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libgcc >=14 - - libgfortran - - libgfortran5 >=14.3.0 - - liblapack >=3.9.0,<4.0a0 - - libstdcxx >=14 - - numpy <2.6 - - numpy >=1.23,<3 - - numpy >=1.25.2 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/scipy?source=hash-mapping - size: 17034458 - timestamp: 1757682259363 -- conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-0.13.2-hd8ed1ab_3.conda - noarch: python - sha256: ea29a69b14dd6be5cdeeaa551bf50d78cafeaf0351e271e358f9b820fcab4cb0 - md5: 62afb877ca2c2b4b6f9ecb37320085b6 - depends: - - seaborn-base 0.13.2 pyhd8ed1ab_3 - - statsmodels >=0.12 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 6876 - timestamp: 1733730113224 -- conda: https://conda.anaconda.org/conda-forge/noarch/seaborn-base-0.13.2-pyhd8ed1ab_3.conda - sha256: f209c9c18187570b85ec06283c72d64b8738f825b1b82178f194f4866877f8aa - md5: fd96da444e81f9e6fcaac38590f3dd42 - depends: - - matplotlib-base >=3.4,!=3.6.1 - - numpy >=1.20,!=1.24.0 - - pandas >=1.2 - - python >=3.9 - - scipy >=1.7 - constrains: - - seaborn =0.13.2=*_3 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/seaborn?source=hash-mapping - size: 227843 - timestamp: 1733730112409 -- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh0d859eb_1.conda - sha256: 00926652bbb8924e265caefdb1db100f86a479e8f1066efe395d5552dde54d02 - md5: 938c8de6b9de091997145b3bf25cdbf9 - depends: - - __linux - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/send2trash?source=hash-mapping - size: 22736 - timestamp: 1733322148326 -- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - sha256: 972560fcf9657058e3e1f97186cc94389144b46dbdf58c807ce62e83f977e863 - md5: 4de79c071274a53dcaf2a8c749d1499e - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/setuptools?source=hash-mapping - size: 748788 - timestamp: 1748804951958 -- conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda - sha256: 458227f759d5e3fcec5d9b7acce54e10c9e1f4f4b7ec978f3bfd54ce4ee9853d - md5: 3339e3b65d58accf4ca4fb8748ab16b3 - depends: - - python >=3.9 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/six?source=hash-mapping - size: 18455 - timestamp: 1753199211006 -- conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h03e3b7b_0.conda - sha256: 8b8acbde6814d1643da509e11afeb6bb30eb1e3004cf04a7c9ae43e9b097f063 - md5: 3d8da0248bdae970b4ade636a104b7f5 - depends: - - libgcc >=14 - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 45805 - timestamp: 1753083455352 -- conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda - sha256: c2248418c310bdd1719b186796ae50a8a77ce555228b6acd32768e2543a15012 - md5: bf7a226e58dfb8346c70df36065d86c9 - depends: - - python >=3.9 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/sniffio?source=hash-mapping - size: 15019 - timestamp: 1733244175724 -- conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda - sha256: c978576cf9366ba576349b93be1cfd9311c00537622a2f9e14ba2b90c97cae9c - md5: 18c019ccf43769d211f2cf78e9ad46c2 - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/soupsieve?source=hash-mapping - size: 37803 - timestamp: 1756330614547 -- conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - sha256: 570da295d421661af487f1595045760526964f41471021056e993e73089e9c41 - md5: b1b505328da7a6b246787df4b5a49fbc - depends: - - asttokens - - executing - - pure_eval - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/stack-data?source=hash-mapping - size: 26988 - timestamp: 1733569565672 -- conda: https://conda.anaconda.org/conda-forge/linux-64/statsmodels-0.14.5-py313h29aa505_1.conda - sha256: 047faafe8c02af25d245d091d9497a2138ee10adc543ad5d8d2d6544cc93f88a - md5: e97bc74c26c7d0044cf9e99cdcc61fd4 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - numpy <3,>=1.22.3 - - numpy >=1.23,<3 - - packaging >=21.3 - - pandas !=2.1.0,>=1.4 - - patsy >=0.5.6 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - scipy !=1.9.2,>=1.8 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/statsmodels?source=hash-mapping - size: 12031019 - timestamp: 1759297271540 -- conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda - sha256: 69ab5804bdd2e8e493d5709eebff382a72fab3e9af6adf93a237ccf8f7dbd624 - md5: 460eba7851277ec1fd80a1a24080787a - depends: - - kernel-headers_linux-64 3.10.0 he073ed8_18 - - tzdata - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 - license_family: GPL - purls: [] - size: 15166921 - timestamp: 1735290488259 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tbb-2021.13.0-hb60516a_3.conda - sha256: cf9101d1327de410a844f29463c486c47dfde506d0c0656d2716c03135666c3f - md5: aa15aae38fd752855ca03a68af7f40e2 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libhwloc >=2.12.1,<2.12.2.0a0 - - libstdcxx >=14 - license: Apache-2.0 - license_family: APACHE - purls: [] - size: 177271 - timestamp: 1755775913224 -- pypi: https://files.pythonhosted.org/packages/fe/b6/e116761ceeb880b7ad4c6a7e1203538754dd7dda42538f08d6daaf8dfa4d/tensorflow_probability-0.25.0-py2.py3-none-any.whl - name: tensorflow-probability - version: 0.25.0 - sha256: f3f4d6431656c0122906888afe1b67b4400e82bd7f254b45b92e6c5b84ea8e3e - requires_dist: - - absl-py - - six>=1.10.0 - - numpy>=1.13.3 - - decorator - - cloudpickle>=1.3 - - gast>=0.3.2 - - dm-tree - - jax ; extra == 'jax' - - jaxlib ; extra == 'jax' - - tensorflow>=2.16 ; extra == 'tf' - - tf-keras>=2.16 ; extra == 'tf' - - tensorflow-datasets>=2.2.0 ; extra == 'tfds' - requires_python: '>=3.9' -- conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh0d859eb_0.conda - sha256: b300557c0382478cf661ddb520263508e4b3b5871b471410450ef2846e8c352c - md5: efba281bbdae5f6b0a1d53c6d4a97c93 - depends: - - __linux - - ptyprocess - - python >=3.8 - - tornado >=6.1.0 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/terminado?source=hash-mapping - size: 22452 - timestamp: 1710262728753 -- conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.6.0-pyhecae5ae_0.conda - sha256: 6016672e0e72c4cf23c0cf7b1986283bd86a9c17e8d319212d78d8e9ae42fdfd - md5: 9d64911b31d57ca443e9f1e36b04385f - depends: - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/threadpoolctl?source=hash-mapping - size: 23869 - timestamp: 1741878358548 -- conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.4.0-pyhd8ed1ab_0.conda - sha256: cad582d6f978276522f84bd209a5ddac824742fe2d452af6acf900f8650a73a2 - md5: f1acf5fdefa8300de697982bcb1761c9 - depends: - - python >=3.5 - - webencodings >=0.4 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/tinycss2?source=hash-mapping - size: 28285 - timestamp: 1729802975370 -- 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 - purls: [] - size: 3285204 - timestamp: 1748387766691 -- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - sha256: cb77c660b646c00a48ef942a9e1721ee46e90230c7c570cdeb5a893b5cce9bff - md5: d2732eb636c264dc9aa4cbee404b1a53 - depends: - - python >=3.10 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/tomli?source=compressed-mapping - size: 20973 - timestamp: 1760014679845 -- conda: https://conda.anaconda.org/conda-forge/noarch/toolz-1.1.0-pyhd8ed1ab_1.conda - sha256: 4e379e1c18befb134247f56021fdf18e112fb35e64dd1691858b0a0f3bea9a45 - md5: c07a6153f8306e45794774cf9b13bd32 - depends: - - python >=3.10 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/toolz?source=compressed-mapping - size: 53978 - timestamp: 1760707830681 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.2-py313h07c4f96_1.conda - sha256: c8bfe883aa2d5b59cb1d962729a12b3191518f7decbe9e3505c2aacccb218692 - md5: 45821154b9cb2fb63c2b354c76086954 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/tornado?source=hash-mapping - size: 877215 - timestamp: 1756855010312 -- pypi: https://files.pythonhosted.org/packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl - name: tqdm - version: 4.67.1 - sha256: 26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2 - requires_dist: - - colorama ; sys_platform == 'win32' - - pytest>=6 ; extra == 'dev' - - pytest-cov ; extra == 'dev' - - pytest-timeout ; extra == 'dev' - - pytest-asyncio>=0.24 ; extra == 'dev' - - nbval ; extra == 'dev' - - requests ; extra == 'discord' - - slack-sdk ; extra == 'slack' - - requests ; extra == 'telegram' - - ipywidgets>=6 ; extra == 'notebook' - requires_python: '>=3.7' -- 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 - purls: - - pkg:pypi/traitlets?source=hash-mapping - size: 110051 - timestamp: 1733367480074 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda - sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c - md5: edd329d7d3a4ab45dcf905899a7a6115 - depends: - - typing_extensions ==4.15.0 pyhcf101f3_0 - license: PSF-2.0 - license_family: PSF - purls: [] - size: 91383 - timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda - sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 - md5: 0caa1af407ecff61170c9437a808404d - depends: - - python >=3.10 - - python - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/typing-extensions?source=hash-mapping - size: 51692 - timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing_utils-0.1.0-pyhd8ed1ab_1.conda - sha256: 3088d5d873411a56bf988eee774559335749aed6f6c28e07bf933256afb9eb6c - md5: f6d7aa696c67756a650e91e15e88223c - depends: - - python >=3.9 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/typing-utils?source=hash-mapping - size: 15183 - timestamp: 1733331395943 -- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192 - md5: 4222072737ccff51314b5ece9c7d6f5a - license: LicenseRef-Public-Domain - purls: [] - size: 122968 - timestamp: 1742727099393 -- conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda - sha256: e0eb6c8daf892b3056f08416a96d68b0a358b7c46b99c8a50481b22631a4dfc0 - md5: e7cb0f5745e4c5035a460248334af7eb - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/uri-template?source=hash-mapping - size: 23990 - timestamp: 1733323714454 -- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda - sha256: 4fb9789154bd666ca74e428d973df81087a697dbb987775bc3198d2215f240f8 - md5: 436c165519e140cb08d246a4472a9d6a - depends: - - brotli-python >=1.0.9 - - h2 >=4,<5 - - pysocks >=1.5.6,<2.0,!=1.5.7 - - python >=3.9 - - zstandard >=0.18.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/urllib3?source=hash-mapping - size: 101735 - timestamp: 1750271478254 -- pypi: https://files.pythonhosted.org/packages/8d/96/04e7b441807b26b794da5b11e59ed7f83b2cf8af202bd7eba8ad2fa6046e/wadler_lindig-0.1.7-py3-none-any.whl - name: wadler-lindig - version: 0.1.7 - sha256: e3ec83835570fd0a9509f969162aeb9c65618f998b1f42918cfc8d45122fe953 - requires_dist: - - numpy ; extra == 'dev' - - pre-commit ; extra == 'dev' - - pytest ; extra == 'dev' - - hippogriffe==0.1.0 ; extra == 'docs' - - mkdocs-include-exclude-files==0.1.0 ; extra == 'docs' - - mkdocs-ipynb==0.1.0 ; extra == 'docs' - - mkdocs-material==9.6.7 ; extra == 'docs' - - mkdocs==1.6.1 ; extra == 'docs' - - mkdocstrings[python]==0.28.3 ; extra == 'docs' - - pymdown-extensions==10.14.3 ; extra == 'docs' - requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.24.0-h3e06ad9_0.conda - sha256: ba673427dcd480cfa9bbc262fd04a9b1ad2ed59a159bd8f7e750d4c52282f34c - md5: 0f2ca7906bf166247d1d760c3422cb8a - depends: - - __glibc >=2.17,<3.0.a0 - - libexpat >=2.7.0,<3.0a0 - - libffi >=3.4.6,<3.5.0a0 - - libgcc >=13 - - libstdcxx >=13 - license: MIT - license_family: MIT - purls: [] - size: 330474 - timestamp: 1751817998141 -- conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - sha256: e311b64e46c6739e2a35ab8582c20fa30eb608da130625ed379f4467219d4813 - md5: 7e1e5ff31239f9cd5855714df8a3783d - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/wcwidth?source=hash-mapping - size: 33670 - timestamp: 1758622418893 -- conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-24.11.1-pyhd8ed1ab_0.conda - sha256: 08315dc2e61766a39219b2d82685fc25a56b2817acf84d5b390176080eaacf99 - md5: b49f7b291e15494aafb0a7d74806f337 - depends: - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/webcolors?source=hash-mapping - size: 18431 - timestamp: 1733359823938 -- conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda - sha256: 19ff205e138bb056a46f9e3839935a2e60bd1cf01c8241a5e172a422fed4f9c6 - md5: 2841eb5bfc75ce15e9a0054b98dcd64d - depends: - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/webencodings?source=hash-mapping - size: 15496 - timestamp: 1733236131358 -- conda: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.9.0-pyhd8ed1ab_0.conda - sha256: 42a2b61e393e61cdf75ced1f5f324a64af25f347d16c60b14117393a98656397 - md5: 2f1ed718fcd829c184a6d4f0f2e07409 - depends: - - python >=3.10 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/websocket-client?source=compressed-mapping - size: 61391 - timestamp: 1759928175142 -- conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.14-pyhd8ed1ab_0.conda - sha256: 7df3620c88343f2d960a58a81b79d4e4aa86ab870249e7165db7c3e2971a2664 - md5: 2f1f99b13b9d2a03570705030a0b3e7c - depends: - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/widgetsnbextension?source=hash-mapping - size: 889285 - timestamp: 1744291155057 -- conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-1.17.3-py313h07c4f96_1.conda - sha256: 3688598866224e3fbeed8a74f12fd0a3c19dadcb931ce778bdc6cc2e04621b3b - md5: c2662497e9a9ff2153753682f53989c9 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/wrapt?source=hash-mapping - size: 64865 - timestamp: 1756851811052 -- conda: https://conda.anaconda.org/conda-forge/noarch/xarray-2025.10.1-pyhd8ed1ab_0.conda - sha256: 5f0a1e3d55bce49076a2d6deaab201c6e6f1ad54f7d4ae371da21c6deae8412e - md5: 9af9b8f25c97cd664e473124d06a6ab5 - depends: - - numpy >=1.26 - - packaging >=24.1 - - pandas >=2.2 - - python >=3.11 - constrains: - - netcdf4 >=1.6.0 - - numba >=0.60 - - dask-core >=2024.6 - - h5py >=3.11 - - pint >=0.24 - - zarr >=2.18 - - cartopy >=0.23 - - matplotlib-base >=3.8 - - h5netcdf >=1.3 - - seaborn-base >=0.13 - - distributed >=2024.6 - - scipy >=1.13 - - toolz >=0.12 - - bottleneck >=1.4 - - iris >=3.9 - - flox >=0.9 - - hdf5 >=1.14 - - cftime >=1.6 - - sparse >=0.15 - - nc-time-axis >=1.4 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/xarray?source=compressed-mapping - size: 911434 - timestamp: 1759875189286 -- conda: https://conda.anaconda.org/conda-forge/noarch/xarray-einstats-0.9.1-pyhd8ed1ab_0.conda - sha256: 3fefcdb5520c9f7127d67904894cccdc917449a3376f1ccf84127f02ad3aa61b - md5: 18860b32ac96f7e9d8be1c91eb601462 - depends: - - numpy >=1.25 - - python >=3.11 - - scipy >=1.11 - - xarray >=2023.06.0 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/xarray-einstats?source=hash-mapping - size: 37867 - timestamp: 1750279091345 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-0.4.1-h4f16b4b_2.conda - sha256: ad8cab7e07e2af268449c2ce855cbb51f43f4664936eff679b1f3862e6e4b01d - md5: fdc27cb255a7a2cc73b7919a968b48f0 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libxcb >=1.17.0,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 20772 - timestamp: 1750436796633 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-cursor-0.1.5-hb9d3cd8_0.conda - sha256: c7b35db96f6e32a9e5346f97adc968ef2f33948e3d7084295baebc0e33abdd5b - md5: eb44b3b6deb1cab08d72cb61686fe64c - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libxcb >=1.13 - - libxcb >=1.16,<2.0.0a0 - - xcb-util-image >=0.4.0,<0.5.0a0 - - xcb-util-renderutil >=0.3.10,<0.4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 20296 - timestamp: 1726125844850 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-image-0.4.0-hb711507_2.conda - sha256: 94b12ff8b30260d9de4fd7a28cca12e028e572cbc504fd42aa2646ec4a5bded7 - md5: a0901183f08b6c7107aab109733a3c91 - depends: - - libgcc-ng >=12 - - libxcb >=1.16,<2.0.0a0 - - xcb-util >=0.4.1,<0.5.0a0 - license: MIT - license_family: MIT - purls: [] - size: 24551 - timestamp: 1718880534789 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-keysyms-0.4.1-hb711507_0.conda - sha256: 546e3ee01e95a4c884b6401284bb22da449a2f4daf508d038fdfa0712fe4cc69 - md5: ad748ccca349aec3e91743e08b5e2b50 - depends: - - libgcc-ng >=12 - - libxcb >=1.16,<2.0.0a0 - license: MIT - license_family: MIT - purls: [] - size: 14314 - timestamp: 1718846569232 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-renderutil-0.3.10-hb711507_0.conda - sha256: 2d401dadc43855971ce008344a4b5bd804aca9487d8ebd83328592217daca3df - md5: 0e0cbe0564d03a99afd5fd7b362feecd - depends: - - libgcc-ng >=12 - - libxcb >=1.16,<2.0.0a0 - license: MIT - license_family: MIT - purls: [] - size: 16978 - timestamp: 1718848865819 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xcb-util-wm-0.4.2-hb711507_0.conda - sha256: 31d44f297ad87a1e6510895740325a635dd204556aa7e079194a0034cdd7e66a - md5: 608e0ef8256b81d04456e8d211eee3e8 - depends: - - libgcc-ng >=12 - - libxcb >=1.16,<2.0.0a0 - license: MIT - license_family: MIT - purls: [] - size: 51689 - timestamp: 1718844051451 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xkeyboard-config-2.46-hb03c661_0.conda - sha256: aa03b49f402959751ccc6e21932d69db96a65a67343765672f7862332aa32834 - md5: 71ae752a748962161b4740eaff510258 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - xorg-libx11 >=1.8.12,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 396975 - timestamp: 1759543819846 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libice-1.1.2-hb9d3cd8_0.conda - sha256: c12396aabb21244c212e488bbdc4abcdef0b7404b15761d9329f5a4a39113c4b - md5: fb901ff28063514abb6046c9ec2c4a45 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - purls: [] - size: 58628 - timestamp: 1734227592886 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libsm-1.2.6-he73a12e_0.conda - sha256: 277841c43a39f738927145930ff963c5ce4c4dacf66637a3d95d802a64173250 - md5: 1c74ff8c35dcadf952a16f752ca5aa49 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libuuid >=2.38.1,<3.0a0 - - xorg-libice >=1.1.2,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 27590 - timestamp: 1741896361728 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libx11-1.8.12-h4f16b4b_0.conda - sha256: 51909270b1a6c5474ed3978628b341b4d4472cd22610e5f22b506855a5e20f67 - md5: db038ce880f100acc74dba10302b5630 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libxcb >=1.17.0,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 835896 - timestamp: 1741901112627 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxau-1.0.12-hb9d3cd8_0.conda - sha256: ed10c9283974d311855ae08a16dfd7e56241fac632aec3b92e3cfe73cff31038 - md5: f6ebe2cb3f82ba6c057dde5d9debe4f7 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - purls: [] - size: 14780 - timestamp: 1734229004433 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcomposite-0.4.6-hb9d3cd8_2.conda - sha256: 753f73e990c33366a91fd42cc17a3d19bb9444b9ca5ff983605fa9e953baf57f - md5: d3c295b50f092ab525ffe3c2aa4b7413 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - - xorg-libxfixes >=6.0.1,<7.0a0 - license: MIT - license_family: MIT - purls: [] - size: 13603 - timestamp: 1727884600744 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxcursor-1.2.3-hb9d3cd8_0.conda - sha256: 832f538ade441b1eee863c8c91af9e69b356cd3e9e1350fff4fe36cc573fc91a - md5: 2ccd714aa2242315acaf0a67faea780b - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - - xorg-libxfixes >=6.0.1,<7.0a0 - - xorg-libxrender >=0.9.11,<0.10.0a0 - license: MIT - license_family: MIT - purls: [] - size: 32533 - timestamp: 1730908305254 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdamage-1.1.6-hb9d3cd8_0.conda - sha256: 43b9772fd6582bf401846642c4635c47a9b0e36ca08116b3ec3df36ab96e0ec0 - md5: b5fcc7172d22516e1f965490e65e33a4 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - - xorg-libxfixes >=6.0.1,<7.0a0 - license: MIT - license_family: MIT - purls: [] - size: 13217 - timestamp: 1727891438799 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxdmcp-1.1.5-hb9d3cd8_0.conda - sha256: 6b250f3e59db07c2514057944a3ea2044d6a8cdde8a47b6497c254520fade1ee - md5: 8035c64cb77ed555e3f150b7b3972480 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - purls: [] - size: 19901 - timestamp: 1727794976192 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxext-1.3.6-hb9d3cd8_0.conda - sha256: da5dc921c017c05f38a38bd75245017463104457b63a1ce633ed41f214159c14 - md5: febbab7d15033c913d53c7a2c102309d - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 50060 - timestamp: 1727752228921 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxfixes-6.0.2-hb03c661_0.conda - sha256: 83c4c99d60b8784a611351220452a0a85b080668188dce5dfa394b723d7b64f4 - md5: ba231da7fccf9ea1e768caf5c7099b84 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - xorg-libx11 >=1.8.12,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 20071 - timestamp: 1759282564045 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxi-1.8.2-hb9d3cd8_0.conda - sha256: 1a724b47d98d7880f26da40e45f01728e7638e6ec69f35a3e11f92acd05f9e7a - md5: 17dcc85db3c7886650b8908b183d6876 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - - xorg-libxfixes >=6.0.1,<7.0a0 - license: MIT - license_family: MIT - purls: [] - size: 47179 - timestamp: 1727799254088 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxinerama-1.1.5-h5888daf_1.conda - sha256: 1b9141c027f9d84a9ee5eb642a0c19457c788182a5a73c5a9083860ac5c20a8c - md5: 5e2eb9bf77394fc2e5918beefec9f9ab - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 13891 - timestamp: 1727908521531 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrandr-1.5.4-hb9d3cd8_0.conda - sha256: ac0f037e0791a620a69980914a77cb6bb40308e26db11698029d6708f5aa8e0d - md5: 2de7f99d6581a4a7adbff607b5c278ca - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - - xorg-libxrender >=0.9.11,<0.10.0a0 - license: MIT - license_family: MIT - purls: [] - size: 29599 - timestamp: 1727794874300 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxrender-0.9.12-hb9d3cd8_0.conda - sha256: 044c7b3153c224c6cedd4484dd91b389d2d7fd9c776ad0f4a34f099b3389f4a1 - md5: 96d57aba173e878a2089d5638016dc5e - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 33005 - timestamp: 1734229037766 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxtst-1.2.5-hb9d3cd8_3.conda - sha256: 752fdaac5d58ed863bbf685bb6f98092fe1a488ea8ebb7ed7b606ccfce08637a - md5: 7bbe9a0cc0df0ac5f5a8ad6d6a11af2f - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - - xorg-libxi >=1.7.10,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 32808 - timestamp: 1727964811275 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-libxxf86vm-1.1.6-hb9d3cd8_0.conda - sha256: 8a4e2ee642f884e6b78c20c0892b85dd9b2a6e64a6044e903297e616be6ca35b - md5: 5efa5fa6243a622445fdfd72aee15efa - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - xorg-libx11 >=1.8.10,<2.0a0 - - xorg-libxext >=1.3.6,<2.0a0 - license: MIT - license_family: MIT - purls: [] - size: 17819 - timestamp: 1734214575628 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xorg-xorgproto-2024.1-hb9d3cd8_1.conda - sha256: 1316680be6edddee0156b86ec1102fc8286f51c1a5440366ed1db596a2dc3731 - md5: 7c21106b851ec72c037b162c216d8f05 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - license: MIT - license_family: MIT - purls: [] - size: 565425 - timestamp: 1726846388217 -- conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - sha256: 6d9ea2f731e284e9316d95fa61869fe7bbba33df7929f82693c121022810f4ad - md5: a77f85f77be52ff59391544bfe73390a - depends: - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - license: MIT - license_family: MIT - purls: [] - size: 85189 - timestamp: 1753484064210 -- conda: https://conda.anaconda.org/conda-forge/noarch/zarr-3.1.3-pyhcf101f3_0.conda - sha256: 3d494f058f1e8aef41c5fac202c45de26fdc7b169ed886522497a8b83615e8db - md5: 540ed093cbc10711485a385a58f34b00 - depends: - - python >=3.11 - - packaging >=22.0 - - numpy >=1.26 - - numcodecs >=0.14 - - typing_extensions >=4.9 - - donfig >=0.8 - - crc32c - - python - constrains: - - fsspec >=2023.10.0 - - obstore >=0.5.1 - license: MIT - license_family: MIT - purls: - - pkg:pypi/zarr?source=hash-mapping - size: 290974 - timestamp: 1758255670714 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h387f397_9.conda - sha256: 47cfe31255b91b4a6fa0e9dbaf26baa60ac97e033402dbc8b90ba5fee5ffe184 - md5: 8035e5b54c08429354d5d64027041cad - depends: - - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libsodium >=1.0.20,<1.0.21.0a0 - - krb5 >=1.21.3,<1.22.0a0 - license: MPL-2.0 - license_family: MOZILLA - purls: [] - size: 310648 - timestamp: 1757370847287 -- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhd8ed1ab_0.conda - sha256: 7560d21e1b021fd40b65bfb72f67945a3fcb83d78ad7ccf37b8b3165ec3b68ad - md5: df5e78d904988eb55042c0c97446079f - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/zipp?source=hash-mapping - size: 22963 - timestamp: 1749421737203 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda - sha256: 5d7c0e5f0005f74112a34a7425179f4eb6e73c92f5d109e6af4ddeca407c92ab - md5: c9f075ab2f33b3bbee9e62d4ad0a6cd8 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libzlib 1.3.1 hb9d3cd8_2 - license: Zlib - license_family: Other - purls: [] - size: 92286 - timestamp: 1727963153079 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py313h54dd161_0.conda - sha256: 9d79d176afe50361cc3fd4366bedff20852dbea1e5b03f358b55f12aca22d60d - md5: 1fe43bd1fc86e22ad3eb0edec637f8a2 - depends: - - python - - cffi >=1.11 - - zstd >=1.5.7,<1.5.8.0a0 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - - zstd >=1.5.7,<1.6.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/zstandard?source=hash-mapping - size: 471152 - timestamp: 1757930114245 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda - sha256: a4166e3d8ff4e35932510aaff7aa90772f84b4d07e9f6f83c614cba7ceefe0eb - md5: 6432cb5d4ac0046c3ac0a8a0f95842f9 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - - libzlib >=1.3.1,<2.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - size: 567578 - timestamp: 1742433379869 diff --git a/pixi.toml b/pixi.toml deleted file mode 100644 index aa7a725..0000000 --- a/pixi.toml +++ /dev/null @@ -1,32 +0,0 @@ -[project] -authors = [ - "Anna Störiko ", - "Adrian Seyboldt ", -] -channels = ["conda-forge"] -name = "reactix" -platforms = ["linux-64"] -version = "0.1.0" - -[dependencies] -ipykernel = ">=6.29.5" -numpy = ">=2.2.4" -seaborn = ">=0.13.2" -matplotlib = ">=3.10.1" -arviz = ">=0.21.0" -maturin = ">=1.8.3" -zarr = ">=3.0.6,<4" -jupyterlab = ">=4.4.1" -pytest = ">=8.4.1" -ipympl = ">=0.9.7" -pip = ">=25.2" -nutpie = "<0.16.0" -pymc = ">=5.26.0" - - -[pypi-dependencies] -reactix = { path = ".", editable = true } -flowjax = ">=17.1.1" -tensorflow-probability = ">=0.25.0" -diffrax = "*" -jax = { version = "*", extras = [] } diff --git a/src/reactix/__init__.py b/src/reactix/__init__.py index 5031c9f..8aee3df 100644 --- a/src/reactix/__init__.py +++ b/src/reactix/__init__.py @@ -12,11 +12,14 @@ __version__ = "unknown" from reactix.transport import ( - System, Cells, Advection, Dispersion, FixedConcentrationBoundary, +) +from reactix.systems import ( + TransportSystem, + MixedSystem, make_solver, user_system_parameters, ) @@ -29,7 +32,8 @@ ) __all__ = [ - "System", + "TransportSystem", + "MixedSystem", "Cells", "Advection", "Dispersion", diff --git a/src/reactix/systems.py b/src/reactix/systems.py new file mode 100644 index 0000000..88c3ac6 --- /dev/null +++ b/src/reactix/systems.py @@ -0,0 +1,525 @@ +"""System classes for reactix models (reactive transport and mixed/batch reactors).""" + +from __future__ import annotations + +import jax +import jax.numpy as jnp +import equinox as eqx +import diffrax + +from dataclasses import dataclass, field +from typing import Callable, Any + +from reactix.species import AbstractSpecies +from reactix.reactions import KineticReaction, _make_spatial_jaxtree +from reactix.transport import ( + Cells, + Advection, + Dispersion, + BoundaryCondition, + apply_bcs, +) + + +def user_system_parameters(cls): + """ + Decorate system parameter classes with spatial awareness. + + This decorator enables classes to handle spatially varying parameters + by transforming them into dataclasses with JAX tree operations and + spatial axis tracking. + + Parameters + ---------- + cls : type + The class to be decorated. + + Returns + ------- + callable + A factory function that creates instances with spatial parameter support. + + Notes + ----- + Similar to the @reaction decorator, this allows parameters to be marked + as SpatiallyVarying or SpatiallyConst for vectorized computations. + """ + return _make_spatial_jaxtree(cls) + + +@jax.tree_util.register_dataclass +@dataclass(frozen=True, kw_only=True) +class TransportSystem: + """ + Represents a 1D reactive transport system. + + This class encapsulates all the components needed to model reactive transport + in a 1D domain, including spatial discretization, advection, dispersion, + species mobility, reactions, and boundary conditions. + + Parameters + ---------- + porosity : jax.Array + Porosity of the medium, either scalar or per cell. + discharge : Callable[[jax.Array], jax.Array] + Function that computes discharge given time. + cells : Cells + Spatial discretization of the domain. + advection : Advection + Advection scheme parameters. + dispersion : Dispersion + Dispersion scheme parameters. + species_is_mobile : AbstractSpecies + Species mobility information. + reactions : list[KineticReaction], optional + List of kinetic reactions. Default is empty list. + bcs : list[BoundaryCondition], optional + List of boundary conditions. Default is empty list. + parameters : Any, optional + Additional system parameters. Default is None. Must be created with + @user_system_parameters for spatial awareness and JAX compatibility. + """ + + # Scalar or one value per cell + porosity: jax.Array + discharge: Callable[[jax.Array], jax.Array] + cells: Cells + advection: Advection + dispersion: Dispersion + species_is_mobile: AbstractSpecies + reactions: list[KineticReaction] = field(default_factory=list) + bcs: list[BoundaryCondition] = field( + default_factory=list + ) # avoid shared mutable default! + parameters: Any | None = None + + @property + def _spatial_axes(self): + """ + Create a tree structure mirroring the system for spatial vectorization. + + This property returns a TransportSystem-like object where each field + indicates the spatial axis along which that parameter varies. Used + internally by jax.vmap to vectorize reaction computations across cells. + + For example: + - Scalar parameters (constant across domain) are set to None + - Spatially varying parameters are set to the axis index (e.g., 0) + + Returns + ------- + TransportSystem + A TransportSystem instance with spatial axis information. + """ + return TransportSystem( + cells=self.cells._spatial_axes, + advection=self.advection._spatial_axes, + dispersion=self.dispersion._spatial_axes, + species_is_mobile=None, + bcs=None, + reactions=[reaction._spatial_axes for reaction in self.reactions], + discharge=None, + porosity=0, + parameters=self.parameters._spatial_axes if self.parameters else None, + ) + + # TODO rename to Model, but maybe some attrisbutes in System or so? + # TODO: retardation_factor: Species + + @classmethod + def build( + cls, + *, + cells: Cells, + advection: Advection, + dispersion: Dispersion, + bcs: list[BoundaryCondition] | None = None, + species_is_mobile: AbstractSpecies, + reactions: list[KineticReaction] | None = None, + discharge: Callable[[jax.Array], jax.Array] | jax.Array, + porosity: jax.Array, + parameters: Any | None = None, + ): + """ + Build a configured reactive transport system. + + This convenience constructor validates input shapes and + normalizes scalar inputs before creating a TransportSystem instance. + + Parameters + ---------- + cells : Cells + Spatial discretization of the domain. + advection : Advection + Advection scheme parameters. + dispersion : Dispersion + Dispersion scheme parameters. + bcs : list[BoundaryCondition] or None, optional + List of boundary conditions. Default is None. + species_is_mobile : AbstractSpecies + Species mobility information. + reactions : list[KineticReaction] or None, optional + List of kinetic reactions. Default is None. + discharge : Callable[[jax.Array], jax.Array] or jax.Array + Discharge function or scalar discharge value. + porosity : jax.Array + Porosity of the medium, either scalar or per cell. + parameters : Any or None, optional + Additional system parameters. Default is None. Must be created with + @user_system_parameters for spatial operations. + + Returns + ------- + TransportSystem + Configured reactive transport system. + + Raises + ------ + ValueError + If porosity has an invalid shape or a boundary condition is + incompatible with the selected species. + """ + if bcs is None: + bcs = [] + + if reactions is None: + reactions = [] + + if callable(discharge): + discharge_fn = discharge + else: + discharge = jnp.asarray(discharge) + assert discharge.ndim == 0 + def discharge_fn(time): + return discharge + + if porosity.ndim == 0: + porosity = jnp.ones(cells.n_cells) * porosity + + if porosity.ndim != 1 or porosity.shape != (cells.n_cells,): + raise ValueError( + f"Invalid porosity shape: {porosity.shape}. " + f"Expected shape {(cells.n_cells,)}" + ) + + for i, bc in enumerate(bcs): + if not bc.species_selector(species_is_mobile): + raise ValueError( + "Cannot apply boundary condition to immobile species. " + f"Please modify or remove boundary condition {i}." + ) + + if parameters is not None and not hasattr(parameters, "_spatial_axes"): + raise ValueError( + "System parameters must be created with @user_system_parameters " + "to support spatial operations. Plain objects are not supported." + ) + + return cls( + cells=cells, + advection=advection, + dispersion=dispersion, + species_is_mobile=species_is_mobile, + bcs=bcs, + reactions=reactions, + discharge=discharge_fn, + porosity=porosity, + parameters=parameters, + ) + + def cell_velocity(self, t): + """ + Compute the pore-water velocity in each cell. + + Parameters + ---------- + t : jax.Array + Current simulation time. + + Returns + ------- + jax.Array + Velocity in each cell. + """ + discharge = self.discharge(t) + return discharge / self.cells.cell_area / self.porosity + + def _rhs(self, time, state): + """ + Compute the right-hand side of the reactive transport ODE. + + Evaluates the complete system of equations including advection, + dispersion, and reactions for all species, then applies boundary + conditions. + + Parameters + ---------- + time : jax.Array + Current simulation time. + state : AbstractSpecies + Current species concentrations across the domain. + + Returns + ------- + AbstractSpecies + Rate of change of species concentrations (dc/dt). + """ + compute_spatial_reaction_rates = jax.vmap( + _sum_reaction_rates_per_species, + [ + None, + type(state).int_zeros(), + self._spatial_axes, + ], + ) + + reaction_rates = compute_spatial_reaction_rates(time, state, self) + + def sum_rhs_terms( + species_is_mobile: bool, + advection: jax.Array, + dispersion: jax.Array, + reactions: jax.Array, + ) -> jax.Array: + if species_is_mobile: + return advection + dispersion + reactions + else: + return reactions + + rate = jax.tree.map( + sum_rhs_terms, + self.species_is_mobile, + self.advection.rate(time, state, self), + self.dispersion.rate(time, state, self), + reaction_rates, + ) + return apply_bcs(self.bcs, time, self, state, rate) + +def _sum_reaction_rates_per_species(time: jax.Array, state: AbstractSpecies, system) -> AbstractSpecies: + reactions = system.reactions + if len(reactions) == 0: + return type(state).zeros() + + rates = [reaction._eval_dcdt(time, state, system) for reaction in reactions] + return jax.tree.map(lambda *args: sum(args), *rates) + + +@jax.tree_util.register_dataclass +@dataclass(frozen=True, kw_only=True) +class MixedSystem: + """ + Represents a mixed (batch) reactor system without spatial transport. + + This class models a well-mixed reactor where species concentrations are + uniform throughout the volume. It supports kinetic reactions, inflow/outflow, + and user-defined parameters. + + Parameters + ---------- + reactions : list[KineticReaction], optional + List of kinetic reactions. Default is empty list. + discharge : Callable[[jax.Array], jax.Array] or jax.Array + Function that computes discharge (volumetric flow rate) given time, + or a constant discharge value. + inflow_concentration : AbstractSpecies + Concentration of species in the inflow. + volume : jax.Array + Volume of the mixed reactor. + parameters : Any, optional + Additional system parameters. Default is None. + """ + + reactions: list[KineticReaction] = field(default_factory=list) + discharge: Callable[[jax.Array], jax.Array] | None + inflow_concentration: AbstractSpecies | None + volume: jax.Array | None + parameters: Any | None = None + + @classmethod + def build(cls, *, reactions=None, discharge, inflow_concentration, volume, parameters=None): + """ + Build a configured mixed reactor system. + + This convenience constructor validates input shapes and + normalizes scalar inputs before creating a MixedSystem instance. + + Parameters + ---------- + reactions : list[KineticReaction] or None, optional + List of kinetic reactions. Default is None. + discharge : Callable[[jax.Array], jax.Array] or jax.Array + Discharge function or scalar discharge value. + inflow_concentration : AbstractSpecies + Concentration of species in the inflow. + volume : jax.Array + Volume of the mixed reactor. + parameters : Any or None, optional + Additional system parameters. Default is None. + + Returns + ------- + MixedSystem + Configured mixed reactor system. + """ + if reactions is None: + reactions = [] + + if callable(discharge): + discharge_fn = discharge + elif discharge is None: + discharge_fn = None + else: + discharge = jnp.asarray(discharge) + assert discharge.ndim == 0 + def discharge_fn(time): + return discharge + + return cls( + reactions=reactions, + discharge=discharge_fn, + inflow_concentration=inflow_concentration, + volume=volume, + parameters=parameters, + ) + + def compute_inflow_outflow(self, time, state): + """ + Compute the inflow/outflow contribution to the rate of change of concentrations. + + Parameters + ---------- + time : jax.Array + Current simulation time. + state : AbstractSpecies + Current species concentrations. + + Returns + ------- + AbstractSpecies + Rate of change due to inflow/outflow (dc/dt). + """ + if self.inflow_concentration is None or self.discharge is None or self.volume is None: + return jax.tree.map( + lambda x: jnp.zeros_like(x), + state, + ) + + discharge = self.discharge(time) + return jax.tree.map( + lambda c_in, c: discharge / self.volume * (c_in - c), + self.inflow_concentration, + state, + ) + + + def _rhs(self, time: jax.Array, state: AbstractSpecies) -> AbstractSpecies: + """ + Compute the right-hand side of the mixed-system ODE. + + Evaluates the complete system of equations including inflow/outflow and reactions. + + Parameters + ---------- + time : jax.Array + Current simulation time. + state : AbstractSpecies + Current species concentrations across the domain. + + Returns + ------- + AbstractSpecies + Rate of change of species concentrations (dc/dt). + """ + inflow_outflow = self.compute_inflow_outflow(time, state) + return jax.tree.map( + lambda io, r: io + r, + inflow_outflow, + _sum_reaction_rates_per_species(time, state, self), + ) + + +def _rhs(time: jax.Array, state: AbstractSpecies, system: TransportSystem | MixedSystem) -> AbstractSpecies: + """ + Compute the right-hand side of the ODE for either a TransportSystem or MixedSystem. + + Parameters + ---------- + time : jax.Array + Current simulation time. + state : AbstractSpecies + Current species concentrations across the domain. + system : TransportSystem or MixedSystem + The system object (either reactive transport or mixed reactor). + """ + return system._rhs(time, state) + + +def make_solver( + *, t_max, t_points, rtol=1e-8, atol=1e-8, solver=None, t0=0, dt0=None, device=None +): + """ + Create a JIT-compiled solver function for reactix simulations. + + This function sets up a differential equation solver using diffrax to solve + either a TransportSystem or a MixedSystem over time. + + Parameters + ---------- + t_max : float + Maximum simulation time. + t_points : jax.Array + Time points at which to save the solution. + rtol : float, optional + Relative tolerance for the solver. Default is 1e-8. + atol : float, optional + Absolute tolerance for the solver. Default is 1e-8. + solver : diffrax.AbstractSolver, optional + ODE solver to use. Default is Tsit5. + t0 : float, optional + Initial time. Default is 0. + dt0 : float, optional + Initial time step. Default is None (auto). + device : jax.Device, optional + JAX device to run on. Default is CPU. + + Returns + ------- + solve : callable + JIT-compiled function that takes initial state and args, returns solution. + + Notes + ----- + The returned solver function has signature solve(y0, args) where y0 is the + initial species concentrations and args are additional arguments passed to + the RHS function. + """ + if solver is None: + solver = diffrax.Tsit5() + + if device is None: + device = jax.devices("cpu")[0] + + term = diffrax.ODETerm(_rhs) + stepsize_controller = diffrax.PIDController( + rtol=rtol, + atol=atol, + ) + t_vals = diffrax.SaveAt(ts=t_points) + + @eqx.filter_jit(device=device) + def solve(y0: AbstractSpecies, args): + result = diffrax.diffeqsolve( + term, + solver, + t0=t0, + t1=t_max, + dt0=dt0, + y0=y0, + saveat=t_vals, + args=args, + stepsize_controller=stepsize_controller, + max_steps=1024 * 32 * 64, + ) + return result + + return solve diff --git a/src/reactix/transport.py b/src/reactix/transport.py index 03b2ee1..413a0c5 100644 --- a/src/reactix/transport.py +++ b/src/reactix/transport.py @@ -1,242 +1,24 @@ -"""Core reactive transport model classes and utilities.""" +"""Core reactive transport model classes and utilities. + +This module contains spatial discretization (Cells), numerical schemes +(Advection, Dispersion), and boundary conditions used by the system +classes in systems.py. +""" from __future__ import annotations import jax import jax.numpy as jnp import equinox as eqx -import diffrax - -from dataclasses import dataclass, field -from typing import Callable, Literal, Any - -from reactix.species import AbstractSpecies -from reactix.reactions import KineticReaction, _make_spatial_jaxtree - - -def user_system_parameters(cls): - """ - Decorate system parameter classes with spatial awareness. - - This decorator enables classes to handle spatially varying parameters - by transforming them into dataclasses with JAX tree operations and - spatial axis tracking. - - Parameters - ---------- - cls : type - The class to be decorated. - - Returns - ------- - callable - A factory function that creates instances with spatial parameter support. - - Notes - ----- - Similar to the @reaction decorator, this allows parameters to be marked - as SpatiallyVarying or SpatiallyConst for vectorized computations. - """ - return _make_spatial_jaxtree(cls) - - -@jax.tree_util.register_dataclass -@dataclass(frozen=True, kw_only=True) -class System: - """ - Represents a 1D reactive transport system. - - This class encapsulates all the components needed to model reactive transport - in a 1D domain, including spatial discretization, advection, dispersion, - species mobility, reactions, and boundary conditions. - - Parameters - ---------- - porosity : jax.Array - Porosity of the medium, either scalar or per cell. - discharge : Callable[[jax.Array], jax.Array] - Function that computes discharge given time. - cells : Cells - Spatial discretization of the domain. - advection : Advection - Advection scheme parameters. - dispersion : Dispersion - Dispersion scheme parameters. - species_is_mobile : AbstractSpecies - Species mobility information. - reactions : list[KineticReaction], optional - List of kinetic reactions. Default is empty list. - bcs : list[BoundaryCondition], optional - List of boundary conditions. Default is empty list. - parameters : Any, optional - Additional system parameters. Default is None. Must be created with - @user_system_parameters for spatial awareness and JAX compatibility. - """ - - # Scalar or one value per cell - porosity: jax.Array - discharge: Callable[[jax.Array], jax.Array] - cells: Cells - advection: Advection - dispersion: Dispersion - species_is_mobile: AbstractSpecies - reactions: list[KineticReaction] = field(default_factory=list) - bcs: list[BoundaryCondition] = field( - default_factory=list - ) # avoid shared mutable default! - parameters: Any | None = None - - @property - def _spatial_axes(self): - """ - Create a tree structure mirroring the system for spatial vectorization. - - This property returns a System-like object where each field indicates - the spatial axis along which that parameter varies. Used internally by - jax.vmap to vectorize reaction computations across spatial cells. - - For example: - - Scalar parameters (constant across domain) are set to None - - Spatially varying parameters are set to the axis index (e.g., 0 for cell dimension) - - Returns - ------- - System - A System instance with spatial axis information instead of actual values. - """ - return System( - cells=self.cells._spatial_axes, - advection=self.advection._spatial_axes, - dispersion=self.dispersion._spatial_axes, - species_is_mobile=None, - bcs=None, - reactions=[reaction._spatial_axes for reaction in self.reactions], - discharge=None, - porosity=0, - parameters=self.parameters._spatial_axes if self.parameters else None, - ) - - # TODO rename to Model, but maybe some attrisbutes in System or so? - # TODO: retardation_factor: Species - - @classmethod - def build( - cls, - *, - cells: Cells, - advection: Advection, - dispersion: Dispersion, - bcs: list[BoundaryCondition] | None = None, - species_is_mobile: AbstractSpecies, - reactions: list[BoundaryCondition] | None = None, - discharge: Callable[[jax.Array], jax.Array] | jax.Array, - porosity: jax.Array, - parameters: Any | None = None, - ): - """ - Build a configured reactive transport system. - - This convenience constructor validates input shapes and - normalizes scalar inputs before creating a System instance. - - Parameters - ---------- - cells : Cells - Spatial discretization of the domain. - advection : Advection - Advection scheme parameters. - dispersion : Dispersion - Dispersion scheme parameters. - bcs : list[BoundaryCondition] or None, optional - List of boundary conditions. Default is None. - species_is_mobile : AbstractSpecies - Species mobility information. - reactions : list[BoundaryCondition] or None, optional - List of kinetic reactions. Default is None. - discharge : Callable[[jax.Array], jax.Array] or jax.Array - Discharge function or scalar discharge value. - porosity : jax.Array - Porosity of the medium, either scalar or per cell. - parameters : Any or None, optional - Additional system parameters. Default is None. Must be created with - @user_system_parameters for spatial operations. - - Returns - ------- - System - Configured reactive transport system. - - Raises - ------ - ValueError - If porosity has an invalid shape or a boundary condition is - incompatible with the selected species. - """ - if bcs is None: - bcs = [] - - if reactions is None: - reactions = [] - - if callable(discharge): - discharge_fn = discharge - else: - discharge = jnp.asarray(discharge) - assert discharge.ndim == 0 - def discharge_fn(time): - return discharge - - if porosity.ndim == 0: - porosity = jnp.ones(cells.n_cells) * porosity - - if porosity.ndim != 1 or porosity.shape != (cells.n_cells,): - raise ValueError( - f"Invalid porosity shape: {porosity.shape}. " - f"Expected shape {(cells.n_cells,)}" - ) - - for i, bc in enumerate(bcs): - if not bc.species_selector(species_is_mobile): - raise ValueError( - "Cannot apply boundary condition to immobile species. " - f"Please modify or remove boundary condition {i}." - ) - - if parameters is not None and not hasattr(parameters, "_spatial_axes"): - raise ValueError( - "System parameters must be created with @user_system_parameters " - "to support spatial operations. Plain objects are not supported." - ) - return cls( - cells=cells, - advection=advection, - dispersion=dispersion, - species_is_mobile=species_is_mobile, - bcs=bcs, - reactions=reactions, - discharge=discharge_fn, - porosity=porosity, - parameters=parameters, - ) +from dataclasses import dataclass +from typing import TYPE_CHECKING, Callable, Literal - def cell_velocity(self, t): - """ - Compute the pore-water velocity in each cell. - - Parameters - ---------- - t : jax.Array - Current simulation time. - - Returns - ------- - jax.Array - Velocity in each cell. - """ - discharge = self.discharge(t) - return discharge / self.cells.cell_area / self.porosity +# To avoid ruff errors +if TYPE_CHECKING: + from reactix.systems import TransportSystem +from reactix.species import AbstractSpecies @jax.tree_util.register_dataclass @dataclass(frozen=True) @@ -393,7 +175,7 @@ def build(cls, *, limiter_type): return cls(limiter_type=limiter_type) def rate( - self, time: jax.Array, state: AbstractSpecies, system: System + self, time: jax.Array, state: AbstractSpecies, system: TransportSystem ) -> AbstractSpecies: """ Compute the advection rate for mobile species. @@ -404,7 +186,7 @@ def rate( Current simulation time. state : AbstractSpecies Current species concentrations. - system : System + system : TransportSystem The reactive transport system. Returns @@ -565,7 +347,7 @@ def build(cls, *, cells, dispersivity, pore_diffusion): return cls(dispersivity=dispersivity, pore_diffusion=pore_diffusion) def get_dispersion_coefficient( - self, time: jax.Array, system: System + self, time: jax.Array, system: TransportSystem ) -> AbstractSpecies: """ Compute dispersion coefficients for each species. @@ -574,7 +356,7 @@ def get_dispersion_coefficient( ---------- time : jax.Array Current simulation time. - system : System + system : TransportSystem The reactive transport system. Returns @@ -590,7 +372,7 @@ def get_dispersion_coefficient( ) def _get_interface_coefficient( - self, time: jax.Array, system: System + self, time: jax.Array, system: TransportSystem ) -> AbstractSpecies: """Compute dispersion coefficient times porosity for each interior interface. @@ -614,7 +396,7 @@ def inner(coeff): return jax.tree.map(inner, self.get_dispersion_coefficient(time, system)) def rate( - self, time: jax.Array, state: AbstractSpecies, system: System + self, time: jax.Array, state: AbstractSpecies, system: TransportSystem ) -> AbstractSpecies: """ Compute the dispersion contribution to the species rate of change. @@ -625,7 +407,7 @@ def rate( Current simulation time. state : AbstractSpecies Current species concentrations. - system : System + system : TransportSystem The reactive transport system. Returns @@ -674,7 +456,7 @@ class BoundaryCondition: specific boundary condition behavior. """ - is_active: Callable[[jax.Array, System], jax.Array] = lambda t, system: jnp.array( + is_active: Callable[[jax.Array, TransportSystem], jax.Array] = lambda t, system: jnp.array( True ) species_selector: Callable @@ -688,7 +470,7 @@ def apply(self, t, system, state, rate, apply_count): ---------- t : jax.Array Current time. - system : System + system : TransportSystem The transport system. state : AbstractSpecies Current species concentrations. @@ -767,7 +549,7 @@ class FixedConcentrationBoundary(BoundaryCondition): ---------- fixed_concentration : float or Callable[[jax.Array], jax.Array] The fixed concentration value, either constant or time-dependent. - is_active : Callable[[jax.Array, System], jax.Array], optional + is_active : Callable[[jax.Array, TransportSystem], jax.Array], optional Function determining if the boundary condition is active. Inherited from BoundaryCondition. species_selector : Callable Function to select which species this applies to. Inherited from BoundaryCondition. @@ -783,7 +565,7 @@ class FixedConcentrationBoundary(BoundaryCondition): fixed_concentration: float | Callable[[jax.Array], jax.Array] def compute_flux( - self, time: jax.Array, system: System, boundary_cell_state: jax.Array + self, time: jax.Array, system: TransportSystem, boundary_cell_state: jax.Array ): """ Compute the advective and dispersive flux at the boundary. @@ -792,7 +574,7 @@ def compute_flux( ---------- time : jax.Array Current simulation time. - system : System + system : TransportSystem The reactive transport system. boundary_cell_state : jax.Array Concentration in the boundary cell. @@ -895,141 +677,11 @@ def check_bc(rate, apply_count): rate = jax.tree.map(check_bc, rate, apply_count) return rate +def _compute_pointwise_reaction_rates(time, state, system): + reactions = system.reactions -def rhs(time, state, system: System): - """ - Compute the right-hand side of the reactive transport ODE. - - Evaluates the complete system of equations including advection, - dispersion, and reactions for all species, then applies boundary - conditions. - - Parameters - ---------- - time : jax.Array - Current simulation time. - state : AbstractSpecies - Current species concentrations across the domain. - system : System - The reactive transport system configuration. - - Returns - ------- - AbstractSpecies - Rate of change of species concentrations (dc/dt). - """ - def compute_pointwise_reaction_rates(time, state, system): - reactions = system.reactions - if len(reactions) == 0: - return type(state).zeros() - - rates = [reaction._eval_dcdt(time, state, system) for reaction in reactions] - return jax.tree.map(lambda *args: sum(args), *rates) - - compute_spatial_reaction_rates = jax.vmap( - compute_pointwise_reaction_rates, - [ - None, - type(state).int_zeros(), - system._spatial_axes, - ], - ) - - reaction_rates = compute_spatial_reaction_rates(time, state, system) - - def sum_rhs_terms( - species_is_mobile: bool, - advection: jax.Array, - dispersion: jax.Array, - reactions: jax.Array, - ) -> jax.Array: - if species_is_mobile: - return advection + dispersion + reactions - else: - return reactions - - rate = jax.tree.map( - sum_rhs_terms, - system.species_is_mobile, - system.advection.rate(time, state, system), - system.dispersion.rate(time, state, system), - reaction_rates, - ) - return apply_bcs(system.bcs, time, system, state, rate) - - -def make_solver( - *, t_max, t_points, rtol=1e-8, atol=1e-8, solver=None, t0=0, dt0=None, device=None -): - """ - Create a JIT-compiled solver function for reactive transport simulations. - - This function sets up a differential equation solver using diffrax to solve - the reactive transport system over time. - - Parameters - ---------- - t_max : float - Maximum simulation time. - t_points : jax.Array - Time points at which to save the solution. - rtol : float, optional - Relative tolerance for the solver. Default is 1e-8. - atol : float, optional - Absolute tolerance for the solver. Default is 1e-8. - solver : diffrax.AbstractSolver, optional - ODE solver to use. Default is Tsit5. - t0 : float, optional - Initial time. Default is 0. - dt0 : float, optional - Initial time step. Default is None (auto). - device : jax.Device, optional - JAX device to run on. Default is CPU. - - Returns - ------- - solve : callable - JIT-compiled function that takes initial state and args, returns solution. - - Notes - ----- - The returned solver function has signature solve(y0, args) where y0 is the - initial species concentrations and args are additional arguments passed to - the RHS function. - """ - if solver is None: - # solver = diffrax.Dopri5() - solver = diffrax.Tsit5() - # root_finder = optimistix.Dogleg(rtol=1e-9, atol=1e-9, norm=optimistix.two_norm) - # solver = diffrax.Kvaerno3(root_find_max_steps=10, root_finder=root_finder) - # solver = diffrax.Kvaerno3() - - if device is None: - device = jax.devices("cpu")[0] - - term = diffrax.ODETerm(rhs) - stepsize_controller = diffrax.PIDController( - rtol=rtol, - atol=atol, - # dtmax= - # norm=optimistix.two_norm, - ) - t_vals = diffrax.SaveAt(ts=t_points) - - @eqx.filter_jit(device=device) - def solve(y0: AbstractSpecies, args): - result = diffrax.diffeqsolve( - term, - solver, - t0=t0, - t1=t_max, - dt0=dt0, - y0=y0, - saveat=t_vals, - args=args, - stepsize_controller=stepsize_controller, - max_steps=1024 * 32 * 64, - ) - return result + if len(reactions) == 0: + return type(state).zeros() - return solve + rates = [reaction._eval_dcdt(time, state, system) for reaction in reactions] + return jax.tree.map(lambda *args: sum(args), *rates) diff --git a/tests/test_systems.py b/tests/test_systems.py new file mode 100644 index 0000000..98a922a --- /dev/null +++ b/tests/test_systems.py @@ -0,0 +1,119 @@ +import jax +import jax.numpy as jnp +import numpy as np +import pytest + +from reactix import ( + KineticReaction, + MixedSystem, + declare_species, + make_solver, + reaction, +) + +Species = declare_species(["tracer"]) + + +@reaction +class FirstOrderDecay(KineticReaction): + """Simple first-order decay reaction used by mixed reactor tests.""" + + decay_coefficient: jax.Array + + def rate(self, time, state, system): + return self.decay_coefficient * state.tracer + + def stoichiometry(self, time, state, system): + return {"tracer": -1} + + +def test_mixed_system_construction(): + """Test that MixedSystem can be constructed with required fields.""" + system = MixedSystem( + discharge=lambda t: jnp.array(1.0), + inflow_concentration=Species(tracer=jnp.array(1.0)), + volume=jnp.array(10.0), + ) + assert system.volume == 10.0 + assert system.parameters is None + assert system.reactions == [] + + +def test_mixed_rhs_no_reaction(): + """Without reactions, dc/dt should equal Q/V * (c_in - c).""" + + Q = jnp.array(2.0) + V = jnp.array(10.0) + c_in = jnp.array(5.0) + c = jnp.array(1.0) + + system = MixedSystem( + discharge=lambda t: Q, + inflow_concentration=Species(tracer=c_in), + volume=V, + ) + state = Species(tracer=c) + dcdt = system._rhs(jnp.array(0.0), state) + + expected = Q / V * (c_in - c) + np.testing.assert_allclose(dcdt.tracer, expected) + + +def test_compute_inflow_outflow_with_missing_discharge_is_zero(): + """If discharge is omitted, the inflow/outflow term should vanish.""" + + system = MixedSystem( + discharge=None, + inflow_concentration=Species(tracer=jnp.array(1.0)), + volume=jnp.array(10.0), + ) + state = Species(tracer=jnp.array(0.3)) + + inflow_outflow = system.compute_inflow_outflow(jnp.array(0.0), state) + + np.testing.assert_allclose(inflow_outflow.tracer, jnp.zeros_like(state.tracer)) + + +def test_compute_inflow_outflow_with_missing_inflow_concentration_is_zero(): + """If inflow concentration is omitted, the inflow/outflow term should vanish.""" + + system = MixedSystem( + discharge=lambda t: jnp.array(0.5), + inflow_concentration=None, + volume=jnp.array(10.0), + ) + state = Species(tracer=jnp.array(0.3)) + + inflow_outflow = system.compute_inflow_outflow(jnp.array(0.0), state) + + np.testing.assert_allclose(inflow_outflow.tracer, jnp.zeros_like(state.tracer)) + + +@pytest.mark.integration +def test_mixed_system_matches_analytical_solution(): + """Verify a simulated mixed reactor matches the closed-form first-order solution.""" + + Q = jnp.array(0.5) + V = jnp.array(10.0) + k = jnp.array(0.02) + c_in = jnp.array(1.0) + c0 = jnp.array(0.0) + + reactions = [FirstOrderDecay(decay_coefficient=k)] + system = MixedSystem.build( + reactions=reactions, + discharge=Q, + inflow_concentration=Species(tracer=c_in), + volume=V, + ) + + t_points = jnp.linspace(0.0, 200.0, 300) + solver = make_solver(t_max=200.0, t_points=t_points, rtol=1e-6, atol=1e-10) + + state0 = Species(tracer=jnp.zeros(())) + solution = solver(state0, system) + + c_steady = Q / (Q + k * V) * c_in + c_analytical = c_steady + (c0 - c_steady) * np.exp(-(Q / V + k) * np.asarray(t_points)) + + np.testing.assert_allclose(solution.ys.tracer, np.asarray(c_analytical), rtol=5e-4, atol=1e-6) diff --git a/tests/test_transport.py b/tests/test_transport.py index 0bf2f4a..46278be 100644 --- a/tests/test_transport.py +++ b/tests/test_transport.py @@ -11,7 +11,7 @@ Cells, Dispersion, FixedConcentrationBoundary, - System, + TransportSystem, make_solver, declare_species, KineticReaction, @@ -66,7 +66,7 @@ def test_system_discharge_function_from_scalar(): Species = declare_species(["tracer"]) cells = Cells.equally_spaced(10.0, 5) - system = System.build( + system = TransportSystem.build( cells=cells, advection=Advection(), dispersion=Dispersion.build( @@ -103,7 +103,7 @@ def test_tracer(): fixed_concentration=lambda t: jnp.array(10.0), ), ] - system = System.build( + system = TransportSystem.build( porosity=jnp.array(0.3), discharge=lambda t: jnp.array(1 / 365), cells=cells, @@ -172,7 +172,7 @@ def test_against_analytical_solution(): ] porosity = 0.3 discharge = 1 / 365 - system = System.build( + system = TransportSystem.build( porosity=jnp.array(porosity), discharge=lambda t: jnp.array(discharge), cells=cells, @@ -235,7 +235,7 @@ def test_negative_velocity(): fixed_concentration=lambda t: jnp.array(5.0), ), ] - system = System.build( + system = TransportSystem.build( porosity=jnp.array(0.3), discharge=lambda t: jnp.array(-1 / 365), cells=cells, @@ -279,7 +279,7 @@ def test_duplicate_boundaries(): fixed_concentration=lambda t: jnp.array(3.0), ), ] - system = System.build( + system = TransportSystem.build( porosity=jnp.array(0.3), discharge=lambda t: jnp.array(1 / 365), cells=cells, @@ -326,7 +326,7 @@ def test_immobile_species(): fixed_concentration=lambda t: jnp.array(3.0), ), ] - system = System.build( + system = TransportSystem.build( porosity=jnp.array(0.3), discharge=lambda t: jnp.array(k_dec), cells=cells, @@ -375,7 +375,7 @@ def test_bc_for_immobile_species(): ), ] with pytest.raises(ValueError, match="Cannot apply boundary condition to immobile species."): - System.build( + TransportSystem.build( porosity=jnp.array(0.3), discharge=lambda t: jnp.array(1 / 365), cells=cells, @@ -402,7 +402,7 @@ def test_mass_conservation(): ) advection = Advection(limiter_type="minmod") bcs = [] - system = System.build( + system = TransportSystem.build( porosity=jnp.array(0.3), discharge=lambda t: jnp.array(1 / 100) * jnp.cos(2 * np.pi * 1 / 100 * t), cells=cells, @@ -474,7 +474,7 @@ def test_reactive_tracer_constant_param(): fixed_concentration=lambda t: jnp.array(3.0), ), ] - system = System.build( + system = TransportSystem.build( porosity=jnp.array(0.3), discharge=lambda t: jnp.array(1 / 100), cells=cells, @@ -540,7 +540,7 @@ def test_reactive_tracer_variable_param(): fixed_concentration=lambda t: jnp.array(3.0), ), ] - system = System.build( + system = TransportSystem.build( porosity=jnp.array(0.3), discharge=lambda t: jnp.array(1 / 100), cells=cells,