Module pyfx.api.domain

High-level API for Pyfx domain objects.

Note that, unless explicitely noted, creating or modifying an object from this package will not update the corresponding platform entity.

Classes

class AbstractTable (conn: Connection, typedid: str, unique_name: Optional[str] = None, label: Optional[str] = None, created_by: Optional[int] = None, created_date: Optional[str] = None, last_update_by: Optional[int] = None, last_update_date: Optional[str] = None)

Base class for all table types.

Get the representation corresponding to a pricefx Entity.

Ancestors

Subclasses

Methods

def stream(self, chunk_size: int = 128) ‑> Iterator[bytes]

Stream the content of this table.

def to_file(self, file_path: str) ‑> None

Write table content to file.

Content will be written in CSV format.

def to_pandas(self, **args: Dict[str, Any]) ‑> pandas.core.frame.DataFrame

Get a pd.DataFrame with the table content.

class Attachment (conn: Connection, owner: IdentifiableEntity, typedid: str, name: str, created_by: int, created_date: str, last_update_by: int, last_update_date: str, content_type: str, length: int)

Representation of an Attachment.

Create the representation of an Attachment.

Ancestors

Static methods

def from_dict(conn: Connection, owner: IdentifiableEntity, attrs: Dict[str, Any]) ‑> Attachment

Create an attachment from a dict of properties.

Methods

def download_file(self, chunk_size: int = 128) ‑> Iterator[bytes]

Download an attachment.

Args

chunk_size
size of chunks in each iteration (Default: 128)

Inherited members

class Attachments (conn: Connection, owner: IdentifiableEntity)

Attachments of an entity.

Create the repesentation of an Owned entity.

Args

conn
the underlying connection
owner
the owner

Ancestors

Methods

def get(self, typedid: str) ‑> Attachment

Get the attachment with the given typedid.

def push(self, name: str, content: ) ‑> None

Attach new content to owner on the platform.

Args

name
name of the attachment
content
content of the attachment

Inherited members

class BasicEntity (conn: Connection, typedid: str, unique_name: Optional[str] = None, label: Optional[str] = None, created_by: Optional[int] = None, created_date: Optional[str] = None, last_update_by: Optional[int] = None, last_update_date: Optional[str] = None)

Common representation of a lot of entities.

Get the representation corresponding to a pricefx Entity.

Ancestors

Subclasses

class CalculationItem (conn: Connection, owner: IdentifiableEntity, typedid: str, key1: str, key2: str, value: Optional[str], status: Optional[str], created_by: int, created_date: str, last_update_by: int, last_update_date: str)

Representation of a CalculationItem.

Create the representation of a Calculation Item.

Ancestors

Static methods

def from_dict(conn: Connection, owner: IdentifiableEntity, attrs: Dict[str, Any]) ‑> CalculationItem

Create an attachment from a dict of properties.

Inherited members

class CalculationItems (conn: Connection, owner: IdentifiableEntity, typedid: str)

Calculations items of an entity.

Create the repesentation of an identifiable entity.

Args

conn
the underlying connection
typedid
the typedId of the entity

Ancestors

Methods

def push(self, key1: str, key2: str, value: Any) ‑> None

Add a new calculation item.

Inherited members

class DMModel (conn: Connection, typedid: str, unique_name: Optional[str] = None, label: Optional[str] = None, created_by: Optional[int] = None, created_date: Optional[str] = None, last_update_by: Optional[int] = None, last_update_date: Optional[str] = None, model_type: Optional[ModelType] = None, calcitems_table_id: Optional[str] = None)

A DM model.

Get the representation corresponding to a DM Model.

Ancestors

Static methods

def from_conn(conn: Connection, model_typedid: str) ‑> DMModel

Create a model from a model typedid.

def from_dict(conn: Connection, attrs: Dict[str, Any]) ‑> DMModel

Create a model from a dict of properties.

Methods

def calculation_items(self) ‑> Optional[CalculationItems]

Get the calculation items of the model.

Inherited members

class DMModels (conn: Connection)

The DataMart Models.

Ancestors

Methods

def get(self, typedid: str) ‑> DMModel

Get the DM model with the given typedid.

Inherited members

class DataSources (conn: Connection)

The data sources.

Ancestors

Inherited members

class Datamarts (conn: Connection)

The datamarts.

Ancestors

Inherited members

class IdentifiableEntity (conn: Connection, typedid: str)

An entity with an uniquer identifiant.

Create the repesentation of an identifiable entity.

Args

conn
the underlying connection
typedid
the typedId of the entity

Ancestors

  • abc.ABC

Subclasses

class Instance (conn: Connection)

A platform instance.

Static methods

def connect(domain: str, partition: str, account: str) ‑> Instance

Return an Instance object connecting to a specific instance.

Methods

def datamarts(self) ‑> Datamarts

Get the data sources stored on the instance.

def datasources(self) ‑> DataSources

Get the data sources stored on the instance.

def model_objects(self) ‑> ModelObjects

Get the model objects stored on the instance.

def models(self) ‑> DMModels

Get the models stored on the instance.

class ItemCollection

Common interface for all item collections.

Items can either be retrieved:

  • as from a list, getting an item by its index, e.g. collection[0],
  • as from a dict, getting an item by its name, e.g. collection["somename"].

The second method is equivalent to calling get_by_name on the collection.

Ancestors

  • abc.ABC
  • typing.Generic

Subclasses

Methods

def get(self, typedid: str) ‑> ~Item

Get the item with the given typedid.

def get_by_name(self, name: str) ‑> Optional[~Item]

Get an item by name.

Returns

the item with the given name, or None if no such item exists.

class Model (conn: Connection, typedid: str, unique_name: Optional[str] = None, label: Optional[str] = None, created_by: Optional[int] = None, created_date: Optional[str] = None, last_update_by: Optional[int] = None, last_update_date: Optional[str] = None)

Model abstract interface.

Get the representation corresponding to a pricefx Entity.

Ancestors

Subclasses

Methods

def attachments(self) ‑> Attachments

Get the model attachments.

def tables(self) ‑> ModelTables

Get the tables owned by the model.

class ModelObject (conn: Connection, typedid: str, unique_name: Optional[str] = None, label: Optional[str] = None, created_by: Optional[int] = None, created_date: Optional[str] = None, last_update_by: Optional[int] = None, last_update_date: Optional[str] = None, model_class: Optional[str] = None)

A Model Object.

Get the representation corresponding to a ModelObject.

Ancestors

Static methods

def from_conn(conn: Connection, model_typedid: str) ‑> ModelObject

Create a model from a model typedid.

def from_dict(conn: Connection, attrs: Dict[str, Any]) ‑> ModelObject

Create a model from a dict of properties.

Inherited members

class ModelObjects (conn: Connection)

The Models Objects.

Ancestors

Methods

def get(self, typedid: str) ‑> ModelObject

Get the model object with the given id.

Inherited members

class ModelTables (conn: Connection, owner: IdentifiableEntity)

Tables owned by a model.

Ancestors

Inherited members

class ModelType (conn: Connection, typedid: str, unique_name: str, label: Optional[str], created_by: int, created_date: str, last_update_by: int, last_update_date: str, nature: str, definition: str)

A Model Type.

Get the representation corresponding to a Model Type.

Ancestors

Static methods

def from_dict(conn: Connection, attrs: Dict[str, Any]) ‑> ModelType

Create a model type from a dict of properties.

class Owned (conn: Connection, owner: IdentifiableEntity)

Something owned by an IdentifiableEntity.

Create the repesentation of an Owned entity.

Args

conn
the underlying connection
owner
the owner

Ancestors

  • abc.ABC

Subclasses

Methods

def owner(self) ‑> IdentifiableEntity

Get entity owner.

class PlatformJob (conn: Connection, jst_id: int)

A Job executed on the platform.

Get the representation corresponding to a running job.

Args

conn
the underlying connection
jst_id
the jst id of the Job

Methods

def set_results(self, results: Dict[str, Any]) ‑> None

Set the job results.

def update_progress(self, progress: Optional[int], msg: Optional[str] = None) ‑> None

Update job status progress.

def update_status(self, progress: Optional[int] = None, msg: Optional[str] = None, results: Optional[Dict[str, Any]] = None) ‑> None

Update the job status on the platform.

Args

progress
the new job progress percent (optional)
msg
a message for the new status change (optional)
results
a dictionary associating result names to their value (optional). Will be available to next evaluations and calculations.
class TableImmutable (conn: Connection, typedid: str, unique_name: Optional[str] = None, name: Optional[str] = None, label: Optional[str] = None, created_by: Optional[int] = None, created_date: Optional[str] = None, last_update_by: Optional[int] = None, last_update_date: Optional[str] = None)

Representation of a data Table.

Get the representation corresponding to a Model Type.

Ancestors

Static methods

def from_dict(conn: Connection, attrs: Dict[str, Any]) ‑> TableImmutable

Create a table from a dict of properties.

Inherited members

class TableImmutableSource (conn: Connection, type_code: str, req_params: Optional[Dict[str, Any]] = None)

Collection of immutable tables.

Ancestors

Subclasses

Inherited members

class TableMutable (conn: Connection, typedid: str, unique_name: Optional[str] = None, name: Optional[str] = None, label: Optional[str] = None, created_by: Optional[int] = None, created_date: Optional[str] = None, last_update_by: Optional[int] = None, last_update_date: Optional[str] = None)

Representation of a mutable data Table.

Get the representation corresponding to a Model Type.

Ancestors

Static methods

def from_dict(conn: Connection, attrs: Dict[str, Any]) ‑> TableMutable

Create a table from a dict of properties.

Methods

def update(self, data: AvroStream) ‑> None

Update data the table.

Values of rows with same keys will be updated. Rows with new keys will be appended.

data: content to update in avro format.

def update_pandas(self, dataframe: pandas.core.frame.DataFrame, on_unsupported_type: str = 'error', inplace: bool = False) ‑> None

Update this table from a dataframe.

Values of rows with same index will be updated. Rows with new index will be appended.

Args

dataframe
the dataframe to push
on_unsupported_type
define the behavior when encontering a dataframe column containing an incompatible type (optional, default: "error"):
  • "error" (default value) raises an error
  • "drop" will drop the column
  • "coerce" will try to convert this column to strings
inplace
do the required data prep operations in place (will mutate the source dataframe ; optional, default: False)

Inherited members

class TableMutableSource (conn: Connection, type_code: str, req_params: Optional[Dict[str, Any]] = None)

Collection of mutable tables.

Ancestors

Subclasses

Methods

def push(self, name: str, fields_spec: List[Dict], content: AvroStream, label: Optional[str] = None, replace_existing: bool = True) ‑> None

Add a new table to the collection of tables on the platform.

Args

name
the name of the new table
fields_spec
a list of dictionaries that describe the columns of the table
[
   { name:"productId", label:"Product ID", type:"TEXT", key:true},
   { name:"productGroup", label:"ProductGroup", type:"TEXT", dimension:true},
   { name:"revenue", label:"Revenue", type:"MONEY"},
]
content
the content of the new table
label
the label of the new table (optional, defaults to name)
replace_existing
if True then removes the preceding table having the same name if it exists before pushing the data (default = True).
def push_pandas(self, table_name: str, dataframe: pandas.core.frame.DataFrame, table_label: Optional[str] = None, dimensions: Optional[List[str]] = None, on_unsupported_type: str = 'error', replace_existing: bool = True, inplace: bool = False, column_labels: Optional[Dict[str, str]] = None, manual_fields_specs: Optional[FieldSpecs] = None, keep_index: bool = True) ‑> None

Push a pandas dataframe as a new table.

Dataframe index will be used as key columns by default. Additional key columns can be set manually.

Args

table_name
the name to use for the new table
dataframe
the dataframe to push
table_label
the label for the new table (optional, defaults to name)
dimensions
columns that should be used as dimension (optional, default: None)
on_unsupported_type
define the behavior when encontering a dataframe column containing an incompatible type (optional, default: "error"): - "error" (default value) raises an error - "drop" will drop the column - "coerce" will try to convert this column to strings
replace_existing
if True then removes the preceding table having the same name if it exists before pushing the data (optional, default = True).
inplace
do the required data prep operations in place (will mutate the source dataframe ; optional, default: False)
column_labels
a dictionary associating dataframe column (including index) name to its desired label (optional, default: None).
manual_fields_specs
manually created specification for exported table fields of type FieldSpecs (optional, default: None)
keep_index
if False, index won't be kept as one of the columns in exported table, in this case, at least one of the columns must be set as key in manual specs (optional, default: True)

Raises

ValueError
if manual_fields_specs is used at the same time as column_labels or dimensions
ValueError
if keep_index is False, but no key field is specified manually

Inherited members

class TableSource (conn: Connection, type_code: str, req_params: Optional[Dict[str, Any]] = None)

Base class for all collections of tables.

Ancestors

Subclasses

Methods

def get(self, typedid: str) ‑> ~TableType

Get the table with the given typedid.

Inherited members