All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.20.0 - 2024-11-15
- Added
model_type
option totranslate_text()
to use models with higher translation quality (available for some language pairs), or better latency. Options are'quality_optimized'
,'latency_optimized'
, and'prefer_quality_optimized'
- Added the
model_type_used
field totranslate_text()
response, that indicates the translation model used when themodel_type
option is specified.
1.19.1 - 2024-09-17
- Fixed typing issues, black-formatting and a test case failure.
1.19.0 - 2024-09-17
- Added
billed_characters
to response fromtranslate_text()
.
1.18.0 - 2024-04-26
-
New language available: Arabic (
'ar'
). Add language code constants and tests. Arabic is currently supported only for text translation; document translation support for Arabic is coming soon.Note: older library versions also support the new language, this update only adds new code constants.
-
Added a section in the readme on how to configure retry options in
http_client.py
1.17.0 - 2024-02-06
- Added
output_format
parameter for document upload function, that indicates the file extension of the desired file format for the translated document. - Added basic usage example of the library
- Fixed typechecking errors when using
mypy
'sstrict
mode- Thanks to derlikh-smart and vad for the report in #82
1.16.1 - 2023-11-07
- Fixed typo in error message when no auth key is provided.
- Removed dependency on
packaging
by replacing version comparison.
1.16.0 - 2023-11-03
- Add optional
context
parameter for text translation, that specifies additional context to influence translations, that is not translated itself.
- Added notice in Readme that starting in 2024 the library will drop support for Python versions that are officially end-of-life.
- DeepL API calls now send requests with JSON-encoded bodies where possible.
- Catch failures while constructing the user agent string.
- Added
py.typed
to the package so that our package is typed for our users. - Fixed most type errors in the package.
1.15.0 - 2023-06-09
- Removed
CHANGELOG.md
andSECURITY.md
from the python package. TheLICENSE
file is no longer installed, but still included in package tarball and wheel files.- Thanks to TurtleWilly for the report in #66.
- Fix a dependency error in our CI by updating to a higher poetry version in most cases.
- Fix getUsage request to be a HTTP GET request, not POST.
- Change document translation to poll the server every 5 seconds. This should greatly reduce observed document translation processing time.
1.14.0 - 2023-02-21
- Add example to translate JSON inputs.
- Added platform and python version information to the user-agent string that is sent with API calls, along with an opt-out.
- Added method for applications that use this library to identify themselves in API requests they make.
- Added
verify_ssl
option toTranslator
to control underlyingrequests
session.- Thanks to andrefloriani for the suggestion in #60.
1.13.0 - 2023-01-26
-
Add example script to translate Mustache templates.
-
Add support for storing your API Key in a keyring via the
keyring
module. -
Added a CI check for copyright headers.
-
New languages available: Korean (
'ko'
) and Norwegian (bokmål) ('nb'
). Add language code constants and tests.Note: older library versions also support the new languages, this update only adds new code constants.
- Copyright headers are updated for 2023
- Update
certifi
to resolve security advisory.certifi
is a development-only dependency; library users are unaffected.
1.12.0 - 2023-01-09
- State explicitly that this library supports Python 3.11.
- Added the
should_retry
andhttp_status_code
properties to all exceptions thrown by the library.
- Fix
py
dependency by upgradingpytest
version to 7.2.0 for Python 3.7+. For Python 3.6 testspytest
needs to be added manually. - Remove unused
tox
dependency. - Update
coverage
dependency. - Also send options in API requests even if they are default values.
1.11.0 - 2022-09-26
- Add formality options
PREFER_LESS
andPREFER_MORE
.
- Requests resulting in
503 Service Unavailable
errors are now retried. Attempting to download a document before translation is completed will now wait and retry (up to 5 times by default), rather than raising an exception.
1.10.0 - 2022-09-09
-
New language available: Ukrainian (
'uk'
). Add language code constant and tests.Note: older library versions also support new languages, this update only adds new code constant.
- Add note and workaround to README about Poetry error on Ubuntu 22.04.
- Pull request #48 thanks to FOehlschlaeger.
1.9.0 - 2022-07-07
- Add
Translator.create_glossary_from_csv()
allowing glossaries downloaded from website to be easily uploaded to API.
1.8.0 - 2022-06-10
- Optional
filename
parameter added toTranslator.translate_document()
, only required if uploading string or bytes containing file content.
- Update contributing guidelines, we can now accept Pull Requests.
- Fix GitLab CI config.
1.7.0 - 2022-05-18
-
New languages available: Indonesian (
'id'
) and Turkish ('tr'
). Add language code constants and tests.Note: older library versions also support the new languages, this update only adds new code constants.
-
Add
limit_reached
andany_limit_reached
properties toUsage
object returned byget_usage()
. -
Add
Translator.translate_document_wait_until_done()
to poll translation status until translation is complete or fails. -
Add
auth_key_is_free_account()
utility function.
- Improve readme usage examples.
- Deprecate
limit_exceeded
andany_limit_exceeded
properties ofUsage
object returned byget_usage()
, uselimit_reached
andany_limit_reached
instead.
1.6.0 - 2022-04-12
- Add
error_message
property toDocumentStatus
, describing the error in case of document translation failure.
- Improve error message if
translate_text_with_glossary
is called without an instance ofGlossaryInfo
. translate_document
andtranslate_document_from_filepath
return finalDocumentStatus
, allowing the number of billed characters to be queried.
1.5.1 - 2022-04-11
- Fix bug in CLI languages command causing some target languages to be omitted.
- Fix some tests that intermittently failed.
1.5.0 - 2022-02-28
- Add support for HTML tag handling in
translate_text()
.
DocumentTranslationException.document_request
is deprecated, usedocument_handle
instead.
1.4.1 - 2022-02-04
- Fix bug in
DocumentTranslationException
stringize function.
1.4.0 - 2022-01-19
- Add contribution guidelines -- currently we are unable to accept Pull Requests.
- Add
--glossary-id
argument for CLI document command.
- Improve README.
- Raise
DocumentNotReadyException
when attempting to download a document before it has been translated. Previously the base classDeepLException
was thrown.
- Add optional filename argument to
translate_document_upload()
to fix uploading file content as string or bytes.
1.3.1 - 2021-11-15
- Limit document status update wait time to 60 seconds, and log wait times.
1.3.0 - 2021-11-15
Note: the PyPI package for 1.3.0 included changes from 1.3.1, so it has been yanked.
- Add glossary support for document translation.
- Add proxy support.
- Fix issues with parallelized tests by changing how test glossaries are created and deleted.
1.2.1 - 2021-10-19
- Add support for Python 3.10.
- Fix bug that caused User-Agent header to be omitted from HTTP requests.
- Fix glossary name prefix used in unit-tests to match git repository name.
- Add workaround for possible issue in datetime.strptime in Python 3.6.
1.2.0 - 2021-10-07
- Add
Translator.get_glossary_languages()
to query language pairs supported for glossaries. - Add constants for all supported languages codes, for example:
Language.GERMAN
.
- Internal language caching and client-side checking of language codes are removed.
- Some optional arguments related to language caching are now deprecated, and will be removed in a future version:
Translator()
: theskip_language_check
argumentTranslator.get_source_languages()
andTranslator.get_target_languages()
: theskip_cache
argument
- Fix HTTP request retries for document uploads.
1.1.3 - 2021-09-27
- Loosen requirement for requests to 2.0 or higher.
1.1.2 - 2021-09-21
- Improve request exception messages and include exception stacktraces.
- Update unit tests for server error message changes.
1.1.1 - 2021-09-13
- Fix typing.List issue on Python 3.6.
- Add workaround for datetime.strptime bug in Python 3.6.
1.1.0 - 2021-09-13
- Add security policy.
- Add support for glossary API functions.
- README and comments improvements, type hints and other minor fixes.
1.0.1 - 2021-08-13
- Add explicit copyright notice to all source files.
- Force response encoding to UTF-8 to avoid issues with older versions of requests package.
1.0.0 - 2021-08-12
- All API calls use Authorization header instead of auth_key parameter.
0.4.1 - 2021-08-10
- Minor updates to pyproject.toml and README.md.
0.4.0 - 2021-08-05
Version increased to avoid conflicts with old packages on PyPI.
0.3.0 - 2021-08-05
- Package uploaded to PyPI. Thanks to Adrian Freund for transferring the deepl package name.
- Clarify minimum version of requests module to 2.18.
0.2.0 - 2021-07-28
- Improve exception hierarchy.
- Translator() server_url argument works with and without trailing slash.
- Translator.translate_text() accepts a single text argument, which may be a list or other iterable.
- Fix examples in readme to match function interface changes.
0.1.0 - 2021-07-26
Initial version.