mirror of https://github.com/MISP/PyMISP
				
				
				
			chg: Use defaultdict when possible
							parent
							
								
									aff57876bc
								
							
						
					
					
						commit
						c151ad497b
					
				| 
						 | 
				
			
			@ -10,6 +10,7 @@ from zipfile import ZipFile
 | 
			
		|||
import hashlib
 | 
			
		||||
import sys
 | 
			
		||||
import uuid
 | 
			
		||||
from collections import defaultdict
 | 
			
		||||
 | 
			
		||||
from . import deprecated
 | 
			
		||||
from .abstract import AbstractMISP
 | 
			
		||||
| 
						 | 
				
			
			@ -851,7 +852,7 @@ class MISPObject(AbstractMISP):
 | 
			
		|||
            # Then we have no meta-category, template_uuid, description and template_version
 | 
			
		||||
            pass
 | 
			
		||||
        self.uuid = str(uuid.uuid4())
 | 
			
		||||
        self.__fast_attribute_access = {}  # Hashtable object_relation: [attributes]
 | 
			
		||||
        self.__fast_attribute_access = defaultdict(list)  # Hashtable object_relation: [attributes]
 | 
			
		||||
        self.ObjectReference = []
 | 
			
		||||
        self.Attribute = []
 | 
			
		||||
        if isinstance(default_attributes_parameters, MISPAttribute):
 | 
			
		||||
| 
						 | 
				
			
			@ -891,7 +892,7 @@ class MISPObject(AbstractMISP):
 | 
			
		|||
    def attributes(self, attributes):
 | 
			
		||||
        if all(isinstance(x, MISPObjectAttribute) for x in attributes):
 | 
			
		||||
            self.Attribute = attributes
 | 
			
		||||
            self.__fast_attribute_access = {}
 | 
			
		||||
            self.__fast_attribute_access = defaultdict(list)
 | 
			
		||||
        else:
 | 
			
		||||
            raise PyMISPError('All the attributes have to be of type MISPObjectAttribute.')
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -955,8 +956,6 @@ class MISPObject(AbstractMISP):
 | 
			
		|||
    def _fast_attribute_access(self):
 | 
			
		||||
        if not self.__fast_attribute_access:
 | 
			
		||||
            for a in self.attributes:
 | 
			
		||||
                if not self.__fast_attribute_access.get(a.object_relation):
 | 
			
		||||
                    self.__fast_attribute_access[a.object_relation] = []
 | 
			
		||||
                self.__fast_attribute_access[a.object_relation].append(a)
 | 
			
		||||
        return self.__fast_attribute_access
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -980,8 +979,6 @@ class MISPObject(AbstractMISP):
 | 
			
		|||
            attribute = MISPObjectAttribute({})
 | 
			
		||||
        # Overwrite the parameters of self._default_attributes_parameters with the ones of value
 | 
			
		||||
        attribute.from_dict(object_relation=object_relation, **dict(self._default_attributes_parameters, **value))
 | 
			
		||||
        if not self.__fast_attribute_access.get(object_relation):
 | 
			
		||||
            self.__fast_attribute_access[object_relation] = []
 | 
			
		||||
        self.__fast_attribute_access[object_relation].append(attribute)
 | 
			
		||||
        self.Attribute.append(attribute)
 | 
			
		||||
        self.edited = True
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue