Resource Assessments Losses Values¶
ResourceAssessmentLossesValues(perfdb)
¶
Class used for handling resource assessment losses values. Can be accessed via perfdb.resourceassessments.losses.values.
Parameters:
Source code in echo_postgres/perfdb_root.py
def __init__(self, perfdb: e_pg.PerfDB) -> None:
"""Base class that all subclasses should inherit from.
Parameters
----------
perfdb : PerfDB
Top level object carrying all functionality and the connection handler.
"""
self._perfdb: e_pg.PerfDB = perfdb
get(spe_names=None, loss_type_names=None, resource_assessment_names=None, resource_assessment_types=None, companies=None, default=None, filter_type='and', output_type='dict')
¶
Gets all resource assessment values definitions with detailed information.
The most useful keys/columns returned are:
- resource_assessment_type_name
- company_name
- value
- yearly_degradation
Parameters:
-
(spe_names¶list[str] | None, default:None) –List of SPE names to filter the query. If None, no filter will be applied. By default None
-
(loss_type_names¶list[str] | None, default:None) –List of resource type names to filter the query. If None, no filter will be applied. By default None
-
(resource_assessment_names¶list[str] | None, default:None) –List of resource assessment values to filter the query. If None, no filter will be applied. By default None
-
(resource_assessment_types¶list[str] | None, default:None) –List of resource assessment types to filter the query. If None, no filter will be applied. By default None
-
(companies¶list[str] | None, default:None) –List of companies to filter the query. If None, no filter will be applied. By default None
-
(default¶bool | None, default:None) –If True, only default values will be returned. If False, only non-default values will be returned. If None, all values will be returned. By default None
-
(filter_type¶Literal['and', 'or'], default:'and') –Type of filter to apply. Can be one of ["and", "or"]. By default "and"
-
(output_type¶Literal['dict', 'DataFrame'], default:'dict') –Output type of the data. Can be one of ["dict", "DataFrame"] By default "dict"
Returns:
-
dict[str, dict[str, dict[str, Any]]]–In case output_value is "dict", returns a dictionary in the format {resource_assessment_name: {spe_name: {loss_type_name: {attribute: value, ...}, ...}, ...}, ...}
-
DataFrame–In case output_value is "DataFrame", returns a DataFrame with the following format: index = MultiIndex[resource_assessment_name, spe_name, loss_type_name], columns = [attribute, ...]
-
DataFrame–In case output_value is "pl.DataFrame", returns a Polars DataFrame.
Source code in echo_postgres/resourceassessment_losses_values.py
@validate_call
def get(
self,
spe_names: list[str] | None = None,
loss_type_names: list[str] | None = None,
resource_assessment_names: list[str] | None = None,
resource_assessment_types: list[str] | None = None,
companies: list[str] | None = None,
default: bool | None = None,
filter_type: Literal["and", "or"] = "and",
output_type: Literal["dict", "DataFrame", "pl.DataFrame"] = "dict",
) -> dict[str, dict[str, dict[str, Any]]] | pd.DataFrame | pl.DataFrame:
"""Gets all resource assessment values definitions with detailed information.
The most useful keys/columns returned are:
- resource_assessment_type_name
- company_name
- value
- yearly_degradation
Parameters
----------
spe_names : list[str] | None
List of SPE names to filter the query. If None, no filter will be applied. By default None
loss_type_names : list[str] | None
List of resource type names to filter the query. If None, no filter will be applied. By default None
resource_assessment_names : list[str] | None
List of resource assessment values to filter the query. If None, no filter will be applied. By default None
resource_assessment_types : list[str] | None
List of resource assessment types to filter the query. If None, no filter will be applied. By default None
companies : list[str] | None
List of companies to filter the query. If None, no filter will be applied. By default None
default : bool | None, optional
If True, only default values will be returned. If False, only non-default values will be returned. If None, all values will be returned. By default None
filter_type : Literal["and", "or"], optional
Type of filter to apply. Can be one of ["and", "or"]. By default "and"
output_type : Literal["dict", "DataFrame"], optional
Output type of the data. Can be one of ["dict", "DataFrame"]
By default "dict"
Returns
-------
dict[str, dict[str, dict[str, Any]]]
In case output_value is "dict", returns a dictionary in the format {resource_assessment_name: {spe_name: {loss_type_name: {attribute: value, ...}, ...}, ...}, ...}
DataFrame
In case output_value is "DataFrame", returns a DataFrame with the following format: index = MultiIndex[resource_assessment_name, spe_name, loss_type_name], columns = [attribute, ...]
pl.DataFrame
In case output_value is "pl.DataFrame", returns a Polars DataFrame.
"""
# validating arguments and building WHERE clause
where = self._check_get_args(
spe_names=spe_names,
loss_type_names=loss_type_names,
resource_assessment_names=resource_assessment_names,
resource_assessment_types=resource_assessment_types,
companies=companies,
default=default,
filter_type=filter_type,
)
query = [sql.SQL("SELECT * FROM performance.v_resource_assessment_losses_values ")]
if where:
query.append(where)
query.append(sql.SQL(" ORDER BY resource_assessment_name, spe_name, loss_type_name"))
query = sql.Composed(query)
# using read_to_polars for speed
df = self._perfdb.conn.read_to_polars(query=query)
return convert_output(
df,
output_type,
index_col=["resource_assessment_name", "spe_name", "loss_type_name"],
nest_by_index=True,
)