bw2data.backends.proxies#
Classes#
Module Contents#
- class bw2data.backends.proxies.Activity(document=None, **kwargs)[source]#
Bases:
bw2data.proxies.ActivityProxyBase
A MutableMapping is a generic container for associating key/value pairs.
This class provides concrete generic implementations of all methods except for __getitem__, __setitem__, __delitem__, __iter__, and __len__.
Create an Activity proxy object.
If this is a new activity, can pass kwargs.
If the activity exists in the database, document should be an ActivityDataset.
- copy(code: str | None = None, signal: bool = True, **kwargs)[source]#
Copy the activity. Returns a new Activity.
code is the new activity code; if not given, a UUID is used.
kwargs are additional new fields and field values, e.g. name=’foo’
- rp_exchange()[source]#
Return an
Exchange
object corresponding to the reference production. Uses the following in order:The
production
exchange, if only one is presentThe
production
exchange with the same name as the activityreference product
.
Raises
ValueError
if no suitable exchange is found.
- save(signal: bool = True, data_already_set: bool = False, force_insert: bool = False)[source]#
Saves the current activity to the database after performing various checks. This method validates the activity, updates the database status, and handles geographical and indexing updates. It raises an error if the activity is not valid and updates relevant data in the database.
- Raises:
ValidityError – If the activity is not valid, an error is raised detailing the reasons.
Notes
The method performs the following operations: - Checks if the activity is valid. - Marks the database as ‘dirty’, indicating changes. - Checks for type and key validity of the activity. - Updates the activity’s associated document in the database. - Updates the geographical mapping if needed. - Updates the index if the database is searchable.
Examples
>>> activity.save()
Saves the activity if it’s valid, otherwise raises ValidityError.
- class bw2data.backends.proxies.Exchange(document=None, **kwargs)[source]#
Bases:
bw2data.proxies.ExchangeProxyBase
A MutableMapping is a generic container for associating key/value pairs.
This class provides concrete generic implementations of all methods except for __getitem__, __setitem__, __delitem__, __iter__, and __len__.
Create an Exchange proxy object.
If this is a new exchange, can pass kwargs.
If the exchange exists in the database, document should be an ExchangeDataset.
- class bw2data.backends.proxies.Exchanges(key, kinds=None, reverse=False)[source]#
Bases:
collections.abc.Iterable
Iterator for exchanges with some additional methods.
This is not a generator;
next()
is not supported. Everything time you start to iterate over the object you get a new list starting from the beginning. However, to get a single item you can donext(iter(foo))
.Ordering is by database row id.
Supports the following:
exchanges = activity.exchanges() # Iterate for exc in exchanges: pass # Length len(exchanges) # Delete all exchanges.delete()
- to_dataframe(categorical: bool = True, formatters: List[Callable] | None = None) pandas.DataFrame [source]#
Return a pandas DataFrame with all node exchanges. Standard DataFrame columns are:
target_id: int, target_database: str, target_code: str, target_name: Optional[str], target_reference_product: Optional[str], target_location: Optional[str], target_unit: Optional[str], target_type: Optional[str] source_id: int, source_database: str, source_code: str, source_name: Optional[str], source_product: Optional[str], # Note different label source_location: Optional[str], source_unit: Optional[str], source_categories: Optional[str] # Tuple concatenated with “::” as in bw2io edge_amount: float, edge_type: str,
Target is the node consuming the edge, source is the node or flow being consumed. The terms target and source were chosen because they also work well for biosphere edges.
Args:
categorical
will turn each string column in a pandas Categorical Series. This takes 1-2 extra seconds, but saves around 50% of the memory consumption.formatters
is a list of callables that modify each row. These functions must take the following keyword arguments, and use the Wurst internal data format:node
: The target node, as a dictedge
: The edge, including attributes of the source noderow
: The current row dict being modified.
The functions in
formatters
don’t need to return anything, they modifyrow
in place.Returns a pandas
DataFrame
.