Home | Trees | Indices | Help |
|
---|
|
object --+ | base.structure.StructureBase --+ | object --+ | | | base.common.Parser --+ | base.structure.ParseableStructure --+ | base.structure.Structure --+ | svcs.core.Core --+ | object --+ | | | base.macros.ExpansionDelegator --+ | DatalinkCoreBase --+ | DatalinkCore
A core for processing datalink and processed data requests.
The input table of this core is dynamically generated from its metaMakers; it makes no sense at all to try and override it.
See `Datalink and SODA`_ for more information.
In contrast to "normal" cores, one of these is made (and destroyed) for each datalink request coming in. This is because the interface of a datalink service depends on the request's value(s) of ID.
The datalink core can produce both its own metadata and data generated. It is the renderer's job to tell them apart.
Nested Classes | |
Inherited from |
Instance Methods | |||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
Inherited from Inherited from Inherited from Inherited from Inherited from Inherited from Inherited from Inherited from |
Class Methods | |
Inherited from |
Class Variables | |
name_ =
a sentinel for all kinds of undefined values. |
|
datalinkType =
|
|
datalinkAdaptingRenderers =
|
|
Inherited from Inherited from Inherited from Inherited from |
Properties | |
rd | |
Inherited from |
Method Details |
returns a core for renderer and a sequence of ProductDescriptors. This method is mainly for helping adaptForRenderer. Do read the docstring there. |
returns a core for a specific product. The ugly thing about datalink in DaCHS' architecture is that its interface (in terms of, e.g., inputKeys' values children) depends on the arguments themselves, specifically the pubDID. The workaround is to abuse the renderer-specific getCoreFor, ignore the renderer and instead steal an "args" variable from somewhere upstack. Nasty, but for now an acceptable solution. It is particularly important to never let service cache the cores returned for the dl* renderers; hence to "nocache" magic. This tries to generate all datalink-relevant metadata in one go and avoid calling the descriptorGenerator(s) more than once per pubDID. It therefore adds datalinkLinks, datalinkEndpoints, and datalinkDescriptors attributes. These are used later in either metadata generation or data processing. The latter will in general use only the last pubDID passed in. Therefore, this last pubDID determines the service interface for now. Perhaps we should be joining the inputKeys in some way, though, e.g., if we want to allow retrieving multiple datasets in a tar file? Or to re-use the same service for all pubdids?
|
breaks circular references to make the garbage collector's job easier. The core will no longer function once this has been called. |
|
|
|
|
|
Class Variable Details |
datalinkAdaptingRenderers
|
Property Details |
rd
|
Home | Trees | Indices | Help |
|
---|
Generated by Epydoc 3.0.1 on Thu May 2 07:29:09 2019 | http://epydoc.sourceforge.net |