# test_application.py
from pydantic_ulid_mypy.application import code_use_something_id
from pydantic_ulid_mypy.models import Something
def test_application():
data = {
"id": "01BTGNYV6HRNK8K8VKZASZCFPE"
}
something = Something.model_validate(data)
code_use_something_id(something.id)
runnig mypy will outputs
tests/test_application.py:10: error: Argument 1 to "code_use_something_id" has incompatible type >"pydantic_extra_types.ulid.ULID"; expected "ulid.ULID" [arg-type]
this forces user use mypy to use pydantic_extra_types.ulid.ULID in their type annotations or manually cast pydantic_extra_types.ulid.ULID to ulid.ULID which is not so user friendly IMO
Description
when using
pydantic-extra-types.ulid.ULID
like belowrunnig
mypy
will outputsthis forces user use
mypy
to usepydantic_extra_types.ulid.ULID
in their type annotations or manually castpydantic_extra_types.ulid.ULID
toulid.ULID
which is not so user friendly IMOExample Code
https://github.com/sinyo-matu/pydantic-ulid-mypy
Solution(IMO)
I think we can make
ULID subclass
ofpython-ulid.ULID
instead of subclassing_repr.Representation
(which I have no idea why it's nesessary)Can this be a solution? https://github.com/sinyo-matu/pydantic-extra-types/blob/0e5f5507e6470766e2472fe65c89d5bba632ad40/pydantic_extra_types/ulid.py#L26
Python, Pydantic & OS Version
Python: 3.12 Pydantic: 2.6.3 Pydantic-extra-types: 2.6.0 OS Version: