Skip to main content

thingery

    ## Project overview
    
    **thingery** is a comprehensive physical and chemical reference data
    library. It bundles the periodic table (with all known isotopes),
    material properties, food nutrition data, measurement scales,
    physical constants, color definitions, and standardised protocols
    into a single installable Python package.
    
    thingery is designed to be:
    
    - **Comprehensive** — full periodic table, common materials, common
      foods, etc. all in one place.
    - **Structured** — every record is a typed dataclass with documented
      fields, so IDEs can autocomplete and type-checkers can validate.
    - **Scriptable** — first-class CLI plus a clean Python API.
    - **Offline-first** — no network calls at runtime, all data is
      bundled.
    
    ## Quick start
    
    ### Install
    
    ```bash
    pip install thingery
    ```
    
    ### Query an element
    
    ```python
    from thingery.elements import ELEMENTS
    
    # ELEMENTS is keyed by atomic number
    hydrogen = ELEMENTS[1]()
    print(hydrogen.name, hydrogen.symbol, hydrogen.atomic_mass)
    # Hydrogen H 1.008
    ```
    
    ### Use the CLI
    
    ```bash
    thingery --help
    thingery list-elements
    thingery element hydrogen
    thingery food apple
    ```
    
    ## Documentation
    
    Full documentation lives under `docs/` and is published at
    <https://www.solutionsbrewer.com/thingery/>. Key entry points:
    
    - [Quick start](docs/getting-started.md)
    - [Elements](docs/elements.md)
    - [Materials](docs/materials.md)
    - [Food](docs/food.md)
    - [Scales](docs/scales.md)
    - [CLI reference](CLI.md)
    - [API reference](docs/api/)
    
    ## Development
    
    ### Setup
    
    ```bash
    git clone https://github.com/solubrew/thingery.git
    cd thingery
    pip install -e ".[dev]"
    ```
    
    ### Run the tests
    
    ```bash
    pytest tests/ -v
    ```
    
    ### Lint
    
    ```bash
    ruff check thingery/
    ```
    
    ### Project layout
    
    ```
    thingery/
      elements/        # Periodic table (one module per element)
      materials/       # Material properties
      food/            # Nutrition data
      scales/          # Measurement scales
      numbers/         # Number theory helpers
      words/           # Word/lexical helpers
      models/          # Core dataclasses (Element, Isotope, etc.)
      cli.py           # Click CLI entry point
      constants.py     # Physical constants
      colors.py        # Color definitions
      scales.py        # Scale registry
      protocols.py     # Standard protocols
      _data_/          # Bundled data files
      institutions/    # Institutional reference data
    
    tests/
      unit/            # Unit tests
    
    docs/              # mkdocs documentation
    ```
    
    ### Adding a new element
    
    1. Create `thingery/elements/<lowercase_name>.py` with a dataclass
       subclass of `thingery.models.Element`. Each element module
       follows the same shape — see `thingery/elements/hydrogen.py`
       for the template.
    2. Add the import + class to `thingery/elements/__init__.py` so it's
       exported by name.
    3. Add the class to the `ELEMENTS` dict in
       `thingery/elements/__init__.py`.
    4. Add a test in `tests/unit/test_elements.py`.
    5. Update `CHANGES.md`.
    
    ### Adding a new material / food / scale
    
    Each subsystem follows the same pattern: a subdirectory containing
    one module per record, plus a registry in the subdirectory's
    `__init__.py`.
    
    ## License
    
    MIT — see `LICENSE`.

Metadata

Release files for thingery 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for thingery 0.0.1
File Interpreter ABI Platform Actions
thingery-0.0.1-cp312-cp312-manylinux_2_39_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.39+ x86-64 Details for thingery-0.0.1-cp312-cp312-manylinux_2_39_x86_64.whl

Release files / thingery-0.0.1-cp312-cp312-manylinux_2_39_x86_64.whl

Download URL thingery-0.0.1-cp312-cp312-manylinux_2_39_x86_64.whl
Size 93.7 kB
Tags CPython 3.12 Linux glibc 2.39+ x86-64
SHA-256 checksum
How to use checksums
ebc4b2f5837fef971dbfb0c04d5ac5f5b4e50654fea0218bd9aaac13d3b9b62e
BLAKE2b-256 checksum
How to use checksums
63fabf0153c826a91ee986b0a6cab6007e9d49c17e0d58f4e9b779c9700b3232
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Security for thingery 0.0.1

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

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.

Release history Release notifications | RSS feed

This release

0.0.1 This release

1 release file No provenance

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