From 1e00807a38a15016ff8e73eecc433c04ec440d44 Mon Sep 17 00:00:00 2001 From: root Date: Sun, 8 Dec 2024 16:51:24 +0100 Subject: [PATCH] tests passed --- LICENSE | 9 +++ Makefile | 3 + examples/email_str.py | 20 +++++- examples/email_str_def.png | Bin 0 -> 112208 bytes examples/email_str_init.png | Bin 0 -> 48437 bytes examples/email_str_replace.png | Bin 0 -> 57642 bytes newtype/newtype.py | 56 ++++++++++++---- poetry.lock | 118 ++++++++++++++++----------------- requirements-docs.txt | 6 +- tests/test_slots.py | 88 +++++++++++++++++++++++- 10 files changed, 222 insertions(+), 78 deletions(-) create mode 100644 LICENSE create mode 100644 examples/email_str_def.png create mode 100644 examples/email_str_init.png create mode 100644 examples/email_str_replace.png diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..c7af3c3 --- /dev/null +++ b/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2024 Jim Chng + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +1. The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +2. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/Makefile b/Makefile index fdae547..e9f8058 100644 --- a/Makefile +++ b/Makefile @@ -131,6 +131,9 @@ test-leak: test-file: $(PYTHON) -m pytest $(FILE) $(PYTEST_FLAGS) +test-e2e: + bash tests/build_test_pyvers_docker_images.sh + # Development workflow targets dev: clean build test diff --git a/examples/email_str.py b/examples/email_str.py index 83af4cb..efb2046 100644 --- a/examples/email_str.py +++ b/examples/email_str.py @@ -1,13 +1,21 @@ +import pytest + + import re -import pytest from newtype import NewType, newtype_exclude class EmailStr(NewType(str)): + # you can define `__slots__` to save space + __slots__ = ( + '_local_part', + '_domain_part', + ) + def __init__(self, value: str): - super().__init__(value) + super().__init__() if "@" not in value: raise TypeError("`EmailStr` requires a '@' symbol within") self._local_part, self._domain_part = value.split("@") @@ -98,6 +106,14 @@ def test_emailstr_properties_methods(): assert EmailStr.is_valid_email("invalid-email.com") is False +def test_email_str__slots__(): + email = EmailStr("test@example.com") + + with pytest.raises(AttributeError): + email.hi = "bye" + assert email.hi == "bye" + + # Run the tests if __name__ == "__main__": pytest.main([__file__]) diff --git a/examples/email_str_def.png b/examples/email_str_def.png new file mode 100644 index 0000000000000000000000000000000000000000..8d93dd68f23ebca24217debc69bc2b637be07c51 GIT binary patch literal 112208 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 &!Y3eT#7JQi(4y;u~Jx!+ftE94G^9btpI7 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 Ti1U93;QzFt`sx*GHsSvdLY4<~ literal 0 HcmV?d00001 diff --git a/examples/email_str_init.png b/examples/email_str_init.png new file mode 100644 index 0000000000000000000000000000000000000000..697b484e793424e57db744aeb59a5eb8d87690ac GIT binary patch literal 48437 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Å++!XV>}t0rhlmJKj)OEi5Xo9w{@{`@ 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 HfMfq3LE^h) literal 0 HcmV?d00001 diff --git a/examples/email_str_replace.png b/examples/email_str_replace.png new file mode 100644 index 0000000000000000000000000000000000000000..f2e7f84b28828b4fe4df04f8f33ec8321e0f45a9 GIT binary patch literal 57642 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 literal 0 HcmV?d00001 diff --git a/newtype/newtype.py b/newtype/newtype.py index 948bb96..c36285c 100644 --- a/newtype/newtype.py +++ b/newtype/newtype.py @@ -111,6 +111,18 @@ def func_is_excluded(func): return getattr(func, NEWTYPE_EXCLUDE_FUNC_STR, False) +def can_subclass_have___slots__(base_type: T) -> bool: + try: + + class _Test(base_type): # type: ignore[valid-type, misc] + __slots__ = ("a", "b") + + _Test() + except TypeError: + return False + return True + + def NewType(base_type: T, **context: "Dict[str, Any]") -> T: # noqa: N802, C901 """Create a new type that preserves type information through all operations. @@ -175,6 +187,12 @@ class BaseNewType(base_type): # type: ignore[valid-type, misc] NEWTYPE_INIT_ARGS_STR, NEWTYPE_INIT_KWARGS_STR, ) + else: + if can_subclass_have___slots__(base_type): + __slots__ = ( + NEWTYPE_INIT_ARGS_STR, + NEWTYPE_INIT_KWARGS_STR, + ) def __init_subclass__(cls, **context) -> None: """Initialize a subclass of BaseNewType. @@ -190,8 +208,9 @@ def __init_subclass__(cls, **context) -> None: **context: Additional context for subclass initialization """ super().__init_subclass__(**context) + NEWTYPE_LOGGER.debug(f"cls: {cls}") NEWTYPE_LOGGER.debug(base_type, base_type.__dict__) - NEWTYPE_LOGGER.debug("cls.__dict__: ", cls.__dict__) + NEWTYPE_LOGGER.debug(f"cls.__dict__: {cls.__dict__}") constructor = cls.__init__ original_cls_dict = {} @@ -201,9 +220,8 @@ def __init_subclass__(cls, **context) -> None: for k, v in base_type.__dict__.items(): if callable(v) and (k not in object.__dict__) and (k not in original_cls_dict): NEWTYPE_LOGGER.debug( - "callable(v) and (k not in object.__dict__) and \ - (k not in original_cls_dict) ; k: ", - k, + f"callable(v) and (k not in object.__dict__) and \ + (k not in original_cls_dict) ; k: {k}" ) setattr(cls, k, NewTypeMethod(v, base_type)) elif k not in object.__dict__: @@ -211,9 +229,9 @@ def __init_subclass__(cls, **context) -> None: continue setattr(cls, k, v) NEWTYPE_LOGGER.debug("Set") - NEWTYPE_LOGGER.debug("original_cls_dict: ", original_cls_dict) + NEWTYPE_LOGGER.debug(f"original_cls_dict: {original_cls_dict}") for k, v in original_cls_dict.items(): - NEWTYPE_LOGGER.debug("k in original_cls_dict: ", k) + NEWTYPE_LOGGER.debug(f"k in original_cls_dict: {k}") if ( callable(v) and k != "__init__" @@ -228,10 +246,23 @@ def __init_subclass__(cls, **context) -> None: NEWTYPE_LOGGER.debug("Set") NEWTYPE_LOGGER.debug("Setting cls.__init__") cls.__init__ = NewTypeInit(constructor) # type: ignore[method-assign] - if hasattr(cls, "__slots__"): - NEWTYPE_LOGGER.debug("cls.__slots__: ", cls.__slots__) NEWTYPE_LOGGER.debug("Setting cls.__init__ completed") - NEWTYPE_LOGGER.debug("cls.__dict__: ", cls.__dict__, " at end of __init_subclass__") + # if hasattr(cls, "__slots__"): + # NEWTYPE_LOGGER.debug(f"cls.__slots__: {cls.__slots__}") + # BaseNewType.__slots__ = ( + # *(base_type.__slots__ if hasattr(base_type, "__slots__") else ()), + # *cls.__slots__, + # NEWTYPE_INIT_ARGS_STR, + # NEWTYPE_INIT_KWARGS_STR, + # ) + # NEWTYPE_LOGGER.debug( + # f"cls.__slots__: {cls.__slots__}, at end of `__init_subclass__`" + # ) + # NEWTYPE_LOGGER.debug(f"cls.__dict__: {cls.__dict__}, at end of `__init_subclass__`") + if hasattr(BaseNewType, "__slots__"): + NEWTYPE_LOGGER.debug( + f"BaseNewType.__slots__: {BaseNewType.__slots__}, at end of `__init_subclass__`" + ) def __new__(cls, value=None, *_args, **_kwargs): """Create a new instance of BaseNewType. @@ -244,7 +275,6 @@ def __new__(cls, value=None, *_args, **_kwargs): *_args: Additional positional arguments **_kwargs: Additional keyword arguments """ - NEWTYPE_LOGGER.debug("cls, cls.__new__: ", cls, cls.__new__) if base_type.__new__ == object.__new__: NEWTYPE_LOGGER.debug( "base_type.__new__ == object.__new__; base_type.__new__ = ", base_type.__new__ @@ -272,9 +302,9 @@ def __new__(cls, value=None, *_args, **_kwargs): if v is not UNDEFINED: setattr(inst, k, v) else: - NEWTYPE_LOGGER.debug( - "base_type.__new__ != object.__new__; base_type.__new__ = ", base_type.__new__ - ) + # NEWTYPE_LOGGER.debug( + # "base_type.__new__ != object.__new__; base_type.__new__ = ", base_type.__new__ + # ) inst = cast("BaseNewType", base_type.__new__(cls, value)) return inst diff --git a/poetry.lock b/poetry.lock index e33c384..3d9e2e2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1231,13 +1231,13 @@ pyyaml = ">=5.1" [[package]] name = "mkdocs-material" -version = "9.5.47" +version = "9.5.48" description = "Documentation that simply works" optional = false python-versions = ">=3.8" files = [ - {file = "mkdocs_material-9.5.47-py3-none-any.whl", hash = "sha256:53fb9c9624e7865da6ec807d116cd7be24b3cb36ab31b1d1d1a9af58c56009a2"}, - {file = "mkdocs_material-9.5.47.tar.gz", hash = "sha256:fc3b7a8e00ad896660bd3a5cc12ca0cb28bdc2bcbe2a946b5714c23ac91b0ede"}, + {file = "mkdocs_material-9.5.48-py3-none-any.whl", hash = "sha256:b695c998f4b939ce748adbc0d3bff73fa886a670ece948cf27818fa115dc16f8"}, + {file = "mkdocs_material-9.5.48.tar.gz", hash = "sha256:a582531e8b34f4c7ed38c29d5c44763053832cf2a32f7409567e0c74749a47db"}, ] [package.dependencies] @@ -1509,66 +1509,66 @@ files = [ [[package]] name = "numpy" -version = "2.1.3" +version = "2.2.0" description = "Fundamental package for array computing in Python" optional = false python-versions = ">=3.10" files = [ - {file = "numpy-2.1.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c894b4305373b9c5576d7a12b473702afdf48ce5369c074ba304cc5ad8730dff"}, - {file = "numpy-2.1.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b47fbb433d3260adcd51eb54f92a2ffbc90a4595f8970ee00e064c644ac788f5"}, - {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:825656d0743699c529c5943554d223c021ff0494ff1442152ce887ef4f7561a1"}, - {file = "numpy-2.1.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:6a4825252fcc430a182ac4dee5a505053d262c807f8a924603d411f6718b88fd"}, - {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e711e02f49e176a01d0349d82cb5f05ba4db7d5e7e0defd026328e5cfb3226d3"}, - {file = "numpy-2.1.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78574ac2d1a4a02421f25da9559850d59457bac82f2b8d7a44fe83a64f770098"}, - {file = "numpy-2.1.3-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c7662f0e3673fe4e832fe07b65c50342ea27d989f92c80355658c7f888fcc83c"}, - {file = "numpy-2.1.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fa2d1337dc61c8dc417fbccf20f6d1e139896a30721b7f1e832b2bb6ef4eb6c4"}, - {file = "numpy-2.1.3-cp310-cp310-win32.whl", hash = "sha256:72dcc4a35a8515d83e76b58fdf8113a5c969ccd505c8a946759b24e3182d1f23"}, - {file = "numpy-2.1.3-cp310-cp310-win_amd64.whl", hash = "sha256:ecc76a9ba2911d8d37ac01de72834d8849e55473457558e12995f4cd53e778e0"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4d1167c53b93f1f5d8a139a742b3c6f4d429b54e74e6b57d0eff40045187b15d"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c80e4a09b3d95b4e1cac08643f1152fa71a0a821a2d4277334c88d54b2219a41"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:576a1c1d25e9e02ed7fa5477f30a127fe56debd53b8d2c89d5578f9857d03ca9"}, - {file = "numpy-2.1.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:973faafebaae4c0aaa1a1ca1ce02434554d67e628b8d805e61f874b84e136b09"}, - {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:762479be47a4863e261a840e8e01608d124ee1361e48b96916f38b119cfda04a"}, - {file = "numpy-2.1.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc6f24b3d1ecc1eebfbf5d6051faa49af40b03be1aaa781ebdadcbc090b4539b"}, - {file = "numpy-2.1.3-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:17ee83a1f4fef3c94d16dc1802b998668b5419362c8a4f4e8a491de1b41cc3ee"}, - {file = "numpy-2.1.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:15cb89f39fa6d0bdfb600ea24b250e5f1a3df23f901f51c8debaa6a5d122b2f0"}, - {file = "numpy-2.1.3-cp311-cp311-win32.whl", hash = "sha256:d9beb777a78c331580705326d2367488d5bc473b49a9bc3036c154832520aca9"}, - {file = "numpy-2.1.3-cp311-cp311-win_amd64.whl", hash = "sha256:d89dd2b6da69c4fff5e39c28a382199ddedc3a5be5390115608345dec660b9e2"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:f55ba01150f52b1027829b50d70ef1dafd9821ea82905b63936668403c3b471e"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:13138eadd4f4da03074851a698ffa7e405f41a0845a6b1ad135b81596e4e9958"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:a6b46587b14b888e95e4a24d7b13ae91fa22386c199ee7b418f449032b2fa3b8"}, - {file = "numpy-2.1.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:0fa14563cc46422e99daef53d725d0c326e99e468a9320a240affffe87852564"}, - {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8637dcd2caa676e475503d1f8fdb327bc495554e10838019651b76d17b98e512"}, - {file = "numpy-2.1.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2312b2aa89e1f43ecea6da6ea9a810d06aae08321609d8dc0d0eda6d946a541b"}, - {file = "numpy-2.1.3-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a38c19106902bb19351b83802531fea19dee18e5b37b36454f27f11ff956f7fc"}, - {file = "numpy-2.1.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:02135ade8b8a84011cbb67dc44e07c58f28575cf9ecf8ab304e51c05528c19f0"}, - {file = "numpy-2.1.3-cp312-cp312-win32.whl", hash = "sha256:e6988e90fcf617da2b5c78902fe8e668361b43b4fe26dbf2d7b0f8034d4cafb9"}, - {file = "numpy-2.1.3-cp312-cp312-win_amd64.whl", hash = "sha256:0d30c543f02e84e92c4b1f415b7c6b5326cbe45ee7882b6b77db7195fb971e3a"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96fe52fcdb9345b7cd82ecd34547fca4321f7656d500eca497eb7ea5a926692f"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f653490b33e9c3a4c1c01d41bc2aef08f9475af51146e4a7710c450cf9761598"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:dc258a761a16daa791081d026f0ed4399b582712e6fc887a95af09df10c5ca57"}, - {file = "numpy-2.1.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:016d0f6f5e77b0f0d45d77387ffa4bb89816b57c835580c3ce8e099ef830befe"}, - {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c181ba05ce8299c7aa3125c27b9c2167bca4a4445b7ce73d5febc411ca692e43"}, - {file = "numpy-2.1.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5641516794ca9e5f8a4d17bb45446998c6554704d888f86df9b200e66bdcce56"}, - {file = "numpy-2.1.3-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:ea4dedd6e394a9c180b33c2c872b92f7ce0f8e7ad93e9585312b0c5a04777a4a"}, - {file = "numpy-2.1.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b0df3635b9c8ef48bd3be5f862cf71b0a4716fa0e702155c45067c6b711ddcef"}, - {file = "numpy-2.1.3-cp313-cp313-win32.whl", hash = "sha256:50ca6aba6e163363f132b5c101ba078b8cbd3fa92c7865fd7d4d62d9779ac29f"}, - {file = "numpy-2.1.3-cp313-cp313-win_amd64.whl", hash = "sha256:747641635d3d44bcb380d950679462fae44f54b131be347d5ec2bce47d3df9ed"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:996bb9399059c5b82f76b53ff8bb686069c05acc94656bb259b1d63d04a9506f"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:45966d859916ad02b779706bb43b954281db43e185015df6eb3323120188f9e4"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:baed7e8d7481bfe0874b566850cb0b85243e982388b7b23348c6db2ee2b2ae8e"}, - {file = "numpy-2.1.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:a9f7f672a3388133335589cfca93ed468509cb7b93ba3105fce780d04a6576a0"}, - {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7aac50327da5d208db2eec22eb11e491e3fe13d22653dce51b0f4109101b408"}, - {file = "numpy-2.1.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4394bc0dbd074b7f9b52024832d16e019decebf86caf909d94f6b3f77a8ee3b6"}, - {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:50d18c4358a0a8a53f12a8ba9d772ab2d460321e6a93d6064fc22443d189853f"}, - {file = "numpy-2.1.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:14e253bd43fc6b37af4921b10f6add6925878a42a0c5fe83daee390bca80bc17"}, - {file = "numpy-2.1.3-cp313-cp313t-win32.whl", hash = "sha256:08788d27a5fd867a663f6fc753fd7c3ad7e92747efc73c53bca2f19f8bc06f48"}, - {file = "numpy-2.1.3-cp313-cp313t-win_amd64.whl", hash = "sha256:2564fbdf2b99b3f815f2107c1bbc93e2de8ee655a69c261363a1172a79a257d4"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:4f2015dfe437dfebbfce7c85c7b53d81ba49e71ba7eadbf1df40c915af75979f"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:3522b0dfe983a575e6a9ab3a4a4dfe156c3e428468ff08ce582b9bb6bd1d71d4"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c006b607a865b07cd981ccb218a04fc86b600411d83d6fc261357f1c0966755d"}, - {file = "numpy-2.1.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e14e26956e6f1696070788252dcdff11b4aca4c3e8bd166e0df1bb8f315a67cb"}, - {file = "numpy-2.1.3.tar.gz", hash = "sha256:aa08e04e08aaf974d4458def539dece0d28146d866a39da5639596f4921fd761"}, + {file = "numpy-2.2.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1e25507d85da11ff5066269d0bd25d06e0a0f2e908415534f3e603d2a78e4ffa"}, + {file = "numpy-2.2.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a62eb442011776e4036af5c8b1a00b706c5bc02dc15eb5344b0c750428c94219"}, + {file = "numpy-2.2.0-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:b606b1aaf802e6468c2608c65ff7ece53eae1a6874b3765f69b8ceb20c5fa78e"}, + {file = "numpy-2.2.0-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:36b2b43146f646642b425dd2027730f99bac962618ec2052932157e213a040e9"}, + {file = "numpy-2.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fe8f3583e0607ad4e43a954e35c1748b553bfe9fdac8635c02058023277d1b3"}, + {file = "numpy-2.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:122fd2fcfafdefc889c64ad99c228d5a1f9692c3a83f56c292618a59aa60ae83"}, + {file = "numpy-2.2.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3f2f5cddeaa4424a0a118924b988746db6ffa8565e5829b1841a8a3bd73eb59a"}, + {file = "numpy-2.2.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7fe4bb0695fe986a9e4deec3b6857003b4cfe5c5e4aac0b95f6a658c14635e31"}, + {file = "numpy-2.2.0-cp310-cp310-win32.whl", hash = "sha256:b30042fe92dbd79f1ba7f6898fada10bdaad1847c44f2dff9a16147e00a93661"}, + {file = "numpy-2.2.0-cp310-cp310-win_amd64.whl", hash = "sha256:54dc1d6d66f8d37843ed281773c7174f03bf7ad826523f73435deb88ba60d2d4"}, + {file = "numpy-2.2.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9874bc2ff574c40ab7a5cbb7464bf9b045d617e36754a7bc93f933d52bd9ffc6"}, + {file = "numpy-2.2.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:0da8495970f6b101ddd0c38ace92edea30e7e12b9a926b57f5fabb1ecc25bb90"}, + {file = "numpy-2.2.0-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:0557eebc699c1c34cccdd8c3778c9294e8196df27d713706895edc6f57d29608"}, + {file = "numpy-2.2.0-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:3579eaeb5e07f3ded59298ce22b65f877a86ba8e9fe701f5576c99bb17c283da"}, + {file = "numpy-2.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40deb10198bbaa531509aad0cd2f9fadb26c8b94070831e2208e7df543562b74"}, + {file = "numpy-2.2.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2aed8fcf8abc3020d6a9ccb31dbc9e7d7819c56a348cc88fd44be269b37427e"}, + {file = "numpy-2.2.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a222d764352c773aa5ebde02dd84dba3279c81c6db2e482d62a3fa54e5ece69b"}, + {file = "numpy-2.2.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4e58666988605e251d42c2818c7d3d8991555381be26399303053b58a5bbf30d"}, + {file = "numpy-2.2.0-cp311-cp311-win32.whl", hash = "sha256:4723a50e1523e1de4fccd1b9a6dcea750c2102461e9a02b2ac55ffeae09a4410"}, + {file = "numpy-2.2.0-cp311-cp311-win_amd64.whl", hash = "sha256:16757cf28621e43e252c560d25b15f18a2f11da94fea344bf26c599b9cf54b73"}, + {file = "numpy-2.2.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:cff210198bb4cae3f3c100444c5eaa573a823f05c253e7188e1362a5555235b3"}, + {file = "numpy-2.2.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:58b92a5828bd4d9aa0952492b7de803135038de47343b2aa3cc23f3b71a3dc4e"}, + {file = "numpy-2.2.0-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:ebe5e59545401fbb1b24da76f006ab19734ae71e703cdb4a8b347e84a0cece67"}, + {file = "numpy-2.2.0-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:e2b8cd48a9942ed3f85b95ca4105c45758438c7ed28fff1e4ce3e57c3b589d8e"}, + {file = "numpy-2.2.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:57fcc997ffc0bef234b8875a54d4058afa92b0b0c4223fc1f62f24b3b5e86038"}, + {file = "numpy-2.2.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:85ad7d11b309bd132d74397fcf2920933c9d1dc865487128f5c03d580f2c3d03"}, + {file = "numpy-2.2.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cb24cca1968b21355cc6f3da1a20cd1cebd8a023e3c5b09b432444617949085a"}, + {file = "numpy-2.2.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0798b138c291d792f8ea40fe3768610f3c7dd2574389e37c3f26573757c8f7ef"}, + {file = "numpy-2.2.0-cp312-cp312-win32.whl", hash = "sha256:afe8fb968743d40435c3827632fd36c5fbde633b0423da7692e426529b1759b1"}, + {file = "numpy-2.2.0-cp312-cp312-win_amd64.whl", hash = "sha256:3a4199f519e57d517ebd48cb76b36c82da0360781c6a0353e64c0cac30ecaad3"}, + {file = "numpy-2.2.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f8c8b141ef9699ae777c6278b52c706b653bf15d135d302754f6b2e90eb30367"}, + {file = "numpy-2.2.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0f0986e917aca18f7a567b812ef7ca9391288e2acb7a4308aa9d265bd724bdae"}, + {file = "numpy-2.2.0-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:1c92113619f7b272838b8d6702a7f8ebe5edea0df48166c47929611d0b4dea69"}, + {file = "numpy-2.2.0-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:5a145e956b374e72ad1dff82779177d4a3c62bc8248f41b80cb5122e68f22d13"}, + {file = "numpy-2.2.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18142b497d70a34b01642b9feabb70156311b326fdddd875a9981f34a369b671"}, + {file = "numpy-2.2.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a7d41d1612c1a82b64697e894b75db6758d4f21c3ec069d841e60ebe54b5b571"}, + {file = "numpy-2.2.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a98f6f20465e7618c83252c02041517bd2f7ea29be5378f09667a8f654a5918d"}, + {file = "numpy-2.2.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e09d40edfdb4e260cb1567d8ae770ccf3b8b7e9f0d9b5c2a9992696b30ce2742"}, + {file = "numpy-2.2.0-cp313-cp313-win32.whl", hash = "sha256:3905a5fffcc23e597ee4d9fb3fcd209bd658c352657548db7316e810ca80458e"}, + {file = "numpy-2.2.0-cp313-cp313-win_amd64.whl", hash = "sha256:a184288538e6ad699cbe6b24859206e38ce5fba28f3bcfa51c90d0502c1582b2"}, + {file = "numpy-2.2.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:7832f9e8eb00be32f15fdfb9a981d6955ea9adc8574c521d48710171b6c55e95"}, + {file = "numpy-2.2.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f0dd071b95bbca244f4cb7f70b77d2ff3aaaba7fa16dc41f58d14854a6204e6c"}, + {file = "numpy-2.2.0-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:b0b227dcff8cdc3efbce66d4e50891f04d0a387cce282fe1e66199146a6a8fca"}, + {file = "numpy-2.2.0-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:6ab153263a7c5ccaf6dfe7e53447b74f77789f28ecb278c3b5d49db7ece10d6d"}, + {file = "numpy-2.2.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e500aba968a48e9019e42c0c199b7ec0696a97fa69037bea163b55398e390529"}, + {file = "numpy-2.2.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:440cfb3db4c5029775803794f8638fbdbf71ec702caf32735f53b008e1eaece3"}, + {file = "numpy-2.2.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a55dc7a7f0b6198b07ec0cd445fbb98b05234e8b00c5ac4874a63372ba98d4ab"}, + {file = "numpy-2.2.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4bddbaa30d78c86329b26bd6aaaea06b1e47444da99eddac7bf1e2fab717bd72"}, + {file = "numpy-2.2.0-cp313-cp313t-win32.whl", hash = "sha256:30bf971c12e4365153afb31fc73f441d4da157153f3400b82db32d04de1e4066"}, + {file = "numpy-2.2.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d35717333b39d1b6bb8433fa758a55f1081543de527171543a2b710551d40881"}, + {file = "numpy-2.2.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:e12c6c1ce84628c52d6367863773f7c8c8241be554e8b79686e91a43f1733773"}, + {file = "numpy-2.2.0-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:b6207dc8fb3c8cb5668e885cef9ec7f70189bec4e276f0ff70d5aa078d32c88e"}, + {file = "numpy-2.2.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a50aeff71d0f97b6450d33940c7181b08be1441c6c193e678211bff11aa725e7"}, + {file = "numpy-2.2.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:df12a1f99b99f569a7c2ae59aa2d31724e8d835fc7f33e14f4792e3071d11221"}, + {file = "numpy-2.2.0.tar.gz", hash = "sha256:140dd80ff8981a583a60980be1a655068f8adebf7a45a06a6858c873fcdcd4a0"}, ] [[package]] diff --git a/requirements-docs.txt b/requirements-docs.txt index 9c9aec1..f2a17a3 100644 --- a/requirements-docs.txt +++ b/requirements-docs.txt @@ -210,9 +210,9 @@ mkdocs-get-deps==0.2.0 ; python_version >= "3.8" and python_version < "4.0" \ mkdocs-material-extensions==1.3.1 ; python_version >= "3.8" and python_version < "4.0" \ --hash=sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443 \ --hash=sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31 -mkdocs-material==9.5.47 ; python_version >= "3.8" and python_version < "4.0" \ - --hash=sha256:53fb9c9624e7865da6ec807d116cd7be24b3cb36ab31b1d1d1a9af58c56009a2 \ - --hash=sha256:fc3b7a8e00ad896660bd3a5cc12ca0cb28bdc2bcbe2a946b5714c23ac91b0ede +mkdocs-material==9.5.48 ; python_version >= "3.8" and python_version < "4.0" \ + --hash=sha256:a582531e8b34f4c7ed38c29d5c44763053832cf2a32f7409567e0c74749a47db \ + --hash=sha256:b695c998f4b939ce748adbc0d3bff73fa886a670ece948cf27818fa115dc16f8 mkdocs==1.6.1 ; python_version >= "3.8" and python_version < "4.0" \ --hash=sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2 \ --hash=sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e diff --git a/tests/test_slots.py b/tests/test_slots.py index 204ec06..b3d3bc6 100644 --- a/tests/test_slots.py +++ b/tests/test_slots.py @@ -1,7 +1,8 @@ import pytest from conftest import LEAK_LIMIT, limit_leaks +import re -from newtype import NewType +from newtype import NewType, newtype_exclude class Base: @@ -71,3 +72,88 @@ class A(NewType(B)): assert a.hi == 1 assert a.bye == 2 + + +class EmailStr(NewType(str)): + __slots__ = ( + '_local_part', + '_domain_part', + ) + + def __init__(self, value: str): + super().__init__(value) + if "@" not in value: + raise TypeError("`EmailStr` requires a '@' symbol within") + self._local_part, self._domain_part = value.split("@") + + @newtype_exclude + def __str__(self): + return f"" + + @property + def local_part(self): + """Return the local part of the email address.""" + return self._local_part + + @property + def domain_part(self): + """Return the domain part of the email address.""" + return self._domain_part + + @property + def full_email(self): + """Return the full email address.""" + return str(self) + + @classmethod + def from_string(cls, email: str): + """Create an EmailStr instance from a string.""" + return cls(email) + + @staticmethod + def is_valid_email(email: str) -> bool: + """Check if the provided string is a valid email format.""" + email_regex = r"^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$" + return re.match(email_regex, email) is not None + + +class OEmailStr(str): + __slots__ = ( + '_local_part', + '_domain_part', + ) + + def __new__(cls, value: str): + return super().__new__(cls, value) + + +def test_oemail_str__slots__(): + # subclass of `str` with defined `__slots__` + # is expected to NOT have attributes NOT defined within `__slots__` + oemail = OEmailStr("test@example.com") + + with pytest.raises(AttributeError): + oemail.hi = "bye" + assert oemail.hi == "bye" + + +def test_regular_classes_without_base_class__slots__(): + + class Base: + __slots__ = () + + class Derived(Base): + __slots__ = ( + 'attr1', + 'attr2', + ) + + def __init__(self): + super().__init__() + self.attr1 = None + self.attr2 = None + + with pytest.raises(AttributeError): + d = Derived() + d.attr3 = "hey" + assert d.attr3 == "hey"