What's Changed
* Interpreter Schema Generation v2 by angelosantos4 in https://github.com/nodestream-proj/nodestream/pull/333
**Full Changelog**:
- Pre-initialization check for schema correctness given `VALIDATE_PIPELINE_SCHEMA` environment variable is set. This schema introspection fix assumes that there is only one source node to be interpreted under any ingest. A check is made for the following:
- Interpreter: Only one of the before iteration phase or interpretations phase can generate source nodes.
- MultipleInterpretationPass: If one of the passes contains a source node, all of the other passes must contain a source node.
- InterpretationPass: Only one of the interpretations can assign a source node.
- SwitchInterpretations: If one of the branches contains a source node, all of the other passes including the default branch must contain a source node.
- For GraphQL schema generation, LocalDateTime objects are now DateTime objects.
- The before iteration interpretations are now accounted for within the schema introspection. (We acknowledge that either the before iteration and interpretation phases can act as source node creators.)
- Introspection is now broken down into context levels for each component that expands schema from children. For example:
1. Each pipeline has their own isolated context level.
2. For a Multiple Interpretation pass, each interpretation pass has their own context level that is distinct but inherits data from the interpreter (i.e if there is a before iteration phase with relationships).
3. For a switch interpretation, each {key: interpretations}, has their own context, ONLY if it is a source node generator. otherwise, each pass is added to the overall interpreter context.
- The switch interpretation now represents the interpretations for each key as an interpretation pass.
- Source node creators are now added to the end of the schema generation process.