Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Resolves #280
Description
The time spine configuration has been redesigned to support new features (sub-daily granularity and custom calendar - designs here). This PR adds the new configuration needed for sub-daily granularity and marks the old one as in the process of deprecation. Best reviewed by commit to isolate the
NodeRelation
changes.TimeSpineTableConfiguration
is automatically set for all users in the core parser. This assumes the user has set up a model calledmetricflow_time_spine
atDAY
granularity, so that configuration is set automatically in the manifest. This config was never exposed to users in YAML. The only logic change made here for the legacy config is to make it no longer required in the JSON schema, which will help with eventual migration. The plan is to continue setting the old config automatically in the manifest until users have migrated over to the new one, using validation warnings to prompt them to migrate. MetricFlow will support both fields in the meantime.NodeRelation
changes: I renamed theNodeRelation
implementation classPydanticNodeRelation
to match all other implementation classes - previously the protocol and implementation classes had the same name. This will not be a breaking change for core/mantle because this class is never imported directly there. I also needed to move those classes to their own files to avoid circular imports. Viewing that commit separately should be helpful for review - the commit is purely copy/paste, no logic changes.semantic-layer
) and themodel
key will be implemented in core instead of here.Checklist
changie new
to create a changelog entry