Let's suppose I have a feature ComposedFeature with dimension dim_composed, and metrics dependent_dim1, dependent_dim2, metric1, metric2. Suppose ComposedFeature has two dependent features: Feature1 with dimension dependent_dim1 and metric metric1, and likewise for Feature2.
I now want to define the compute for ComposedFeature from the feature service. So, inside compute I try calling
feature_service_client.get_features({feature.id for feature in self.dependencies}, dims)
The question remains: what should the keys in dims be? Certainly it can't be a strict subset of {dependent_dim1, dependent_dim2}, otherwise Fractal won't know how to compute Feature1 and Feature2.
What would happen if we set dims={dependent_dim1: <values>, dependent_dim2: <values>}? Would Fractal complain that Feature1 and Feature2 are not defined for the DimensionSet {dependent_dim1, dependent_dim2}? Or would it "know" to ignore dependent_dim1 when computing Feature2, and likewise for Feature1?
If Fractal doesn't know how to handle "over specifying" dimensions, then it sounds like I would need to split out my call to the feature service based on what dimension sets I pass, e.g.:
feature1_result: ResultSet = feature_service_client.get_feature(Feature1.id, {dependent_dim1: <values>})
feature2_result: ResultSet = feature_service_client.get_feature(Feature2.id, {dependent_dim2: <values>})
Does this sound right? Or am I missing something entirely?