diff --git a/cvcreator/vitae/nationalities.py b/cvcreator/vitae/nationalities.py new file mode 100644 index 0000000..d1fe927 --- /dev/null +++ b/cvcreator/vitae/nationalities.py @@ -0,0 +1,282 @@ +# hopefully exhaustive: +NATIONALITIES = ( + "Afghan", + "Albanian", + "Algerian", + "American", + "Andorran", + "Angolan", + "Antiguans", + "Argentinean", + "Armenian", + "Australian", + "Austrian", + "Azerbaijani", + "Bahamian", + "Bahraini", + "Bangladeshi", + "Barbadian", + "Barbudans", + "Batswana", + "Belarusian", + "Belgian", + "Belizean", + "Beninese", + "Bhutanese", + "Bolivian", + "Bosnian", + "Brazilian", + "British", + "Bruneian", + "Bulgarian", + "Burkinabe", + "Burmese", + "Burundian", + "Cambodian", + "Cameroonian", + "Canadian", + "Cape Verdean", + "Central African", + "Chadian", + "Chilean", + "Chinese", + "Colombian", + "Comoran", + "Congolese", + "Costa Rican", + "Croatian", + "Cuban", + "Cypriot", + "Czech", + "Danish", + "Djibouti", + "Dominican", + "Dutch", + "Dutchman", + "Dutchwoman", + "East Timorese", + "Ecuadorean", + "Egyptian", + "Emirian", + "Equatorial Guinean", + "Eritrean", + "Estonian", + "Ethiopian", + "Fijian", + "Filipino", + "Finnish", + "French", + "Gabonese", + "Gambian", + "Georgian", + "German", + "Ghanaian", + "Greek", + "Grenadian", + "Guatemalan", + "Guinea-Bissauan", + "Guinean", + "Guyanese", + "Haitian", + "Herzegovinian", + "Honduran", + "Hungarian", + "I-Kiribati", + "Icelander", + "Indian", + "Indonesian", + "Iranian", + "Iraqi", + "Irish", + "Israeli", + "Italian", + "Ivorian", + "Jamaican", + "Japanese", + "Jordanian", + "Kazakhstani", + "Kenyan", + "Kittian and Nevisian", + "Kuwaiti", + "Kyrgyz", + "Laotian", + "Latvian", + "Lebanese", + "Liberian", + "Libyan", + "Liechtensteiner", + "Lithuanian", + "Luxembourger", + "Macedonian", + "Malagasy", + "Malawian", + "Malaysian", + "Maldivan", + "Malian", + "Maltese", + "Marshallese", + "Mauritanian", + "Mauritian", + "Mexican", + "Micronesian", + "Moldovan", + "Monacan", + "Mongolian", + "Moroccan", + "Mosotho", + "Motswana", + "Mozambican", + "Namibian", + "Nauruan", + "Nepalese", + "Netherlander", + "New Zealander", + "Ni-Vanuatu", + "Nicaraguan", + "Nigerian", + "Nigerien", + "North Korean", + "Northern Irish", + "Norwegian", + "Omani", + "Pakistani", + "Palauan", + "Panamanian", + "Papua New Guinean", + "Paraguayan", + "Peruvian", + "Polish", + "Portuguese", + "Qatari", + "Romanian", + "Russian", + "Rwandan", + "Saint Lucian", + "Salvadoran", + "Samoan", + "San Marinese", + "Sao Tomean", + "Saudi", + "Scottish", + "Senegalese", + "Serbian", + "Seychellois", + "Sierra Leonean", + "Singaporean", + "Slovakian", + "Slovenian", + "Solomon Islander", + "Somali", + "South African", + "South Korean", + "Spanish", + "Sri Lankan", + "Sudanese", + "Surinamer", + "Swazi", + "Swedish", + "Swiss", + "Syrian", + "Taiwanese", + "Tajik", + "Tanzanian", + "Thai", + "Togolese", + "Tongan", + "Trinidadian or Tobagonian", + "Tunisian", + "Turkish", + "Tuvaluan", + "Ugandan", + "Ukrainian", + "Uruguayan", + "Uzbekistani", + "Venezuelan", + "Vietnamese", + "Welsh", + "Yemenite", + "Zambian", + "Zimbabwean", +) + +NATIONALITIES_NO = ( + "Afghansk", + "Albansk", + "Algerisk", + "Argentinsk", + "Australsk", + "Østerriksk", + "Aserbajdsjansk", + "Bangladeshisk", + "Belgisk", + "Brasiliansk", + "Bulgarsk", + "Canadisk", + "Chilensk", + "Kinesisk", + "Colombiansk", + "Kroatisk", + "Tsjekkisk", + "Dansk", + "Egyptisk", + "Engelsk", + "Eritreisk", + "Estisk", + "Etiopisk", + "Finsk", + "Fransk", + "Tysk", + "Ghanesisk", + "Britisk", + "Gresk", + "Honduransk", + "Ungarsk", + "Indisk", + "Indonesisk", + "Iransk", + "Irakisk", + "Irsk", + "Islandsk", + "Israelsk", + "Italiensk", + "Japansk", + "Kenyansk", + "Koreansk", + "Latvisk", + "Libanesisk", + "Litauisk", + "Malaysisk", + "Mexicansk", + "Montenegrinsk", + "Marokkansk", + "Nepalsk", + "Nederlandsk", + "Newzealandsk", + "Nigeriansk", + "Norsk", + "Pakistansk", + "Peruansk", + "Polsk", + "Portugisisk", + "Rumensk", + "Russisk", + "Skotsk", + "Serbisk", + "Slovakisk", + "Slovensk", + "Somalsk", + "Sørafrikansk", + "Spansk", + "Srilankisk", + "Sveitsisk", + "Svensk", + "Thailandsk", + "Tunisisk", + "Tyrkisk", + "Ugandisk", + "Ukrainsk", + "Amerikansk", + "Venezuelansk", + "Vietnamesisk", + "Walisisk", +) diff --git a/cvcreator/vitae/schema.py b/cvcreator/vitae/schema.py index 41a58b5..eeacd3a 100644 --- a/cvcreator/vitae/schema.py +++ b/cvcreator/vitae/schema.py @@ -7,6 +7,7 @@ import gettext from pydantic import BaseModel, Field +from .nationalities import NATIONALITIES, NATIONALITIES_NO # Countries COUNTRIES = tuple(country.__dict__.get( @@ -22,207 +23,8 @@ LANGUAGES = tuple(language.name for language in pycountry.languages) Language = Literal[LANGUAGES] -# hopefully exhaustive: -NATIONALITIES = ( - "Afghan", - "Albanian", - "Algerian", - "American", - "Andorran", - "Angolan", - "Antiguans", - "Argentinean", - "Armenian", - "Australian", - "Austrian", - "Azerbaijani", - "Bahamian", - "Bahraini", - "Bangladeshi", - "Barbadian", - "Barbudans", - "Batswana", - "Belarusian", - "Belgian", - "Belizean", - "Beninese", - "Bhutanese", - "Bolivian", - "Bosnian", - "Brazilian", - "British", - "Bruneian", - "Bulgarian", - "Burkinabe", - "Burmese", - "Burundian", - "Cambodian", - "Cameroonian", - "Canadian", - "Cape Verdean", - "Central African", - "Chadian", - "Chilean", - "Chinese", - "Colombian", - "Comoran", - "Congolese", - "Costa Rican", - "Croatian", - "Cuban", - "Cypriot", - "Czech", - "Danish", - "Djibouti", - "Dominican", - "Dutch", - "Dutchman", - "Dutchwoman", - "East Timorese", - "Ecuadorean", - "Egyptian", - "Emirian", - "Equatorial Guinean", - "Eritrean", - "Estonian", - "Ethiopian", - "Fijian", - "Filipino", - "Finnish", - "French", - "Gabonese", - "Gambian", - "Georgian", - "German", - "Ghanaian", - "Greek", - "Grenadian", - "Guatemalan", - "Guinea-Bissauan", - "Guinean", - "Guyanese", - "Haitian", - "Herzegovinian", - "Honduran", - "Hungarian", - "I-Kiribati", - "Icelander", - "Indian", - "Indonesian", - "Iranian", - "Iraqi", - "Irish", - "Israeli", - "Italian", - "Ivorian", - "Jamaican", - "Japanese", - "Jordanian", - "Kazakhstani", - "Kenyan", - "Kittian and Nevisian", - "Kuwaiti", - "Kyrgyz", - "Laotian", - "Latvian", - "Lebanese", - "Liberian", - "Libyan", - "Liechtensteiner", - "Lithuanian", - "Luxembourger", - "Macedonian", - "Malagasy", - "Malawian", - "Malaysian", - "Maldivan", - "Malian", - "Maltese", - "Marshallese", - "Mauritanian", - "Mauritian", - "Mexican", - "Micronesian", - "Moldovan", - "Monacan", - "Mongolian", - "Moroccan", - "Mosotho", - "Motswana", - "Mozambican", - "Namibian", - "Nauruan", - "Nepalese", - "Netherlander", - "New Zealander", - "Ni-Vanuatu", - "Nicaraguan", - "Nigerian", - "Nigerien", - "North Korean", - "Northern Irish", - "Norwegian", - "Omani", - "Pakistani", - "Palauan", - "Panamanian", - "Papua New Guinean", - "Paraguayan", - "Peruvian", - "Polish", - "Portuguese", - "Qatari", - "Romanian", - "Russian", - "Rwandan", - "Saint Lucian", - "Salvadoran", - "Samoan", - "San Marinese", - "Sao Tomean", - "Saudi", - "Scottish", - "Senegalese", - "Serbian", - "Seychellois", - "Sierra Leonean", - "Singaporean", - "Slovakian", - "Slovenian", - "Solomon Islander", - "Somali", - "South African", - "South Korean", - "Spanish", - "Sri Lankan", - "Sudanese", - "Surinamer", - "Swazi", - "Swedish", - "Swiss", - "Syrian", - "Taiwanese", - "Tajik", - "Tanzanian", - "Thai", - "Togolese", - "Tongan", - "Trinidadian or Tobagonian", - "Tunisian", - "Turkish", - "Tuvaluan", - "Ugandan", - "Ukrainian", - "Uruguayan", - "Uzbekistani", - "Venezuelan", - "Vietnamese", - "Welsh", - "Yemenite", - "Zambian", - "Zimbabwean", -) Nationality = Literal[NATIONALITIES] +NationalityNO = Literal[NATIONALITIES_NO] class StrictModel(BaseModel): @@ -329,7 +131,16 @@ class NorwegianEducation(StrictModel): start: int = 0 end: int = 0 - degree: Literal["Mastergrad", "Doktorgrad", ""] = "" + degree: Literal[ + "Bachelorgrad", + "Mastergrad", + "Doktorgrad", + "Diplom", + "Cand.Scient.", + "Dr.Scient.", + "Kompetansebevis", + "" + ] = "" topic: Literal[ "Fysikk", "Vitenskapelige Beregninger", @@ -485,6 +296,7 @@ class VitaeContent(StrictModel): class NorwegianVitaeContent(VitaeContent): + nationality: Optional[NationalityNO] = None language_skill: List[NorwegianLanguageSkill] = Field(default_factory=list) @@ -497,11 +309,11 @@ class NorwegianVitaeContent(VitaeContent): section_titles=SectionTitles( professional_experience="Arbeidserfaring", education="Utdanning", - technical_skills="Utvalgte tekniske ferdigheter", + technical_skills="Tekniske ferdigheter", languages="Språk", personal_skills="Personlige ferdigheter", hobbies="Interesser", - projects="Prosjekter", + projects="Utvidet beskrivelse av utvalgte prosjekter", publications="Publikasjoner", ), project_sub_titles=ProjectSubtitles(