sematic_py_lib(
    name = "dataclass",
    srcs = ["dataclass.py"],
    deps = [
        "//sematic/types:casting",
        "//sematic/types:registry",
        "//sematic/types:serialization",
    ],
)

sematic_py_lib(
    name = "enum",
    srcs = ["enum.py"],
    deps = [
        "//sematic/types:registry",
    ],
)

sematic_py_lib(
    name = "float",
    srcs = ["float.py"],
    deps = [
        "//sematic/types:registry",
        "//sematic/types:serialization",
    ],
)

sematic_py_lib(
    name = "integer",
    srcs = ["integer.py"],
    deps = [
        "//sematic/types:registry",
        "//sematic/types:serialization",
    ],
)

sematic_py_lib(
    name = "list",
    srcs = ["list.py"],
    deps = [
        "//sematic/types:casting",
        "//sematic/types:registry",
        "//sematic/types:serialization",
    ],
)

sematic_py_lib(
    name = "str",
    srcs = ["str.py"],
    deps = [
        "//sematic/types:registry",
        "//sematic/types:serialization",
    ],
)

sematic_py_lib(
    name = "none",
    srcs = ["none.py"],
    deps = [
        "//sematic/types:registry",
        "//sematic/types:serialization",
    ],
)

sematic_py_lib(
    name = "union",
    srcs = ["union.py"],
    deps = [
        "//sematic/types:casting",
        "//sematic/types:registry",
        "//sematic/types:serialization",
    ],
)

sematic_py_lib(
    name = "bool",
    srcs = ["bool.py"],
    deps = [
        "//sematic/types:registry",
        "//sematic/types:serialization",
    ],
)

sematic_py_lib(
    name = "tuple",
    srcs = ["tuple.py"],
    deps = [
        "//sematic/types:casting",
        "//sematic/types:registry",
    ],
)

sematic_py_lib(
    name = "dict",
    srcs = ["dict.py"],
    deps = [
        "//sematic/types:casting",
        "//sematic/types:registry",
        "//sematic/utils:hashing",
    ],
)

sematic_py_lib(
    name = "set",
    srcs = ["set.py"],
    deps = [
        "//sematic/types:casting",
        "//sematic/types:registry",
        "//sematic/types:serialization",
    ],
)

sematic_py_lib(
    name = "link",
    srcs = ["link.py"],
    deps = [],
)

sematic_py_lib(
    name = "prompt_response",
    srcs = ["prompt_response.py"],
    deps = [],
)

sematic_py_lib(
    name = "datetime",
    srcs = ["datetime.py"],
    deps = [],
)

sematic_py_lib(
    name = "image",
    srcs = ["image.py"],
    pip_deps = [
        "python-magic",
    ],
    deps = [
        "//sematic/types:registry",
    ],
)
