snuggs
Snuggs are s-expressions for Numpy
Decision gist · record as of 2026-08-14
Yes, if you need to evaluate user-supplied or serialized array expressions safely and don't require high performance. The low install friction, permissive license, and lack of vulnerabilities make it a straightforward choice for expression-based workflows. Not recommended if you need optimized array computation; use numexpr or raw NumPy instead.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Low install friction with only two runtime dependencies (numpy and pyparsing).
- The package is actively maintained with recent commits, though the latest release was in 2019.
License · maintenance · safety
MIT (permissive) — MIT license is permissive; you can use, modify, and distribute snuggs freely in commercial and private projects with minimal restrictions.
last release 2019-09-18 (2522 days) · last repo commit 2026-06-29 · 18 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 560,186 downloads/mo, #6,005 on PyPI
Alternatives
Verify before relying
import snuggs
import numpy as np
# Simple arithmetic
snuggs.eval('(+ 1 2)')
# 3
# Array operations
snuggs.eval("(+ (asarray 1 1) (asarray 2 2))")
# array([3, 3])
# With context variables
snuggs.eval("(+ (asarray 1 1) b)", b=np.array([2, 2]))
# array([3, 3])- Whether the package is actively developed or maintained in maintenance mode only (last release 2019, but recent commits in 2026)
- Python version compatibility and support range (requires_python field is empty)
What it is and what it does
Snuggs is a small expression evaluator that lets you write NumPy computations using Lisp-like s-expression syntax instead of Python. You pass a string like `(+ 1 2)` or `(mean (asarray 1 2 4))` to snuggs.eval(), and it parses and executes the expression, returning the result. It wraps NumPy functions and operators (arithmetic, logical, and higher-order functions like map and partial) in a functional, parenthesis-heavy syntax.
The main use case is writing simple, expression-based array calculations—particularly useful when you need to serialize computations as strings or accept user-provided formulas as input. It supports passing NumPy arrays as named context variables, so expressions can reference external data. The package is lightweight (only numpy and pyparsing as dependencies) and has no known security vulnerabilities, but performance is not optimized; the documentation explicitly notes it lacks the multithreading and temporary-elimination optimizations of libraries like numexpr.
Use it for
- Accept user-provided mathematical expressions as strings and evaluate them against NumPy arrays without parsing Python code.
- Serialize array computations as s-expressions for storage, transmission, or later evaluation.
- Write simple calculator-style programs that combine NumPy functions with arithmetic and logical operators.
- Build domain-specific languages or configuration systems that need to express array transformations functionally.
- Prototype numerical algorithms using Lisp-like syntax before translating to optimized Python or compiled code.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to evaluate user-supplied or serialized array expressions safely and don't require high performance.
The low install friction, permissive license, and lack of vulnerabilities make it a straightforward choice for expression-based workflows. Not recommended if you need optimized array computation; use numexpr or raw NumPy instead.
Install
snuggs on PyPI
Before you install
Low install friction with only two runtime dependencies (numpy and pyparsing). The package is actively maintained with recent commits, though the latest release was in 2019.
License in practice
MIT license is permissive; you can use, modify, and distribute snuggs freely in commercial and private projects with minimal restrictions.
Quickstart
import snuggs
import numpy as np
# Simple arithmetic
snuggs.eval('(+ 1 2)')
# 3
# Array operations
snuggs.eval("(+ (asarray 1 1) (asarray 2 2))")
# array([3, 3])
# With context variables
snuggs.eval("(+ (asarray 1 1) b)", b=np.array([2, 2]))
# array([3, 3])
Verify before relying
- Whether the package is actively developed or maintained in maintenance mode only (last release 2019, but recent commits in 2026)
- Python version compatibility and support range (requires_python field is empty)
Package facts
| License | MIT permissive |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 2 packagesnumpypyparsing |
| Maintenance | Actively maintained 2,522 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 560,186 / month, #6,005 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: snuggs-1.4.7-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “lisp expressions for numpy”
- snuggsSnuggs evaluates s-expressions (Lisp-like syntax) that operate on…
- sexpdataParses and serializes S-expressions (Lisp-style symbolic expressions)…
- consImplements Lisp/Scheme-style cons operations (cons, car, cdr) for…
Give your agent the search over MCP, or paste the wish link into any chat.
More Mathematics packages
NetworkX provides data structures and algorithms for creating, analyzing, and manipulating graphs and networks, supporting everything from simple undirected graphs to complex directed and weighted networks.
kiwisolver is a Python binding to a fast C++ implementation of the Cassowary constraint solver, enabling you to solve systems of linear constraints and inequalities.
Install it if you need to solve constraint systems; skip it if you only need simple linear algebra.
SymPy is a Python library for symbolic mathematics, performing algebraic manipulation, calculus, equation solving, and mathematical expression simplification without numerical approximation.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
PyTorch provides GPU-accelerated tensor computation and automatic differentiation for building and training deep neural networks in Python.
onnxruntime loads and executes Open Neural Network Exchange (ONNX) models with a focus on inference performance across CPUs and accelerators.
Install it if you have ONNX models to run in production or development.
See also cons · sexpdata · etuples · pampy · numexpr · json-numpy · nptyping · numpy-groupies · tag-expressions · lovely-numpy