details:   https://code.tryton.org/tryton/commit/b2a710926326
branch:    default
user:      Cédric Krier <[email protected]>
date:      Wed Sep 09 12:25:27 2026 +0200
description:
        Add timeout for requests to Peppyrus API
diffstat:

 modules/edocument_peppol_peppyrus/doc/configuration.rst |  10 ++++++++++
 modules/edocument_peppol_peppyrus/edocument.py          |  16 ++++++++++++++++
 2 files changed, 26 insertions(+), 0 deletions(-)

diffs (78 lines):

diff -r 6267ce266fcf -r b2a710926326 
modules/edocument_peppol_peppyrus/doc/configuration.rst
--- a/modules/edocument_peppol_peppyrus/doc/configuration.rst   Thu Sep 24 
09:27:50 2026 +0200
+++ b/modules/edocument_peppol_peppyrus/doc/configuration.rst   Wed Sep 09 
12:25:27 2026 +0200
@@ -15,3 +15,13 @@
 limit):
 
 The default value is: `trytond:config-request.max_size`
+
+.. _config-edocument_peppol_peppyrus.requests_timeout:
+
+``requests_timeout``
+====================
+
+The ``requests_timeout`` defines the time in seconds to wait for the Peppyrus
+APIs answer before failing.
+
+The default value is: ``300``
diff -r 6267ce266fcf -r b2a710926326 
modules/edocument_peppol_peppyrus/edocument.py
--- a/modules/edocument_peppol_peppyrus/edocument.py    Thu Sep 24 09:27:50 
2026 +0200
+++ b/modules/edocument_peppol_peppyrus/edocument.py    Wed Sep 09 12:25:27 
2026 +0200
@@ -10,6 +10,7 @@
 import requests
 from lxml import etree
 
+import trytond.config as config
 from trytond.i18n import gettext
 from trytond.model import fields
 from trytond.modules.edocument_peppol.exceptions import PeppolServiceError
@@ -144,6 +145,9 @@
                     self._peppyrus_document_type(document.type, tree)),
                 'fileContent': b64encode(document.data).decode(),
                 },
+            timeout=config.getfloat(
+                'edocument_peppol_peppyrus', 'requests_timeout',
+                default=300),
             headers={
                 'Accept': 'application/json',
                 'X-Api-Key': self.peppyrus_api_key,
@@ -191,6 +195,9 @@
             urljoin(
                 URLS[self.peppyrus_server],
                 f'message/{document.transmission_id}'),
+            timeout=config.getfloat(
+                'edocument_peppol_peppyrus', 'requests_timeout',
+                default=300),
             headers={
                 'Accept': 'application/json',
                 'X-Api-Key': self.peppyrus_api_key,
@@ -212,6 +219,9 @@
             urljoin(
                 URLS[self.peppyrus_server],
                 f'message/{document.transmission_id}/report'),
+            timeout=config.getfloat(
+                'edocument_peppol_peppyrus', 'requests_timeout',
+                default=300),
             headers={
                 'Accept': 'application/json',
                 'X-Api-Key': self.peppyrus_api_key,
@@ -237,6 +247,9 @@
                 'confirmed': 'false',
                 'perPage': 100,
                 },
+            timeout=config.getfloat(
+                'edocument_peppol_peppyrus', 'requests_timeout',
+                default=300),
             headers={
                 'Accept': 'application/json',
                 'X-Api-Key': self.peppyrus_api_key,
@@ -257,6 +270,9 @@
                     urljoin(
                         URLS[server],
                         f"message/{message['id']}/confirm"),
+                    timeout=config.getfloat(
+                        'edocument_peppol_peppyrus', 'requests_timeout',
+                        default=300),
                     headers={
                         'Accept': 'application/json',
                         'X-Api-Key': api_key,

Reply via email to