@@ -630,6 +630,35 @@ def _check_language_and_formality(
630
630
request_data ["glossary_id" ] = glossary
631
631
return request_data
632
632
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
+
633
662
def close (self ):
634
663
if hasattr (self , "_client" ):
635
664
self ._client .close ()
@@ -1133,28 +1162,16 @@ def create_glossary(
1133
1162
:raises DeepLException: If source and target language pair are not
1134
1163
supported for glossaries.
1135
1164
"""
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" )
1142
1165
if not entries :
1143
1166
raise ValueError ("glossary entries must not be empty" )
1144
1167
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 ),
1155
1174
)
1156
- self ._raise_for_status (status , content , json , glossary = True )
1157
- return GlossaryInfo .from_json (json )
1158
1175
1159
1176
def get_glossary (self , glossary_id : str ) -> GlossaryInfo :
1160
1177
"""Retrieves GlossaryInfo for the glossary with specified ID.
0 commit comments