Skip to content

Commit 0bbe24c

Browse files
committed
Synchronize max_poll_interval/connection_retry_interval arguments
1 parent 9918275 commit 0bbe24c

File tree

6 files changed

+48
-17
lines changed

6 files changed

+48
-17
lines changed

openeo/rest/__init__.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66
DEFAULT_DOWNLOAD_CHUNK_SIZE = 10_000_000 # 10MB
77

88

9+
DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX = 60
10+
DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL = 30
11+
DEFAULT_JOB_STATUS_POLL_SOFT_ERROR_MAX = 10
12+
913
class OpenEoClientException(BaseOpenEoException):
1014
"""Base class for OpenEO client exceptions"""
1115
pass

openeo/rest/datacube.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,13 @@
4646
metadata_from_stac,
4747
)
4848
from openeo.processes import ProcessBuilder
49-
from openeo.rest import BandMathException, OpenEoClientException, OperatorException
49+
from openeo.rest import (
50+
DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
51+
DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
52+
BandMathException,
53+
OpenEoClientException,
54+
OperatorException,
55+
)
5056
from openeo.rest._datacube import (
5157
THIS,
5258
UDF,
@@ -2497,8 +2503,8 @@ def execute_batch(
24972503
plan: Optional[str] = None,
24982504
budget: Optional[float] = None,
24992505
print: typing.Callable[[str], None] = print,
2500-
max_poll_interval: float = 60,
2501-
connection_retry_interval: float = 30,
2506+
max_poll_interval: float = DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
2507+
connection_retry_interval: float = DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
25022508
additional: Optional[dict] = None,
25032509
job_options: Optional[dict] = None,
25042510
validate: Optional[bool] = None,
@@ -2525,6 +2531,8 @@ def execute_batch(
25252531
:param show_error_logs: whether to automatically print error logs when the batch job failed.
25262532
:param log_level: Optional minimum severity level for log entries that the back-end should keep track of.
25272533
One of "error" (highest severity), "warning", "info", and "debug" (lowest severity).
2534+
:param max_poll_interval: maximum number of seconds to sleep between job status polls
2535+
:param connection_retry_interval: how long to wait when status poll failed due to connection issue
25282536
25292537
.. versionchanged:: 0.32.0
25302538
Added ``auto_add_save_result`` option

openeo/rest/job.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@
2020
from openeo.internal.warnings import deprecated, legacy_alias
2121
from openeo.rest import (
2222
DEFAULT_DOWNLOAD_CHUNK_SIZE,
23+
DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
24+
DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
25+
DEFAULT_JOB_STATUS_POLL_SOFT_ERROR_MAX,
2326
JobFailedException,
2427
OpenEoApiError,
2528
OpenEoApiPlainError,
@@ -223,16 +226,16 @@ def run_synchronous(
223226
self,
224227
outputfile: Union[str, Path, None] = None,
225228
print=print,
226-
max_poll_interval=60,
227-
connection_retry_interval=30,
229+
max_poll_interval: float = DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
230+
connection_retry_interval: float = DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
228231
show_error_logs: bool = True,
229232
) -> BatchJob:
230233
"""
231234
Start the job, wait for it to finish and download result
232235
233236
:param outputfile: The path of a file to which a result can be written
234237
:param print: print/logging function to show progress/status
235-
:param max_poll_interval: maximum number of seconds to sleep between status polls
238+
:param max_poll_interval: maximum number of seconds to sleep between job status polls
236239
:param connection_retry_interval: how long to wait when status poll failed due to connection issue
237240
:param show_error_logs: whether to automatically print error logs when the batch job failed.
238241
@@ -253,16 +256,16 @@ def run_synchronous(
253256
def start_and_wait(
254257
self,
255258
print=print,
256-
max_poll_interval: int = 60,
257-
connection_retry_interval: int = 30,
258-
soft_error_max=10,
259+
max_poll_interval: float = DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
260+
connection_retry_interval: float = DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
261+
soft_error_max: int = DEFAULT_JOB_STATUS_POLL_SOFT_ERROR_MAX,
259262
show_error_logs: bool = True,
260263
) -> BatchJob:
261264
"""
262265
Start the batch job, poll its status and wait till it finishes (or fails)
263266
264267
:param print: print/logging function to show progress/status
265-
:param max_poll_interval: maximum number of seconds to sleep between status polls
268+
:param max_poll_interval: maximum number of seconds to sleep between job status polls
266269
:param connection_retry_interval: how long to wait when status poll failed due to connection issue
267270
:param soft_error_max: maximum number of soft errors (e.g. temporary connection glitches) to allow
268271
:param show_error_logs: whether to automatically print error logs when the batch job failed.

openeo/rest/mlmodel.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77

88
from openeo.internal.documentation import openeo_process
99
from openeo.internal.graph_building import PGNode
10+
from openeo.rest import (
11+
DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
12+
DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
13+
)
1014
from openeo.rest._datacube import _ProcessGraphAbstraction
1115
from openeo.rest.job import BatchJob
1216

@@ -67,8 +71,8 @@ def execute_batch(
6771
plan: Optional[str] = None,
6872
budget: Optional[float] = None,
6973
print=print,
70-
max_poll_interval=60,
71-
connection_retry_interval=30,
74+
max_poll_interval: float = DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
75+
connection_retry_interval: float = DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
7276
additional: Optional[dict] = None,
7377
job_options: Optional[dict] = None,
7478
show_error_logs: bool = True,
@@ -90,6 +94,8 @@ def execute_batch(
9094
:param show_error_logs: whether to automatically print error logs when the batch job failed.
9195
:param log_level: Optional minimum severity level for log entries that the back-end should keep track of.
9296
One of "error" (highest severity), "warning", "info", and "debug" (lowest severity).
97+
:param max_poll_interval: maximum number of seconds to sleep between job status polls
98+
:param connection_retry_interval: how long to wait when status poll failed due to connection issue
9399
94100
.. versionchanged:: 0.36.0
95101
Added argument ``additional``.

openeo/rest/stac_resource.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@
66

77
from openeo.internal.documentation import openeo_process
88
from openeo.internal.graph_building import PGNode
9+
from openeo.rest import (
10+
DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
11+
DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
12+
)
913
from openeo.rest._datacube import _ProcessGraphAbstraction
1014
from openeo.rest.job import BatchJob
1115

@@ -98,15 +102,15 @@ def execute_batch(
98102
plan: Optional[str] = None,
99103
budget: Optional[float] = None,
100104
print: typing.Callable[[str], None] = print,
101-
max_poll_interval: float = 60,
102-
connection_retry_interval: float = 30,
105+
max_poll_interval: float = DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
106+
connection_retry_interval: float = DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
103107
additional: Optional[dict] = None,
104108
job_options: Optional[dict] = None,
105109
validate: Optional[bool] = None,
106110
auto_add_save_result: bool = True,
107111
show_error_logs: bool = True,
108112
log_level: Optional[str] = None,
109-
):
113+
) -> BatchJob:
110114
"""TODO"""
111115
job = self.create_job(
112116
title=title,

openeo/rest/vectorcube.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@
1313
from openeo.internal.graph_building import PGNode
1414
from openeo.internal.warnings import legacy_alias
1515
from openeo.metadata import CollectionMetadata, CubeMetadata, Dimension
16+
from openeo.rest import (
17+
DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
18+
DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
19+
)
1620
from openeo.rest._datacube import (
1721
THIS,
1822
UDF,
@@ -258,8 +262,8 @@ def execute_batch(
258262
plan: Optional[str] = None,
259263
budget: Optional[float] = None,
260264
print=print,
261-
max_poll_interval: float = 60,
262-
connection_retry_interval: float = 30,
265+
max_poll_interval: float = DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
266+
connection_retry_interval: float = DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
263267
additional: Optional[dict] = None,
264268
job_options: Optional[dict] = None,
265269
validate: Optional[bool] = None,
@@ -287,6 +291,8 @@ def execute_batch(
287291
:param show_error_logs: whether to automatically print error logs when the batch job failed.
288292
:param log_level: Optional minimum severity level for log entries that the back-end should keep track of.
289293
One of "error" (highest severity), "warning", "info", and "debug" (lowest severity).
294+
:param max_poll_interval: maximum number of seconds to sleep between job status polls
295+
:param connection_retry_interval: how long to wait when status poll failed due to connection issue
290296
291297
.. versionchanged:: 0.21.0
292298
When not specified explicitly, output format is guessed from output file extension.

0 commit comments

Comments
 (0)