diff --git a/CHANGES/1357.breaking.rst b/CHANGES/1357.breaking.rst new file mode 120000 index 000000000..c90094766 --- /dev/null +++ b/CHANGES/1357.breaking.rst @@ -0,0 +1 @@ +1348.breaking.rst \ No newline at end of file diff --git a/tests/test_cache.py b/tests/test_cache.py index c79f554c8..12024e3db 100644 --- a/tests/test_cache.py +++ b/tests/test_cache.py @@ -42,6 +42,9 @@ def test_cache_configure_explicit() -> None: idna_encode_size=128, encode_host_size=128, ) + assert yarl.cache_info()["idna_decode"].maxsize == 128 + assert yarl.cache_info()["idna_encode"].maxsize == 128 + assert yarl.cache_info()["encode_host"].maxsize == 128 def test_cache_configure_waring() -> None: diff --git a/yarl/_url.py b/yarl/_url.py index 0470fa6f6..1dac63120 100644 --- a/yarl/_url.py +++ b/yarl/_url.py @@ -1763,17 +1763,18 @@ def cache_info() -> CacheInfo: @rewrite_module def cache_configure( *, - idna_encode_size: Union[int, None, object] = _DEFAULT_IDNA_SIZE, + idna_encode_size: Union[int, None] = _DEFAULT_IDNA_SIZE, idna_decode_size: Union[int, None] = _DEFAULT_IDNA_SIZE, ip_address_size: Union[int, None, object] = _SENTINEL, host_validate_size: Union[int, None, object] = _SENTINEL, - encode_host_size: Union[int, None] = _DEFAULT_ENCODE_SIZE, + encode_host_size: Union[int, None, object] = _SENTINEL, ) -> None: """Configure LRU cache sizes.""" global _idna_decode, _idna_encode, _encode_host # ip_address_size, host_validate_size are no longer # used, but are kept for backwards compatibility. - if encode_host_size is not None: + if encode_host_size is _SENTINEL: + encode_host_size = _DEFAULT_ENCODE_SIZE for size in (ip_address_size, host_validate_size): if size is not _SENTINEL: warnings.warn( @@ -1790,10 +1791,12 @@ def cache_configure( elif size is _SENTINEL: size = _DEFAULT_ENCODE_SIZE if TYPE_CHECKING: - assert isinstance(size, int) + assert not isinstance(size, object) if size > encode_host_size: encode_host_size = size + if TYPE_CHECKING: + assert not isinstance(encode_host_size, object) _encode_host = lru_cache(encode_host_size)(_encode_host.__wrapped__) _idna_decode = lru_cache(idna_decode_size)(_idna_decode.__wrapped__) - _idna_encode = lru_cache(idna_decode_size)(_idna_encode.__wrapped__) + _idna_encode = lru_cache(idna_encode_size)(_idna_encode.__wrapped__)