Skip to content

Commit 8ffa2a6

Browse files
committed
Issue #604/#644 Rename UDPJobFactory to ProcessBasedJobCreator
1 parent 1917a73 commit 8ffa2a6

File tree

4 files changed

+18
-22
lines changed

4 files changed

+18
-22
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1414
Also added `create_job_db()` factory to easily create a job database from a given dataframe and its type guessed from filename extension.
1515
([#635](https://github.com/Open-EO/openeo-python-client/issues/635))
1616
- `MultiBackendJobManager.run_jobs()` now returns a dictionary with counters/stats about various events during the job run ([#645](https://github.com/Open-EO/openeo-python-client/issues/645))
17-
- Added `UDPJobFactory` to be used as `start_job` callable with `MultiBackendJobManager` to create multiple jobs from a single parameterized process (e.g. a UDP or remote process definition) ([#604](https://github.com/Open-EO/openeo-python-client/issues/604))
17+
- Added `ProcessBasedJobCreator` to be used as `start_job` callable with `MultiBackendJobManager` to create multiple jobs from a single parameterized process (e.g. a UDP or remote process definition) ([#604](https://github.com/Open-EO/openeo-python-client/issues/604))
1818

1919
### Changed
2020

docs/cookbook/job_manager.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,6 @@ Multi Backend Job Manager
1515

1616
.. autoclass:: openeo.extra.job_management.ParquetJobDatabase
1717

18-
.. autoclass:: openeo.extra.job_management.UDPJobFactory
18+
.. autoclass:: openeo.extra.job_management.ProcessBasedJobCreator
1919
:members:
2020
:special-members: __call__

openeo/extra/job_management.py

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -938,7 +938,7 @@ def create_job_db(path: Union[str, Path], df: pd.DataFrame, *, on_exists: str =
938938
return job_db
939939

940940

941-
class UDPJobFactory:
941+
class ProcessBasedJobCreator:
942942
"""
943943
Batch job creator
944944
(to be used together with :py:class:`MultiBackendJobManager`)
@@ -955,13 +955,13 @@ class UDPJobFactory:
955955
from openeo.extra.job_management import (
956956
MultiBackendJobManager,
957957
create_job_db,
958-
UDPJobFactory,
958+
ProcessBasedJobCreator,
959959
)
960960
961961
# Job creator, based on a parameterized openEO process
962962
# (specified by the remote process definition at given URL)
963963
# which has, say, parameters "start_date" and "bands" for example.
964-
job_starter = UDPJobFactory(
964+
job_starter = ProcessBasedJobCreator(
965965
namespace="https://example.com/my_process.json",
966966
parameter_defaults={
967967
# Default value for the "bands" parameter
@@ -1025,10 +1025,6 @@ class UDPJobFactory:
10251025
10261026
.. versionadded:: 0.33.0
10271027
"""
1028-
1029-
# TODO: find a better class name (e.g. eliminate over-specificity of "UDP",
1030-
# or avoid "factory" as technical mumbo-jumbo)?
1031-
10321028
def __init__(
10331029
self,
10341030
*,

tests/extra/test_job_management.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
CsvJobDatabase,
3131
MultiBackendJobManager,
3232
ParquetJobDatabase,
33-
UDPJobFactory,
33+
ProcessBasedJobCreator,
3434
create_job_db,
3535
get_job_db,
3636
)
@@ -1009,7 +1009,7 @@ def test_create_job_db(tmp_path, filename, expected):
10091009
assert path.exists()
10101010

10111011

1012-
class TestUDPJobFactory:
1012+
class TestProcessBasedJobCreator:
10131013
@pytest.fixture
10141014
def dummy_backend(self, requests_mock, con) -> DummyBackend:
10151015
dummy = DummyBackend(requests_mock=requests_mock, connection=con)
@@ -1073,7 +1073,7 @@ def remote_process_definitions(self, requests_mock) -> dict:
10731073

10741074
def test_minimal(self, con, dummy_backend, remote_process_definitions):
10751075
"""Bare minimum: just start a job, no parameters/arguments"""
1076-
job_factory = UDPJobFactory(process_id="3plus5", namespace="https://remote.test/3plus5.json")
1076+
job_factory = ProcessBasedJobCreator(process_id="3plus5", namespace="https://remote.test/3plus5.json")
10771077

10781078
job = job_factory.start_job(row=pd.Series({"foo": 123}), connection=con)
10791079
assert isinstance(job, BatchJob)
@@ -1097,7 +1097,7 @@ def test_minimal(self, con, dummy_backend, remote_process_definitions):
10971097
def test_basic(self, con, dummy_backend, remote_process_definitions):
10981098
"""Basic parameterized UDP job generation"""
10991099
dummy_backend.extra_job_metadata_fields = ["title", "description"]
1100-
job_factory = UDPJobFactory(process_id="increment", namespace="https://remote.test/increment.json")
1100+
job_factory = ProcessBasedJobCreator(process_id="increment", namespace="https://remote.test/increment.json")
11011101

11021102
job = job_factory.start_job(row=pd.Series({"data": 123}), connection=con)
11031103
assert isinstance(job, BatchJob)
@@ -1130,7 +1130,7 @@ def test_basic(self, con, dummy_backend, remote_process_definitions):
11301130
)
11311131
def test_basic_parameterization(self, con, dummy_backend, parameter_defaults, row, expected_arguments):
11321132
"""Basic parameterized UDP job generation"""
1133-
job_factory = UDPJobFactory(
1133+
job_factory = ProcessBasedJobCreator(
11341134
process_id="increment",
11351135
namespace="https://remote.test/increment.json",
11361136
parameter_defaults=parameter_defaults,
@@ -1190,7 +1190,7 @@ def test_process_references_in_constructor(
11901190
# Register personal UDP
11911191
requests_mock.get(con.build_url("/process_graphs/3plus5"), json=self.PG_3PLUS5)
11921192

1193-
job_factory = UDPJobFactory(process_id=process_id, namespace=namespace)
1193+
job_factory = ProcessBasedJobCreator(process_id=process_id, namespace=namespace)
11941194

11951195
job = job_factory.start_job(row=pd.Series({"foo": 123}), connection=con)
11961196
assert isinstance(job, BatchJob)
@@ -1204,7 +1204,7 @@ def test_process_references_in_constructor(
12041204

12051205
def test_no_process_id_nor_namespace(self):
12061206
with pytest.raises(ValueError, match="At least one of `process_id` and `namespace` should be provided"):
1207-
_ = UDPJobFactory()
1207+
_ = ProcessBasedJobCreator()
12081208

12091209
@pytest.fixture
12101210
def job_manager(self, tmp_path, dummy_backend) -> MultiBackendJobManager:
@@ -1215,7 +1215,7 @@ def job_manager(self, tmp_path, dummy_backend) -> MultiBackendJobManager:
12151215
def test_with_job_manager_remote_basic(
12161216
self, tmp_path, requests_mock, dummy_backend, job_manager, sleep_mock, remote_process_definitions
12171217
):
1218-
job_starter = UDPJobFactory(
1218+
job_starter = ProcessBasedJobCreator(
12191219
process_id="increment",
12201220
namespace="https://remote.test/increment.json",
12211221
parameter_defaults={"increment": 5},
@@ -1321,7 +1321,7 @@ def test_with_job_manager_remote_parameter_handling(
13211321
df_data,
13221322
expected_arguments,
13231323
):
1324-
job_starter = UDPJobFactory(
1324+
job_starter = ProcessBasedJobCreator(
13251325
process_id="increment",
13261326
namespace="https://remote.test/increment.json",
13271327
parameter_defaults=parameter_defaults,
@@ -1381,7 +1381,7 @@ def test_with_job_manager_remote_parameter_handling(
13811381
}
13821382

13831383
def test_with_job_manager_remote_geometry(self, tmp_path, requests_mock, dummy_backend, job_manager, sleep_mock):
1384-
job_starter = UDPJobFactory(
1384+
job_starter = ProcessBasedJobCreator(
13851385
process_id="offset_polygon",
13861386
namespace="https://remote.test/offset_polygon.json",
13871387
parameter_defaults={"data": 123},
@@ -1466,7 +1466,7 @@ def test_with_job_manager_remote_geometry_after_resume(
14661466
self, tmp_path, requests_mock, dummy_backend, job_manager, sleep_mock, db_class
14671467
):
14681468
"""Test if geometry handling works properly after resuming from CSV serialized job db."""
1469-
job_starter = UDPJobFactory(
1469+
job_starter = ProcessBasedJobCreator(
14701470
process_id="offset_polygon",
14711471
namespace="https://remote.test/offset_polygon.json",
14721472
parameter_defaults={"data": 123},
@@ -1554,7 +1554,7 @@ def test_with_job_manager_udp_basic(
15541554
# Register personal UDP
15551555
increment_udp_mock = requests_mock.get(con.build_url("/process_graphs/increment"), json=udp)
15561556

1557-
job_starter = UDPJobFactory(
1557+
job_starter = ProcessBasedJobCreator(
15581558
process_id="increment",
15591559
# No namespace to trigger personal UDP mode
15601560
namespace=None,
@@ -1603,7 +1603,7 @@ def test_with_job_manager_udp_basic(
16031603
def test_with_job_manager_parameter_column_map(
16041604
self, tmp_path, requests_mock, dummy_backend, job_manager, sleep_mock, remote_process_definitions
16051605
):
1606-
job_starter = UDPJobFactory(
1606+
job_starter = ProcessBasedJobCreator(
16071607
process_id="increment",
16081608
namespace="https://remote.test/increment.json",
16091609
parameter_column_map={"data": "numberzzz", "increment": "add_thiz"},

0 commit comments

Comments
 (0)