Release/v0.4.1 #1

Merged
rus07tam merged 12 commits from release/v0.4.1 into main 2025-10-27 15:05:33 +03:00
Showing only changes of commit 52d1505839 - Show all commits

View file

@ -5,7 +5,12 @@ from snakia.types import empty
class Property[T]: class Property[T]:
""" """
A property that can be set, get, and deleted.""" A property that can be set, get, and deleted.
"""
__slots__ = "__fget", "__fset", "__fdel", "__name"
__name: str
def __init__( def __init__(
self, self,
@ -17,6 +22,9 @@ class Property[T]:
self.__fset = fset self.__fset = fset
self.__fdel = fdel self.__fdel = fdel
def __set_name__(self, owner: type, name: str) -> None:
self.__name = name
def __get__(self, instance: Any, owner: type | None = None, /) -> T: def __get__(self, instance: Any, owner: type | None = None, /) -> T:
return self.__fget(instance) return self.__fget(instance)
@ -40,3 +48,7 @@ class Property[T]:
"""Descriptor deleter.""" """Descriptor deleter."""
self.__fdel = fdel self.__fdel = fdel
return self return self
@property
def name(self) -> str:
return self.__name