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 append(self, data: AvroStream) ‑> None

Append some data to the table.

data: content to append in avro format.

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

Append some data to the table from a dataframe.

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) ‑> None

Push a pandas dataframe as a new table.

Dataframe index will be used as key columns.

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).

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