Skip to main content

Python class to manage, check and sort CAS Registry Numbers® (CAS RN®)

Project description

casregnum

PyPI Version CI codecov
Python Versions License
GitHub stars

Python class to manage, check and sort CAS Registry Numbers® (CAS RN®).

Table of Contents
  1. Description
  2. How to install and uninstall?
  3. How to use?
  4. Examples

Description

casregnum is a Python class to manage, check, and sort CAS Registry Numbers® (CAS RN®) by the Chemical Abstracts Service. Check their official FAQ website for more information on CAS numbers.

How to install and uninstall

casregnum can be installed from the Python Package Index (PyPI) repository by calling

pip install casregnum

or

uv add casregnum

In order to uninstall casregnum from your local environment use

pip uninstall casregnum

or

uv remove casregnum

How to use

casregnum provides the CAS class for creating a CAS Registry Number® instance:

from casregnum import CAS

substance = CAS(cas_rn)

Note that cas_rn can either be an integer or a string. If you provide an integer, the CAS class will take care of formatting the CAS RN® for you. If you provide a string, it needs to comply with the CAS number formatting rules, i. e. 2-7 digits dash two digits dash single check digit (_____00-00-0).

The CAS class offers the following three properties:

.cas_string   # CAS number formatted as a string
.cas_integer  # CAS number as an integer
.check_digit  # check digit of the CAS number

Examples:

from casregnum import CAS

caffeine = CAS(58_08_2)
theine = CAS("58-08-2")
l_lacticacid = CAS(79_33_4)
d_lacticacid = CAS(10326_41_7)
octanes = [
    CAS(111_65_9), CAS(592_27_8), CAS(589_81_1), CAS(589_53_7), CAS( 590_73_8), CAS(584_94_1),
    CAS(589_43_5), CAS(592_13_2), CAS(563_16_6), CAS(583_48_2), CAS( 619_99_8), CAS(564_02_3),
    CAS(540_84_1), CAS(560_21_4), CAS(565_75_3), CAS(609_26_7), CAS(1067_08_9), CAS(594_82_1),
]

print(f"str: {caffeine}")
print(f"int: {theine.cas_integer}")
print(f"check digit: {caffeine.check_digit}")
print(f"{caffeine} == {theine}: {caffeine == theine}")
print(f"{caffeine} > {theine}: {caffeine > theine}")
print(f"{l_lacticacid} > {d_lacticacid}: {l_lacticacid > d_lacticacid}")
print(f"{l_lacticacid} < {d_lacticacid}: {l_lacticacid < d_lacticacid}")

for i, isomer in enumerate(sorted(octanes), start=1):
    print(f"{isomer:>9}", end=", ")
    if i % 6 == 0:
        print()

This will generate the following output:

str: 58-08-2
int: 58082
check digit: 2
58-08-2 == 58-08-2: True
58-08-2 > 58-08-2: False
79-33-4 > 10326-41-7: False
79-33-4 < 10326-41-7: True
111-65-9,  540-84-1,  560-21-4,  563-16-6,  564-02-3,  565-75-3,
583-48-2,  584-94-1,  589-43-5,  589-53-7,  589-81-1,  590-73-8,
592-13-2,  592-27-8,  594-82-1,  609-26-7,  619-99-8, 1067-08-9,

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

casregnum-1.1.1.tar.gz (43.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

casregnum-1.1.1-py3-none-any.whl (5.4 kB view details)

Uploaded Python 3

File details

Details for the file casregnum-1.1.1.tar.gz.

File metadata

  • Download URL: casregnum-1.1.1.tar.gz
  • Upload date:
  • Size: 43.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.17

File hashes

Hashes for casregnum-1.1.1.tar.gz
Algorithm Hash digest
SHA256 f122f18f95b78c17a8de4864583b3eea1acc66585a692abe05e2d40846e06274
MD5 f06def471e1af155a74d72e4a0ddfe16
BLAKE2b-256 b66dff5e02ff778a53e75cbadb6ba26d0384c61247b8411248bd698104c1a900

See more details on using hashes here.

File details

Details for the file casregnum-1.1.1-py3-none-any.whl.

File metadata

  • Download URL: casregnum-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.8.17

File hashes

Hashes for casregnum-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f3539a5e0f0955011ecbf4c0aa0ed5ed7ac181b95340e214928f80d65269fe23
MD5 01a47557d3e15301c20673c8f5b4452e
BLAKE2b-256 18496c9d7d5a509d156bc1ac5977d667ae0a337ef911a52b387d65b01d601ee2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page