def run_field_rules(self, v, single_key, plural_key, simple_filepath, field_out): '''run the set of field-level rules against some json_data, that came from simple_filepath, and append results to field_out list Args: v (JSON): list of views single_key (str): e.g. dimension plural_key (str): e.g. dimensions simple_fileapath (str): path to some file field_out (list): list of results for field-level rules Returns: input field_out list with additional dictionary results ''' ## unfortunately, "view: dim_date {}" is a valid file so it might not have any measures or dimensions if not plural_key in v: return field_out for json_d in v[plural_key]: json_d['_type'] = single_key f = LookMLField(json_d) for rule in self.field_rules: relevant, passed = rule.run(f) if relevant: d = { "file": simple_filepath, "rule": rule.name(), "passed": int(passed), "type": single_key, "fieldname": json_d['name'] } #['_' + single_key]} field_out.append(d) logging.debug(d) return field_out
def get_1st_measure(raw_lookml): json_data = get_json_from_lookml(raw_lookml) # m = json_data['files'][0]['views'][0]['measures'][0] m = json_data['views'][0]['measures'][0] m['_type'] = 'measure' return LookMLField(m)
def get_1st_dimension(raw_lookml): json_data = get_json_from_lookml(raw_lookml) # j = json_data['files'][0]['views'][0]['dimensions'][0] j = json_data['views'][0]['dimensions'][0] j['_type'] = 'dimension' return LookMLField(j)
def test_run3(): relevant, passed = AllCapsRule().run(LookMLField({"_type": "junk"})) assert not relevant assert not passed
def get_1st_measure(raw_lookml): json_data = get_json_from_lookml(raw_lookml) # m = json_data['files'][0]['views'][0]['measures'][0] m = json_data["views"][0]["measures"][0] m["_type"] = "measure" return LookMLField(m)
def get_1st_dimension(raw_lookml): json_data = get_json_from_lookml(raw_lookml) # j = json_data['files'][0]['views'][0]['dimensions'][0] j = json_data["views"][0]["dimensions"][0] j["_type"] = "dimension" return LookMLField(j)
def test_run3(): relevant, passed = AllCapsRule().run(LookMLField({'_type': 'junk'})) assert not relevant assert not passed
def test_run4(): relevant, passed = DescriptionRule().run(LookMLField({"_type": "junk"})) assert not relevant assert not passed
def test_run4(): relevant, passed = DescriptionRule().run(LookMLField({'_type': 'junk'})) assert not relevant assert not passed