Skip to content

Commit 9567aac

Browse files
committed
Synchronize max_poll_interval/connection_retry_interval arguments
1 parent 9a7f727 commit 9567aac

File tree

5 files changed

+41
-14
lines changed

5 files changed

+41
-14
lines changed

openeo/rest/__init__.py

+4
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

+11-3
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,
@@ -2492,8 +2498,8 @@ def execute_batch(
24922498
plan: Optional[str] = None,
24932499
budget: Optional[float] = None,
24942500
print: typing.Callable[[str], None] = print,
2495-
max_poll_interval: float = 60,
2496-
connection_retry_interval: float = 30,
2501+
max_poll_interval: float = DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
2502+
connection_retry_interval: float = DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
24972503
additional: Optional[dict] = None,
24982504
job_options: Optional[dict] = None,
24992505
validate: Optional[bool] = None,
@@ -2520,6 +2526,8 @@ def execute_batch(
25202526
:param show_error_logs: whether to automatically print error logs when the batch job failed.
25212527
:param log_level: Optional minimum severity level for log entries that the back-end should keep track of.
25222528
One of "error" (highest severity), "warning", "info", and "debug" (lowest severity).
2529+
:param max_poll_interval: maximum number of seconds to sleep between job status polls
2530+
:param connection_retry_interval: how long to wait when status poll failed due to connection issue
25232531
25242532
.. versionchanged:: 0.32.0
25252533
Added ``auto_add_save_result`` option

openeo/rest/job.py

+10-7
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

+8-2
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/vectorcube.py

+8-2
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,
@@ -253,8 +257,8 @@ def execute_batch(
253257
plan: Optional[str] = None,
254258
budget: Optional[float] = None,
255259
print=print,
256-
max_poll_interval: float = 60,
257-
connection_retry_interval: float = 30,
260+
max_poll_interval: float = DEFAULT_JOB_STATUS_POLL_INTERVAL_MAX,
261+
connection_retry_interval: float = DEFAULT_JOB_STATUS_POLL_CONNECTION_RETRY_INTERVAL,
258262
additional: Optional[dict] = None,
259263
job_options: Optional[dict] = None,
260264
validate: Optional[bool] = None,
@@ -282,6 +286,8 @@ def execute_batch(
282286
:param show_error_logs: whether to automatically print error logs when the batch job failed.
283287
:param log_level: Optional minimum severity level for log entries that the back-end should keep track of.
284288
One of "error" (highest severity), "warning", "info", and "debug" (lowest severity).
289+
:param max_poll_interval: maximum number of seconds to sleep between job status polls
290+
:param connection_retry_interval: how long to wait when status poll failed due to connection issue
285291
286292
.. versionchanged:: 0.21.0
287293
When not specified explicitly, output format is guessed from output file extension.

0 commit comments

Comments
 (0)