@@ -630,6 +630,35 @@ def _check_language_and_formality(
630630 request_data ["glossary_id" ] = glossary
631631 return request_data
632632
633+ def _create_glossary (
634+ self ,
635+ name : str ,
636+ source_lang : Union [str , Language ],
637+ target_lang : Union [str , Language ],
638+ entries_format : str ,
639+ entries : str ,
640+ ) -> GlossaryInfo :
641+ # glossaries are only supported for base language types
642+ source_lang = Language .remove_regional_variant (source_lang )
643+ target_lang = Language .remove_regional_variant (target_lang )
644+
645+ if not name :
646+ raise ValueError ("glossary name must not be empty" )
647+
648+ request_data = {
649+ "name" : name ,
650+ "source_lang" : source_lang ,
651+ "target_lang" : target_lang ,
652+ "entries_format" : entries_format ,
653+ "entries" : entries ,
654+ }
655+
656+ status , content , json = self ._api_call (
657+ "v2/glossaries" , data = request_data
658+ )
659+ self ._raise_for_status (status , content , json , glossary = True )
660+ return GlossaryInfo .from_json (json )
661+
633662 def close (self ):
634663 if hasattr (self , "_client" ):
635664 self ._client .close ()
@@ -1133,28 +1162,16 @@ def create_glossary(
11331162 :raises DeepLException: If source and target language pair are not
11341163 supported for glossaries.
11351164 """
1136- # glossaries are only supported for base language types
1137- target_lang = Language .remove_regional_variant (target_lang )
1138- source_lang = Language .remove_regional_variant (source_lang )
1139-
1140- if not name :
1141- raise ValueError ("glossary name must not be empty" )
11421165 if not entries :
11431166 raise ValueError ("glossary entries must not be empty" )
11441167
1145- request_data = {
1146- "name" : name ,
1147- "source_lang" : source_lang ,
1148- "target_lang" : target_lang ,
1149- "entries_format" : "tsv" ,
1150- "entries" : util .convert_dict_to_tsv (entries ),
1151- }
1152-
1153- status , content , json = self ._api_call (
1154- "v2/glossaries" , data = request_data
1168+ return self ._create_glossary (
1169+ name ,
1170+ source_lang ,
1171+ target_lang ,
1172+ "tsv" ,
1173+ util .convert_dict_to_tsv (entries ),
11551174 )
1156- self ._raise_for_status (status , content , json , glossary = True )
1157- return GlossaryInfo .from_json (json )
11581175
11591176 def get_glossary (self , glossary_id : str ) -> GlossaryInfo :
11601177 """Retrieves GlossaryInfo for the glossary with specified ID.
0 commit comments