Package gavo :: Package svcs :: Module inputdef :: Class ContextGrammar
[frames] | no frames]

Class ContextGrammar

source code

                   object --+                
                            |                
 base.structure.StructureBase --+            
                                |            
                   object --+   |            
                            |   |            
           base.common.Parser --+            
                                |            
base.structure.ParseableStructure --+        
                                    |        
             base.structure.Structure --+    
                                        |    
                   object --+           |    
                            |           |    
     base.macros.MacroPackage --+       |    
                                |       |    
   base.macros.StandardMacroMixin --+   |    
                                    |   |    
    grammars.common.GrammarMacroMixin --+    
                                        |    
                  grammars.common.Grammar --+
                                            |
                                           ContextGrammar

A grammar for web inputs.

The source tokens for context grammars are dictionaries; these are either typed dictionaries from nevow formal, where the values usually are atomic, or, preferably, the dictionaries of lists from request.args.

ContextGrammars never yield rows, so they're probably fairly useless in normal cirumstances.

In normal usage, they just yield a single parameter row, corresponding to the source dictionary possibly completed with defaults, where non-requried input keys get None defaults where not given. Missing required parameters yield errors.

This parameter row honors the multiplicity specification, i.e., single or forced-single are just values, multiple are lists. The content are *parsed* values (using the InputKeys' parsers).

Since most VO protocols require case-insensitive matching of parameter names, matching of input key names and the keys of the input dictionary is attempted first literally, then disregarding case.

Nested Classes
  rowIterator
is a row iterator over "contexts", i.e.

Inherited from base.structure.StructureBase: __metaclass__

Instance Methods
 
onElementComplete(self) source code
 
iterInputKeys(self) source code
 
clearProperty(self, name) source code
 
getFullId(self) source code
 
getProperty(self, name, default=<Undefined>) source code
 
hasProperty(self, name) source code
 
setProperty(self, name, value) source code

Inherited from grammars.common.Grammar: getSourceFields, parse

Inherited from base.structure.Structure: __provides__, callCompletedCallbacks, completeElement, finishElement, validate

Inherited from base.structure.ParseableStructure: __init__, end_, feed, feedFrom, feedObject, getAttribute, iterEvents, start_, value_

Inherited from base.structure.StructureBase: __providedBy__, adopt, breakCircles, change, copy, getAttributes, getCopyableAttributes, getSourcePosition, iterChildren, setPosition

Inherited from base.common.Parser: feedEvent

Inherited from grammars.common.GrammarMacroMixin: macro_colNames, macro_dlMetaURI, macro_fullDLURL, macro_inputRelativePath, macro_inputSize, macro_lastSourceElements, macro_property, macro_rootlessPath, macro_rowsProcessed, macro_sourceDate, macro_splitPreviewPath, macro_srcstem, macro_standardPreviewPath

Inherited from base.macros.StandardMacroMixin: macro_RSTservicelink, macro_RSTtable, macro_decapitalize, macro_getConfig, macro_internallink, macro_magicEmpty, macro_metaSeq, macro_metaString, macro_rdId, macro_rdIdDotted, macro_schema, macro_test, macro_today, macro_upper, macro_urlquote

Inherited from base.macros.MacroPackage: execMacro, expand, getExpander, listMacros, macro_quote, macro_reSub, macro_sql_standardPubDID, macro_sqlquote

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __str__, __subclasshook__

Class Methods

Inherited from base.structure.StructureBase: fromStructure

Class Variables
  name_ = 'contextGrammar'
a sentinel for all kinds of undefined values.
  rejectExtras = False
  attrSeq = [<gavo.base.attrdef.UnicodeAttribute object>, <gavo....
  managedAttrs = {'enc': <gavo.base.attrdef.UnicodeAttribute obj...

Inherited from grammars.common.Grammar: isDispatching

Inherited from base.structure.Structure: __implemented__

Inherited from base.structure.StructureBase: completedCallbacks

Properties
  rd

Inherited from object: __class__

Method Details

onElementComplete(self)

source code 
Overrides: base.structure.Structure.onElementComplete

clearProperty(self, name)

source code 
Overrides: grammars.common.Grammar.clearProperty

getFullId(self)

source code 
Overrides: grammars.common.Grammar.getFullId

getProperty(self, name, default=<Undefined>)

source code 
Overrides: grammars.common.Grammar.getProperty

hasProperty(self, name)

source code 
Overrides: grammars.common.Grammar.hasProperty

setProperty(self, name, value)

source code 
Overrides: grammars.common.Grammar.setProperty

Class Variable Details

attrSeq

Value:
[<gavo.base.attrdef.UnicodeAttribute object>,
 <gavo.base.parsecontext.IdAttribute object>,
 <gavo.base.complexattrs.StructAttribute object>,
 <gavo.base.complexattrs.StructListAttribute object>,
 <gavo.base.parsecontext.ReferenceAttribute object>,
 <gavo.base.parsecontext.OriginalAttribute object>,
 <gavo.base.complexattrs.PropertyAttribute object>,
 <gavo.rscdef.common.RDAttribute object>,
...

managedAttrs

Value:
{'enc': <gavo.base.attrdef.UnicodeAttribute object>,
 'id': <gavo.base.parsecontext.IdAttribute object>,
 'ignoreOn': <gavo.base.complexattrs.StructAttribute object>,
 'inputKey': <gavo.base.complexattrs.StructListAttribute object>,
 'inputKeys': <gavo.base.complexattrs.StructListAttribute object>,
 'inputTD': <gavo.base.parsecontext.ReferenceAttribute object>,
 'original': <gavo.base.parsecontext.OriginalAttribute object>,
 'properties': <gavo.base.complexattrs.PropertyAttribute object>,
...

Property Details

rd

Get Method:
unreachable._getRD(self)