Reference/API¶
carsus.io.base Module¶
This module defines base classes for parsers and ingesters.
Members¶
-
class
carsus.io.base.
BaseParser
(input_data=None)¶ Abstract base class for parsers.
- Attributes
- basepandas.DataFrame
Contains parsed results from the provided input data.
Methods
load(input_data)
Parses the input data and stores the results in the base attribute
__call__(input_data)
Call an instance with input data to invoke the load method.
-
class
carsus.io.base.
BasePyparser
(grammar, columns, input_data=None)¶ Abstract base class for parsers that use pyparsing grammar.
Notes
Rationale: pyparsers have a specific load workflow illustrated below.
Suppose a base of some parser has three columns:
atomic_mass_nominal_value | atomic_mass_std_dev | notes
The load method scans the input data with parser’s grammar. The returned matches have nested labeled tokens that correspond to the columns. Say, one of the matches has the following nested tokens list:
- atomic_mass: ['37.96273211', '(', '21', ')'] - nominal_value: 37.96273211 - std_dev: 2.1e-07
The load method then infers the columns’ values from the nested labels and adds the following row to the base:
atomic_mass_nominal_value 37.9627 atomic_mass_std_dev 2.1e-07 notes NaN
- Attributes
- basepandas.DataFrame
Contains parsed results from the provided input data.
- grammarpyparsing.ParseElement
The grammar used to parse input. Its labeled tokens correspond to the columns of the base
- columnslist of str
The column names of the base
Methods
load(input_data)
Parses the input data and stores the results in the base attribute
-
class
carsus.io.base.
BaseIngester
(session, ds_short_name, parser, downloader)¶ Abstract base class for ingesters.
- Attributes
- session: SQLAlchemy session
- data_source: DataSource instance
The data source of the ingester
- parserBaseParser instance
Parses the downloaded data
- downloaderfunction
Downloads the data
Methods
download()
Downloads the data with the ‘downloader’ and loads the parser with it
ingest(session)
Persists the downloaded data into the database
Class Inheritance Diagram¶

carsus.io.nist Package¶
This package defines parsers and ingesters for the NIST databases.
Members¶
-
carsus.io.nist.
download_weightscomp
(ascii='ascii2', isotype='some')¶ Downloader function for the NIST Atomic Weights and Isotopic Compositions database
Makes a GET request to download data; then extracts preformatted text
- Parameters
- ascii: str
GET request parameter, refer to the NIST docs (default: ‘ascii’)
- isotype: str
GET request parameter, refer to the NIST docs (default: ‘some’)
- Returns
- str
Preformatted text data
-
class
carsus.io.nist.
NISTWeightsCompPyparser
(grammar=isotope, columns=COLUMNS, input_data=None)¶ Class for parsers for the NIST Atomic Weights and Isotopic Compositions database
- Attributes
- basepandas.DataFrame
- grammarpyparsing.ParseElement
(default value = isotope)
- columnslist of str
(default value = COLUMNS)
Methods
load(input_data)
Parses the input data and stores the results in the base attribute
prepare_atomic_dataframe()
Returns a new dataframe created from the base and containing data only related to atoms.
prepare_isotopic_dataframe()
Returns a new dataframe created from the base and containing data only related to isotopes
-
class
carsus.io.nist.
NISTWeightsCompIngester
(parser_cls=NISTWeightsCompPyparser, downloader=download_weightscomp)¶ Class for ingesters for the NIST Atomic Weights and Isotopic Compositions database
- Attributes
- session: SQLAlchemy session
- data_source: DataSource instance
The data source of the ingester
- parserBaseParser instance
(default value = NISTWeightsCompPyparser())
- downloaderfunction
(default value = download_weightscomp)
Methods
download()
Downloads the data with the ‘downloader’ and loads the parser with it
ingest(session)
Persists the downloaded data into the database
Class Inheritance Diagram¶
