Giter Club home page Giter Club logo

Comments (7)

daniel-jones-deepl avatar daniel-jones-deepl commented on August 21, 2024

Hi @SamueLacombe, thanks for the questions.

  1. The HTTP status code is not included in the exception, because we didn't expect it to be needed. The HTTP status code is already checked by the library to choose the type of exception and message. Do you need it for your application?
  2. The should_retry parameter is used internally when deciding whether to retry requests. The library retries failed requests, by default up to 5 times.
  3. A few ways you could trigger errors: use an incorrect auth-key, use an invalid target or source language code, or try to translate an unsupported document type (e.g. image files).

Thanks for creating this issue; these things could be made more clear in the documentation.

from deepl-python.

SamueLacombe avatar SamueLacombe commented on August 21, 2024

Hello,

I had to implement a "Exponential Backoff" with google automl api. I was trying to implement it with deepl aswell, if ever it fail for specific reason on the server side, but without the error code, I could retry on useless errors.

I believe it's possible to get bad gateway randomly like any other API?

Best regards,
Samuel

from deepl-python.

arski avatar arski commented on August 21, 2024

+1 to the above, just implementing some exception handling and I think it's very different based on the type of error. e.g. for 502 Service Unavailable (also 429, maybe 456..), I would just backoff and retry later.

For 404 Not Found or 400 Bad Request, I would raise it to my Sentry because likely I'm doing something wrong and retrying will just spam your servers.

from deepl-python.

daniel-jones-deepl avatar daniel-jones-deepl commented on August 21, 2024

Hi Samuel, this library already retries failed requests with exponential backoff, so you might not need to implement it yourself. The function which decides whether to retry a request is http_client._should_retry(). We retry 429 and >=500 (excluding 503), so a 502 error would be retried.

I will look into exposing the HTTP error code in exceptions, and possibly the shouldRetry flag as well.

from deepl-python.

arski avatar arski commented on August 21, 2024

Thanks Daniel! Any potential ETA on this? Cheers

from deepl-python.

daniel-jones-deepl avatar daniel-jones-deepl commented on August 21, 2024

Hi again, sorry for the long delay. v1.12.0 adds properties should_retry and (Optional) http_status_code to DeepLException. Please let me know if there are any problems.

from deepl-python.

arski avatar arski commented on August 21, 2024

thank you!

from deepl-python.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.