
Research
/Security News
Malicious npm Packages Target WhatsApp Developers with Remote Kill Switch
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
Bu veritabanı yönetim kütüphanesi, tam CRUD (Oluşturma, Okuma, Güncelleme, Silme) desteğiyle yüksek performanslı, şema tabanlı JSON destekli bir veritabanı çözümü sunar. Hafif ve verimli veri işleme için tasarlanmış olup, güçlü filtreleme, doğrulama ve dönüştürme işlevleriyle yapılandırılmış veri depolama, alma ve düzenleme olanağı sağlar.
RegExp
sınıfı), özel tahminler ve yapılandırılmış sorgular aracılığıyla filtreleme sağlar.CRUD
işlemleri sunar.unique
kısıtlamalarını destekler.not_null
zorunluluğunu sağlar.with
ve async with
ifadelerini destekler.JSONField
kullanır.depends
özniteliği) izin verir.Issues
sınıfını sağlar.CRUD
: Ekleme, güncelleme, silme ve sorgu tabanlı güncellemeler gibi veritabanı işlemlerini yönetir.JSONField
: Doğrulama, varsayılan değerler ve kısıtlamalarla yapılandırılmış veritabanı modellerini tanımlar.ResultSet
: Filtrelenmiş ve yapılandırılmış veri alımını yönetir.Where
: Tahminler ve regex kalıplarıyla gelişmiş filtreleme uygular.JSONIC
: Dosya depolama, veri doğrulama ve hata işlemeyi yöneten ana veritabanı arayüzü olarak işlev görür. - Sütun
: Birincil anahtarlar, kısıtlamalar ve bağımlılıklar için seçeneklerle veritabanı alanlarının yapısını tanımlar.Yığın
: İşlemsel işlemler ve geri alma desteği sağlar.pip install pysonfield
JSONIC'in nasıl kullanılacağına dair temel bir örnek:
from pysonfield import JSONField, JSONIC, Column
from pysonfield.utils import Random
@JSONField(increment_by=1)
class UserModel:
id: str = Column(depends=Random.hash, primary_key=True)
name: str = Column(not_null=True)
age: int = Column(increment=True)
email: str = Column(unique=True)
# Veritabanı bağlantısı oluştur
JSONIC(db_path="database", model=UserModel) as db:
cursor = db.cursor()
# Yeni kayıt ekle
cursor.add({
"name": "John Doe",
"email": "john@example.com"
})
# Değişiklikleri kaydet
cursor.commit()
@JSONField
dekoratörü model düzeyindeki ayarları yapılandırır:
@JSONField(
increment_by=1, # Otomatik artan alanlar için adım artırma
ignore_types=False, # Tür denetimini etkinleştir/devre dışı bırak
auto_fit_columns=True # Sütunları otomatik olarak ayarla
)
class MyModel:
# Model alanları burada
Sütunlar çeşitli özniteliklerle tanımlanabilir:
class UserModel:
id: str = Column(primary_key=True) # Birincil anahtar alanı
name: str = Column(not_null=True) # Zorunlu sütun
age: int = Column(increment=True) # Otomatik artan
email: str = Column(unique=True) # Benzersiz sütun
created: str = Column(depends=Random.date) # Oluşturulan sütun
hash: str = Column(depends=Random.hash, unique=True) # Benzersiz hash
primary_key
: Alanı benzersiz ve null değil yaparnot_null
: Sütun null olamazunique
: Sütun benzersiz değerlere sahip olmalıincrement
: Otomatik artış alanıdepends
: Sütun değerlerini üretme işlevidefault
: Sütun için varsayılan değer# JSON Dosya Depolama
with JSONIC(db_path="database", model=MyModel) as db:
# İşlemler burada
# İmleci al
cursor = db.cursor()
# Kayıt ekle
cursor.add({
"name": "John",
"email": "john@example.com"
})
# Değişiklikleri kaydet
cursor.commit()
# Tüm kayıtları al
all_records = db.fetch()
# Kayıtları sorgula
results = db.query({"name": "John"})
# Lambda'ya göre filtrele
adults = db.stack[lambda x: x["age"] >= 18]
adults = db.stack[lambda x: x.age >= 18]
adults = db.stack[lambda age, year: age > 18 and year < 2006]
# Düzenli ifadeye göre filtrele
name_filter = RegExp(r"^John", "name")
johns = db.stack[name_filter]
# Doğrulama raporu oluştur
report = db.review(save_report=False)
# Erişim sorunları
print(report.type_issues)
print(report.unique_constraint_issues)
print(report.required_field_issues)
Yaygın istisnalar:
KeyAlreadyExists
: Birincil anahtar yineleniyorKeyNotFound
: Gerekli alanlar eksikNotNullViolation
: Boş olmayan alanda boş değerNotUniqueViolation
: Benzersiz alanda yinelenen değerTypeError
: Geçersiz veri türüDataCorrupted
: Veritabanı dosyası bozulmasıwith
ifadesi) kullanınJSONIC(
db_path="database", # Depolama motoru
model=MyModel, # Veri modeli
audit_fix=True, # Bozuk verileri otomatik olarak düzelt
commit_on_exit=False, # Bağlam çıkışında otomatik olarak onayla
raise_on_validation=True, # Doğrulama sırasında istisnaları yükselt
allow_promotion=False # Tür yükseltmesine izin ver
)
Katkılarınız memnuniyetle karşılanır! Lütfen bir Çekme İsteği göndermekten çekinmeyin.
Bu proje MIT Lisansı altında lisanslanmıştır - ayrıntılar için LİSANS dosyasına bakın.
FAQs
Modular, ORM based, high efficiently "JSONField" Database Engine!
We found that pysonfield demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
/Security News
Two npm packages masquerading as WhatsApp developer libraries include a kill switch that deletes all files if the phone number isn’t whitelisted.
Research
/Security News
Socket uncovered 11 malicious Go packages using obfuscated loaders to fetch and execute second-stage payloads via C2 domains.
Security News
TC39 advances 11 JavaScript proposals, with two moving to Stage 4, bringing better math, binary APIs, and more features one step closer to the ECMAScript spec.