mirror of https://github.com/MISP/PyTaxonomies
Proper use of dicts
parent
8b4b0697f7
commit
427daae55f
|
@ -68,7 +68,7 @@ class Predicate(collections.Mapping):
|
||||||
return iter(self.entries)
|
return iter(self.entries)
|
||||||
|
|
||||||
def __len__(self):
|
def __len__(self):
|
||||||
return len(self.entries.keys())
|
return len(self.entries)
|
||||||
|
|
||||||
|
|
||||||
class Taxonomy(collections.Mapping):
|
class Taxonomy(collections.Mapping):
|
||||||
|
@ -98,7 +98,7 @@ class Taxonomy(collections.Mapping):
|
||||||
def _json_predicates(self):
|
def _json_predicates(self):
|
||||||
predicates_to_return = []
|
predicates_to_return = []
|
||||||
values_to_return = []
|
values_to_return = []
|
||||||
for predicate in self.predicates.values():
|
for predicate in self.values():
|
||||||
temp_predicate = {'value': predicate.predicate}
|
temp_predicate = {'value': predicate.predicate}
|
||||||
if predicate.expanded:
|
if predicate.expanded:
|
||||||
temp_predicate['expanded'] = predicate.expanded
|
temp_predicate['expanded'] = predicate.expanded
|
||||||
|
@ -141,8 +141,8 @@ class Taxonomy(collections.Mapping):
|
||||||
return to_return
|
return to_return
|
||||||
|
|
||||||
def has_entries(self):
|
def has_entries(self):
|
||||||
if self.predicates.values():
|
if self.values():
|
||||||
for p in self.predicates.values():
|
for p in self.values():
|
||||||
if p.entries:
|
if p.entries:
|
||||||
return True
|
return True
|
||||||
return False
|
return False
|
||||||
|
@ -158,7 +158,7 @@ class Taxonomy(collections.Mapping):
|
||||||
|
|
||||||
def machinetags(self):
|
def machinetags(self):
|
||||||
to_return = []
|
to_return = []
|
||||||
for p, content in self.predicates.items():
|
for p, content in self.items():
|
||||||
if content:
|
if content:
|
||||||
for k in content.keys():
|
for k in content.keys():
|
||||||
to_return.append('{}:{}="{}"'.format(self.name, p, k))
|
to_return.append('{}:{}="{}"'.format(self.name, p, k))
|
||||||
|
@ -177,13 +177,13 @@ class Taxonomy(collections.Mapping):
|
||||||
|
|
||||||
def amount_entries(self):
|
def amount_entries(self):
|
||||||
if self.has_entries():
|
if self.has_entries():
|
||||||
return sum([len(e) for e in self.predicates.values()])
|
return sum([len(e) for e in self.values()])
|
||||||
else:
|
else:
|
||||||
return len(self.predicates.keys())
|
return len(self.keys())
|
||||||
|
|
||||||
def machinetags_expanded(self):
|
def machinetags_expanded(self):
|
||||||
to_return = []
|
to_return = []
|
||||||
for p, content in self.predicates.items():
|
for p, content in self.items():
|
||||||
if content:
|
if content:
|
||||||
for k, entry in content.items():
|
for k, entry in content.items():
|
||||||
to_return.append('{}:{}="{}"'.format(self.name, p, entry.expanded))
|
to_return.append('{}:{}="{}"'.format(self.name, p, entry.expanded))
|
||||||
|
@ -220,7 +220,7 @@ class Taxonomies(collections.Mapping):
|
||||||
'data', 'misp-taxonomies', 'schema.json')
|
'data', 'misp-taxonomies', 'schema.json')
|
||||||
with open(schema, 'r') as f:
|
with open(schema, 'r') as f:
|
||||||
loaded_schema = json.load(f)
|
loaded_schema = json.load(f)
|
||||||
for t in self.taxonomies.values():
|
for t in self.values():
|
||||||
jsonschema.validate(t.taxonomy, loaded_schema)
|
jsonschema.validate(t.taxonomy, loaded_schema)
|
||||||
|
|
||||||
def __load_path(self, path):
|
def __load_path(self, path):
|
||||||
|
@ -255,14 +255,14 @@ class Taxonomies(collections.Mapping):
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
to_print = ''
|
to_print = ''
|
||||||
for taxonomy in self.taxonomies.values():
|
for taxonomy in self.values():
|
||||||
to_print += "{}\n\n".format(str(taxonomy))
|
to_print += "{}\n\n".format(str(taxonomy))
|
||||||
return to_print
|
return to_print
|
||||||
|
|
||||||
def search(self, query, expanded=False):
|
def search(self, query, expanded=False):
|
||||||
query = query.lower()
|
query = query.lower()
|
||||||
to_return = []
|
to_return = []
|
||||||
for taxonomy in self.taxonomies.values():
|
for taxonomy in self.values():
|
||||||
if expanded:
|
if expanded:
|
||||||
machinetags = taxonomy.machinetags_expanded()
|
machinetags = taxonomy.machinetags_expanded()
|
||||||
else:
|
else:
|
||||||
|
@ -287,5 +287,5 @@ class Taxonomies(collections.Mapping):
|
||||||
|
|
||||||
def all_machinetags(self, expanded=False):
|
def all_machinetags(self, expanded=False):
|
||||||
if expanded:
|
if expanded:
|
||||||
return [taxonomy.machinetags_expanded() for taxonomy in self.taxonomies.values()]
|
return [taxonomy.machinetags_expanded() for taxonomy in self.values()]
|
||||||
return [taxonomy.machinetags() for taxonomy in self.taxonomies.values()]
|
return [taxonomy.machinetags() for taxonomy in self.values()]
|
||||||
|
|
Loading…
Reference in New Issue