Skip to content

Commit 4ae0874

Browse files
refactor: add private _create_glossary function
1 parent 9641b2a commit 4ae0874

File tree

1 file changed

+35
-18
lines changed

1 file changed

+35
-18
lines changed

deepl/translator.py

Lines changed: 35 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)