fastprocesses 0.20.0__tar.gz → 0.20.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/PKG-INFO +13 -6
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/README.md +11 -3
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/pyproject.toml +1 -1
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/common.py +6 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/core/base_process.py +11 -5
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/AUTHORS.md +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/__init__.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/api/__init__.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/api/manager.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/api/router.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/api/server.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/core/__init__.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/core/cache.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/core/config.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/core/exceptions.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/core/logging.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/core/models.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/core/redis_connection.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/core/types.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/processes/__init__.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/processes/process_registry.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/py.typed +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/static/style.css +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/templates/landing.html +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/worker/__init__.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/worker/celery_app.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/worker/chord_tasks.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/worker/executors.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/worker/job_status.py +0 -0
- {fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/worker/pipeline.py +0 -0
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: fastprocesses
|
|
3
|
-
Version: 0.20.
|
|
3
|
+
Version: 0.20.2
|
|
4
4
|
Summary: A library to create a FastAPI-based OGC API Processes wrapper around existing projects.
|
|
5
|
-
License-File: AUTHORS.md
|
|
6
5
|
Author: Stefan Schuhart
|
|
7
6
|
Author-email: stefan.schuhart@gv.hamburg.de
|
|
8
7
|
Requires-Python: >=3.12
|
|
@@ -39,7 +38,7 @@ A library to create a FastAPI-based OGC API Processes wrapper around existing pr
|
|
|
39
38
|
|
|
40
39
|
AI helped to create this code.
|
|
41
40
|
|
|
42
|
-
## Version: 0.20.
|
|
41
|
+
## Version: 0.20.2
|
|
43
42
|
|
|
44
43
|
### Description
|
|
45
44
|
|
|
@@ -523,8 +522,16 @@ RESULTS_TEMP_TTL_HOURS=48 # this period determines how long results can be retri
|
|
|
523
522
|
!IMPORTANT!: Cache hash key is based on original unprocessed inputs always. This ensures consistent caching and cache retrieval which does not depend on arbitrary processed data, which can change when the process is updated or changed!
|
|
524
523
|
|
|
525
524
|
### Version Notes
|
|
526
|
-
|
|
527
|
-
|
|
525
|
+
|
|
526
|
+
See [CHANGELOG.md](CHANGELOG.md) for the full history.
|
|
527
|
+
|
|
528
|
+
- **0.20.0**: Internal refactor of `celery_app` into modular components; no public API changes
|
|
529
|
+
- **0.19.0**: `resolve_remote_inputs` hook; `DataFetchError` exception; queue isolation for multi-instance deployments (`celery_queue` setting); process-specific validation hook (`validate_inputs`)
|
|
530
|
+
- **0.18.0**: Generic Helm chart; automated job status counter; `merge_results` receives `exec_body`; large request body handling
|
|
531
|
+
- **0.17.0**: Graceful handling of inaccessible remote JSON schemas
|
|
532
|
+
- **0.16.0**: `BaseParallelProcess` (data fan-out) and `BaseScatterProcess` + `@parallel_step` (operation fan-out); KEDA-compatible Celery chord execution
|
|
533
|
+
- **0.15.0**: Redis retry mechanism
|
|
534
|
+
- **0.14.0**: Renamed settings (`FP_` prefix); HTML landing page with content negotiation
|
|
528
535
|
- **0.14.0**: Renamed settings and allowed to add metadata to server app, added a html landing page
|
|
529
536
|
- **0.13.0**: Validation occurs against schema fragment provided by process description
|
|
530
537
|
- **0.12.0**: results will be retrieved from cache only if inputs and outputs are the same
|
|
@@ -4,7 +4,7 @@ A library to create a FastAPI-based OGC API Processes wrapper around existing pr
|
|
|
4
4
|
|
|
5
5
|
AI helped to create this code.
|
|
6
6
|
|
|
7
|
-
## Version: 0.20.
|
|
7
|
+
## Version: 0.20.2
|
|
8
8
|
|
|
9
9
|
### Description
|
|
10
10
|
|
|
@@ -488,8 +488,16 @@ RESULTS_TEMP_TTL_HOURS=48 # this period determines how long results can be retri
|
|
|
488
488
|
!IMPORTANT!: Cache hash key is based on original unprocessed inputs always. This ensures consistent caching and cache retrieval which does not depend on arbitrary processed data, which can change when the process is updated or changed!
|
|
489
489
|
|
|
490
490
|
### Version Notes
|
|
491
|
-
|
|
492
|
-
|
|
491
|
+
|
|
492
|
+
See [CHANGELOG.md](CHANGELOG.md) for the full history.
|
|
493
|
+
|
|
494
|
+
- **0.20.0**: Internal refactor of `celery_app` into modular components; no public API changes
|
|
495
|
+
- **0.19.0**: `resolve_remote_inputs` hook; `DataFetchError` exception; queue isolation for multi-instance deployments (`celery_queue` setting); process-specific validation hook (`validate_inputs`)
|
|
496
|
+
- **0.18.0**: Generic Helm chart; automated job status counter; `merge_results` receives `exec_body`; large request body handling
|
|
497
|
+
- **0.17.0**: Graceful handling of inaccessible remote JSON schemas
|
|
498
|
+
- **0.16.0**: `BaseParallelProcess` (data fan-out) and `BaseScatterProcess` + `@parallel_step` (operation fan-out); KEDA-compatible Celery chord execution
|
|
499
|
+
- **0.15.0**: Redis retry mechanism
|
|
500
|
+
- **0.14.0**: Renamed settings (`FP_` prefix); HTML landing page with content negotiation
|
|
493
501
|
- **0.14.0**: Renamed settings and allowed to add metadata to server app, added a html landing page
|
|
494
502
|
- **0.13.0**: Validation occurs against schema fragment provided by process description
|
|
495
503
|
- **0.12.0**: results will be retrieved from cache only if inputs and outputs are the same
|
|
@@ -79,7 +79,7 @@ exclude = [
|
|
|
79
79
|
|
|
80
80
|
[tool.poetry]
|
|
81
81
|
name = "fastprocesses"
|
|
82
|
-
version = "0.20.
|
|
82
|
+
version = "0.20.2"
|
|
83
83
|
description = "A library to create a FastAPI-based OGC API Processes wrapper around existing projects."
|
|
84
84
|
authors = ["Stefan Schuhart <stefan.schuhart@gv.hamburg.de>"]
|
|
85
85
|
readme = "README.md"
|
|
@@ -102,6 +102,12 @@ celery_app.conf.update(
|
|
|
102
102
|
"retry_on_timeout": True,
|
|
103
103
|
"retry_on_connection_failure": True,
|
|
104
104
|
},
|
|
105
|
+
# Re-queue the task immediately when the worker process dies (OOM kill, pod
|
|
106
|
+
# eviction, etc.) instead of waiting for visibility_timeout to expire.
|
|
107
|
+
# Without this, KEDA sees queue depth=0 (task is in unacked, not in queue)
|
|
108
|
+
# and never spawns a replacement worker — the task is orphaned until
|
|
109
|
+
# visibility_timeout (currently >30 min) elapses.
|
|
110
|
+
task_reject_on_worker_lost=True,
|
|
105
111
|
)
|
|
106
112
|
|
|
107
113
|
for key, value in celery_app.conf.items():
|
|
@@ -267,11 +267,17 @@ class BaseProcess(ABC):
|
|
|
267
267
|
input_schema = input_desc.scheme.model_dump(
|
|
268
268
|
exclude_unset=True, by_alias=True
|
|
269
269
|
)
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
270
|
+
if self.schema_registry is not None:
|
|
271
|
+
jsonschema_validate(
|
|
272
|
+
instance=input_value,
|
|
273
|
+
schema=input_schema,
|
|
274
|
+
registry=self.schema_registry,
|
|
275
|
+
)
|
|
276
|
+
else:
|
|
277
|
+
jsonschema_validate(
|
|
278
|
+
instance=input_value,
|
|
279
|
+
schema=input_schema,
|
|
280
|
+
)
|
|
275
281
|
except JSONSchemaValidationError as e:
|
|
276
282
|
# For oneOf/anyOf/allOf, best_match picks the deepest,
|
|
277
283
|
# most specific sub-error instead of the generic top-level one.
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastprocesses-0.20.0 → fastprocesses-0.20.2}/src/fastprocesses/processes/process_registry.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|