Skip to main content

csan (Python package)

Cutter call numbers for library cataloging — Cutter-Sanborn three-figure and Library of Congress — as fast Rust-powered Python bindings, including the csan command-line tool.

pip install csan        # library + CLI
uv tool install csan    # just the CLI, isolated
import csan

csan.cutter_sanborn(forename="Charles", surname="Dickens",
                      title="Oliver Twist")   # 'D548o'
csan.cutter_loc(surname="Carter")       # 'C378'

csan.cutter_sanborn_detailed(surname="Borges")
# {'alpha_prefix': 'B', 'numeric': 732, 'alpha_suffix': None,
#  'entry': 'Borg', 'formatted': 'B732'}

Every function accepts forename, surname, and title keyword arguments (at least one must be non-blank; blank strings count as absent). cutter_sanborn* also take prefix_len and suffix_len; cutter_loc* take max_len (clamped to 4). The *_detailed variants return a dict of the number's parts plus the rendered call number under "formatted". Unusable input raises ValueError.

The console script is the same interface as the standalone Rust binary:

csan --cutter-sanborn --cutter-loc \
  --forename Charles --surname Dickens --title "Oliver Twist"

Building from source

Built with maturin from crates/csan-py in the main repository (Rust toolchain required):

pip install maturin
maturin develop -m crates/csan-py/Cargo.toml       # editable install
maturin build --release -m crates/csan-py/Cargo.toml

Releases are published to PyPI automatically: each GitHub release carries abi3 wheels (CPython 3.9+) for Linux (manylinux and musllinux), macOS, and Windows on x86_64 and aarch64, plus the sdist, and the Publish to PyPI workflow uploads them once the release succeeds.

License

Licensed under either of Apache License, Version 2.0 or MIT license at your option.

Metadata

Release files for csan 0.6.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 csan 0.6.0
File Size Uploaded Provenance
csan-0.6.0.tar.gz 114.2 kB With provenance Details

Built distributions (wheels)

Table of built distributions (wheels) for csan 0.6.0
File
csan-0.6.0-cp39-abi3-win_arm64.whl CPython 3.9 abi3 Windows ARM64 Details
csan-0.6.0-cp39-abi3-win_amd64.whl CPython 3.9 abi3 Windows x86-64 Details
csan-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl CPython 3.9 abi3 Linux musl 1.2+ x86-64 Details
csan-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl CPython 3.9 abi3 Linux musl 1.2+ ARM64 Details
csan-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 abi3 Linux glibc 2.17+ x86-64 Details
csan-0.6.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.9 abi3 Linux glibc 2.17+ ARM64 Details
csan-0.6.0-cp39-abi3-macosx_11_0_arm64.whl CPython 3.9 abi3 macOS 11.0+ ARM64 Details
csan-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl CPython 3.9 abi3 macOS 10.12+ x86-64 Details

Total release size: 4.2 MB

Release files / csan-0.6.0.tar.gz

Download URL csan-0.6.0.tar.gz
Size 114.2 kB
Tags Source
SHA-256 checksum
How to use checksums
d7c4d8f8a6766e0eb506a945aa9d032a7ec68d239084e8f0903385c776bfe5bd
BLAKE2b-256 checksum
How to use checksums
cba872563b8038c9bcaec4bede738e1bfe2de3c9a50f4841617542c7eaa91382
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 22, 2026.

Transparency log

Release files / csan-0.6.0-cp39-abi3-win_arm64.whl

Download URL csan-0.6.0-cp39-abi3-win_arm64.whl
Size 364.7 kB
Tags CPython 3.9 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
8eea3b09f05984c58c0e1619605afe62db9134622c05338fe438c7e94bb75572
BLAKE2b-256 checksum
How to use checksums
6b5b2c110039d3b1b83cfa6f3069bcd964c79a41a7d31eba3e741f36ed636fb8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 22, 2026.

Transparency log

Release files / csan-0.6.0-cp39-abi3-win_amd64.whl

Download URL csan-0.6.0-cp39-abi3-win_amd64.whl
Size 378.7 kB
Tags CPython 3.9 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
e47ad82c993b011bbcd9bd21b73b5c09db678757e1fd869878ccbc629cfeddcc
BLAKE2b-256 checksum
How to use checksums
1a32678f4dbee481095c4dcdc12effcee93b8974ad9542a380ec1a63a9882fb7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 22, 2026.

Transparency log

Release files / csan-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl

Download URL csan-0.6.0-cp39-abi3-musllinux_1_2_x86_64.whl
Size 731.5 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64 abi3
SHA-256 checksum
How to use checksums
fd84e9750f9f8e6e5bb1d6ff5d082e479c9ee8b68df78070c34c364ac5094e35
BLAKE2b-256 checksum
How to use checksums
94c78831c00a2249fd8b6d794ed0d6e6e4489c8c9834abb63cf4810ca5c0b97f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 22, 2026.

Transparency log

Release files / csan-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl

Download URL csan-0.6.0-cp39-abi3-musllinux_1_2_aarch64.whl
Size 679.2 kB
Tags CPython 3.9 Linux musl 1.2+ ARM64 abi3
SHA-256 checksum
How to use checksums
6b3469914a6b22040cfb322784e8cce286bb3b1bc35af6fcd549c8a153ffff54
BLAKE2b-256 checksum
How to use checksums
9bf6573949efca7f728670d6b3e87fa3f63f77ec12031943b9e11799b80503b4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 22, 2026.

Transparency log

Release files / csan-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL csan-0.6.0-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 495.9 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
54c0632fe4ec6287d3ca0ac4012ec79b6fca9009c16d0e05361cc1120ef0cd17
BLAKE2b-256 checksum
How to use checksums
b1b9b9cfdc484f0dd4234c169ef466610e934f18de65b34a6b037bf8467f013e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 22, 2026.

Transparency log

Release files / csan-0.6.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL csan-0.6.0-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 500.8 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
d6762ac8e31f4b27d3cfca895bd2313cb8d22d55e967c052bf2bf2a9431bd93e
BLAKE2b-256 checksum
How to use checksums
45d4400430741f3eeff547f8ab8dd3826a8909ed3df8a6fbf50d797f17d84830
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 22, 2026.

Transparency log

Release files / csan-0.6.0-cp39-abi3-macosx_11_0_arm64.whl

Download URL csan-0.6.0-cp39-abi3-macosx_11_0_arm64.whl
Size 434.8 kB
Tags CPython 3.9 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8fa188e6d4f0ba385973664c0aef1232ff2989a5b550a3d26ed7078dfc8b1a8f
BLAKE2b-256 checksum
How to use checksums
4e9e875e47cbc9ec619b2be188012c91fce0d556d16fa0615c00f7b7a32c12a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 22, 2026.

Transparency log

Release files / csan-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl

Download URL csan-0.6.0-cp39-abi3-macosx_10_12_x86_64.whl
Size 457.4 kB
Tags CPython 3.9 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
5a60e53a5e06e7805564993f589c00b6a161525e380c85bacbedb4ffdef7510c
BLAKE2b-256 checksum
How to use checksums
2a494927132bb5821bb9bd421d89dc77dfdd00f9a8994753903724b8fe7f6bde
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 22, 2026.

Transparency log

Security for csan 0.6.0

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.

Full provenance

All 9 files in this release have been uploaded with provenance metadata.

Select from 9 files

Attestation for csan-0.6.0.tar.gz

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 22, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

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