CLI tool that generates a Cutter-Sanborn identifier, given a first and a last name.
Project description
CSAN: Cutter-Sanborn Number Generator
csan is a CLI tool that generates a Cutter-Sanborn identifier, given a first and a last name.
The Cutter-Sanborn identifier, commonly called "Cutter number", is an alphanumeric code that forms part of the call number in library classification systems in order to arrange books alphabetically by author. It consists of the first letter of the author's last name followed by three-digit number derived from a predefined table. This system was originally developed by Charles Cutter, and revised by Kate Sanborn.
Installation
You can install this tool using uv or pip:
uv tool install csan
pip install csan
Usage
usage: csan [-h] [-f FIRST_NAME] -l LAST_NAME [-t TITLE] [-v]
Cutter-Sanborn identifier generator.
options:
-h, --help show this help message and exit
-f, --first-name FIRST_NAME
-l, --last-name LAST_NAME
-t, --title TITLE
-v, --verbose
For instance:
csan -f John -l Doe-> D649csan -f John -l Doe -t "My Book"-> D649mcsan -f First -l Last -v-> L349, with log output to the consolecsan -f Jorge -l "De la Cruz"-> D332
Examples
The following cutter numbers are expected, for their respective names. This is achieved with cutter_number function from csan.cutter. When run via CLI, the output is the cutter identifier (cutter_identifier function), which also includes the cutter number.
| First Name | Last Name | Cutter Number |
|---|---|---|
| Charles | Dickens | 548 |
| Jane | Austen | 933 |
| Mark | Twain | 969 |
| Samuel | Clemens | 625 |
| George | Orwell | 79 |
| Eric | Blair | 635 |
| Virginia | Woolf | 913 |
| Leo | Tolstoy | 654 |
| Fyodor | Dostoyevsky | 724 |
| Herman | Melville | 531 |
| Emily | Dickinson | 553 |
| William | Shakespeare | 527 |
| Agatha | Christie | 555 |
| Stephen | King | 52 |
| Jorge | De la Cruz | 332 |
| Ivan | Smith | 649 |
| William | Smith | 664 |
| Emile | Zola | 86 |
| VERA | LVX | 979 |
| Lord | Sith | 622 |
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 csan-0.3.0.tar.gz.
File metadata
- Download URL: csan-0.3.0.tar.gz
- Upload date:
- Size: 69.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1eaa204cc5f57f0e12e7a12226f1af2afbcfb703aea5d02cb64412da1d23f10
|
|
| MD5 |
4e69163e12be44a4cd66598e2f7c7d45
|
|
| BLAKE2b-256 |
67dcbe77533b48b9a0e55cd8716bfe65f99cf99322d17b68c28592fe5fb3d8ec
|
File details
Details for the file csan-0.3.0-py3-none-any.whl.
File metadata
- Download URL: csan-0.3.0-py3-none-any.whl
- Upload date:
- Size: 69.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.9.15 {"installer":{"name":"uv","version":"0.9.15","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2a0ac3dc63d1e629e92b5a21b52c8429c7e872bfacff7bec6effc223aa02320
|
|
| MD5 |
75a5f62c4684554515d564fa11645918
|
|
| BLAKE2b-256 |
9fca050f9e030eb4526962596d884f3e3204868379952b91c691d146f2637963
|