Symbolic and units-aware calculations with LaTeX rendering for Jupyter notebooks, optimized for Quarto PDF documentation.
Project description
keecas
Symbolic and units-aware calculations for Jupyter notebooks with beautiful LaTeX output.
What is keecas?
keecas minimizes boilerplate for symbolic calculations using Python dicts as the core container - keys represent left-hand side symbols, values represent right-hand side expressions. Built on SymPy, Pint, and Pipe, it provides automatic unit conversion and LaTeX rendering for Quarto documents.
Quick Example
from keecas import symbols, u, pc, show_eqn
# 1. Define symbols with LaTeX notation
F, A, sigma = symbols(r"F, A, \sigma")
# 2. Cell-local parameters
_p = {
F: 10 * u.kN,
A: 50 * u.cm**2,
}
# 3. Cell-local expressions
_e = {
sigma: "F / A" | pc.parse_expr
}
# 4. Evaluation with pipe operations
_v = {
k: v | pc.subs(_e | _p) | pc.convert_to([u.MPa]) | pc.N
for k, v in _e.items()
}
# 5. Display as LaTeX amsmath
show_eqn([_p | _e, _v])
Output:
\begin{align}
F & = 10{\,}\text{kN} & \\[8pt]
A & = 50{\,}\text{cm}^{2} & \\[8pt]
\sigma & = \dfrac{F}{A} & = 2.0{\,}\text{MPa}
\end{align}
See hello_world.ipynb for more examples.
Installation
pip install keecas
# or
uv add keecas
Quick Start
Launch JupyterLab with keecas template:
keecas edit # Minimal template
keecas edit --template quickstart # Comprehensive examples
keecas edit analysis.ipynb # Open specific notebook
keecas edit --temp # Temporary session
Configuration
Manage global and local settings via TOML files:
# Initialize configuration
keecas config init --global
# Edit configuration
keecas config edit --global # Terminal editor
keecas config open --local # System editor (GUI)
# View configuration
keecas config show # Merged settings
keecas config path # File locations
Key Features
- Dict-based equations: Natural mapping of LHS to RHS
- Pipe operations: Chain operations like
expr | pc.subs(...) | pc.N - Unit-aware: Automatic conversion between Pint and SymPy units
- LaTeX output: Renders as amsmath align blocks
- Cross-references: Label generation for Quarto documents
- Multi-language: 10 languages supported (5 fully localized)
- Configuration: Global/local TOML-based settings
Documentation
Full documentation: https://kompre.github.io/keecas
License
MIT License - see LICENSE
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file keecas-1.1.1.tar.gz.
File metadata
- Download URL: keecas-1.1.1.tar.gz
- Upload date:
- Size: 69.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
927bd0986db21b533b273a9c37e246ccc7f01a02196437c9764355758729a813
|
|
| MD5 |
a3f91a35f63923008604d6c306d615af
|
|
| BLAKE2b-256 |
d358023d6f1faf7d16c194221bbd0efd593c23803f80894e39bc51d38be133b6
|
Provenance
The following attestation bundles were made for keecas-1.1.1.tar.gz:
Publisher:
release.yml on kompre/keecas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keecas-1.1.1.tar.gz -
Subject digest:
927bd0986db21b533b273a9c37e246ccc7f01a02196437c9764355758729a813 - Sigstore transparency entry: 998603248
- Sigstore integration time:
-
Permalink:
kompre/keecas@0db5248f0be325e666858e502829d9c6cda2e876 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/kompre
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0db5248f0be325e666858e502829d9c6cda2e876 -
Trigger Event:
pull_request_target
-
Statement type:
File details
Details for the file keecas-1.1.1-py3-none-any.whl.
File metadata
- Download URL: keecas-1.1.1-py3-none-any.whl
- Upload date:
- Size: 83.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9346fd6874cf0a41c42a460d59cf45fb75b669cb2edaed20238c08453d5ddca6
|
|
| MD5 |
f65125f6177009663f6cafccc0ea0d5c
|
|
| BLAKE2b-256 |
4e908271bba037af4a8ae5d310a247a00aaf00950c5533470b71dc8d45efce89
|
Provenance
The following attestation bundles were made for keecas-1.1.1-py3-none-any.whl:
Publisher:
release.yml on kompre/keecas
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
keecas-1.1.1-py3-none-any.whl -
Subject digest:
9346fd6874cf0a41c42a460d59cf45fb75b669cb2edaed20238c08453d5ddca6 - Sigstore transparency entry: 998603298
- Sigstore integration time:
-
Permalink:
kompre/keecas@0db5248f0be325e666858e502829d9c6cda2e876 -
Branch / Tag:
refs/heads/main - Owner: https://github.com/kompre
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0db5248f0be325e666858e502829d9c6cda2e876 -
Trigger Event:
pull_request_target
-
Statement type: