py-readonlyx – Python için Read-Only Property Decorator
Merhaba arkadaşlar,
Python’da sınıflar içinde sadece belli property’leri salt okunur (read-only) yapmak için ufak ve sade bir kütüphane geliştirdim: py-readonlyx
Nedir?
py-readonlyx, sadece @readonly decorator’ı ile property’lerinizi dışarıdan değiştirilmez veya silinemez hale getirmenizi sağlar.
Yani klasik @property + @setter karmaşasına gerek kalmadan doğrudan sadece okunabilir alanlar oluşturabilirsiniz.
Özellikler
@readonlyile kolay kullanımReadOnlyErroradında özelleştirilmiş hata sınıfı- Sadece istediğiniz property’leri kilitleyebilirsiniz (sınıfın tamamı değil)
- Sıfır bağımlılık, sadece standart Python
- Thread-safe
- Ortalama ~50 satır – oldukça minimal
- Python 3.12+ ile test edilmiştir
Kurulum
pip install py-readonlyx
Kullanım Örneği
from py_readonlyx import readonly, ReadOnlyError
class User:
def __init__(self, name="Fırat", age=25):
self._name = name
self._age = age
self._status = "active"
@readonly
def name(self):
return self._name
@readonly
def age(self):
return self._age
@property
def status(self):
return self._status
@status.setter
def status(self, value):
self._status = value
user = User("Ahmet", 30)
print(user.name) # "Ahmet"
user.status = "inactive" # ✅ Çalışır
user.name = "Mehmet" # ❌ ReadOnlyError
Bağlantılar
Nerede İşinize Yarar?
- Immutable model sınıfları
- Konfigürasyon sınıfları
- Hesaplanan ama değiştirilememesi gereken değerler (örn.
area,version,created_atvs.) - Dışarıdan override edilmesini istemediğiniz alanlar
Proje tamamen açık kaynak, katkı yapmak isteyen herkese kapım açık. Görüşlerinizi, eleştirilerinizi ve PR’larınızı beklerim. ![]()