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
- BasicEntity
- IdentifiableEntity
- abc.ABC
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
- BasicEntity
- IdentifiableEntity
- Owned
- abc.ABC
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
- Owned
- ItemCollection
- abc.ABC
- typing.Generic
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
- IdentifiableEntity
- abc.ABC
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
- IdentifiableEntity
- Owned
- abc.ABC
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
- IdentifiableEntity
- Owned
- abc.ABC
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
- Model
- BasicEntity
- IdentifiableEntity
- abc.ABC
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
- ItemCollection
- abc.ABC
- typing.Generic
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
- TableMutableSource
- TableSource
- ItemCollection
- abc.ABC
- typing.Generic
Inherited members
class Datamarts (conn: Connection)
-
The datamarts.
Ancestors
- TableImmutableSource
- TableSource
- ItemCollection
- abc.ABC
- typing.Generic
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
- BasicEntity
- IdentifiableEntity
- abc.ABC
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
- Model
- BasicEntity
- IdentifiableEntity
- abc.ABC
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
- ItemCollection
- abc.ABC
- typing.Generic
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
- TableMutableSource
- TableSource
- ItemCollection
- Owned
- abc.ABC
- typing.Generic
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
- BasicEntity
- IdentifiableEntity
- abc.ABC
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
- TableSource
- ItemCollection
- abc.ABC
- typing.Generic
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
- TableSource
- ItemCollection
- abc.ABC
- typing.Generic
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
- ItemCollection
- abc.ABC
- typing.Generic
Subclasses
Methods
def get(self, typedid: str) ‑> ~TableType
-
Get the table with the given typedid.
Inherited members