def from_dict(cls, dict_repr, return_obj=None): if not return_obj: return_obj = cls() get = dict_repr.get return_obj.id_ = get('id') return_obj.idref = get('idref') return_obj.timestamp = get('timestamp') return_obj.version = get('version', cls._version) return_obj.header = Header.from_dict(get('header')) return_obj.campaigns = Campaigns.from_dict(get('campaigns')) return_obj.courses_of_action = CoursesOfAction.from_dict(get('courses_of_action')) return_obj.exploit_targets = ExploitTargets.from_dict(get('exploit_targets')) return_obj.indicators = Indicators.from_dict(get('indicators')) return_obj.observables = Observables.from_dict(get('observables')) return_obj.incidents = Incidents.from_dict(get('incidents')) return_obj.threat_actors = ThreatActors.from_dict(get('threat_actors')) return_obj.ttps = TTPs.from_dict(get('ttps')) return_obj.related_reports = RelatedReports.from_dict(get('related_reports')) return return_obj