agi-apps 2026.5.13__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.
- agi_apps-2026.5.13/LICENSE +22 -0
- agi_apps-2026.5.13/PKG-INFO +78 -0
- agi_apps-2026.5.13/README.md +38 -0
- agi_apps-2026.5.13/pyproject.toml +165 -0
- agi_apps-2026.5.13/setup.cfg +4 -0
- agi_apps-2026.5.13/setup.py +43 -0
- agi_apps-2026.5.13/src/agi_apps/__init__.py +16 -0
- agi_apps-2026.5.13/src/agi_apps/catalog.json +62 -0
- agi_apps-2026.5.13/src/agi_apps.egg-info/PKG-INFO +78 -0
- agi_apps-2026.5.13/src/agi_apps.egg-info/SOURCES.txt +13 -0
- agi_apps-2026.5.13/src/agi_apps.egg-info/dependency_links.txt +1 -0
- agi_apps-2026.5.13/src/agi_apps.egg-info/requires.txt +11 -0
- agi_apps-2026.5.13/src/agi_apps.egg-info/top_level.txt +2 -0
- agi_apps-2026.5.13/src/agilab/apps/README.md +40 -0
- agi_apps-2026.5.13/src/agilab/apps/__init__.py +3 -0
- agi_apps-2026.5.13/src/agilab/apps/install.py +388 -0
- agi_apps-2026.5.13/src/agilab/examples/README.md +95 -0
- agi_apps-2026.5.13/src/agilab/examples/__init__.py +3 -0
- agi_apps-2026.5.13/src/agilab/examples/data_io_2026/AGI_install_data_io_2026.py +35 -0
- agi_apps-2026.5.13/src/agilab/examples/data_io_2026/AGI_run_data_io_2026.py +47 -0
- agi_apps-2026.5.13/src/agilab/examples/data_io_2026/README.md +56 -0
- agi_apps-2026.5.13/src/agilab/examples/flight/AGI_install_flight.py +35 -0
- agi_apps-2026.5.13/src/agilab/examples/flight/AGI_run_flight.py +47 -0
- agi_apps-2026.5.13/src/agilab/examples/flight/README.md +57 -0
- agi_apps-2026.5.13/src/agilab/examples/inter_project_dag/README.md +125 -0
- agi_apps-2026.5.13/src/agilab/examples/inter_project_dag/preview_inter_project_dag.py +225 -0
- agi_apps-2026.5.13/src/agilab/examples/meteo_forecast/AGI_install_meteo_forecast.py +35 -0
- agi_apps-2026.5.13/src/agilab/examples/meteo_forecast/AGI_run_meteo_forecast.py +51 -0
- agi_apps-2026.5.13/src/agilab/examples/meteo_forecast/README.md +56 -0
- agi_apps-2026.5.13/src/agilab/examples/mlflow_auto_tracking/README.md +121 -0
- agi_apps-2026.5.13/src/agilab/examples/mlflow_auto_tracking/preview_mlflow_auto_tracking.py +276 -0
- agi_apps-2026.5.13/src/agilab/examples/mycode/AGI_install_mycode.py +35 -0
- agi_apps-2026.5.13/src/agilab/examples/mycode/AGI_run_mycode.py +35 -0
- agi_apps-2026.5.13/src/agilab/examples/mycode/README.md +55 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_migrations/skforecast_meteo_fr/README.md +59 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_migrations/skforecast_meteo_fr/analysis_artifacts/forecast_metrics.json +14 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_migrations/skforecast_meteo_fr/analysis_artifacts/forecast_predictions.csv +10 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_migrations/skforecast_meteo_fr/data/meteo_fr_daily_sample.csv +41 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_migrations/skforecast_meteo_fr/migrated_project/lab_stages.toml +6 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_migrations/skforecast_meteo_fr/migrated_project/pipeline_view.dot +13 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_migrations/skforecast_meteo_fr/notebooks/01_prepare_meteo_series.ipynb +63 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_migrations/skforecast_meteo_fr/notebooks/02_backtest_temperature_forecast.ipynb +82 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_migrations/skforecast_meteo_fr/notebooks/03_compare_predictions.ipynb +67 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_colab_benchmark.ipynb +247 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_colab_benchmark_source.ipynb +272 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_colab_data_dag.ipynb +284 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_colab_data_dag_pypi.ipynb +259 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_colab_first_run.ipynb +227 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_colab_first_run_source.ipynb +251 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_colab_worker_paths.ipynb +259 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_colab_worker_paths_pypi.ipynb +234 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_first_run.ipynb +104 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_kaggle_first_run.ipynb +230 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_quickstart/agi_core_kaggle_first_run_source.ipynb +254 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_to_dask/README.md +84 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_to_dask/lab_stages.toml +58 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_to_dask/notebook_to_dask_sample.ipynb +88 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_to_dask/pipeline_view.json +65 -0
- agi_apps-2026.5.13/src/agilab/examples/notebook_to_dask/preview_notebook_to_dask.py +211 -0
- agi_apps-2026.5.13/src/agilab/examples/resilience_failure_injection/README.md +127 -0
- agi_apps-2026.5.13/src/agilab/examples/resilience_failure_injection/preview_resilience_failure_injection.py +260 -0
- agi_apps-2026.5.13/src/agilab/examples/service_mode/README.md +131 -0
- agi_apps-2026.5.13/src/agilab/examples/service_mode/preview_service_mode.py +192 -0
- agi_apps-2026.5.13/src/agilab/examples/train_then_serve/README.md +122 -0
- agi_apps-2026.5.13/src/agilab/examples/train_then_serve/preview_train_then_serve.py +219 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
BSD 3-Clause License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025, Jean-Pierre Morard, THALES SIX GTS France SAS
|
|
4
|
+
All rights reserved.
|
|
5
|
+
|
|
6
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
|
7
|
+
following conditions are met:
|
|
8
|
+
|
|
9
|
+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
|
10
|
+
disclaimer.
|
|
11
|
+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
|
12
|
+
disclaimer in the documentation and/or other materials provided with the distribution.
|
|
13
|
+
3. Neither the name of Jean-Pierre MORARD nor the names of its contributors, or THALES SIX GTS France SAS, may be used
|
|
14
|
+
to endorse or promote products derived from this software without specific prior written permission.
|
|
15
|
+
|
|
16
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
17
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
18
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
19
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
20
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
21
|
+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
22
|
+
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: agi-apps
|
|
3
|
+
Version: 2026.5.13
|
|
4
|
+
Summary: AGILAB public app package umbrella and example assets
|
|
5
|
+
Author: Jean-Pierre Morard
|
|
6
|
+
Maintainer: Jean-Pierre Morard
|
|
7
|
+
License-Expression: BSD-3-Clause
|
|
8
|
+
Project-URL: Documentation, https://thalesgroup.github.io/agilab
|
|
9
|
+
Project-URL: Source, https://github.com/ThalesGroup/agilab/tree/main/src/agilab/lib/agi-apps
|
|
10
|
+
Project-URL: Issues, https://github.com/ThalesGroup/agilab/issues
|
|
11
|
+
Project-URL: Homepage, https://github.com/ThalesGroup/agilab
|
|
12
|
+
Project-URL: Repository, https://github.com/ThalesGroup/agilab
|
|
13
|
+
Project-URL: Discussions, https://github.com/ThalesGroup/agilab/discussions
|
|
14
|
+
Project-URL: Changelog, https://github.com/ThalesGroup/agilab/releases
|
|
15
|
+
Keywords: agilab,examples,apps,reproducibility,workflow-orchestration
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Development Status :: 4 - Beta
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Operating System :: MacOS
|
|
23
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
24
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
25
|
+
Requires-Python: >=3.11
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Requires-Dist: agi-core==2026.05.13
|
|
29
|
+
Requires-Dist: agi-app-data-io-2026-project==0.1.0
|
|
30
|
+
Requires-Dist: agi-app-execution-pandas-project==0.1.0
|
|
31
|
+
Requires-Dist: agi-app-execution-polars-project==0.1.0
|
|
32
|
+
Requires-Dist: agi-app-flight-project==0.1.0
|
|
33
|
+
Requires-Dist: agi-app-global-dag-project==0.1.0
|
|
34
|
+
Requires-Dist: agi-app-meteo-forecast-project==0.1.0
|
|
35
|
+
Requires-Dist: agi-app-mycode-project==0.1.0
|
|
36
|
+
Requires-Dist: agi-app-tescia-diagnostic-project==0.1.0
|
|
37
|
+
Requires-Dist: agi-app-uav-queue-project==0.1.0
|
|
38
|
+
Requires-Dist: agi-app-uav-relay-queue-project==0.1.0
|
|
39
|
+
Dynamic: license-file
|
|
40
|
+
|
|
41
|
+
# AGI Apps
|
|
42
|
+
|
|
43
|
+
[](https://pypi.org/project/agi-apps/)
|
|
44
|
+
[](https://pypi.org/project/agi-apps/)
|
|
45
|
+
[](https://opensource.org/licenses/BSD-3-Clause)
|
|
46
|
+
|
|
47
|
+
`agi-apps` is the umbrella package for public AGILAB app project
|
|
48
|
+
distributions. The app code now lives in focused packages such as
|
|
49
|
+
`agi-app-flight-project`, `agi-app-mycode-project`, and
|
|
50
|
+
`agi-app-meteo-forecast-project`.
|
|
51
|
+
|
|
52
|
+
The umbrella keeps the lightweight `agilab.apps.install` helper and
|
|
53
|
+
`agilab.examples` learning assets, then depends on the per-app packages so
|
|
54
|
+
`agilab[ui]` and `agilab[examples]` still install the public app catalog.
|
|
55
|
+
|
|
56
|
+
## Quick Install
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pip install agi-apps
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Most users should install it through AGILAB profiles:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pip install "agilab[examples]"
|
|
66
|
+
pip install "agilab[ui]"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Contents
|
|
70
|
+
|
|
71
|
+
- `agi_apps`: catalog of public app project distributions.
|
|
72
|
+
- `agilab.apps.install`: installer helper used by first-proof and UI workflows.
|
|
73
|
+
- `agilab.examples`: runnable scripts, previews, and notebook examples.
|
|
74
|
+
- `agi-app-*-project`: self-contained packages that expose app project roots
|
|
75
|
+
through the `agilab.apps` entry point group.
|
|
76
|
+
|
|
77
|
+
The package contains public examples and app package dependencies, not private
|
|
78
|
+
enterprise app templates or a production MLOps platform.
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# AGI Apps
|
|
2
|
+
|
|
3
|
+
[](https://pypi.org/project/agi-apps/)
|
|
4
|
+
[](https://pypi.org/project/agi-apps/)
|
|
5
|
+
[](https://opensource.org/licenses/BSD-3-Clause)
|
|
6
|
+
|
|
7
|
+
`agi-apps` is the umbrella package for public AGILAB app project
|
|
8
|
+
distributions. The app code now lives in focused packages such as
|
|
9
|
+
`agi-app-flight-project`, `agi-app-mycode-project`, and
|
|
10
|
+
`agi-app-meteo-forecast-project`.
|
|
11
|
+
|
|
12
|
+
The umbrella keeps the lightweight `agilab.apps.install` helper and
|
|
13
|
+
`agilab.examples` learning assets, then depends on the per-app packages so
|
|
14
|
+
`agilab[ui]` and `agilab[examples]` still install the public app catalog.
|
|
15
|
+
|
|
16
|
+
## Quick Install
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pip install agi-apps
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Most users should install it through AGILAB profiles:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pip install "agilab[examples]"
|
|
26
|
+
pip install "agilab[ui]"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Contents
|
|
30
|
+
|
|
31
|
+
- `agi_apps`: catalog of public app project distributions.
|
|
32
|
+
- `agilab.apps.install`: installer helper used by first-proof and UI workflows.
|
|
33
|
+
- `agilab.examples`: runnable scripts, previews, and notebook examples.
|
|
34
|
+
- `agi-app-*-project`: self-contained packages that expose app project roots
|
|
35
|
+
through the `agilab.apps` entry point group.
|
|
36
|
+
|
|
37
|
+
The package contains public examples and app package dependencies, not private
|
|
38
|
+
enterprise app templates or a production MLOps platform.
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
version = "2026.05.13"
|
|
3
|
+
name = "agi-apps"
|
|
4
|
+
description = "AGILAB public app package umbrella and example assets"
|
|
5
|
+
requires-python = ">=3.11"
|
|
6
|
+
readme = "README.md"
|
|
7
|
+
authors = [
|
|
8
|
+
{ name = "Jean-Pierre Morard" }
|
|
9
|
+
]
|
|
10
|
+
maintainers = [{ name = "Jean-Pierre Morard" }]
|
|
11
|
+
license = "BSD-3-Clause"
|
|
12
|
+
license-files = ["LICENSE"]
|
|
13
|
+
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Intended Audience :: Developers",
|
|
16
|
+
"Development Status :: 4 - Beta",
|
|
17
|
+
"Programming Language :: Python :: 3",
|
|
18
|
+
"Programming Language :: Python :: 3.11",
|
|
19
|
+
"Programming Language :: Python :: 3.12",
|
|
20
|
+
"Programming Language :: Python :: 3.13",
|
|
21
|
+
"Operating System :: MacOS",
|
|
22
|
+
"Operating System :: Microsoft :: Windows",
|
|
23
|
+
"Operating System :: POSIX :: Linux",
|
|
24
|
+
]
|
|
25
|
+
|
|
26
|
+
keywords = [
|
|
27
|
+
"agilab",
|
|
28
|
+
"examples",
|
|
29
|
+
"apps",
|
|
30
|
+
"reproducibility",
|
|
31
|
+
"workflow-orchestration",
|
|
32
|
+
]
|
|
33
|
+
|
|
34
|
+
dependencies = [
|
|
35
|
+
"agi-core==2026.05.13",
|
|
36
|
+
"agi-app-data-io-2026-project==0.1.0",
|
|
37
|
+
"agi-app-execution-pandas-project==0.1.0",
|
|
38
|
+
"agi-app-execution-polars-project==0.1.0",
|
|
39
|
+
"agi-app-flight-project==0.1.0",
|
|
40
|
+
"agi-app-global-dag-project==0.1.0",
|
|
41
|
+
"agi-app-meteo-forecast-project==0.1.0",
|
|
42
|
+
"agi-app-mycode-project==0.1.0",
|
|
43
|
+
"agi-app-tescia-diagnostic-project==0.1.0",
|
|
44
|
+
"agi-app-uav-queue-project==0.1.0",
|
|
45
|
+
"agi-app-uav-relay-queue-project==0.1.0",
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
[project.urls]
|
|
49
|
+
Documentation = "https://thalesgroup.github.io/agilab"
|
|
50
|
+
Source = "https://github.com/ThalesGroup/agilab/tree/main/src/agilab/lib/agi-apps"
|
|
51
|
+
Issues = "https://github.com/ThalesGroup/agilab/issues"
|
|
52
|
+
Homepage = "https://github.com/ThalesGroup/agilab"
|
|
53
|
+
Repository = "https://github.com/ThalesGroup/agilab"
|
|
54
|
+
Discussions = "https://github.com/ThalesGroup/agilab/discussions"
|
|
55
|
+
Changelog = "https://github.com/ThalesGroup/agilab/releases"
|
|
56
|
+
|
|
57
|
+
[dependency-groups]
|
|
58
|
+
dev = [
|
|
59
|
+
"pytest",
|
|
60
|
+
]
|
|
61
|
+
|
|
62
|
+
[tool.uv.sources.agi-core]
|
|
63
|
+
path = "../../core/agi-core"
|
|
64
|
+
editable = true
|
|
65
|
+
|
|
66
|
+
[tool.uv.sources.agi-app-data-io-2026-project]
|
|
67
|
+
path = "../agi-app-data-io-2026-project"
|
|
68
|
+
editable = true
|
|
69
|
+
|
|
70
|
+
[tool.uv.sources.agi-app-execution-pandas-project]
|
|
71
|
+
path = "../agi-app-execution-pandas-project"
|
|
72
|
+
editable = true
|
|
73
|
+
|
|
74
|
+
[tool.uv.sources.agi-app-execution-polars-project]
|
|
75
|
+
path = "../agi-app-execution-polars-project"
|
|
76
|
+
editable = true
|
|
77
|
+
|
|
78
|
+
[tool.uv.sources.agi-app-flight-project]
|
|
79
|
+
path = "../agi-app-flight-project"
|
|
80
|
+
editable = true
|
|
81
|
+
|
|
82
|
+
[tool.uv.sources.agi-app-global-dag-project]
|
|
83
|
+
path = "../agi-app-global-dag-project"
|
|
84
|
+
editable = true
|
|
85
|
+
|
|
86
|
+
[tool.uv.sources.agi-app-meteo-forecast-project]
|
|
87
|
+
path = "../agi-app-meteo-forecast-project"
|
|
88
|
+
editable = true
|
|
89
|
+
|
|
90
|
+
[tool.uv.sources.agi-app-mycode-project]
|
|
91
|
+
path = "../agi-app-mycode-project"
|
|
92
|
+
editable = true
|
|
93
|
+
|
|
94
|
+
[tool.uv.sources.agi-app-tescia-diagnostic-project]
|
|
95
|
+
path = "../agi-app-tescia-diagnostic-project"
|
|
96
|
+
editable = true
|
|
97
|
+
|
|
98
|
+
[tool.uv.sources.agi-app-uav-queue-project]
|
|
99
|
+
path = "../agi-app-uav-queue-project"
|
|
100
|
+
editable = true
|
|
101
|
+
|
|
102
|
+
[tool.uv.sources.agi-app-uav-relay-queue-project]
|
|
103
|
+
path = "../agi-app-uav-relay-queue-project"
|
|
104
|
+
editable = true
|
|
105
|
+
|
|
106
|
+
[build-system]
|
|
107
|
+
requires = ["setuptools>=82.0.1", "wheel"]
|
|
108
|
+
build-backend = "setuptools.build_meta"
|
|
109
|
+
|
|
110
|
+
[tool.setuptools]
|
|
111
|
+
include-package-data = false
|
|
112
|
+
package-dir = {"" = "src"}
|
|
113
|
+
packages = [
|
|
114
|
+
"agi_apps",
|
|
115
|
+
"agilab.apps",
|
|
116
|
+
"agilab.examples",
|
|
117
|
+
]
|
|
118
|
+
|
|
119
|
+
[tool.setuptools.package-data]
|
|
120
|
+
"agi_apps" = [
|
|
121
|
+
"catalog.json",
|
|
122
|
+
]
|
|
123
|
+
"agilab.apps" = [
|
|
124
|
+
"README.md",
|
|
125
|
+
"install.py",
|
|
126
|
+
]
|
|
127
|
+
"agilab.examples" = [
|
|
128
|
+
"README.md",
|
|
129
|
+
"*/README.md",
|
|
130
|
+
"*/AGI_*.py",
|
|
131
|
+
"inter_project_dag/*.py",
|
|
132
|
+
"mlflow_auto_tracking/*.py",
|
|
133
|
+
"notebook_to_dask/*.py",
|
|
134
|
+
"notebook_to_dask/*.json",
|
|
135
|
+
"notebook_to_dask/*.toml",
|
|
136
|
+
"notebook_to_dask/*.ipynb",
|
|
137
|
+
"notebook_quickstart/*.ipynb",
|
|
138
|
+
"notebook_migrations/*/README.md",
|
|
139
|
+
"notebook_migrations/*/analysis_artifacts/*.csv",
|
|
140
|
+
"notebook_migrations/*/analysis_artifacts/*.json",
|
|
141
|
+
"notebook_migrations/*/data/*.csv",
|
|
142
|
+
"notebook_migrations/*/migrated_project/*.dot",
|
|
143
|
+
"notebook_migrations/*/migrated_project/*.toml",
|
|
144
|
+
"notebook_migrations/*/notebooks/*.ipynb",
|
|
145
|
+
"resilience_failure_injection/*.py",
|
|
146
|
+
"service_mode/*.py",
|
|
147
|
+
"train_then_serve/*.py",
|
|
148
|
+
]
|
|
149
|
+
|
|
150
|
+
[tool.setuptools.exclude-package-data]
|
|
151
|
+
"agilab.apps" = [
|
|
152
|
+
"builtin/**",
|
|
153
|
+
"templates/**",
|
|
154
|
+
"**/__pycache__/**",
|
|
155
|
+
"**/*.pyc",
|
|
156
|
+
"**/*.pyo",
|
|
157
|
+
]
|
|
158
|
+
"agilab.examples" = [
|
|
159
|
+
"**/__pycache__/**",
|
|
160
|
+
"**/*.pyc",
|
|
161
|
+
"**/*.pyo",
|
|
162
|
+
]
|
|
163
|
+
|
|
164
|
+
[tool.pytest.ini_options]
|
|
165
|
+
testpaths = ["test"]
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import importlib.util
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
from setuptools import setup
|
|
7
|
+
from setuptools.command.build_py import build_py as _build_py
|
|
8
|
+
from setuptools.command.sdist import sdist as _sdist
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def _load_build_support():
|
|
12
|
+
module_path = Path(__file__).resolve().parents[4] / "src" / "agilab" / "lib" / "app_project_build_support.py"
|
|
13
|
+
if not module_path.exists():
|
|
14
|
+
return None
|
|
15
|
+
spec = importlib.util.spec_from_file_location("agilab_app_project_build_support", module_path)
|
|
16
|
+
if spec is None or spec.loader is None:
|
|
17
|
+
raise RuntimeError(f"Unable to load app project build support from {module_path}")
|
|
18
|
+
module = importlib.util.module_from_spec(spec)
|
|
19
|
+
spec.loader.exec_module(module)
|
|
20
|
+
return module
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _copy_payload(target_src_root: Path) -> None:
|
|
24
|
+
support = _load_build_support()
|
|
25
|
+
if support is None:
|
|
26
|
+
return
|
|
27
|
+
support.copy_agi_apps_umbrella_payload(target_src_root)
|
|
28
|
+
support.write_agi_apps_catalog(target_src_root / "agi_apps")
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
class build_py(_build_py):
|
|
32
|
+
def run(self):
|
|
33
|
+
super().run()
|
|
34
|
+
_copy_payload(Path(self.build_lib))
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
class sdist(_sdist):
|
|
38
|
+
def make_release_tree(self, base_dir, files):
|
|
39
|
+
super().make_release_tree(base_dir, files)
|
|
40
|
+
_copy_payload(Path(base_dir) / "src")
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
setup(cmdclass={"build_py": build_py, "sdist": sdist})
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"""Catalog for public AGILAB app project packages."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import json
|
|
6
|
+
from importlib import resources
|
|
7
|
+
from typing import Any
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
def app_packages() -> tuple[dict[str, str], ...]:
|
|
11
|
+
with resources.files(__package__).joinpath("catalog.json").open("r", encoding="utf-8") as handle:
|
|
12
|
+
data: Any = json.load(handle)
|
|
13
|
+
return tuple(dict(item) for item in data)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
__all__ = ["app_packages"]
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"project": "data_io_2026_project",
|
|
4
|
+
"slug": "data_io_2026",
|
|
5
|
+
"distribution": "agi-app-data-io-2026-project",
|
|
6
|
+
"package": "agi_app_data_io_2026_project"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"project": "execution_pandas_project",
|
|
10
|
+
"slug": "execution_pandas",
|
|
11
|
+
"distribution": "agi-app-execution-pandas-project",
|
|
12
|
+
"package": "agi_app_execution_pandas_project"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"project": "execution_polars_project",
|
|
16
|
+
"slug": "execution_polars",
|
|
17
|
+
"distribution": "agi-app-execution-polars-project",
|
|
18
|
+
"package": "agi_app_execution_polars_project"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"project": "flight_project",
|
|
22
|
+
"slug": "flight",
|
|
23
|
+
"distribution": "agi-app-flight-project",
|
|
24
|
+
"package": "agi_app_flight_project"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"project": "global_dag_project",
|
|
28
|
+
"slug": "global_dag",
|
|
29
|
+
"distribution": "agi-app-global-dag-project",
|
|
30
|
+
"package": "agi_app_global_dag_project"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"project": "meteo_forecast_project",
|
|
34
|
+
"slug": "meteo_forecast",
|
|
35
|
+
"distribution": "agi-app-meteo-forecast-project",
|
|
36
|
+
"package": "agi_app_meteo_forecast_project"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"project": "mycode_project",
|
|
40
|
+
"slug": "mycode",
|
|
41
|
+
"distribution": "agi-app-mycode-project",
|
|
42
|
+
"package": "agi_app_mycode_project"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"project": "tescia_diagnostic_project",
|
|
46
|
+
"slug": "tescia_diagnostic",
|
|
47
|
+
"distribution": "agi-app-tescia-diagnostic-project",
|
|
48
|
+
"package": "agi_app_tescia_diagnostic_project"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"project": "uav_queue_project",
|
|
52
|
+
"slug": "uav_queue",
|
|
53
|
+
"distribution": "agi-app-uav-queue-project",
|
|
54
|
+
"package": "agi_app_uav_queue_project"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"project": "uav_relay_queue_project",
|
|
58
|
+
"slug": "uav_relay_queue",
|
|
59
|
+
"distribution": "agi-app-uav-relay-queue-project",
|
|
60
|
+
"package": "agi_app_uav_relay_queue_project"
|
|
61
|
+
}
|
|
62
|
+
]
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: agi-apps
|
|
3
|
+
Version: 2026.5.13
|
|
4
|
+
Summary: AGILAB public app package umbrella and example assets
|
|
5
|
+
Author: Jean-Pierre Morard
|
|
6
|
+
Maintainer: Jean-Pierre Morard
|
|
7
|
+
License-Expression: BSD-3-Clause
|
|
8
|
+
Project-URL: Documentation, https://thalesgroup.github.io/agilab
|
|
9
|
+
Project-URL: Source, https://github.com/ThalesGroup/agilab/tree/main/src/agilab/lib/agi-apps
|
|
10
|
+
Project-URL: Issues, https://github.com/ThalesGroup/agilab/issues
|
|
11
|
+
Project-URL: Homepage, https://github.com/ThalesGroup/agilab
|
|
12
|
+
Project-URL: Repository, https://github.com/ThalesGroup/agilab
|
|
13
|
+
Project-URL: Discussions, https://github.com/ThalesGroup/agilab/discussions
|
|
14
|
+
Project-URL: Changelog, https://github.com/ThalesGroup/agilab/releases
|
|
15
|
+
Keywords: agilab,examples,apps,reproducibility,workflow-orchestration
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Development Status :: 4 - Beta
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
22
|
+
Classifier: Operating System :: MacOS
|
|
23
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
24
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
25
|
+
Requires-Python: >=3.11
|
|
26
|
+
Description-Content-Type: text/markdown
|
|
27
|
+
License-File: LICENSE
|
|
28
|
+
Requires-Dist: agi-core==2026.05.13
|
|
29
|
+
Requires-Dist: agi-app-data-io-2026-project==0.1.0
|
|
30
|
+
Requires-Dist: agi-app-execution-pandas-project==0.1.0
|
|
31
|
+
Requires-Dist: agi-app-execution-polars-project==0.1.0
|
|
32
|
+
Requires-Dist: agi-app-flight-project==0.1.0
|
|
33
|
+
Requires-Dist: agi-app-global-dag-project==0.1.0
|
|
34
|
+
Requires-Dist: agi-app-meteo-forecast-project==0.1.0
|
|
35
|
+
Requires-Dist: agi-app-mycode-project==0.1.0
|
|
36
|
+
Requires-Dist: agi-app-tescia-diagnostic-project==0.1.0
|
|
37
|
+
Requires-Dist: agi-app-uav-queue-project==0.1.0
|
|
38
|
+
Requires-Dist: agi-app-uav-relay-queue-project==0.1.0
|
|
39
|
+
Dynamic: license-file
|
|
40
|
+
|
|
41
|
+
# AGI Apps
|
|
42
|
+
|
|
43
|
+
[](https://pypi.org/project/agi-apps/)
|
|
44
|
+
[](https://pypi.org/project/agi-apps/)
|
|
45
|
+
[](https://opensource.org/licenses/BSD-3-Clause)
|
|
46
|
+
|
|
47
|
+
`agi-apps` is the umbrella package for public AGILAB app project
|
|
48
|
+
distributions. The app code now lives in focused packages such as
|
|
49
|
+
`agi-app-flight-project`, `agi-app-mycode-project`, and
|
|
50
|
+
`agi-app-meteo-forecast-project`.
|
|
51
|
+
|
|
52
|
+
The umbrella keeps the lightweight `agilab.apps.install` helper and
|
|
53
|
+
`agilab.examples` learning assets, then depends on the per-app packages so
|
|
54
|
+
`agilab[ui]` and `agilab[examples]` still install the public app catalog.
|
|
55
|
+
|
|
56
|
+
## Quick Install
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
pip install agi-apps
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
Most users should install it through AGILAB profiles:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
pip install "agilab[examples]"
|
|
66
|
+
pip install "agilab[ui]"
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Contents
|
|
70
|
+
|
|
71
|
+
- `agi_apps`: catalog of public app project distributions.
|
|
72
|
+
- `agilab.apps.install`: installer helper used by first-proof and UI workflows.
|
|
73
|
+
- `agilab.examples`: runnable scripts, previews, and notebook examples.
|
|
74
|
+
- `agi-app-*-project`: self-contained packages that expose app project roots
|
|
75
|
+
through the `agilab.apps` entry point group.
|
|
76
|
+
|
|
77
|
+
The package contains public examples and app package dependencies, not private
|
|
78
|
+
enterprise app templates or a production MLOps platform.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
LICENSE
|
|
2
|
+
README.md
|
|
3
|
+
pyproject.toml
|
|
4
|
+
setup.py
|
|
5
|
+
src/agi_apps/__init__.py
|
|
6
|
+
src/agi_apps/catalog.json
|
|
7
|
+
src/agi_apps.egg-info/PKG-INFO
|
|
8
|
+
src/agi_apps.egg-info/SOURCES.txt
|
|
9
|
+
src/agi_apps.egg-info/dependency_links.txt
|
|
10
|
+
src/agi_apps.egg-info/requires.txt
|
|
11
|
+
src/agi_apps.egg-info/top_level.txt
|
|
12
|
+
src/agilab/apps/__init__.py
|
|
13
|
+
src/agilab/examples/__init__.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
agi-core==2026.05.13
|
|
2
|
+
agi-app-data-io-2026-project==0.1.0
|
|
3
|
+
agi-app-execution-pandas-project==0.1.0
|
|
4
|
+
agi-app-execution-polars-project==0.1.0
|
|
5
|
+
agi-app-flight-project==0.1.0
|
|
6
|
+
agi-app-global-dag-project==0.1.0
|
|
7
|
+
agi-app-meteo-forecast-project==0.1.0
|
|
8
|
+
agi-app-mycode-project==0.1.0
|
|
9
|
+
agi-app-tescia-diagnostic-project==0.1.0
|
|
10
|
+
agi-app-uav-queue-project==0.1.0
|
|
11
|
+
agi-app-uav-relay-queue-project==0.1.0
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Apps
|
|
2
|
+
|
|
3
|
+
This directory contains AGILAB app projects. Keep the public first proof on a
|
|
4
|
+
built-in app, then add external or custom apps after the local baseline works.
|
|
5
|
+
|
|
6
|
+
## Built-in apps
|
|
7
|
+
|
|
8
|
+
Built-in apps live under `src/agilab/apps/builtin/` and follow the `<name>_project` convention.
|
|
9
|
+
Each app usually contains:
|
|
10
|
+
|
|
11
|
+
- an app manager (`*_project`)
|
|
12
|
+
- a worker package under `src/<name>_worker/`
|
|
13
|
+
- optional `test/` scripts
|
|
14
|
+
|
|
15
|
+
Use `src/agilab/apps/builtin/flight_project` for the newcomer first proof.
|
|
16
|
+
|
|
17
|
+
## Templates
|
|
18
|
+
|
|
19
|
+
Starter templates live under `src/agilab/apps/templates/`:
|
|
20
|
+
|
|
21
|
+
- `dag_app_template`: explicit task-graph/distribution wiring.
|
|
22
|
+
- `pandas_app_template`: Pandas-style data pipeline starter.
|
|
23
|
+
- `polars_app_template`: Polars-style data pipeline starter.
|
|
24
|
+
- `fireducks_app_template`: FireDucks-accelerated Pandas-style starter.
|
|
25
|
+
|
|
26
|
+
Copy a template to a new `<name>_project` directory, rename the package and
|
|
27
|
+
`pyproject.toml` metadata, then replace the template worker hooks with the app
|
|
28
|
+
logic.
|
|
29
|
+
|
|
30
|
+
## External apps (optional)
|
|
31
|
+
|
|
32
|
+
AGILab can also load apps from an external apps repository (for example, a private repository in your organisation).
|
|
33
|
+
|
|
34
|
+
- Configure `APPS_REPOSITORY` in `~/.local/share/agilab/.env`.
|
|
35
|
+
- Run `src/agilab/install_apps.sh` (macOS/Linux) or `src/agilab/install_apps.ps1` (Windows).
|
|
36
|
+
- The installer auto-discovers `*_project` directories under the external repo’s `apps/` folder and creates local links under `src/agilab/apps/`.
|
|
37
|
+
|
|
38
|
+
When an external app already exists locally as a real directory, the installer
|
|
39
|
+
moves it aside as `<name>.previous.<timestamp>` and links the repository copy so
|
|
40
|
+
future updates come from the apps repository.
|