Skip to content

Commit d974b40

Browse files
Change structure of FeatureSpec object in order to future-proof it.
1 parent 0354467 commit d974b40

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

mensor/measures/types.py

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,16 @@ class FeatureSpec:
124124

125125
ALLOWED_TRANSFORMS = ['pre_agg', 'agg', 'post_agg', 'pre_rebase_agg', 'rebase_agg', 'post_rebase_agg', 'alias']
126126

127-
def __init__(self, source, alias=None, transforms=None):
128-
self.source = source
129-
self.alias = alias or None
130-
self.transforms = transforms or {}
127+
def __init__(self, alias, source=None, transforms=None):
128+
self._alias = alias
129+
self._source = source or alias
130+
self._transforms = transforms or {}
131131

132132
def __repr__(self):
133133
return "<Measure" + (f"[{self.alias}]" if self.alias else "") + (" (with transforms)" if self.transforms else "") + ">"
134134

135-
def with_alias(self, alias):
136-
self.alias = alias
135+
def source(self, source):
136+
self._source = source
137137
return self
138138

139139
def with_transforms(self, unit_type, pre_agg=None, agg=None, post_agg=None, pre_rebase_agg=None, rebase_agg=None, post_rebase_agg=None, alias=None):
@@ -144,33 +144,32 @@ def with_transforms(self, unit_type, pre_agg=None, agg=None, post_agg=None, pre_
144144
if variables[name] is not None
145145
}
146146
if transforms:
147-
self.transforms[unit_type] = transforms
147+
self._transforms[unit_type] = transforms
148148
return self
149149

150150
def get_attrs(self, unit_type):
151151
attrs = {
152-
'transforms': self.transforms
152+
'transforms': self._transforms
153153
}
154-
if self.alias:
155-
if unit_type not in attrs['transforms']:
156-
attrs['transforms'][unit_type] = {}
157-
attrs['transforms'][unit_type]['alias'] = self.alias
154+
if unit_type not in attrs['transforms']:
155+
attrs['transforms'][unit_type] = {}
156+
attrs['transforms'][unit_type]['alias'] = self._alias
158157
return attrs
159158

160159
def as_source_with_attrs(self, unit_type):
161-
return self.source, self.get_attrs(unit_type)
160+
return self._source, self.get_attrs(unit_type)
162161

163162
@property
164163
def as_dict(self):
165164
return {
166-
'source': self.source,
167-
'alias': self.alias,
168-
'transforms': self.transforms
165+
'source': self._source,
166+
'alias': self._alias,
167+
'transforms': self._transforms
169168
}
170169

171170
@property
172171
def as_yaml(self):
173-
return yaml.dump(self.as_feature, default_flow_style=False, indent=4)
172+
return yaml.dump(self.as_dict, default_flow_style=False, indent=4)
174173

175174

176175
class MeasureSpec(FeatureSpec):

0 commit comments

Comments
 (0)