ai-pipeline-core 0.4.0__tar.gz → 0.4.1__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.
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/PKG-INFO +1 -1
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/__init__.py +1 -1
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/deployment/deploy.py +19 -5
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/pipeline/options.py +1 -1
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/pyproject.toml +2 -2
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/.gitignore +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/LICENSE +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/README.md +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/deployment/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/deployment/base.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/deployment/contract.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/deployment/helpers.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/deployment/progress.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/deployment/remote.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/__main__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/cli.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/extractor.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/guide_builder.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/trimmer.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/validator.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/_summary.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/_summary_worker.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/clickhouse.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/factory.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/local.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/memory.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/protocol.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/documents/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/documents/_context_vars.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/documents/_hashing.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/documents/attachment.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/documents/context.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/documents/document.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/documents/mime_type.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/documents/utils.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/exceptions.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/images/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/images/_processing.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/llm/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/llm/ai_messages.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/llm/client.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/llm/model_options.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/llm/model_response.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/llm/model_types.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/logging/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/logging/logging.yml +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/logging/logging_config.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/logging/logging_mixin.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_auto_summary.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_config.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_content.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_processor.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_summary.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_types.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_writer.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_document_tracking.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_initialization.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_logging_bridge.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_summary.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_tracking/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_tracking/_client.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_tracking/_internal.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_tracking/_models.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_tracking/_processor.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_tracking/_service.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_tracking/_writer.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/tracing.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/pipeline/__init__.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/pipeline/decorators.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/prompt_manager.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/py.typed +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/settings.py +0 -0
- {ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/testing.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: ai-pipeline-core
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Core utilities for AI-powered processing pipelines using prefect
|
|
5
5
|
Project-URL: Homepage, https://github.com/bbarwik/ai-pipeline-core
|
|
6
6
|
Project-URL: Repository, https://github.com/bbarwik/ai-pipeline-core
|
|
@@ -348,11 +348,12 @@ class Deployer:
|
|
|
348
348
|
|
|
349
349
|
self._success(f"Agent '{agent_name}' uploaded ({len(build_info['files'])} files)")
|
|
350
350
|
|
|
351
|
-
async def _upload_package(self, tarball: Path):
|
|
352
|
-
"""Upload package tarball to Google Cloud Storage.
|
|
351
|
+
async def _upload_package(self, tarball: Path, vendor_wheels: list[Path] | None = None):
|
|
352
|
+
"""Upload package tarball and vendor wheels to Google Cloud Storage.
|
|
353
353
|
|
|
354
354
|
Args:
|
|
355
355
|
tarball: Path to the tarball to upload
|
|
356
|
+
vendor_wheels: Optional private dependency wheels to upload alongside
|
|
356
357
|
"""
|
|
357
358
|
flow_folder = self.config["folder"]
|
|
358
359
|
bucket = self._create_gcs_bucket(flow_folder)
|
|
@@ -365,6 +366,10 @@ class Deployer:
|
|
|
365
366
|
|
|
366
367
|
self._success(f"Package uploaded to {flow_folder}/{tarball.name}")
|
|
367
368
|
|
|
369
|
+
for wheel in vendor_wheels or []:
|
|
370
|
+
await bucket.write_path(wheel.name, wheel.read_bytes())
|
|
371
|
+
self._success(f"Vendor wheel uploaded: {wheel.name}")
|
|
372
|
+
|
|
368
373
|
async def _deploy_via_api(self, agent_builds: dict[str, dict[str, Any]] | None = None):
|
|
369
374
|
"""Create or update Prefect deployment using RunnerDeployment pattern.
|
|
370
375
|
|
|
@@ -420,7 +425,8 @@ class Deployer:
|
|
|
420
425
|
"stream_output": True,
|
|
421
426
|
"directory": "{{ pull_code.directory }}",
|
|
422
427
|
# Use uv for fast installation (worker has it installed)
|
|
423
|
-
|
|
428
|
+
# --find-links . resolves private dependencies from co-uploaded wheels
|
|
429
|
+
"script": f"uv pip install --system --find-links . ./{self.config['tarball']}",
|
|
424
430
|
}
|
|
425
431
|
},
|
|
426
432
|
]
|
|
@@ -488,8 +494,16 @@ class Deployer:
|
|
|
488
494
|
# Phase 2: Build agent bundles (if configured)
|
|
489
495
|
agent_builds = self._build_agents()
|
|
490
496
|
|
|
491
|
-
# Phase 3: Upload flow package
|
|
492
|
-
|
|
497
|
+
# Phase 3: Upload flow package (include private dependency wheels from agent builds)
|
|
498
|
+
vendor_wheels: list[Path] = []
|
|
499
|
+
if agent_builds:
|
|
500
|
+
seen: set[str] = set()
|
|
501
|
+
for build_info in agent_builds.values():
|
|
502
|
+
for filename, filepath in build_info["files"].items():
|
|
503
|
+
if filename.endswith(".whl") and filename not in seen and "cli_agents" in filename:
|
|
504
|
+
vendor_wheels.append(filepath)
|
|
505
|
+
seen.add(filename)
|
|
506
|
+
await self._upload_package(tarball, vendor_wheels)
|
|
493
507
|
|
|
494
508
|
# Phase 4: Upload agent bundles
|
|
495
509
|
await self._upload_agents(agent_builds)
|
|
@@ -10,7 +10,7 @@ class FlowOptions(BaseSettings):
|
|
|
10
10
|
for environment variable overrides. Immutable after creation.
|
|
11
11
|
"""
|
|
12
12
|
|
|
13
|
-
model_config = SettingsConfigDict(frozen=True, extra="
|
|
13
|
+
model_config = SettingsConfigDict(frozen=True, extra="allow")
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
__all__ = ["FlowOptions"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "ai-pipeline-core"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.1"
|
|
4
4
|
description = "Core utilities for AI-powered processing pipelines using prefect"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = {text = "MIT"}
|
|
@@ -228,7 +228,7 @@ reportUnusedCoroutine = "error"
|
|
|
228
228
|
reportImplicitStringConcatenation = false
|
|
229
229
|
|
|
230
230
|
[tool.bumpversion]
|
|
231
|
-
current_version = "0.4.
|
|
231
|
+
current_version = "0.4.1"
|
|
232
232
|
commit = true
|
|
233
233
|
tag = true
|
|
234
234
|
tag_name = "v{new_version}"
|
|
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
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/__init__.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/__main__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/extractor.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/guide_builder.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/trimmer.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/docs_generator/validator.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/__init__.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/_summary.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/_summary_worker.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/clickhouse.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/document_store/protocol.py
RENAMED
|
File without changes
|
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/documents/_context_vars.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/logging/logging_config.py
RENAMED
|
File without changes
|
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/__init__.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_config.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_content.py
RENAMED
|
File without changes
|
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_summary.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_types.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_debug/_writer.py
RENAMED
|
File without changes
|
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_initialization.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_logging_bridge.py
RENAMED
|
File without changes
|
{ai_pipeline_core-0.4.0 → ai_pipeline_core-0.4.1}/ai_pipeline_core/observability/_summary.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|