diff --git a/django-stubs/contrib/gis/geoip2.pyi b/django-stubs/contrib/gis/geoip2.pyi new file mode 100644 index 000000000..3355538aa --- /dev/null +++ b/django-stubs/contrib/gis/geoip2.pyi @@ -0,0 +1,70 @@ +from ipaddress import IPv4Address, IPv6Address +from typing import Final, TypeAlias, TypedDict + +from _typeshed import StrPath +from django.contrib.gis.geos import Point +from django.utils.functional import cached_property + +HAS_GEOIP2: bool +SUPPORTED_DATABASE_TYPES: set[str] + +_CoordType: TypeAlias = tuple[float, float] | tuple[None, None] +_QueryType: TypeAlias = str | IPv4Address | IPv6Address + +class _CityResponse(TypedDict): + accuracy_radius: int | None + city: str + continent_code: str + continent_name: str + country_code: str + country_name: str + is_in_european_union: bool + latitude: float + longitude: float + metro_code: int | None + postal_code: str | None + region_code: str | None + region_name: str | None + time_zone: str | None + # Kept for backward compatibility. + dma_code: int | None + region: str | None + +class _CountryResponse(TypedDict): + continent_code: str + continent_name: str + country_code: str + country_name: str + is_in_european_union: bool + +class GeoIP2Exception(Exception): ... + +class GeoIP2: + MODE_AUTO: Final = 0 + MODE_MMAP_EXT: Final = 1 + MODE_MMAP: Final = 2 + MODE_FILE: Final = 4 + MODE_MEMORY: Final = 8 + cache_options: Final[frozenset[int]] + + def __init__( + self, + path: StrPath | None = None, + cache: int = 0, + country: str | None = None, + city: str | None = None, + ) -> None: ... + def __del__(self) -> None: ... + @cached_property + def is_city(self) -> bool: ... + @cached_property + def is_country(self) -> bool: ... + def city(self, query: _QueryType) -> _CityResponse: ... + def country_code(self, query: _QueryType) -> str: ... + def country_name(self, query: _QueryType) -> str: ... + def country(self, query: _QueryType) -> _CountryResponse: ... + def lon_lat(self, query: _QueryType) -> _CoordType: ... + def lat_lon(self, query: _QueryType) -> _CoordType: ... + def geos(self, query: _QueryType) -> Point: ... + +__all__ = ["HAS_GEOIP2"] diff --git a/django-stubs/contrib/gis/geoip2/__init__.pyi b/django-stubs/contrib/gis/geoip2/__init__.pyi deleted file mode 100644 index f524617cc..000000000 --- a/django-stubs/contrib/gis/geoip2/__init__.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from .base import GeoIP2 as GeoIP2 -from .base import GeoIP2Exception as GeoIP2Exception - -HAS_GEOIP2: bool diff --git a/django-stubs/contrib/gis/geoip2/base.pyi b/django-stubs/contrib/gis/geoip2/base.pyi deleted file mode 100644 index f2aa659ad..000000000 --- a/django-stubs/contrib/gis/geoip2/base.pyi +++ /dev/null @@ -1,33 +0,0 @@ -from typing import Any - -GEOIP_SETTINGS: Any - -class GeoIP2Exception(Exception): ... - -class GeoIP2: - MODE_AUTO: int = ... - MODE_MMAP_EXT: int = ... - MODE_MMAP: int = ... - MODE_FILE: int = ... - MODE_MEMORY: int = ... - cache_options: Any = ... - def __init__( - self, - path: Any | None = ..., - cache: int = ..., - country: Any | None = ..., - city: Any | None = ..., - ) -> None: ... - def __del__(self) -> None: ... - def city(self, query: Any) -> Any: ... - def country_code(self, query: Any) -> Any: ... - def country_name(self, query: Any) -> Any: ... - def country(self, query: Any) -> Any: ... - def coords(self, query: Any, ordering: Any = ...) -> Any: ... - def lon_lat(self, query: Any) -> Any: ... - def lat_lon(self, query: Any) -> Any: ... - def geos(self, query: Any) -> Any: ... - @property - def info(self) -> Any: ... - @classmethod - def open(cls, full_path: Any, cache: Any) -> Any: ... diff --git a/django-stubs/contrib/gis/geoip2/resources.pyi b/django-stubs/contrib/gis/geoip2/resources.pyi deleted file mode 100644 index 217bfc8b7..000000000 --- a/django-stubs/contrib/gis/geoip2/resources.pyi +++ /dev/null @@ -1,4 +0,0 @@ -from typing import Any - -def City(response: Any) -> Any: ... -def Country(response: Any) -> Any: ... diff --git a/django-stubs/forms/fields.pyi b/django-stubs/forms/fields.pyi index b4e1723c5..e66492289 100644 --- a/django-stubs/forms/fields.pyi +++ b/django-stubs/forms/fields.pyi @@ -1,5 +1,5 @@ import datetime -from collections.abc import Callable, Collection, Iterator, Sequence +from collections.abc import Callable, Collection, Iterable, Iterator, Sequence from decimal import Decimal from re import Pattern from typing import Any, ClassVar, Protocol, TypeAlias, type_check_only @@ -52,7 +52,7 @@ class Field: help_text: _StrOrPromise = "", error_messages: _ErrorMessagesMapping | None = None, show_hidden_initial: bool = False, - validators: Sequence[_ValidatorCallable] = (), + validators: Iterable[_ValidatorCallable] = (), localize: bool = False, disabled: bool = False, label_suffix: str | None = None, @@ -89,7 +89,7 @@ class CharField(Field): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -118,7 +118,7 @@ class IntegerField(Field): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -142,7 +142,7 @@ class FloatField(IntegerField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -172,7 +172,7 @@ class DecimalField(IntegerField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -197,7 +197,7 @@ class BaseTemporalField(Field): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -255,7 +255,7 @@ class RegexField(CharField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -277,7 +277,7 @@ class EmailField(CharField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -299,7 +299,7 @@ class FileField(Field): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -335,7 +335,7 @@ class URLField(CharField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -377,7 +377,7 @@ class ChoiceField(Field): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -412,7 +412,7 @@ class TypedChoiceField(ChoiceField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -446,7 +446,7 @@ class TypedMultipleChoiceField(MultipleChoiceField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -469,7 +469,7 @@ class ComboField(Field): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -492,7 +492,7 @@ class MultiValueField(Field): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -530,7 +530,7 @@ class FilePathField(ChoiceField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -553,7 +553,7 @@ class SplitDateTimeField(MultiValueField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -575,7 +575,7 @@ class GenericIPAddressField(CharField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., @@ -600,7 +600,7 @@ class SlugField(CharField): help_text: _StrOrPromise = ..., error_messages: _ErrorMessagesMapping | None = ..., show_hidden_initial: bool = ..., - validators: Sequence[_ValidatorCallable] = ..., + validators: Iterable[_ValidatorCallable] = ..., localize: bool = ..., disabled: bool = ..., label_suffix: str | None = ..., diff --git a/s/sync b/s/sync index 45abf3e41..f31f5109c 100755 --- a/s/sync +++ b/s/sync @@ -8,7 +8,9 @@ set -e DJANGO_STUBS_TARGET_TAG="6.0.5" git fetch https://github.com/typeddjango/django-stubs.git $DJANGO_STUBS_TARGET_TAG -git checkout $DJANGO_STUBS_TARGET_TAG -- django-stubs/tasks/ django-stubs/core/cache +git checkout $DJANGO_STUBS_TARGET_TAG -- \ + django-stubs/tasks/ \ + django-stubs/core/cache/ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" SYNC_FILES="$SCRIPT_DIR/sync-files.txt" diff --git a/s/sync-files.txt b/s/sync-files.txt index 7cc51a95a..147c1a7cb 100644 --- a/s/sync-files.txt +++ b/s/sync-files.txt @@ -74,3 +74,4 @@ django-stubs/utils/csp.pyi django-stubs/contrib/admin/tests.pyi #django-stubs/utils/html.pyi django-stubs/core/signing.pyi +django-stubs/contrib/gis/geoip2.pyi diff --git a/uv.lock b/uv.lock index de1ca5759..6833bfc61 100644 --- a/uv.lock +++ b/uv.lock @@ -350,15 +350,15 @@ wheels = [ [[package]] name = "pyright" -version = "1.1.409" +version = "1.1.410" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "nodeenv" }, { name = "typing-extensions" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/51/4e/3aa27f74211522dba7e9cbc3e74de779c6d4b654c54e50a4840623be8014/pyright-1.1.409.tar.gz", hash = "sha256:986ee05beca9e077c165758ad123667c679e050059a2546aa02473930394bc93", size = 4430434, upload-time = "2026-04-23T11:02:03.799Z" } +sdist = { url = "https://files.pythonhosted.org/packages/10/53/e4d8ea1391bd4355231be6f91bf239479aa0014260ed3fb5526eeb12a1f2/pyright-1.1.410.tar.gz", hash = "sha256:07a073b8ba6749826773c1269773efa11b93440d9a6aa60419d9a3172d6dc488", size = 4062013, upload-time = "2026-06-01T17:35:48.894Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/16/6b/330d8ebae582b30c2959a1ef4c3bc344ebde48c2ff0c3f113c4710735e11/pyright-1.1.409-py3-none-any.whl", hash = "sha256:aa3ea228cab90c845c7a60d28db7a844c04315356392aa09fafcee98c8c22fb3", size = 6438161, upload-time = "2026-04-23T11:02:01.309Z" }, + { url = "https://files.pythonhosted.org/packages/d7/33/288b5868fa00846dacf249633719d747893e54aebd196b9968ac1878a5d3/pyright-1.1.410-py3-none-any.whl", hash = "sha256:5e961bed37cacf96b3f7cd7b1da39b350a9239aa2e69138d0e88f728cfaf296c", size = 6082448, upload-time = "2026-06-01T17:35:46.387Z" }, ] [[package]] @@ -490,27 +490,27 @@ wheels = [ [[package]] name = "ty" -version = "0.0.35" +version = "0.0.49" source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/4e/53/440e7b1212c4b0abbd4adb7aed93f4971aa1f8dca386ac5515930afa9172/ty-0.0.35.tar.gz", hash = "sha256:8375c240ab38138a19db07996c9808fb7a92047c1492e1ce587c2ef5112ad3a9", size = 5629237, upload-time = "2026-05-10T18:25:17.105Z" } +sdist = { url = "https://files.pythonhosted.org/packages/1d/8d/37cb91808069509d43a2a11743e12f1e854fd808dbef2203309d256718cd/ty-0.0.49.tar.gz", hash = "sha256:0a027bd0c9c75d035641a365d087ad883446057f9be0b9826251c2aecafbf145", size = 5884753, upload-time = "2026-06-12T03:08:20.221Z" } wheels = [ - { url = "https://files.pythonhosted.org/packages/d4/84/19662ee881675815b7fafff940a365be1985730465afd9b75cb2edd5f8b3/ty-0.0.35-py3-none-linux_armv6l.whl", hash = "sha256:85ae1e59b9fb0b40e9d84fe61b29653c5f2f5e78b487ece371a7a38c20c781cf", size = 11198741, upload-time = "2026-05-10T18:24:49.378Z" }, - { url = "https://files.pythonhosted.org/packages/62/df/7e5b6f83d85b4d2e5b72b5dceb388f440acc10679417bd46f829b9200fab/ty-0.0.35-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:709dbb7af4fcadb1196863c00b8791bbbbcc9dacbe15a0ff17f0af82b35d415b", size = 10948304, upload-time = "2026-05-10T18:24:58.246Z" }, - { url = "https://files.pythonhosted.org/packages/59/94/72d7263aca055cde427f0ebcf08d6a74e5a5fee1d1e7fdd553696089cecb/ty-0.0.35-py3-none-macosx_11_0_arm64.whl", hash = "sha256:2cb0877419ab0c8708b6925cb0c2800b263842bd3c425113f200538772f3a0cc", size = 10407413, upload-time = "2026-05-10T18:24:37.422Z" }, - { url = "https://files.pythonhosted.org/packages/b6/23/fda6fae8a81ce0cb5f24cdfe63260e110c7af8844e31fa07d1e6e8ef0232/ty-0.0.35-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e7afbcfc61904b7e82e7fe1a1db832a40d8f01e69dee1775f6594e552980536c", size = 10932614, upload-time = "2026-05-10T18:24:47.401Z" }, - { url = "https://files.pythonhosted.org/packages/72/3d/b98d8d4aa1a5ed6daaf15864e838f605ca7b1e8b93b7e17b96ed4bc4dfed/ty-0.0.35-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b61498cc3e4178031c079951257fbdb209a891b4feb10ad6c40f615a51846f41", size = 10962982, upload-time = "2026-05-10T18:24:44.88Z" }, - { url = "https://files.pythonhosted.org/packages/18/c4/2881aad71bf6fb2f8df17fc8e4bc89e904e54490a3ee747b5ef73f98ac85/ty-0.0.35-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:573b1eacda349fc8dba0d767b41631c3a6f66412363127c5bf2b1b40a1d898d2", size = 11476274, upload-time = "2026-05-10T18:24:42.4Z" }, - { url = "https://files.pythonhosted.org/packages/34/0f/7717650adaeaddd23eea70470e2c26d3f0b9b18fdc7f26ec9552d6001f17/ty-0.0.35-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a7209746158d6393c1040aa64b3ca29622e212ea7d8bae22ba50dbcbb4f96f0a", size = 12012027, upload-time = "2026-05-10T18:25:00.752Z" }, - { url = "https://files.pythonhosted.org/packages/22/c9/1a16cb4aab6f4707d8f550772e91abc26d1c8870f19b5e2453ad10bb8209/ty-0.0.35-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4466a1470aa4418d49a9aa45d9da7de42033addd0a2837c5b2b0eb71d3c2bcd3", size = 11648894, upload-time = "2026-05-10T18:25:12.44Z" }, - { url = "https://files.pythonhosted.org/packages/18/a1/a977c0e07e9f88db9c67f90c6342a4dc4422c8091fa07bf26521870687c5/ty-0.0.35-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eb44bb742d52c309dcaa6598bcf4d82eb4bf1241b9e4940461e522e30093fe8b", size = 11560482, upload-time = "2026-05-10T18:25:05.172Z" }, - { url = "https://files.pythonhosted.org/packages/d6/c1/a5fb11227d5cc4ac3f29a115d8c8bc817578e8ef6907d1e4c914ddbf45ee/ty-0.0.35-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:34b219250736c989b2670a03782c61315f523f3a2be37f1f90b1207e2212c188", size = 11718495, upload-time = "2026-05-10T18:24:54.12Z" }, - { url = "https://files.pythonhosted.org/packages/3c/cb/e92e4317388b6d1fd821a46941b448a8a1ff0bf13e22147c5167d8fa1b00/ty-0.0.35-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:88e2ac497decc0940ef1a07571dee8a746112a93a09cdc7f8bca0099752e2e05", size = 10900815, upload-time = "2026-05-10T18:25:02.941Z" }, - { url = "https://files.pythonhosted.org/packages/e9/4f/03bd87388a92567f262f35ac64e10d2be047d258f2dfcf1405f500fa2b90/ty-0.0.35-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:02cae51b53e6ec17d5d827ff1a3a76fd119705b56a92156e04399eda6e911596", size = 10998051, upload-time = "2026-05-10T18:25:14.68Z" }, - { url = "https://files.pythonhosted.org/packages/b4/60/6edbc375ee6073973200096168f644e1081e5e55a7d42596826465b275de/ty-0.0.35-py3-none-musllinux_1_2_i686.whl", hash = "sha256:11871d730c9400d899ac0b9f3d660ed2e7e433377c8725549f8250a36a7f2620", size = 11148910, upload-time = "2026-05-10T18:24:51.842Z" }, - { url = "https://files.pythonhosted.org/packages/4d/b1/a845d2066ed521c477450f436d4bd353d107e7c02dd6536a485944aaf892/ty-0.0.35-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:1ad0a2f0530d0933dcc99ad36ac556c63e384ea72ab9a18d23ad2e2c9fd61c73", size = 11671005, upload-time = "2026-05-10T18:24:56.223Z" }, - { url = "https://files.pythonhosted.org/packages/73/81/1d5912a54fb66b2f95ac828ae61d422ef5afeae1263e4d231e40796c229f/ty-0.0.35-py3-none-win32.whl", hash = "sha256:0e25d63ec4ab116e7f6757e44d16ca9216bca679d19ecc36d119cf80faada61a", size = 10481096, upload-time = "2026-05-10T18:24:39.976Z" }, - { url = "https://files.pythonhosted.org/packages/3b/36/1c7f8632bfec1c321f01581d4c940a3617b24bd3e8b37c8a7363d33fbfc4/ty-0.0.35-py3-none-win_amd64.whl", hash = "sha256:6a0a6d259f6f2f8f2f954c6f013d4e0b5eba68af6b353bf19a47d59ec254a3d5", size = 11555691, upload-time = "2026-05-10T18:25:07.792Z" }, - { url = "https://files.pythonhosted.org/packages/7a/fb/59325221bce52f6e833d6865ce8360ef7d5e1e21151b38df6dc77c4327a7/ty-0.0.35-py3-none-win_arm64.whl", hash = "sha256:619c52c0fb2aa21961a848a1995135ad3b6d0a9aa54da0194e60f679cc200e13", size = 10925457, upload-time = "2026-05-10T18:25:10.352Z" }, + { url = "https://files.pythonhosted.org/packages/ca/de/9237c6a96356612dd0393db1e94cf21f903616adf3a3701bf3da6e4adc92/ty-0.0.49-py3-none-linux_armv6l.whl", hash = "sha256:12c0c4310b936d762a8586c210b53d4fa4bb361a04429afa89bf84b922e5e065", size = 11834671, upload-time = "2026-06-12T03:07:53.062Z" }, + { url = "https://files.pythonhosted.org/packages/8f/15/daf5a14a5e07012277d450c75325c94614e2acfec4c620c881486118c410/ty-0.0.49-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:737bfdc2caf9712a8580944dcdc80a450a37a4f2bc83c8fa9b7433b374f9e471", size = 11589570, upload-time = "2026-06-12T03:08:25.779Z" }, + { url = "https://files.pythonhosted.org/packages/7d/58/30bdf98436488aca25f0763bf7f92a061528d42461b686453029e845e4c5/ty-0.0.49-py3-none-macosx_11_0_arm64.whl", hash = "sha256:ab90c1baf3b1701d282fce4b02fa552a962d109f8972c46ef6b22429503bfea4", size = 10985236, upload-time = "2026-06-12T03:08:36.664Z" }, + { url = "https://files.pythonhosted.org/packages/22/45/ece503e4a1396e13a1a9a0cde51afe476a6506a1d557eeadf8ad45c83bc0/ty-0.0.49-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b4ce8ecf6ba6fc79bd137cc0557a754f7e5f2dfe9436412551d480d680e248ad", size = 11504302, upload-time = "2026-06-12T03:08:01.664Z" }, + { url = "https://files.pythonhosted.org/packages/17/dc/5d09333d289dfbca1804eaade125c9e8a1a992a2a592a8b80c5e9b589ca9/ty-0.0.49-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:10d85c6865c984e78661e0bd20b180514b4a289739224e84816e342bdf381e04", size = 11626629, upload-time = "2026-06-12T03:08:06.844Z" }, + { url = "https://files.pythonhosted.org/packages/f2/36/155f41c9dd7237c4b609211f29f77755a139ee6218605dadc7fe21d5e3c8/ty-0.0.49-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d96a67a206619e01fa92f35a22267ec634bba62be24b1d0e947020cc179995b", size = 12074481, upload-time = "2026-06-12T03:08:09.643Z" }, + { url = "https://files.pythonhosted.org/packages/96/4c/998ee13cd5045f1f8b36982de7343163832ac53f27debe01b0de0e8bd968/ty-0.0.49-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3de9f648564e0a66344ef397770387cb0d093735f8679d2c5a08a4741e79814d", size = 12678042, upload-time = "2026-06-12T03:08:39.319Z" }, + { url = "https://files.pythonhosted.org/packages/85/c9/9a505aba85c41ce54cbcaa14f8d79aa084b86151d2d70df11c4655b92898/ty-0.0.49-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5779179ab397d15f8c9dbb8f506ec1b1745f54eac639982f76ef3ce538943b50", size = 12316194, upload-time = "2026-06-12T03:08:18.023Z" }, + { url = "https://files.pythonhosted.org/packages/c9/b8/ded37fb93503294abbc83c36470bb1413bea05048b745881d4470b518a06/ty-0.0.49-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:792d4974e93cc09bd32f934586080bbbe21b8e777099cb521cb2de18b68a49f0", size = 12145507, upload-time = "2026-06-12T03:07:56.505Z" }, + { url = "https://files.pythonhosted.org/packages/2f/07/392e80d78f02445f695b815bb9eb0fffacda68b03faee38c900f7b990815/ty-0.0.49-py3-none-manylinux_2_31_riscv64.whl", hash = "sha256:727bda86deb136073e525c2e78d60e38aedcce5d80579170844a52bbf7c1440d", size = 12365967, upload-time = "2026-06-12T03:08:12.553Z" }, + { url = "https://files.pythonhosted.org/packages/50/d3/31b0c2a7fbedd3373e389cb1d81b8d2128f6f868fafb46557736a6f9aca8/ty-0.0.49-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:4f2fc2bc4a8d2ff1cca59fd94772cabdfec4062d47a0b3a0784be46d94d0540b", size = 11475283, upload-time = "2026-06-12T03:08:28.334Z" }, + { url = "https://files.pythonhosted.org/packages/5a/5b/329e101638920b468a3bb63059c9f66ef99b44aac501222c44832a507321/ty-0.0.49-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:3724bd9badef333321578b6a941fbc571ebf49141ec2356a8590fbe4c9aa588d", size = 11645343, upload-time = "2026-06-12T03:08:15.246Z" }, + { url = "https://files.pythonhosted.org/packages/a9/76/c897e615e32f80ca81c8c1bc49b9a1f72ff9e3cfea0f8345ba505fe28472/ty-0.0.49-py3-none-musllinux_1_2_i686.whl", hash = "sha256:166c6eb52ee4af3c5a9bb267d165d93000daa55c6758cd8ff3199741fb75917d", size = 11725585, upload-time = "2026-06-12T03:08:33.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/e1/fdb42ee239f618800842681af5bb8598117e74512c10974a8b7b9086a898/ty-0.0.49-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:91e81d832c287b05782ee32eb1b801f62c1fa08df37d589d2b88c3f1d51c9731", size = 12237261, upload-time = "2026-06-12T03:08:31.105Z" }, + { url = "https://files.pythonhosted.org/packages/98/0f/a2d6a5fc9d0786cbeb3c200786da4e18c203589be3984bb5def83ca92320/ty-0.0.49-py3-none-win32.whl", hash = "sha256:7186af5ca9829d1f5d8916bcf767b8e819bfbf61b1b8ec843bb3fc699cb502e1", size = 11100789, upload-time = "2026-06-12T03:07:59.092Z" }, + { url = "https://files.pythonhosted.org/packages/d0/9d/473ac8bc57b5a2d121da893bf9dd74a118efb19a01d711df1a6e397f05cc/ty-0.0.49-py3-none-win_amd64.whl", hash = "sha256:ae2142fc126a01effcca0c222908b0e6654b5ba1266d4e4d406e4866aef8e1d1", size = 12204644, upload-time = "2026-06-12T03:08:04.327Z" }, + { url = "https://files.pythonhosted.org/packages/ef/a2/8959249da951ba3977fee20e688d28678b8a1d30a9ed4464228a85d45853/ty-0.0.49-py3-none-win_arm64.whl", hash = "sha256:75d5e2e7649765f31f4bed6c8adb149a75b18edd3fa6336dac4d0efc1a66466f", size = 11558965, upload-time = "2026-06-12T03:08:23.012Z" }, ] [[package]]