Skip to main content

Track chemical inventories and produce inventories and door warnings.

Project description

Chemdb is a chemical inventory system written in Python using the Django framework. It makes it easy for us to keep track of what we have in the lab. It also generates the required safety information automatically (door warnings and inventories).




I’ve packaged chemdb for Gentoo. You need layman and my wtk overlay. Install with:

# emerge -av app-portage/layman
# layman --add wtk
# emerge -av dev-python/chemdb


If you’re installing by hand or packaging calibcant for another distribution, you’ll need the following dependencies:








dev-python/django-grappelli [1]

Installing by hand

Chemdb is available as a Git repository:

$ git clone git://

See the homepage for details. To install the checkout, run the standard:

$ python install



If you don’t have a Django project and you just want to run chemdb as a stand-alone service, you can use the example project written up in example. Set up the project (once):

$ python example/ syncdb

See the Django documentation for more details.

You may also want to load some example data, to make your initial browsing more interesting:

$ python example/ loaddata example_data


Run the app on your local host (as many times as you like):

$ python example/ runserver

You may need to add the current directory to PYTHONPATH so python can find the chemdb package. If you’re running bash, that will look like:

$ PYTHONPATH=".:$PYTHONPATH" python example/ runserver


This project was largely build following the Django tutorial. That’s a good place to start if you’re new to Django.

Other resources

You can search CAS Registry numbers at NIST. This is useful for decoding MSDS information.

NFPA fire diamond

These are the meanings of the various NFPA warnings:

  • Blue: Health Hazard

    1. Hazard no greater than ordinary material

    2. May cause irritation; minimal residual injury

    3. Intense or prolonged exposure may cause incapacitation; Residual injury may occur if not treated

    4. Exposure could cause serious injury even if treated

    5. Exposure may cause death

  • Red: Fire Hazard

    1. Will not burn

    2. Must be preheated for ignition; flashpoint above 200°F (93°C)

    3. Must be moderately heated for ignition, flashpoint above 100°F (38°C)

    4. Ignition may occur under most ambient conditions, Flashpoint below 100°F (38°C)

    5. Extremely flammable and will readily disperse through air under standard conditions, flashpoint below 73°F (23°C)

  • Reactivity hazards:

    1. Stable

    2. May become unstable at elevated temperatures and pressures. May be mildly water reactive

    3. Unstable; may undergo violent decomposition, but will not detonate. May form explosive mixtures with water

    4. Detonates with strong ignition source

    5. Readily detonates

  • Special Hazards have the following codes:

    • OX strong oxidizer

    • W̶ water reactive

    • SA simple asphyxiants (The only gases for which this symbol is permitted are nitrogen, helium, neon, argon, krypton, and xenon.)


This project is distributed under the GNU General Public License Version 3 or greater.


W. Trevor King

Project details

Release history Release notifications | RSS feed

This version


Supported by

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