Source code for event_model.documents.resource
from typing import Any, Dict
from typing_extensions import Annotated, Literal, NotRequired, TypedDict
from .generate.type_wrapper import Field, add_extra_schema
RESOURCE_EXTRA_SCHEMA = {"additionalProperties": False}
class PartialResource(TypedDict):
spec: Annotated[
str,
Field(
description="String identifying the format/type of this Resource, used to "
"identify a compatible Handler"
),
]
resource_path: Annotated[
str, Field(description="Filepath or URI for locating this resource")
]
resource_kwargs: Annotated[
Dict[str, Any],
Field(
description="Additional argument to pass to the Handler to read a Resource"
),
]
root: Annotated[
str,
Field(
description="Subset of resource_path that is a local detail, not semantic."
),
]
uid: Annotated[
str, Field(description="Globally unique identifier for this Resource")
]
[docs]
@add_extra_schema(RESOURCE_EXTRA_SCHEMA)
class Resource(PartialResource):
"""
Document to reference a collection (e.g. file or group of files) of
externally-stored data
"""
path_semantics: NotRequired[
Annotated[
Literal["posix", "windows"],
Field(description="Rules for joining paths"),
]
]
run_start: NotRequired[
Annotated[
str,
Field(
description="Globally unique ID to the run_start document this "
"resource is associated with.",
),
]
]