Skip to content

implementation

XdbImplementation

Bases: BasicImplementation, IndexInterface, ExchangeInterface, QuantityInterface, BackgroundInterface

The implementation is very thin, so pile everything into one class

bg_lcia(process, query_qty=None, ref_flow=None, **kwargs)

Parameters:

Name Type Description Default
process
required
query_qty
None
ref_flow
None
kwargs
{}

Returns:

Type Description

cf(flow, quantity, ref_quantity=None, context=None, locale='GLO', **kwargs)

We still want to retain the ability to ask the remote server for CFs, even if we may prefer to get that info locally for local flows

Parameters:

Name Type Description Default
flow
required
quantity
required
ref_quantity

NOT USED

None
context
None
locale
'GLO'
kwargs
{}

Returns:

Type Description

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

This returns reference exchanges for activities that consume the named reference exchange the puzzle here is how to generate the RxRefs-- I guess we should just do it here

Parameters:

Name Type Description Default
process
required
ref_flow
None
kwargs
{}

Returns:

Type Description

count(entity_type, **kwargs)

Naturally the first route is problematic- because we allow incompletely-specified origins. We should sum them.

Parameters:

Name Type Description Default
entity_type
required
kwargs
{}

Returns:

Type Description

do_lcia(quantity, inventory, locale='GLO', **kwargs)

Parameters:

Name Type Description Default
quantity
required
inventory
required
locale
'GLO'
kwargs
{}

Returns:

Type Description

exchange_values(process, flow, direction=None, termination=None, reference=None, **kwargs)

Parameters:

Name Type Description Default
process
required
flow
required
direction
None
termination
None
reference
None
kwargs
{}

Returns:

Type Description

exchanges(process, **kwargs)

Client code (process_ref.ProcessRef) already turns them into ExchangeRefs

Parameters:

Name Type Description Default
process
required
kwargs
{}

Returns:

Type Description

factors(quantity, flowable=None, context=None, **kwargs)

We need to construct operable characterizations with quantities that are recognized by the LciaEngine- in other words, with refs from our archive

Parameters:

Name Type Description Default
quantity
required
flowable
None
context

not implemented at the API

None
kwargs
{}

Returns:

Type Description

get_factors(quantity, flow_specs, **kwargs)

Parameters:

Name Type Description Default
quantity
required
flow_specs
required
kwargs
{}

Returns:

Type Description

get_uuid(external_ref)

Stopgap: don't support UUIDs

Parameters:

Name Type Description Default
external_ref
required

Returns:

Type Description

inventory(node, ref_flow=None, scenario=None, **kwargs)

Client code (process_ref.ProcessRef) already turns them into ExchangeRefs

Parameters:

Name Type Description Default
node
required
ref_flow

if node is a process, optionally provide its reference flow

None
scenario

if node is a fragment, optionally provide a scenario- as string or tuple

None
kwargs
{}

Returns:

Type Description

quantity_relation(flowable, ref_quantity, query_quantity, context, locale='GLO', **kwargs)

not yet implemented

Parameters:

Name Type Description Default
flowable
required
ref_quantity
required
query_quantity
required
context
required
locale
'GLO'
kwargs
{}

Returns:

Type Description

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

We want to override the interface implementation and send a simple request to the backend

Parameters:

Name Type Description Default
process
required
query_qty
required
observed

iterable of DirectedFlows

None
ref_flow
None
kwargs

locale, quell_biogenic_co2

{}

Returns:

Type Description