kde_cpi.data.models module

Domain models for BLS Consumer Price Index (CU) survey flat files.

class kde_cpi.data.models.Area(code, name)[source]

Bases: object

Geographic area metadata from the CPI area lookup table.

Parameters:
code: str
name: str
class kde_cpi.data.models.AreaSchema(*, only=None, exclude=(), many=None, load_only=(), dump_only=(), partial=None, unknown=None)[source]

Bases: Schema

Marshmallow schema for serializing Area.

Parameters:
  • only (types.StrSequenceOrSet | None)

  • exclude (types.StrSequenceOrSet)

  • many (bool | None)

  • load_only (types.StrSequenceOrSet)

  • dump_only (types.StrSequenceOrSet)

  • partial (bool | types.StrSequenceOrSet | None)

  • unknown (types.UnknownOption | None)

make_area(data, **kwargs)[source]

Convert validated payloads into Area objects.

Return type:

Area

Parameters:
opts: typing.Any = <marshmallow.schema.SchemaOpts object>
class kde_cpi.data.models.Dataset(areas=NOTHING, items=NOTHING, periods=NOTHING, footnotes=NOTHING, series=NOTHING, observations=NOTHING)[source]

Bases: object

Aggregate CPI dataset containing mapping tables, series, and observations.

Parameters:
add_area(area)[source]

Insert or update an area in the dataset.

Return type:

None

Parameters:

area (Area)

add_footnote(footnote)[source]

Insert or update a footnote definition.

Return type:

None

Parameters:

footnote (Footnote)

add_item(item)[source]

Insert or update an item in the dataset.

Return type:

None

Parameters:

item (Item)

add_period(period)[source]

Insert or update a period definition.

Return type:

None

Parameters:

period (Period)

add_series(series)[source]

Insert or update a series metadata record.

Return type:

None

Parameters:

series (Series)

areas: dict[str, Area]
extend_observations(observations)[source]

Append observation records to the dataset, dropping duplicates.

Return type:

None

Parameters:

observations (Iterable[Observation])

footnotes: dict[str, Footnote]
items: dict[str, Item]
observations: list[Observation]
periods: dict[str, Period]
series: dict[str, Series]
to_dict()[source]

Return a JSON-friendly representation of the dataset.

Return type:

dict[str, object]

class kde_cpi.data.models.DatasetSchema(*, only=None, exclude=(), many=None, load_only=(), dump_only=(), partial=None, unknown=None)[source]

Bases: Schema

Marshmallow schema for serializing Dataset collections.

Parameters:
  • only (types.StrSequenceOrSet | None)

  • exclude (types.StrSequenceOrSet)

  • many (bool | None)

  • load_only (types.StrSequenceOrSet)

  • dump_only (types.StrSequenceOrSet)

  • partial (bool | types.StrSequenceOrSet | None)

  • unknown (types.UnknownOption | None)

make_dataset(data, **kwargs)[source]

Instantiate Dataset objects from validated payloads.

Return type:

Dataset

Parameters:
opts: typing.Any = <marshmallow.schema.SchemaOpts object>
class kde_cpi.data.models.Footnote(code, text)[source]

Bases: object

Footnote reference associated with CPI observations.

Parameters:
code: str
text: str
class kde_cpi.data.models.FootnoteSchema(*, only=None, exclude=(), many=None, load_only=(), dump_only=(), partial=None, unknown=None)[source]

Bases: Schema

Marshmallow schema for Footnote.

Parameters:
  • only (types.StrSequenceOrSet | None)

  • exclude (types.StrSequenceOrSet)

  • many (bool | None)

  • load_only (types.StrSequenceOrSet)

  • dump_only (types.StrSequenceOrSet)

  • partial (bool | types.StrSequenceOrSet | None)

  • unknown (types.UnknownOption | None)

make_footnote(data, **kwargs)[source]

Instantiate Footnote records.

Return type:

Footnote

Parameters:
opts: typing.Any = <marshmallow.schema.SchemaOpts object>
class kde_cpi.data.models.Item(code, name, display_level, selectable, sort_sequence)[source]

Bases: object

Item metadata describing CPI product groupings.

Parameters:
  • code (str)

  • name (str)

  • display_level (int)

  • selectable (bool)

  • sort_sequence (int)

code: str
display_level: int
name: str
selectable: bool
sort_sequence: int
class kde_cpi.data.models.ItemSchema(*, only=None, exclude=(), many=None, load_only=(), dump_only=(), partial=None, unknown=None)[source]

Bases: Schema

Marshmallow schema for Item records.

Parameters:
  • only (types.StrSequenceOrSet | None)

  • exclude (types.StrSequenceOrSet)

  • many (bool | None)

  • load_only (types.StrSequenceOrSet)

  • dump_only (types.StrSequenceOrSet)

  • partial (bool | types.StrSequenceOrSet | None)

  • unknown (types.UnknownOption | None)

make_item(data, **kwargs)[source]

Instantiate Item from validated row data.

Return type:

Item

Parameters:
opts: typing.Any = <marshmallow.schema.SchemaOpts object>
class kde_cpi.data.models.Observation(series_id, year, period, value, footnotes=NOTHING)[source]

Bases: object

Single CPI observation value tied to a series and period.

Parameters:
footnotes: tuple[str, ...]
is_annual()[source]

Return True when the observation corresponds to annual data.

Return type:

bool

period: str
series_id: str
value: Decimal
year: int
class kde_cpi.data.models.ObservationSchema(*, only=None, exclude=(), many=None, load_only=(), dump_only=(), partial=None, unknown=None)[source]

Bases: Schema

Marshmallow schema for Observation.

Parameters:
  • only (types.StrSequenceOrSet | None)

  • exclude (types.StrSequenceOrSet)

  • many (bool | None)

  • load_only (types.StrSequenceOrSet)

  • dump_only (types.StrSequenceOrSet)

  • partial (bool | types.StrSequenceOrSet | None)

  • unknown (types.UnknownOption | None)

make_observation(data, **kwargs)[source]

Instantiate Observation with normalized payloads.

Return type:

Observation

Parameters:
opts: typing.Any = <marshmallow.schema.SchemaOpts object>
class kde_cpi.data.models.Period(code, abbr, name)[source]

Bases: object

Period metadata describing CPI reporting intervals.

Parameters:
abbr: str
code: str
name: str
class kde_cpi.data.models.PeriodSchema(*, only=None, exclude=(), many=None, load_only=(), dump_only=(), partial=None, unknown=None)[source]

Bases: Schema

Marshmallow schema for Period.

Parameters:
  • only (types.StrSequenceOrSet | None)

  • exclude (types.StrSequenceOrSet)

  • many (bool | None)

  • load_only (types.StrSequenceOrSet)

  • dump_only (types.StrSequenceOrSet)

  • partial (bool | types.StrSequenceOrSet | None)

  • unknown (types.UnknownOption | None)

make_period(data, **kwargs)[source]

Instantiate Period objects from parsed data.

Return type:

Period

Parameters:
opts: typing.Any = <marshmallow.schema.SchemaOpts object>
class kde_cpi.data.models.Series(series_id, area_code, item_code, seasonal, periodicity_code, base_code, base_period, begin_year, begin_period, end_year, end_period, *, series_title='')[source]

Bases: object

Metadata describing a CPI series and its structural attributes.

Parameters:
  • series_id (str)

  • area_code (str)

  • item_code (str)

  • seasonal (str)

  • periodicity_code (str)

  • base_code (str)

  • base_period (str)

  • begin_year (int)

  • begin_period (str)

  • end_year (int)

  • end_period (str)

  • series_title (str)

area_code: str
base_code: str
base_period: str
begin_period: str
begin_year: int
end_period: str
end_year: int
is_seasonally_adjusted()[source]

Return True when the series is flagged as seasonally adjusted.

Return type:

bool

item_code: str
periodicity_code: str
seasonal: str
series_id: str
series_title: str
class kde_cpi.data.models.SeriesSchema(*, only=None, exclude=(), many=None, load_only=(), dump_only=(), partial=None, unknown=None)[source]

Bases: Schema

Marshmallow schema for Series.

Parameters:
  • only (types.StrSequenceOrSet | None)

  • exclude (types.StrSequenceOrSet)

  • many (bool | None)

  • load_only (types.StrSequenceOrSet)

  • dump_only (types.StrSequenceOrSet)

  • partial (bool | types.StrSequenceOrSet | None)

  • unknown (types.UnknownOption | None)

make_series(data, **kwargs)[source]

Instantiate Series from validated payloads.

Return type:

Series

Parameters:
opts: typing.Any = <marshmallow.schema.SchemaOpts object>