HappyDoc Generated Documentation | unidist/dotinspect.py | ||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
/ unidist / dotinspect.py dotinspect by Geoff Howland dotinspect is a method of working with containers (dicts and sequences). Format: "var1.-1.(var2a.var2b).var3" Explanation: Each dot represents an inspection of the current data. The first inspection would inspect the keyword "var1" in a dict. The second inspection would inspect the last item of a sequence. The third inspection is a sub-inspection. It will first look into the value of it's sub-inspection by evaluating all the terms in the parenthesis as if they were a new request. These would then return a value, which would be used as the term to look into the current container. The final inspection is yet another term specified for a dictionary lookup after the sub-inspection created a dynamic lookup. This is useful for allowing user-specified content, and expanding data-oriented development methods by making the processing of data generic, and leaving the specifics to a data-based specification that will be processed or interpretted into the specific result desired. The attempt is to push more towards "real code" being very general in nature. It processes a formatted statement. Then the statements contain the actual goal the user is aiming for. This allows the "real code" to be hardended significantly from when it is implementing the goals directly, as human goals change frequently, and often require numerous levels of special cases to meet our demanding needs. By creating generalized processors at higher and higher levels we can use hardened and battle-tested "real code", which can validate and specify to greater precision the problems with the "goal directions", because the rules of processing are known and operating at a directed level, instead of "real code"'s totally general level, which could create anything. This also allows for pipelining in other important processes, like regressive testing, monitoring and request authentication, which are all universal issues and have to be solved in every "real code" goal solution. With generalized processors, these issues only have to be solved once, for the generalized processor, and then all "goal directions" (chunks of information), will be processed by the general processors and get all the common functionality for "free". TODO(g): Test with sets. TODO(g): Move out of unidist package. It doesnt belong here. Does it?
|