Skip to main content

smooth

PyPI version PyPI - Downloads Python versions Python CI SLSA Build Level 3 License: LGPL-2.1

hex-sticker of the smooth package for Python

Python implementation of the smooth package for forecasting and time series analysis using Single Source of Error (SSOE) state-space models.

Every wheel published to PyPI is signed via Sigstore on the exact GitHub Actions runner that built it and ships with PEP 740 attestations (SLSA Build Level 3 provenance). Verify a downloaded wheel client-side with pypi-attestations:

pip install pypi-attestations
pypi-attestations verify pypi --repository https://github.com/openforecast-org/smooth smooth-*.whl

The package includes the following models:

  • ADAM - Augmented Dynamic Adaptive Model, uniting exponential smoothing, ARIMA and regression, implemented in the ADAM class.
  • ETS - Exponential Smoothing in the SSOE state space form, implemented in the ES class.
  • CES - Complex Exponential Smoothing with complex-valued smoothing parameters, implemented in the CES class (fixed seasonality type) and AutoCES class (automatic seasonality selection).
  • MSARIMA - Multiple seasonal ARIMA in state space form, implemented in the MSARIMA class (fixed orders) and AutoMSARIMA class (automatic order selection).
  • OM - Occurrence Model for intermittent demand, implemented in the OM class (plus OMG for the general two-component model and AutoOM for automatic type selection).
  • SMA - Simple Moving Average in state-space form (an AR(m) model with fixed coefficients), implemented in the SMA class with automatic order selection.
  • TBATS - De Livera et al.'s TBATS in ADAM's framework, for multiple and non-integer seasonal periods, implemented in the TBATS class.
  • SM - Scale Model, a second ADAM fitted to the scale of the error term so the variance evolves over time, available as the .sm() method on a fitted model.

The package also provides standalone data generators that mirror R's sim.* family — sim_es, sim_ssarima, sim_ces, sim_gum, sim_sma, and sim_oes — plus a .simulate() method on fitted ADAM, OM, and OMG objects. See Simulation Functions.

All of these are implemented with the support of the following features:

  • Automatic components selection in ETS and forecasts combination
  • Explanatory variables
  • Multiple seasonal models (e.g. for high frequency data)
  • Advanced loss functions
  • Fine tuning of any elements of ADAM/ETS/ARIMA/Regression
  • A variety of prediction interval construction methods

Like the R version, the Python smooth depends on the greybox package for distributions, information criteria, regressor selection, and the LOWESS smoother. It is installed automatically as a dependency.

Installation

From PyPI (recommended):

pip install smooth

From source (development):

pip install "git+https://github.com/openforecast-org/smooth.git@master#subdirectory=python"

See the Installation Guide for platform-specific instructions.

System Requirements

If installing from source, this package requires compilation of C++ extensions. Before installing, ensure you have:

  • C++ compiler (g++, clang++, or MSVC)
  • CMake >= 3.25
  • Armadillo linear algebra library

Quick Example

import numpy as np
from smooth import ADAM

# Sample data
y = np.array([10, 12, 15, 13, 16, 18, 20, 19, 22, 25, 28, 30,
              11, 13, 16, 14, 17, 19, 21, 20, 23, 26, 29, 31])

# Fit ADAM model with additive error, no trend, no seasonality
model = ADAM(model="ANN")
model.fit(y)

# Generate forecasts
forecasts = model.predict(h=12)

# With seasonal component (monthly data, annual seasonality)
model = ADAM(model="ANA", lags=[1, 12])
model.fit(y)
forecasts = model.predict(h=12)

ADAMX — ADAM with Explanatory Variables

This also works with the exponential smoothing (ETSX) via the ES() class.

import numpy as np
from smooth import ADAM

# Simulate data where y depends on two external regressors
rng = np.random.default_rng(42)
n = 120
X = rng.standard_normal((n, 2))
y = 10 + 2 * X[:, 0] - 1.5 * X[:, 1] + rng.standard_normal(n)

# Fit ETSX(AAN) — use all regressors with fixed coefficients
model = ADAM(model="AAN", regressors="use")
model.fit(y, X)
print(model)           # shows fitted coefficients including xreg

# Forecast 12 steps ahead with future regressor values
X_future = rng.standard_normal((12, 2))
fc = model.predict(h=12, X=X_future)
print(fc.mean)

# Automatic variable selection (drops insignificant regressors)
model_sel = ADAM(model="AAN", regressors="select")
model_sel.fit(y, X)

# Adaptive (time-varying) regressor coefficients
model_adp = ADAM(model="AAN", regressors="adapt")
model_adp.fit(y, X)

X accepts a NumPy array or a pandas DataFrame (column names are preserved as regressor names). regressors controls treatment: "use" (fixed coefficients), "select" (stepwise selection via greybox), or "adapt" (ETS-style time-varying coefficients).

AutoMSARIMA — Automatic ARIMA Order Selection

AutoMSARIMA selects the best ARIMA orders automatically using information criteria, mirroring R's auto.msarima(). It fixes distribution="dnorm" and uses pure ARIMA (no ETS components).

import numpy as np
from smooth import AutoMSARIMA

# Monthly time series (e.g. AirPassengers, 144 observations)
y = np.array([
    112, 118, 132, 129, 121, 135, 148, 148, 136, 119, 104, 118,
    # ... remaining observations
], dtype=float)

# Automatic seasonal ARIMA — searches up to ARIMA(3,2,3)(3,1,3)[12]
model = AutoMSARIMA(lags=[1, 12])
model.fit(y)
print(model)   # AutoMSARIMA: ARIMA([p,P],[d,D],[q,Q])

# Reduce search space for speed
model = AutoMSARIMA(
    lags=[1, 12],
    ar_order=[2, 1],   # max AR: p≤2 at lag 1, P≤1 at lag 12
    i_order=[2, 1],    # max I:  d≤2 at lag 1, D≤1 at lag 12
    ma_order=[2, 1],   # max MA: q≤2 at lag 1, Q≤1 at lag 12
)
model.fit(y)
fc = model.predict(h=24)

CES — Complex Exponential Smoothing

CES and AutoCES mirror R's ces() / auto.ces(). CES uses complex-valued smoothing parameters to capture both the level and the "potential" of a series, covering four seasonality modes: "none", "simple", "partial", "full".

import numpy as np
from smooth import CES, AutoCES

y = np.array([
    112, 118, 132, 129, 121, 135, 148, 148, 136, 119, 104, 118,
    115, 126, 141, 135, 125, 149, 170, 170, 158, 133, 114, 140,
], dtype=float)

# CES with a fixed seasonality type
model = CES(seasonality="partial", lags=[1, 12], h=6, holdout=True)
model.fit(y)
print(model.model_name)         # e.g. "CES(partial)"
print(model.a_, model.b_)       # complex smoothing parameters
fc = model.predict(h=6)
print(fc.mean)

# AutoCES — select the best seasonality type by information criterion; fit()
# returns the selected CES, with the criteria of all the candidates in ICs
best = AutoCES(lags=[1, 12], h=6, holdout=True, ic="AICc").fit(y)
print(best.model_name, best.ICs)

Note: strict R-parity in the two-stage NLopt path requires nlopt>=2.10.0; older versions still fit, but the BOBYQA stage-1 trajectory may differ slightly from R.

SM — Scale Model

A scale model is a second ADAM fitted to a transform of the location model's residuals, so the error's scale varies over time instead of being one number — the state-space counterpart of a GARCH or GAMLSS scale equation. It mirrors R's sm(), and is scored by the location model's likelihood, so the information criteria of the two are directly comparable.

import numpy as np
from smooth import ADAM

# Monthly series whose noise grows with the level
rng = np.random.default_rng(42)
t = np.arange(120)
level = 100 + 0.8 * t + 10 * np.sin(2 * np.pi * t / 12)
y = level * (1 + rng.normal(0, 0.02 + 0.0004 * t))

# Location model: the mean. Requires loss="likelihood" (the default).
model = ADAM(model="AAA", lags=[1, 12], distribution="dnorm")
model.fit(y)
print(model.aicc)                     # 801.9385 — one constant scale

# Scale model: the variance. "YYY" (the default) selects among multiplicative ETS.
scale = model.sm(model="MNN")
model.scale_model = scale             # this assignment is R's implant()
print(model.aicc)                     # 775.9587 — now a time-varying scale

print(scale.model_name)               # ETS(MNN)
print(model.extract_scale()[:3])      # [2.930 2.853 2.766] — scale per observation

# Prediction intervals now widen and narrow with the fitted scale
fc = model.predict(h=12, interval="prediction", level=0.95)
print(fc.upper[:3])

sm is also importable directly — from smooth import sm, then sm(model, ...), which mirrors R's call form; it is the same function the method wraps.

sm() supports seven distributions — dnorm, dlaplace, ds, dgnorm, dlnorm, dgamma, dinvgauss — and takes the usual ADAM arguments (lags, orders, regressors, X, initial, ic, bounds), so the scale can carry its own ETS structure, ARIMA orders or explanatory variables. Set model.scale_model = None to detach it. There is no implant() function: Python can modify a fitted object in place, so assignment does the job.

TBATS — Multiple and Non-Integer Seasonality

TBATS mirrors R's tbats(): De Livera, Hyndman and Snyder's (2011) model in ADAM's single source of error framework — an ETS level and trend, a trigonometric seasonality for each period and ARMA errors, after a Box-Cox transform. The periods can be several and need not be integers; the number of harmonics, the trend, the ARMA orders and the distribution are selected automatically.

import numpy as np
from smooth import TBATS

# Ten years of weekly data with a yearly cycle of 52.18 weeks
t = np.arange(1, 521)
y = 100 + 0.05 * t + 10 * np.sin(2 * np.pi * t / 52.18) + np.random.normal(0, 2, 520)

model = TBATS(lags=[1, 52.18], h=52, holdout=True).fit(y)
print(model.model_name)        # TBATS(lambda, {p,q}, phi, <52.18,k>)
fc = model.predict(h=52, interval="prediction")
print(fc.mean[:3])

See the TBATS wiki page for the details.

Documentation

The pages below document the models and their Python classes:

  • ADAM — Augmented Dynamic Adaptive Model — unified ETS/ARIMA/regression framework
  • AutoADAM — Automatic ADAM with distribution and ARIMA order selection
  • ES — Exponential Smoothing (ETS) wrapper for ADAM
  • CES — Complex Exponential Smoothing (CES, AutoCES)
  • MSARIMA — Multiple Seasonal ARIMA (fixed orders) and automatic selection (AutoMSARIMA)
  • OM — Occurrence Model for intermittent demand (OM, OMG, AutoOM)
  • SMA — Simple Moving Average in state-space form with automatic order selection
  • TBATS — Trigonometric seasonality, Box-Cox and ARMA for multiple and non-integer seasonal periods
  • Scale Model — model.sm(), a dynamic model for the scale of the error term
  • Simulation Functions — sim_es, sim_ssarima, sim_ces, sim_gum, sim_sma, sim_oes, and the .simulate() method on fitted models

Book: Svetunkov, I. (2023). Forecasting and Analytics with the Augmented Dynamic Adaptive Model (ADAM). Chapman and Hall/CRC. Online: https://openforecast.org/adam/

See Also

About

smooth is developed and maintained by OpenForecast, a demand forecasting and inventory management consultancy. The package implements the methods we use in our consulting and teach in our training courses.

Metadata

Release files for smooth 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for smooth 1.2.0
File Size Uploaded
smooth-1.2.0.tar.gz 29.8 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for smooth 1.2.0
File
smooth-1.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
smooth-1.2.0-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
smooth-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
smooth-1.2.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
smooth-1.2.0-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
smooth-1.2.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
smooth-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 Details
smooth-1.2.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
smooth-1.2.0-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
smooth-1.2.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
smooth-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
smooth-1.2.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
smooth-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details

Total release size: 131.5 MB

Release files / smooth-1.2.0.tar.gz

Download URL smooth-1.2.0.tar.gz
Size 29.8 MB
Tags Source
SHA-256 checksum
How to use checksums
8303def2b9106c6fc9e24b180134326c57d5b8fdc9fa234a6f81b09663c6a035
BLAKE2b-256 checksum
How to use checksums
2b7345acfa35db20fc7396c4c57100639c5d1c4602d96ab60a9d36394af36593
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL smooth-1.2.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 13.2 MB
Tags CPython 3.14 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
76ba54e90fe1d8b7de3edbe527c84488090247003663e109c9cfb668164ac555
BLAKE2b-256 checksum
How to use checksums
2a351127b7c69f79f1bd018006e4db0c2238ea2fdab27bb67ace676a04aa6a8a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp313-cp313-win_amd64.whl

Download URL smooth-1.2.0-cp313-cp313-win_amd64.whl
Size 14.0 MB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
c55eeafc89a37b8a370462f5a28b1a676fe3bf2a03ae11e2a2104cefd3ef7567
BLAKE2b-256 checksum
How to use checksums
cb22deaec1577030a8f8b4980640fec023fac2b4aade08ad057d96e97f7312a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL smooth-1.2.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 13.2 MB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
3f94b7a828f70e5f155248f2095504b6cb85f7a6f4838133fe2a66f704313bfb
BLAKE2b-256 checksum
How to use checksums
108d5bacbcb3b3e1c86e4b53e533d3e061fbe77e9b58614fc12e248211e0552c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL smooth-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cc624d9cf3766d050d7c4b4dc1670dfda77b53a64418ed03a01c85d8ba5ee239
BLAKE2b-256 checksum
How to use checksums
692b932b1d0d61573b81bd08c65bc00ca52d7324733eb533e56f96a78ec76b5d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp313-cp313-macosx_10_13_x86_64.whl

Download URL smooth-1.2.0-cp313-cp313-macosx_10_13_x86_64.whl
Size 1.2 MB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
393dcd4d9e4d79cb59cdead5231a81280e88871e0c03eae244a51bed4afa6c43
BLAKE2b-256 checksum
How to use checksums
b6701cc9d83513de029713f8b11002f88f54752f4a6e70bd39aa737bb8ed927d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp312-cp312-win_amd64.whl

Download URL smooth-1.2.0-cp312-cp312-win_amd64.whl
Size 14.0 MB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
24b549c175f072fae1aacae5efee6503ab0fdadefc49ec3cfe53e9190fda1c14
BLAKE2b-256 checksum
How to use checksums
4b65b4c9df0dbea36e7b882515cb027b293481b5958489ae774a81c7c10780fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL smooth-1.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 13.2 MB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
96c13a9bf80607a136b82152cc97fe65b29aaaaea69b2ca571802aec6e1a87e2
BLAKE2b-256 checksum
How to use checksums
0693943f3d639397e777e4981def4eaea83652838c08e83a92dd2f0b2bf19e0c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL smooth-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
81fcac912d8086807113e3e15513efd6f65736d77c5a2702229b02c182cbd2a5
BLAKE2b-256 checksum
How to use checksums
8c1195a2c99dd996e00c5b2f12c86fcfb29483388e97fde0e9ff64c0ddfc25db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp312-cp312-macosx_10_13_x86_64.whl

Download URL smooth-1.2.0-cp312-cp312-macosx_10_13_x86_64.whl
Size 1.2 MB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
8d9b6ce0a60698c7dd25267baf676496856964091120d3094bc858fb6c6ee27e
BLAKE2b-256 checksum
How to use checksums
64c3303b70cb0fdb51fcac0681b0008bfbc091fc825a73d7652a977e7f39cde9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp311-cp311-win_amd64.whl

Download URL smooth-1.2.0-cp311-cp311-win_amd64.whl
Size 14.0 MB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
850e6be1dde0bc15194d2c01a804d356aa9ec6e2c276ac29f0ed5bc72caa3f2d
BLAKE2b-256 checksum
How to use checksums
ef7caadf444b19d5b377e2842044aca9acf7f2df24a2f0d397993f23c9db71fb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL smooth-1.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 13.2 MB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9795c0f0c12739a1fac57446c7b73128b4f397afad05bf556720a35ce1ad648d
BLAKE2b-256 checksum
How to use checksums
de1e8e71673c5d82c15eeac13f0beb8221c2c727e77727455123e988fe82a559
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL smooth-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.1 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
a4060dab6a2118aa56bf14c10214b04331776b78b5dc7da50c52b3c6f6b1f807
BLAKE2b-256 checksum
How to use checksums
181f1b695d969963aee2d2b6550691550e832cd0df99aadffe220c1342cb2185
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release files / smooth-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl

Download URL smooth-1.2.0-cp311-cp311-macosx_10_9_x86_64.whl
Size 1.2 MB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
42636b318c9b7bcc1f4d39c30ac97097573448a68a85a8cd438d50c9ead78412
BLAKE2b-256 checksum
How to use checksums
a3d75c03a66c2fa03f458a2ee41c520b0f85f70274646284c505db09be4c3183
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.2.0 This release

14 release files

1.1.0

14 release files

1.0.8

14 release files

1.0.7

14 release files

1.0.6

14 release files

1.0.5

14 release files

1.0.4

16 release files

1.0.3

17 release files

1.0.1

17 release 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