Models#

class servicex.models.ResultDestination(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: str, Enum

Direct the output to object store or posix volume

object_store = 'object-store'#
volume = 'volume'#
class servicex.models.ResultFile(*, filename: str, size: int, extension: str)[source]#

Bases: BaseModel

Record reporting the properties of a transformed file result

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

extension: str#
filename: str#
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'extension': FieldInfo(annotation=str, required=True), 'filename': FieldInfo(annotation=str, required=True), 'size': FieldInfo(annotation=int, required=True)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

size: int#
class servicex.models.ResultFormat(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: str, Enum

Specify the file format for the generated output

parquet = 'parquet'#
root_ttree = 'root-file'#
class servicex.models.Status(value, names=<not given>, *values, module=None, qualname=None, type=None, start=1, boundary=None)[source]#

Bases: str, Enum

Status of a submitted transform

canceled = 'Canceled'#
complete = 'Complete'#
fatal = 'Fatal'#
looking = 'Lookup'#
pending = 'Pending Lookup'#
running = 'Running'#
submitted = 'Submitted'#
class servicex.models.TransformRequest(*, title: str | None = None, did: str | None = None, file_list: List[str] | None = None, selection: str, image: str | None = None, codegen: str, tree_name: str | None = None, result_destination: ResultDestination, result_format: ResultFormat)[source]#

Bases: BaseModel

Transform request sent to ServiceX

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

codegen: str#
compute_hash()[source]#

Compute a hash for this submission. Only include properties that impact the result so we have maximal ability to reuse transforms

Returns:

SHA256 hash of request

did: str | None#
file_list: List[str] | None#
image: str | None#
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {'populate_by_name': True}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'codegen': FieldInfo(annotation=str, required=True), 'did': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'file_list': FieldInfo(annotation=Union[List[str], NoneType], required=False, default=None, alias='file-list', alias_priority=2), 'image': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'result_destination': FieldInfo(annotation=ResultDestination, required=True, alias_priority=2, serialization_alias='result-destination'), 'result_format': FieldInfo(annotation=ResultFormat, required=True, alias_priority=2, serialization_alias='result-format'), 'selection': FieldInfo(annotation=str, required=True), 'title': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'tree_name': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, alias='tree-name', alias_priority=2)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

result_destination: ResultDestination#
result_format: ResultFormat#
selection: str#
title: str | None#
tree_name: str | None#
class servicex.models.TransformStatus(*, request_id: str, did: str, title: str | None = None, selection: str, tree_name: str | None, image: str, result_destination: ResultDestination, result_format: ResultFormat, generated_code_cm: str, status: Status, app_version: str, files: int, files_completed: int, files_failed: int, files_remaining: int | None = 0, submit_time: datetime = None, finish_time: datetime | None = None, minio_endpoint: str | None = None, minio_secured: bool | None = None, minio_access_key: str | None = None, minio_secret_key: str | None = None, log_url: str | None = None)[source]#

Bases: BaseModel

Status object returned by servicex

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

app_version: str#
did: str#
files: int#
files_completed: int#
files_failed: int#
files_remaining: int | None#
finish_time: datetime | None#
generated_code_cm: str#
image: str#
log_url: str | None#
minio_access_key: str | None#
minio_endpoint: str | None#
minio_secret_key: str | None#
minio_secured: bool | None#
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'app_version': FieldInfo(annotation=str, required=True, alias_priority=2, validation_alias='app-version'), 'did': FieldInfo(annotation=str, required=True), 'files': FieldInfo(annotation=int, required=True), 'files_completed': FieldInfo(annotation=int, required=True, alias_priority=2, validation_alias='files-completed'), 'files_failed': FieldInfo(annotation=int, required=True, alias_priority=2, validation_alias='files-failed'), 'files_remaining': FieldInfo(annotation=Union[int, NoneType], required=False, default=0, alias_priority=2, validation_alias='files-remaining'), 'finish_time': FieldInfo(annotation=Union[datetime, NoneType], required=False, default=None, alias_priority=2, validation_alias='finish-time'), 'generated_code_cm': FieldInfo(annotation=str, required=True, alias_priority=2, validation_alias='generated-code-cm'), 'image': FieldInfo(annotation=str, required=True), 'log_url': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, alias_priority=2, validation_alias='log-url'), 'minio_access_key': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, alias_priority=2, validation_alias='minio-access-key'), 'minio_endpoint': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, alias_priority=2, validation_alias='minio-endpoint'), 'minio_secret_key': FieldInfo(annotation=Union[str, NoneType], required=False, default=None, alias_priority=2, validation_alias='minio-secret-key'), 'minio_secured': FieldInfo(annotation=Union[bool, NoneType], required=False, default=None, alias_priority=2, validation_alias='minio-secured'), 'request_id': FieldInfo(annotation=str, required=True), 'result_destination': FieldInfo(annotation=ResultDestination, required=True, alias_priority=2, validation_alias='result-destination'), 'result_format': FieldInfo(annotation=ResultFormat, required=True, alias_priority=2, validation_alias='result-format'), 'selection': FieldInfo(annotation=str, required=True), 'status': FieldInfo(annotation=Status, required=True), 'submit_time': FieldInfo(annotation=datetime, required=False, default=None, alias_priority=2, validation_alias='submit-time'), 'title': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'tree_name': FieldInfo(annotation=Union[str, NoneType], required=True, alias_priority=2, validation_alias='tree-name')}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

request_id: str#
result_destination: ResultDestination#
result_format: ResultFormat#
selection: str#
status: Status#
submit_time: datetime#
title: str | None#
tree_name: str | None#
class servicex.models.TransformedResults(*, hash: str, title: str, codegen: str, request_id: str, submit_time: datetime, data_dir: str, file_list: List[str], signed_url_list: List[str], files: int, result_format: ResultFormat, log_url: str | None = None)[source]#

Bases: BaseModel

Returned for a submission. Gives you everything you need to know about a completed transform.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

codegen: str#
data_dir: str#
file_list: List[str]#
files: int#
hash: str#
log_url: str | None#
model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'codegen': FieldInfo(annotation=str, required=True), 'data_dir': FieldInfo(annotation=str, required=True), 'file_list': FieldInfo(annotation=List[str], required=True), 'files': FieldInfo(annotation=int, required=True), 'hash': FieldInfo(annotation=str, required=True), 'log_url': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'request_id': FieldInfo(annotation=str, required=True), 'result_format': FieldInfo(annotation=ResultFormat, required=True), 'signed_url_list': FieldInfo(annotation=List[str], required=True), 'submit_time': FieldInfo(annotation=datetime, required=True), 'title': FieldInfo(annotation=str, required=True)}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.

request_id: str#
result_format: ResultFormat#
signed_url_list: List[str]#
submit_time: datetime#
title: str#