Skip to main content

within

within provides high-performance solvers for projecting out high-dimensional fixed effects from regression problems.

By the Frisch-Waugh-Lovell theorem, estimating a regression of the form y = Xβ + Dα + ε reduces to a sequence of least-squares projections, one for y and one for each column of X, followed by a cheap regression fit on the resulting residuals. The projection step of solving the normal equations D'Dx = D'z is the computational bottleneck, which is the problem within is designed to solve.

within's solvers are tailored to the structure of fixed effects problems, which can be represented as a graph (as first noted by Correia, 2016). Concretely, within uses modified LSMR with a domain decomposition (Schwarz) preconditioner, backed by approximate Cholesky local solvers (Gao et al, 2025).

Scope

within is a low-level fixed-effects kernel. Callers pass pre-factorized categorical codes: contiguous 0-based uint32 level codes in F-order (column-major) arrays. Formula-level convenience — DataFrames, string/object categoricals, pandas.factorize, and formula parsing — is intentionally out of scope and belongs to a frontend layer built on top. The pyfixest-style workflow is served by such a frontend calling within underneath.

Installation

You can install Python bindings from PyPi by running

pip install within_py

Python Quickstart

within's main user-facing function is solve. Provide a 2-D uint32 array of category codes (one column per fixed-effect factor) and a response vector y. The solver finds x in the normal equations D'D x = D'y, where D is the sparse categorical design matrix.

import numpy as np
from within import solve, solve_batch, LsmrOptions, PreconditionerConfig

np.random.seed(1)
n = 100_000
fe = np.asfortranarray(np.column_stack([
    np.random.randint(0, 500, n).astype(np.uint32),
    np.random.randint(0, 200, n).astype(np.uint32),
]))
y = np.random.randn(n)

# Default: additive Schwarz + LSMR
result = solve(fe, y)

# Custom tolerance / iteration cap
result = solve(fe, y, options=LsmrOptions(tol=1e-10, maxiter=2000))

# Weighted solve
result = solve(fe, y, weights=np.ones(n))

# Opt into diagonal/Jacobi preconditioning
result = solve(fe, y, preconditioner=PreconditionerConfig.Diagonal)

FWL regression example

beta_true = np.array([1.0, -2.0, 0.5])
X = np.random.randn(n, 3)
y = X @ beta_true + np.random.randn(n)

result = solve_batch(fe, np.column_stack([y, X]))
y_tilde, X_tilde = result.demeaned[:, 0], result.demeaned[:, 1:]
beta_hat = np.linalg.lstsq(X_tilde, y_tilde, rcond=None)[0]
print(np.round(beta_hat, 4))  # [ 0.9982 -2.006   0.5005]

Varying slopes

Pass a list of Effect terms instead of a categories array. Each term is a factor's level codes plus an optional intercept and zero or more slope covariates (per-level slopes, as in fixest's f[z] notation).

from within import solve, Effect

firm = np.random.randint(0, 500, n).astype(np.uint32)
year = np.random.randint(0, 20, n).astype(np.uint32)
x = np.random.randn(n)  # covariate whose slope varies by firm

result = solve(
    [
        Effect(firm, intercept=True, slopes=[x]),  # firm intercept + firm-specific x slope
        Effect(year, intercept=True),              # year intercept
    ],
    y,
)

# Read firm level 3's x-slope via the layout map (column 0 = intercept, 1 = first slope):
i = result.layout.index(0, 3, 1)
print(result.x[i])

Python API

High-level functions

Function Description
solve(design, y, weights?, options?, preconditioner?) Solve a single right-hand side. Returns SolveResult.
solve_batch(design, Y, weights?, options?, preconditioner?) Solve multiple RHS vectors in parallel. Y has shape (n_obs, k). Returns BatchSolveResult.

design is either a 2-D uint32 array of shape (n_obs, n_factors) or a list of Effect terms (see Varying slopes). A UserWarning is emitted when a C-contiguous categories array is passed — use np.asfortranarray(design) for best performance.

Persistent solver

For repeated solves with the same design matrix, Solver builds the preconditioner once and reuses it.

from within import Solver

solver = Solver(fe)
r = solver.solve(y)                            # reuses preconditioner
r = solver.solve_batch(np.column_stack([y, X]))

precond = solver.preconditioner                # picklable property
solver2 = Solver(fe, preconditioner=precond)   # skip re-factorization
Property / Method Description
Solver(design, weights?, preconditioner?) Build solver. Factorizes the preconditioner at construction.
.solve(y, options?) Solve a single RHS with the given LSMR tuning. Returns SolveResult.
.solve_batch(Y, options?) Solve multiple RHS columns in parallel. Returns BatchSolveResult.
.preconditioner Return the built Preconditioner (picklable), or None. Reuse via Solver(fe, preconditioner=p).

Solver configuration

Class Description
LsmrOptions(tol=1e-8, maxiter=1000, local_size=None) Modified LSMR. local_size enables windowed reorthogonalization.

Preconditioner (5-form Union)

The preconditioner argument accepts any of:

Form Meaning
None (default) Library default — Additive Schwarz with sensible defaults.
PreconditionerConfig.Off Explicit identity — solve unpreconditioned.
PreconditionerConfig.Additive Additive Schwarz shortcut, equivalent to None.
PreconditionerConfig.Diagonal Diagonal/Jacobi preconditioner using diag(D^T W D)^{-1}.
AdditiveSchwarz(local_solver?, reduction?) Tuned Schwarz config — import from within.config.
Preconditioner instance Reuse a previously-built preconditioner across solvers.

Local solver configuration (advanced — within.config)

Class Description
LocalSolverConfig(approx_chol?, schur?, dense_threshold=24, scaling?) Schur reduction + approximate Cholesky. Omit schur for the library-default approximate variant; pass schur=Schur.exact() to request an exact Schur (slower, used for validation).
Schur.approximate(config?) / Schur.exact() Schur-reduction mode passed as LocalSolverConfig(schur=...).
ApproxCholConfig(seed=0, split_merge=None) Approximate Cholesky parameters.
ApproxSchurConfig(seed=0, split=1) Approximate Schur complement sampling parameters.
ReductionStrategy Auto (default), AtomicScatter, ParallelReduction (class attributes, not an Enum).

Result types

SolveResult: x (coefficients), unidentified (directions the data cannot identify, as UnidentifiedDirection(term, level, column) records), layout (a CoefficientLayout mapping a (term, level, column) address to its flat x index and back), demeaned (residuals), converged, iterations, residual, time_total, time_setup, time_solve.

BatchSolveResult: Same fields, with converged, iterations, residual, and time_solve as lists (one entry per RHS).

Coefficients for unidentified directions are pinned to the minimal-norm value 0 (never NaN). This is why x can differ from reference tools that instead drop a reference level; the identified fit — demeaned — is unaffected by the choice.

Rust API

use ndarray::Array2;
use within::{solve, LsmrOptions, PreconditionerConfig};
use within::config::{LocalSolverConfig, ReductionStrategy};

let categories = /* Array2<u32> of shape (n_obs, n_factors) */;
let y: &[f64] = /* response vector */;

// Default: LSMR + additive Schwarz (None → library default)
let r = solve(categories.view(), &y, None, &LsmrOptions::default(), None)?;
assert!(r.converged);

// Tighter tolerance with an explicit additive preconditioner
let lsmr = LsmrOptions { tol: 1e-10, ..LsmrOptions::default() };
let precond = PreconditionerConfig::Additive {
    local_solver: LocalSolverConfig::default(),
    reduction: ReductionStrategy::default(),
};
let r = solve(categories.view(), &y, None, &lsmr, &precond)?;

// Opt into diagonal/Jacobi preconditioning
let diagonal = PreconditionerConfig::Diagonal;
let r = solve(categories.view(), &y, None, &lsmr, &diagonal)?;

Persistent solver — build once, solve many:

use within::Solver;

let solver = Solver::new(categories.view(), None, None)?;
let r1 = solver.solve(&y, &LsmrOptions::default())?;
let r2 = solver.solve(&another_y, &LsmrOptions::default())?;  // reuses preconditioner

solve and Solver::new take the preconditioner as impl Into<PreconditionerInput>: None (library default), a &PreconditionerConfig or owned PreconditionerConfig (e.g. PreconditionerConfig::Off for the identity), or an owned/borrowed Preconditioner for reuse. LSMR options are impl Into<Option<&LsmrOptions>>, so None accepts the defaults and &opts overrides them.

Type Variants / Fields
LsmrOptions { tol: f64, maxiter: usize, local_size: Option<usize> }
PreconditionerConfig Off | Additive { local_solver: LocalSolverConfig, reduction: ReductionStrategy } | Diagonal (#[non_exhaustive])
LocalSolverConfig { approx_chol, schur: SchurMode, dense_threshold, scaling }
SchurMode Approximate(ApproxSchurConfig) | Exact
Preconditioner Opaque built handle — reuse via Solver::new(.., precond) (owned or &)

Lower-level access

Module Visibility Key types
within::config public LsmrOptions, PreconditionerConfig, LocalSolverConfig, SchurMode, ApproxCholConfig, ApproxSchurConfig, ScalingConfig, ReductionStrategy
within::observation public ObservationFrame (columnar level-code + loading columns)
within::error public WithinError, BuildError, SolveError
domain / operator / solver / orchestrate pub(crate) implementation layers — public items are re-exported at the crate root

Feature flags

Feature Default Effect
ndarray yes Enables from_array constructors for ndarray::ArrayView2 interop.

Project structure

crates/
  schwarz-precond/   Generic domain decomposition library (traits, solvers, Schwarz preconditioners)
  within/            Core fixed-effects solver (observation stores, domains, operators, orchestration)
  within-py/         PyO3 bridge (cdylib → within._within)
python/within/       Python package re-exporting the Rust extension
benchmarks/          Python benchmark framework

Development

Uses pixi as the task runner.

pixi run develop          # Build Rust extension (release mode)
pixi run test             # Rebuild + pytest
cargo test --workspace    # Rust tests only
cargo bench -p within     # Criterion benchmarks
pixi run bench run all    # Python benchmarks

Rust changes require rebuilding before running Python code (pixi run develop).

License

MIT

References

  • Correia, Sergio. "A feasible estimator for linear models with multi-way fixed effects." Preprint at http://scorreia.com/research/hdfe.pdf (2016).
  • Gao, Y., Kyng, R. & Spielman, D. A. (2025). AC(k): Robust Solution of Laplacian Equations by Randomized Approximate Cholesky Factorization. SIAM Journal on Scientific Computing.
  • Toselli & Widlund (2005). Domain Decomposition Methods — Algorithms and Theory. Springer.
  • Xu, J. (1992). Iterative Methods by Space Decomposition and Subspace Correction. SIAM Review, 34(4), 581--613.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

within_py-0.3.0.tar.gz (199.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

within_py-0.3.0-cp39-abi3-win_arm64.whl (564.5 kB view details)

Uploaded CPython 3.9+Windows ARM64

within_py-0.3.0-cp39-abi3-win_amd64.whl (607.7 kB view details)

Uploaded CPython 3.9+Windows x86-64

within_py-0.3.0-cp39-abi3-win32.whl (535.1 kB view details)

Uploaded CPython 3.9+Windows x86

within_py-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl (934.7 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ x86-64

within_py-0.3.0-cp39-abi3-musllinux_1_2_i686.whl (954.2 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ i686

within_py-0.3.0-cp39-abi3-musllinux_1_2_armv7l.whl (991.5 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARMv7l

within_py-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl (877.1 kB view details)

Uploaded CPython 3.9+musllinux: musl 1.2+ ARM64

within_py-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (724.7 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ x86-64

within_py-0.3.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (804.0 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ s390x

within_py-0.3.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (805.7 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ppc64le

within_py-0.3.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (715.4 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARMv7l

within_py-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (699.3 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

within_py-0.3.0-cp39-abi3-manylinux_2_12_i686.manylinux2010_i686.whl (749.2 kB view details)

Uploaded CPython 3.9+manylinux: glibc 2.12+ i686

within_py-0.3.0-cp39-abi3-macosx_11_0_arm64.whl (664.2 kB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

within_py-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl (687.7 kB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

Details for the file within_py-0.3.0.tar.gz.

File metadata

  • Download URL: within_py-0.3.0.tar.gz
  • Upload date:
  • Size: 199.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for within_py-0.3.0.tar.gz
Algorithm Hash digest
SHA256 25116ad98f6c59a0ed4bdbffe137dfbf936afb48bd04aeabb7b63cf8821444da
MD5 855a02861b602b6c9152b9641f674143
BLAKE2b-256 9e209c8b01504d890b062942d697c98c541c7d5301a61d0b3cde4f987894ed51

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0.tar.gz:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-win_arm64.whl.

File metadata

  • Download URL: within_py-0.3.0-cp39-abi3-win_arm64.whl
  • Upload date:
  • Size: 564.5 kB
  • Tags: CPython 3.9+, Windows ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for within_py-0.3.0-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 7b2bee9774d2b5fe404a5c25069f548aac852f697dbdf04e8819decc0f9a4e5a
MD5 1b4aa146bd60b47a131c27429e12fc2b
BLAKE2b-256 c1d50047686c5ee1cf26549e7687ef26f7c0ef0065ef33918ef9e4bebc80b4a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-win_arm64.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: within_py-0.3.0-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 607.7 kB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for within_py-0.3.0-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 61616253a68107e9f0752fd8a28eb884c2322595fc2e3b064d8aeec1d6d753c8
MD5 db657d5cc4530851f5478ae4584b0c27
BLAKE2b-256 a965771ee4fe1ec570998bcacbfa5e61019a0d728a12c28dc238926018bca011

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-win_amd64.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-win32.whl.

File metadata

  • Download URL: within_py-0.3.0-cp39-abi3-win32.whl
  • Upload date:
  • Size: 535.1 kB
  • Tags: CPython 3.9+, Windows x86
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for within_py-0.3.0-cp39-abi3-win32.whl
Algorithm Hash digest
SHA256 6ad0102df2fea42c7d40acf73a7cd00fc021ab7c505afe91b6b271374930a308
MD5 0c5958fc305056cc67ed882502af16b2
BLAKE2b-256 e713639dcc8e3fc2d686087278b1d32135735162768b6ed956db43243387d00a

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-win32.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bd8bb209b77b7796682c92f958e4696fa76687e90594e820263f3ec2979d16ee
MD5 9cb6a8f306478fbcad0e07aa321d372c
BLAKE2b-256 d1b3792c2fbd0e1a38cdd86f5c95d5efd3411ec34d7a16afbb40ba50bcc4c1b9

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-musllinux_1_2_i686.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-musllinux_1_2_i686.whl
Algorithm Hash digest
SHA256 092cf781fa33ad3ad50fd6ee65207f05fbd2d7d2cb4338a4cccab5792a77c0f8
MD5 84ac3458f4ad07bdcb42084397ac33b9
BLAKE2b-256 d438d0a316e91a342f0b34da79e703dfe695ba2513f4115f14a161bfedb92273

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-musllinux_1_2_i686.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-musllinux_1_2_armv7l.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-musllinux_1_2_armv7l.whl
Algorithm Hash digest
SHA256 3ce2338299689d78e03a5db4d1fda40c0b640f2e5443e559b10c39f66f119d06
MD5 22a7cedfd9dd72e7fe57b96a2924852d
BLAKE2b-256 cc124ba044230fbe7433aeb42c1a23823fa3ff9f0c6171c95808cbe4d1873f86

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-musllinux_1_2_armv7l.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 8d2d0ca787959f94a5d5af925cd36dfdc52dffd9b2089fefb747c0bc140e0997
MD5 f9447ec9fe18e2d82585820012cc6c9c
BLAKE2b-256 032fd2844171bb4a4c8a4fb6eb6705c4cc2b576a035b5dc920db43b75b027ad1

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc9bfad335dbca99140a32c42c0c66f500e6f9da3da40de8be176eb7a8cb2b13
MD5 ad1ff75e7492431aabe58984fbaade0e
BLAKE2b-256 76dae23689d032c949edbe3fb1dd43ea6451a99a5671b71d272f6063fb95b8ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 f3a2c080fe56a57e583cfa51a2f584a1d9444c9f9c7e132768fc697f55f85fb1
MD5 f61ac737ea839bccfbdecc5a7a22fc25
BLAKE2b-256 9c0856adcf55b64918bd6117f6c98e84625241b3b136baeb4b8baf25a954c539

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 c31e18b5404edfd0e6a3d72f31c34ab0c4bb3b3da6b7191c88319376760b25ee
MD5 08a7b968438c14b1456810de51a51b34
BLAKE2b-256 faa45fb79659b3028ad30e41487b5e1c8c0c78f80ce7107962df44594a697d56

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 a338ef744a7056442a3b4d43be2eff6ff10631eaa3ecf7a8cb7d4d275bacc7a7
MD5 483b6850084a85cbc1fe3d5faa65d8bb
BLAKE2b-256 cd3d355bb5f8e9fb0ae368433dce33559cbbb05abe1643093d18839274e8503b

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 be4c0b09c59a2de9a22588fab870b139c76de03d346ea3de021f23dc7f64bb5a
MD5 d62b105ee1106b06d470cfc03313511f
BLAKE2b-256 d53aba54712c124f64c73cda9167321e75d80dbbd7026b32b2d1bb3ee3472414

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-manylinux_2_12_i686.manylinux2010_i686.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-manylinux_2_12_i686.manylinux2010_i686.whl
Algorithm Hash digest
SHA256 4a6cbf7835203feee315e5c757a6e1bfdf05ca1206f00110e95440a3b684fd7a
MD5 56e106b73fd351dc9c97202b87286042
BLAKE2b-256 a597ceccd3c5fd92991f3cd8d99522df44eaaed40b9e4c82b181a480be0d0482

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-manylinux_2_12_i686.manylinux2010_i686.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 41191ad8fa1fefc9d92bc73b1400dbe7aa57e55ecab58dba86183905361f21ed
MD5 ab281950cd2a81886cdb55a529bf3371
BLAKE2b-256 480d405633d65017662ad5517ef1a91156cc8a6f588c80e981ca885095800ec9

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-macosx_11_0_arm64.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file within_py-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for within_py-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 9e7bbe1603a2460ec0f74c75613484f799f0831b3f894f079c700171ff13d43a
MD5 0f527ca9d7bbb617df39d01b889de1d3
BLAKE2b-256 a2ac591dfb37276e3c9bfa32bed86b82dafce154b85e5e2707d4120b103bd237

See more details on using hashes here.

Provenance

The following attestation bundles were made for within_py-0.3.0-cp39-abi3-macosx_10_12_x86_64.whl:

Publisher: publish.yml on py-econometrics/within

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.3.0 This release

16 files

0.2.0

120 files

0.1.0

116 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page