pg_utils.pg_model.expansion.SpectralExpansion

class pg_utils.pg_model.expansion.SpectralExpansion(fields: LabeledCollection, bases: Union[LabeledCollection, Expr], coeffs: LabeledCollection, **relations: Expr)[source]

Bases: LabeledCollection

Base class for different kinds of spectral expansions

This is intended as an abstract class, which should be overriden by its concrete child classes

Parameters:
__init__(fields: LabeledCollection, bases: Union[LabeledCollection, Expr], coeffs: LabeledCollection, **relations: Expr) None[source]

Initialization

Parameters:

Methods

__init__(fields, bases, coeffs, **relations)

Initialization

apply(fun[, inplace, metadata])

Apply a function iteratively to all collection items

as_empty()

Return an object with the same configuration of attributes but with fields initiated as None.

copy()

Returns a deep copy of itself

deserialize(obj[, parser])

Deserialize an object

generate_collection(index_array)

Generate a new collection based on indices

load_json(fp[, parser])

Load LabeledCollection object from json

save_json(fp[, serializer])

Serialize the object in string format and save to json file

serialize([serializer])

Serialize the object

subs(sub_map[, inplace])

Substitute variables iteratively in all fields.

Attributes

iter_filter

iter_filter: bool determines whether None fields are skipped.

iter_name

iter_name: bool determines whether the string of the field is also returned.

apply(fun: Callable[[...], Any], inplace: bool = False, metadata: bool = False) LabeledCollection[source]

Apply a function iteratively to all collection items

Parameters:
  • fun (Callable) – determines how the collection entries are processed. The signature of the function should take the form fun(type(self[i])) when metadata is False, and the form fun(str, type(self[i])) when metadata is True

  • inplace (bool) – whether to write changes in situ.

  • metadata (bool) – whether to pass field name to the function

Returns:

Updated object. If inplace, then the current object itself is returned.

Return type:

LabeledCollection

as_empty() LabeledCollection[source]

Return an object with the same configuration of attributes but with fields initiated as None. May be slightly faster than copy?

copy() LabeledCollection[source]

Returns a deep copy of itself

static deserialize(obj: ~typing.List[tuple], parser: ~typing.Callable[[str], ~typing.Any] = <function LabeledCollection.<lambda>>) LabeledCollection[source]

Deserialize an object

Parameters:
  • obj (List[tuple]) – a serialized object of LabeledCollection

  • parser (Callable[[str], Any]) – a parser that defines how each string can be parsed into meaningful objects

Returns:

LabeledCollection, that is deserialized from the input object

Warning

Sanitized input needed. Unexpected behaviour if input is not a legitimate serialized object

generate_collection(index_array: List[bool]) LabeledCollection[source]

Generate a new collection based on indices

Parameters:

index_array (List[bool]) – array of booleans indicating whether a field is to be included in the new collection

Returns:

new collection with elements specified by index_array

property iter_filter[source]

iter_filter: bool determines whether None fields are skipped.

property iter_name[source]

iter_name: bool determines whether the string of the field is also returned.

static load_json(fp: ~typing.TextIO, parser: ~typing.Callable[[str], ~typing.Any] = <function LabeledCollection.<lambda>>) LabeledCollection[source]

Load LabeledCollection object from json

convenient wrapper for deserialize

save_json(fp: ~typing.TextIO, serializer: ~typing.Callable[[~typing.Any], str] = <class 'str'>) None[source]

Serialize the object in string format and save to json file

Parameters:
  • fp (TextIO) – file handle of the output file

  • serializer (Callable[[Any], str]) – a callable that maps an element to a string. Default is the str method.

serialize(serializer: ~typing.Callable[[~typing.Any], str] = <class 'str'>) List[tuple][source]

Serialize the object

Parameters:

serializer (Callable[[Any],str]) – a callable that maps an element to a string. Default is the str method.

Returns:

a list of serialized objects, in the format [(fname_1, serialized_element_1), (fname_2, serialized_element_2), …]

subs(sub_map: dict, inplace: bool = False)[source]

Substitute variables iteratively in all fields. This utility is for collections with sympy.Expr elements. See warning below.

Parameters:
  • sub_map (dict) – a substitution map

  • inplace (bool) – whether the change is made in place; default is False

Warning

To use this method, all elements in the collection need to have implemented the subs method. This is intended for a collection of which all elements are sympy.Expr type. Then, this method calls apply internally to substitute all the variables.