Simple client for fetching data from mofdb
Project description
mofdb-client
A typed lightweight client wrapping the mofdb api.
Installation
python3 -m pip install mofdb_client
Example
from mofdb_client import fetch
for mof in fetch(vf_min=0.5, vf_max=0.99):
print(f"Mof {mof.name} has {len(mof.isotherms)} isotherms and elements {[str(e) for e in mof.elements]}")
print(f"This mof's cif file starts with: '{mof.cif.splitlines()[1]}'")
Mof UTEWUM_clean has 2 isotherms and elements ['Cu', 'H', 'C', 'N']
This mof's cif file starts with: '_audit_creation_date 2014-07-02'
Mof ZECKID_clean has 1 isotherms and elements ['Cu', 'H', 'C', 'N', 'O']
This mof's cif file starts with: '_audit_creation_date 2014-07-02'
Mof AQOMAW_clean has 2 isotherms and elements ['N', 'C', 'H', 'Co', 'Cl', 'O']
This mof's cif file starts with: '_cell_length_a 18.8345'
Mof AQOLOJ_clean has 2 isotherms and elements ['N', 'C', 'H', 'Co', 'Cl']
This mof's cif file starts with: '_cell_length_a 18.794'
Mof SENWOZ_clean has 2 isotherms and elements ['Zn', 'H', 'C', 'O']
This mof's cif file starts with: '_audit_creation_date 2014-07-02'
Mof IYUCIQ_clean has 2 isotherms and elements ['Dy', 'O', 'N', 'C', 'H']
This mof's cif file starts with: '_cell_length_a 29.162'
Mof ORUKET_clean has 2 isotherms and elements ['P', 'O', 'N', 'C', 'H', 'Mg']
This mof's cif file starts with: '_cell_length_a 18.571'
...
Parameters
fetch supports a number of arguements
- mofid: str
- mofkey: str
- vf_min: float
- vf_max: float
- lcd_min: float
- lcd_max: float
- pld_min: float
- pld_max: float
- sa_m2g_min: float
- sa_m2g_max: float
- sa_m2cm3_min: float
- sa_m2cm3_max: float
- limit: int
Design Note
fetch
is lazy because mofDB is large. Be sure to loop over it with for mof in fetch()
and NOT for mof in list(fetch())
since
building the list will download all the mofs before it starts processing and this will be very slow and may well run out of memory.
Compatibility
Tested on Python 3.9 likely to work on any 3.x.
Future Enhancements:
- Retries for transient network failures with exponential backoff
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
mofdb_client-0.0.2.tar.gz
(6.0 kB
view details)
Built Distribution
File details
Details for the file mofdb_client-0.0.2.tar.gz
.
File metadata
- Download URL: mofdb_client-0.0.2.tar.gz
- Upload date:
- Size: 6.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/24.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ca0b36679605173318b919c3c229f12856f746d111151a46fde676d3a227e4b |
|
MD5 | b7d11b11090bd341b6b249d6f8060c8b |
|
BLAKE2b-256 | 35fca8ea98e69801e7de3704fb1dae720d186705ac341c2628bd17e8adabaf6d |
Provenance
File details
Details for the file mofdb_client-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: mofdb_client-0.0.2-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/24.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.9 tqdm/4.63.1 importlib-metadata/4.11.3 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.4 CPython/3.9.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc840ed5c253be81af2c672bfc7afa78f26539d6f0786cb3c94480e4f11ca1c7 |
|
MD5 | cacd5e6719e20a5f2fba7d2b01a92312 |
|
BLAKE2b-256 | f72cf3328ed931c82476d6215f03e07962dac6b864d3db5a30121ea299bb95a6 |