Warning

This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.

Source code for galaxy.schema.types

from datetime import datetime
from typing import Union

from pydantic import ValidationInfo
from pydantic.functional_validators import AfterValidator
from typing_extensions import (
    Annotated,
    Literal,
)

# Relative URLs cannot be validated with AnyUrl, they need a scheme.
# Making them an alias of `str` for now
RelativeUrl = str

# TODO: we may want to add a custom validator for this and for RelativeUrl
AbsoluteOrRelativeUrl = RelativeUrl

LatestLiteral = Literal["latest"]


[docs]def strip_tzinfo(v: datetime, info: ValidationInfo) -> datetime: if v.tzinfo: if offset := v.utcoffset(): return v.replace(tzinfo=None) - offset return v.replace(tzinfo=None) return v
OffsetNaiveDatetime = Annotated[datetime, AfterValidator(strip_tzinfo)] CoercedStringType = Annotated[ Union[str, int, float, bool], AfterValidator(lambda val: val if isinstance(val, str) else str(val)) ]