Skip to content

background

BackgroundImplementation

Bases: BasicImplementation, BackgroundInterface

The default Background Implementation exposes an ordinary inventory database as a collection of LCI results. Because it does not perform any ordering, there is no way to distinguish between foreground and background elements in a database using the proxy. It is thus inconsistent for the same resource to implement both inventory and [proxy] background interfaces.

background_flows(search=None, **kwargs)

all process reference flows are background flows

Parameters:

Name Type Description Default
search
None
kwargs
{}

Returns:

Type Description

consumers(process, ref_flow=None, **kwargs)

Not supported for trivial backgrounds

Parameters:

Name Type Description Default
process
required
ref_flow
None
kwargs
{}

Returns:

Type Description

cutoffs(process, ref_flow=None, **kwargs)

All processes are LCI, so they have only exterior flows. Emissions are the exterior flows with non-elementary contexts

Parameters:

Name Type Description Default
process
required
ref_flow
None
kwargs
{}

Returns:

Type Description

dependencies(process, ref_flow=None, **kwargs)

All processes are LCI, so they have no dependencies

Parameters:

Name Type Description Default
process
required
ref_flow
None
kwargs
{}

Returns:

Type Description

emissions(process, ref_flow=None, **kwargs)

All processes are LCI, so they have only exterior flows. Emissions are the exterior flows with elementary contexts

Parameters:

Name Type Description Default
process
required
ref_flow
None
kwargs
{}

Returns:

Type Description

exterior_flows(direction=None, search=None, **kwargs)

Exterior flows are all flows that do not have interior terminations (i.e. not found in the index targets) Elementary contexts have a sense, but intermediate contexts do not [necessarily]- so we need some way to determine their directionality. This whole implementation is just a stand-in anyway- the important thing is that this is handled correctly in tarjan

Parameters:

Name Type Description Default
direction
None
search
None
kwargs
{}

Returns:

Type Description

foreground_flows(search=None, **kwargs)

No foreground flows in the proxy background

Parameters:

Name Type Description Default
search
None
kwargs
{}

Returns:

Type Description

is_in_scc(process, ref_flow=None, **kwargs)

Distinction between is_in_background and is_in_scc will reveal the proxy nature of the interface

Parameters:

Name Type Description Default
process
required
ref_flow
None
kwargs
{}

Returns:

Type Description

setup_bm(index=None)

Requires an index interface or catalog query <-- preferred This must provide .get() and .get_context() (so really it should maybe be 'basic' The trivial implementation uses .flows() and .targets() to mock up an exterior flows method

Parameters:

Name Type Description Default
index
None

Returns:

Type Description

sys_lci(demand, **kwargs)

For LCI, we simply yield process direct exchanges as LCI. For sys_lci, we should just do the same. yield the supplied demand as a degenerate LCI.

Parameters:

Name Type Description Default
demand
required
kwargs
{}

Returns:

Type Description

sys_lcia(process, query_qty, observed=None, ref_flow=None, **kwargs)

returns an LciaResult object, aggregated as appropriate depending on the interface's privacy level. This is an ensemble function that stitches together bg functions with quantity access.

Parameters:

Name Type Description Default
process
required
query_qty

must be an operable quantity_ref. the process must have exchange access

required
observed

iterable of DirectedFlows (flow: FlowSpec, direction: str)

None
ref_flow
None
kwargs
{}

Returns:

Type Description