Add All Folders

This commit is contained in:
soorena62
2026-02-08 04:38:10 +03:30
commit 9bb57e4799
191 changed files with 8469 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
from typing import Any, Dict, Optional
from copy import deepcopy
from api.io_port import DType
class Asset:
"""
Represents the output of a Task.
Stores:
- data: actual payload
- dtype: semantic type (DType instance)
- metadata: optional dictionary
"""
def __init__(self, data: Any, dtype: Optional[DType] = None, metadata: Optional[Dict[str, Any]] = None):
self.data = data
self.dtype = dtype # DO NOT deepcopy dtype
self.metadata = metadata or {}
# Whether this asset should be preserved after workflow execution
self.preserved = True
# Lifecycle
def dismiss(self):
"""Mark asset as disposable."""
self.preserved = False
# Utility
def clone(self) -> "Asset":
"""
Create a deep copy of the asset.
dtype is NOT deepcopied because DType objects are not deepcopy-safe.
"""
return Asset(
data=deepcopy(self.data),
dtype=self.dtype, # keep reference
metadata=deepcopy(self.metadata)
)
# Representation
def __repr__(self):
# Avoid printing full dtype object (may contain nested structures)
dtype_name = self.dtype.__class__.__name__ if self.dtype else "None"
return f"<Asset dtype={dtype_name} preserved={self.preserved}>"