Metadata-Version: 2.4
Name: nistchempy
Version: 1.0.5
Summary: A simple Python wrapper around the NIST Chemistry WebBook
Author-email: "Ivan Yu. Chernyshov" <ivan.chernyshoff@gmail.com>
Maintainer-email: "Ivan Yu. Chernyshov" <ivan.chernyshoff@gmail.com>
License: MIT License
        
        Copyright (c) 2022 Ivan Chernyshov
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
        
Project-URL: documentation, https://ivanchernyshov.github.io/NistChemPy/
Project-URL: repository, https://github.com/IvanChernyshov/NistChemPy.git
Project-URL: issues, https://github.com/IvanChernyshov/NistChemPy/issues
Keywords: nist,chemistry webbook,api,chemoinformatics
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Operating System :: OS Independent
Classifier: Intended Audience :: Science/Research
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Scientific/Engineering :: Chemistry
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE.md
Requires-Dist: importlib-resources>=1.1.0; python_version < "3.9"
Requires-Dist: requests
Requires-Dist: pandas
Requires-Dist: bs4
Dynamic: license-file

# NistChemPy: Python API for NIST Chemistry WebBook

**NistChemPy** is an unofficial API for the [NIST Chemistry WebBook](https://webbook.nist.gov/).

This package not only automates the search and data extraction processes but also bypasses the WebBook's limitation of 400 compounds per search.

Currently, **NistChemPy** enables the extraction of basic compound properties as well as IR, THz, MS, and UV-Vis spectra and gas chromatography data.

Additional properties are available via URLs that link to their respective web pages, with potential support for direct extraction in future updates.


## Main features

1. Search:

    - Search by [name](https://webbook.nist.gov/chemistry/name-ser/), [chemical formula](https://webbook.nist.gov/chemistry/form-ser/), [CAS RN](https://webbook.nist.gov/chemistry/cas-ser/), [InChI / InChI Key](https://webbook.nist.gov/chemistry/inchi-ser/): `nistchempy.run_search`.
    
    - Search by [structure](https://webbook.nist.gov/chemistry/str-file/), including substructural search: `nistchempy.run_structural_search`.
    
    - Search over the table of pre-extracted components: `nistchempy.get_all_data`. This is useful considering that NIST Chemistry WebBook returns maximum of 400 found compounds only.


2. Compound info (`nistchempy.compound.NistCompound`):
    
    - Object contains all properties and corresponding URLs.
    
    - Supports extraction of:
        
        - 2D and 3D atomic coordinates.
        
        - Spectral data (IR, MS, UV-Vis).
        
        - Gas chromatography data.
    
    - Extraction of other data is under development: it's a good idea to expect two feature updates per year.

For more details see the CookBook section of the [documentation](https://ivanchernyshov.github.io/NistChemPy/).


## Extracted data

Before using **NistChemPy**, please check [NistChemData](https://github.com/IvanChernyshov/NistChemData).

This repository contains information that has already been extracted from the WebBook using **NistChemPy** functionality.

By doing so, you can bypass the web-scraping stage and proceed directly to data manipulation.


## Installation

Install NistChemPy using [pip](https://pypi.org/project/NistChemPy/):

```
pip install nistchempy
```

> [!WARNING]
> Please note that versions starting with 1.0.0 are not backward compatible with the older alpha versions due to significant changes in the code structure.
> You may need to update your nistchempy-based code or use the older nistchempy versions.


## How To

The primary features of NistChemPy, such as search capabilities and compound manipulations, are detailed in the [documentation](https://ivanchernyshov.github.io/NistChemPy/).

