in microservices/skill_service/src/services/ingest_osn.py [0:0]
def import_skills(osn_json_array):
"""extracts and saves the skills as per skill fireo model"""
inserted_skills = []
for osn_skill in osn_json_array:
skill_id = osn_skill.get("Canonical URL", "").split("/")[-1]
aligned_id = osn_skill.get("Alignment URL", "").split("/")[-1]
occ_major_group = osn_skill.get("Occupation Major Groups").split(";")
if len(occ_major_group) == 1 and occ_major_group[0] == "":
occ_major_group = []
occ_major_group = [i.strip() for i in occ_major_group]
occ_minor_group = osn_skill.get("Occupation Minor Groups").split(";")
if len(occ_minor_group) == 1 and occ_minor_group[0] == "":
occ_minor_group = []
occ_minor_group = [i.strip() for i in occ_minor_group]
broad_occupation = osn_skill.get("Broad Occupations").split(";")
if len(broad_occupation) == 1 and broad_occupation[0] == "":
broad_occupation = []
broad_occupation = [i.strip() for i in broad_occupation]
detailed_occupation = osn_skill.get("Detailed Occupations").split(";")
if len(detailed_occupation) == 1 and detailed_occupation[0] == "":
detailed_occupation = []
detailed_occupation = [i.strip() for i in detailed_occupation]
keywords = osn_skill.get("Keywords").split(";")
if len(keywords) == 1 and keywords[0] == "":
keywords = []
keywords = [i.strip() for i in keywords]
certifications = osn_skill.get("Certifications").split(";")
if len(certifications) == 1 and certifications[0] == "":
certifications = []
certifications = [i.strip() for i in certifications]
skill = {
"name": osn_skill.get("RSD Name"),
"description": osn_skill.get("Skill Statement"),
"parent_nodes": {"competencies": []},
"reference_id": skill_id,
"keywords": keywords,
"occupations": {
"occupations_major_group": occ_major_group,
"occupations_minor_group": occ_minor_group,
"broad_occupation": broad_occupation,
"detailed_occupation": detailed_occupation
},
"onet_job": osn_skill.get("O*Net Job Codes"),
"alignments": {
"standard_alignment": {},
"credential_alignment": {},
"skill_alignment": {
"emsi": {
"aligned": [{
"id": aligned_id,
"name": osn_skill.get("Alignment Name"),
"score": 1.0
}],
"suggested": []
}
},
"knowledge_alignment": {},
"role_alignment": {},
"organizational_alignment": {}
},
"author": osn_skill.get("Author"),
"creator": "",
"organizations": [],
"certifications": certifications,
"type": {
"id": "",
"name": ""
},
"source_uri": osn_skill.get("Canonical URL"),
"source_name": "osn"
}
inserted_skills.append(skill)
async_inserts = AsyncInserts()
async_inserts.insert_data(inserted_skills, "skill")
inserted_skills_length = async_inserts.get_inserted_skills_count()
return inserted_skills_length