Skip to main content

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

Example of mofdb-client IDE autocompletion

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


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)

Uploaded Source

Built Distribution

mofdb_client-0.0.2-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

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

Hashes for mofdb_client-0.0.2.tar.gz
Algorithm Hash digest
SHA256 0ca0b36679605173318b919c3c229f12856f746d111151a46fde676d3a227e4b
MD5 b7d11b11090bd341b6b249d6f8060c8b
BLAKE2b-256 35fca8ea98e69801e7de3704fb1dae720d186705ac341c2628bd17e8adabaf6d

See more details on using hashes here.

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

Hashes for mofdb_client-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 bc840ed5c253be81af2c672bfc7afa78f26539d6f0786cb3c94480e4f11ca1c7
MD5 cacd5e6719e20a5f2fba7d2b01a92312
BLAKE2b-256 f72cf3328ed931c82476d6215f03e07962dac6b864d3db5a30121ea299bb95a6

See more details on using hashes here.

Provenance

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