Skip to main content

An MSDS parser.

Project description

Tungsten

Tungsten

A material safety data sheet parser.

Installation

Tungsten is available on PyPi via pip. To install, run the following command:

pip install tungsten-sds

Usage Example

import json
from pathlib import Path

from tungsten import SigmaAldrichSdsParser, SdsQueryFieldName, \
    SigmaAldrichFieldMapper

sds_parser = SigmaAldrichSdsParser()
sds_path = Path("CERILLIAN_L-001.pdf")

# Convert PDF file to parsed data
with open(sds_path, "rb") as f:
    sds = sds_parser.parse_to_ghs_sds(f)

field_mapper = SigmaAldrichFieldMapper()

fields = [
    SdsQueryFieldName.PRODUCT_NAME,
    SdsQueryFieldName.PRODUCT_NUMBER,
    SdsQueryFieldName.CAS_NUMBER,
    SdsQueryFieldName.PRODUCT_BRAND,
    SdsQueryFieldName.RECOMMENDED_USE_AND_RESTRICTIONS,
    SdsQueryFieldName.SUPPLIER_ADDRESS,
    SdsQueryFieldName.SUPPLIER_TELEPHONE,
    SdsQueryFieldName.SUPPLIER_FAX,
    SdsQueryFieldName.EMERGENCY_TELEPHONE,
    SdsQueryFieldName.IDENTIFICATION_OTHER,
    SdsQueryFieldName.SUBSTANCE_CLASSIFICATION,
    SdsQueryFieldName.PICTOGRAM,
    SdsQueryFieldName.SIGNAL_WORD,
    SdsQueryFieldName.STATEMENTS,
    SdsQueryFieldName.HNOC_HAZARD,
]

# Serialize parsed data to JSON and dump to a file
with open(sds_path.stem + ".json", "w") as f:
    sds.dump(f)
    # Also print out mapped fields
    for field in fields:
        print(field.name, field_mapper.get_field(field, json.loads(sds.dumps())))

License

This work is licensed under MIT. Media assets in the assets directory are licensed under a Creative Commons Attribution-NoDerivatives 4.0 International Public License.

Notes

This library currently comes bundled with a new build of tabula-java, which is also licensed under MIT, to see the full license, see https://github.com/tabulapdf/tabula-java/blob/master/LICENSE.

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

tungsten_sds-0.8.0.tar.gz (12.4 MB view details)

Uploaded Source

Built Distribution

tungsten_sds-0.8.0-py3-none-any.whl (12.4 MB view details)

Uploaded Python 3

File details

Details for the file tungsten_sds-0.8.0.tar.gz.

File metadata

  • Download URL: tungsten_sds-0.8.0.tar.gz
  • Upload date:
  • Size: 12.4 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.2 Linux/5.15.0-1034-azure

File hashes

Hashes for tungsten_sds-0.8.0.tar.gz
Algorithm Hash digest
SHA256 65d3d11768036bbdb2a65a8a06cb5b08e81091b7b3a9ca35a670096d36f9345c
MD5 e5e9c90476bf6ddf0fa9db769d525df1
BLAKE2b-256 8ef0d61b3a1af1838c479d060c5dc68a5bd20876f0fbfbee6db3742b518b97ed

See more details on using hashes here.

File details

Details for the file tungsten_sds-0.8.0-py3-none-any.whl.

File metadata

  • Download URL: tungsten_sds-0.8.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.2 Linux/5.15.0-1034-azure

File hashes

Hashes for tungsten_sds-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de1ec38287e0a315fda837f34fd125899428fcff4fe7125c1868fcb45fecfceb
MD5 c9feb6eed844394ad65b7b1784b20cd5
BLAKE2b-256 3bfafff50d3393a579d0f16fe612cc58bef1826d93a29ecdd53d900498256925

See more details on using hashes here.

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