#### **Genel Bakış**
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.
#### **Temel Özellikler**
1. **JSON Tabanlı Depolama**: Hafif ve insan tarafından okunabilir hale getiren JSON tabanlı bir veritabanı yapısı kullanır.
2. **Şema Uygulaması**: Sütun tanımlarını kullanarak sütun doğrulamasını, tür denetimini ve benzersiz kısıtlamaları destekler.
3. **Gelişmiş Sorgulama**: Düzenli ifadeler (`RegExp` sınıfı), özel tahminler ve yapılandırılmış sorgular aracılığıyla filtreleme sağlar.
4. **CRUD İşlemleri**: Toplu işleme, filtreleme ve sorgu tabanlı güncellemelerle `CRUD` işlemleri sunar.
5. **Veri Doğrulama ve Bütünlük**:
- `unique` kısıtlamalarını destekler.
- `not_null` zorunluluğunu sağlar.
- İsteğe bağlı tür yükseltmesiyle otomatik tür doğrulaması sağlar.
6. **ResultSet Yönetimi**: Pandas DataFrames, NumPy dizileri, JSON, CSV ve Markdown dahil olmak üzere çeşitli biçimlere sonuç dönüşümüne izin verir.
7. **Bağlam Yönetimi**: Güvenli işlem yönetimi için `with` ve `async with` ifadelerini destekler.
8. **Model Tabanlı Tasarım**:
- Yapılandırılmış modelleri tanımlamak için `JSONField` kullanır.
- Birincil anahtarların otomatik olarak artırılmasını destekler.
- Bağımlı sütun değerlerine (`depends` özniteliği) izin verir.
9. **Hata İşleme ve Kurtarma**:
- Bozuk verileri algılar ve düzeltir. - Doğrulama ve şema uygulaması için `Issues` sınıfını sağlar.
10. **Dışa Aktarma ve İçe Aktarma**:
- Kayıtları JSON, CSV, Excel, SQLite ve diğer formatlara dönüştürün.
- Dahili veri dönüştürme yardımcı programlarıyla toplu içe aktarma/dışa aktarma.
#### **Temel Bileşenler**
- **`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.
#### **Kullanım Örnekleri**
- **Hafif Veritabanı Alternatifi**: Geleneksel veritabanlarının (SQL, NoSQL) aşırı olduğu küçük ölçekli uygulamalar için uygundur.
- **Gömülü Veri Depolama**: Harici bağımlılıklar olmadan yapılandırılmış, kalıcı depolama gerektiren Python uygulamalarında kullanılabilir.
- **Veri İşleme ve Analitiği**: Veri odaklı uygulamalar için yapılandırılmış sorgulama, filtreleme ve dönüştürme yetenekleri sağlar.
## Özellikler
- Şema tabanlı veri doğrulama
- JSON dosya depolaması için destek
- Tür denetimi ve veri doğrulama
- Otomatik artan alanlar
- Benzersiz kısıtlamalar
- Birincil anahtar yönetimi
- Varsayılan değer işleyicileri
- Özel sütun bağımlılıkları
- Veri inceleme ve denetimi
## Kurulum
```bash
pip install pysonfield
```
## Hızlı Başlangıç
JSONIC'in nasıl kullanılacağına dair temel bir örnek:
```python
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()
```
## Şema Tanımı
### JSONField Dekoratörünü Kullanma
`@JSONField` dekoratörü model düzeyindeki ayarları yapılandırır:
```python
@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ütun Türleri
Sütunlar çeşitli özniteliklerle tanımlanabilir:
```python
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
```
### Sütun Özellikleri
- `primary_key`: Alanı benzersiz ve null değil yapar
- `not_null`: Sütun null olamaz
- `unique`: Sütun benzersiz değerlere sahip olmalı
- `increment`: Otomatik artış alanı
- `depends`: Sütun değerlerini üretme işlevi
- `default`: Sütun için varsayılan değer
## Veritabanı İşlemleri
### Veritabanına Bağlanma
```python
# JSON Dosya Depolama
with JSONIC(db_path="database", model=MyModel) as db:
# İşlemler burada
```
### Temel İşlemler
```python
# İ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"})
```
### Veri Filtreleme
```python
# 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]
```
## Veri Doğrulaması
### İnceleme Veri
```python
# 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)
```
## Hata İşleme
Yaygın istisnalar:
- `KeyAlreadyExists`: Birincil anahtar yineleniyor
- `KeyNotFound`: Gerekli alanlar eksik
- `NotNullViolation`: Boş olmayan alanda boş değer
- `NotUniqueViolation`: Benzersiz alanda yinelenen değer
- `TypeError`: Geçersiz veri türü
- `DataCorrupted`: Veritabanı dosyası bozulması
## En İyi Uygulamalar
1. Model tanımlarında her zaman tür ipuçları kullanın
2. Veritabanı işlemleri için bağlam yöneticilerini (`with` ifadesi) kullanın
3. Onayla auto_commit devre dışı bırakıldığında açıkça değişir
4. review() kullanılarak düzenli veri doğrulaması
5. İstisnaları uygun şekilde işleme
## Yapılandırma Seçenekleri
```python
JSONIC(
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ıda Bulunma
Katkılarınız memnuniyetle karşılanır! Lütfen bir Çekme İsteği göndermekten çekinmeyin.
## Lisans
Bu proje MIT Lisansı altında lisanslanmıştır - ayrıntılar için LİSANS dosyasına bakın.
Raw data
{
"_id": null,
"home_page": "https://github.com/fswair/pysonfield",
"name": "pysonfield",
"maintainer": "@fswair",
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": "contact@tomris.dev",
"keywords": "json, pyson, jsonfield, database, orm, pysonfield",
"author": "@fswair",
"author_email": "contact@tomris.dev",
"download_url": "https://files.pythonhosted.org/packages/55/bf/27630d6dcb68457535260c310f3b371b9e7fea2119e92caecef996b473a2/pysonfield-4.0.3.tar.gz",
"platform": null,
"description": "#### **Genel Bak\u0131\u015f**\n\nBu veritaban\u0131 y\u00f6netim k\u00fct\u00fcphanesi, tam CRUD (Olu\u015fturma, Okuma, G\u00fcncelleme, Silme) deste\u011fiyle y\u00fcksek performansl\u0131, \u015fema tabanl\u0131 JSON destekli bir veritaban\u0131 \u00e7\u00f6z\u00fcm\u00fc sunar. Hafif ve verimli veri i\u015fleme i\u00e7in tasarlanm\u0131\u015f olup, g\u00fc\u00e7l\u00fc filtreleme, do\u011frulama ve d\u00f6n\u00fc\u015ft\u00fcrme i\u015flevleriyle yap\u0131land\u0131r\u0131lm\u0131\u015f veri depolama, alma ve d\u00fczenleme olana\u011f\u0131 sa\u011flar.\n\n#### **Temel \u00d6zellikler**\n\n1. **JSON Tabanl\u0131 Depolama**: Hafif ve insan taraf\u0131ndan okunabilir hale getiren JSON tabanl\u0131 bir veritaban\u0131 yap\u0131s\u0131 kullan\u0131r.\n2. **\u015eema Uygulamas\u0131**: S\u00fctun tan\u0131mlar\u0131n\u0131 kullanarak s\u00fctun do\u011frulamas\u0131n\u0131, t\u00fcr denetimini ve benzersiz k\u0131s\u0131tlamalar\u0131 destekler.\n3. **Geli\u015fmi\u015f Sorgulama**: D\u00fczenli ifadeler (`RegExp` s\u0131n\u0131f\u0131), \u00f6zel tahminler ve yap\u0131land\u0131r\u0131lm\u0131\u015f sorgular arac\u0131l\u0131\u011f\u0131yla filtreleme sa\u011flar.\n4. **CRUD \u0130\u015flemleri**: Toplu i\u015fleme, filtreleme ve sorgu tabanl\u0131 g\u00fcncellemelerle `CRUD` i\u015flemleri sunar.\n5. **Veri Do\u011frulama ve B\u00fct\u00fcnl\u00fck**:\n\n- `unique` k\u0131s\u0131tlamalar\u0131n\u0131 destekler.\n- `not_null` zorunlulu\u011funu sa\u011flar.\n- \u0130ste\u011fe ba\u011fl\u0131 t\u00fcr y\u00fckseltmesiyle otomatik t\u00fcr do\u011frulamas\u0131 sa\u011flar.\n\n6. **ResultSet Y\u00f6netimi**: Pandas DataFrames, NumPy dizileri, JSON, CSV ve Markdown dahil olmak \u00fczere \u00e7e\u015fitli bi\u00e7imlere sonu\u00e7 d\u00f6n\u00fc\u015f\u00fcm\u00fcne izin verir.\n7. **Ba\u011flam Y\u00f6netimi**: G\u00fcvenli i\u015flem y\u00f6netimi i\u00e7in `with` ve `async with` ifadelerini destekler.\n8. **Model Tabanl\u0131 Tasar\u0131m**:\n\n- Yap\u0131land\u0131r\u0131lm\u0131\u015f modelleri tan\u0131mlamak i\u00e7in `JSONField` kullan\u0131r.\n- Birincil anahtarlar\u0131n otomatik olarak art\u0131r\u0131lmas\u0131n\u0131 destekler.\n- Ba\u011f\u0131ml\u0131 s\u00fctun de\u011ferlerine (`depends` \u00f6zniteli\u011fi) izin verir.\n\n9. **Hata \u0130\u015fleme ve Kurtarma**:\n\n- Bozuk verileri alg\u0131lar ve d\u00fczeltir. - Do\u011frulama ve \u015fema uygulamas\u0131 i\u00e7in `Issues` s\u0131n\u0131f\u0131n\u0131 sa\u011flar.\n\n10. **D\u0131\u015fa Aktarma ve \u0130\u00e7e Aktarma**:\n\n- Kay\u0131tlar\u0131 JSON, CSV, Excel, SQLite ve di\u011fer formatlara d\u00f6n\u00fc\u015ft\u00fcr\u00fcn.\n- Dahili veri d\u00f6n\u00fc\u015ft\u00fcrme yard\u0131mc\u0131 programlar\u0131yla toplu i\u00e7e aktarma/d\u0131\u015fa aktarma.\n\n#### **Temel Bile\u015fenler**\n\n- **`CRUD`**: Ekleme, g\u00fcncelleme, silme ve sorgu tabanl\u0131 g\u00fcncellemeler gibi veritaban\u0131 i\u015flemlerini y\u00f6netir.\n- **`JSONField`**: Do\u011frulama, varsay\u0131lan de\u011ferler ve k\u0131s\u0131tlamalarla yap\u0131land\u0131r\u0131lm\u0131\u015f veritaban\u0131 modellerini tan\u0131mlar.\n- **`ResultSet`**: Filtrelenmi\u015f ve yap\u0131land\u0131r\u0131lm\u0131\u015f veri al\u0131m\u0131n\u0131 y\u00f6netir.\n- **`Where`**: Tahminler ve regex kal\u0131plar\u0131yla geli\u015fmi\u015f filtreleme uygular.\n- **`JSONIC`**: Dosya depolama, veri do\u011frulama ve hata i\u015flemeyi y\u00f6neten ana veritaban\u0131 aray\u00fcz\u00fc olarak i\u015flev g\u00f6r\u00fcr. - **`S\u00fctun`**: Birincil anahtarlar, k\u0131s\u0131tlamalar ve ba\u011f\u0131ml\u0131l\u0131klar i\u00e7in se\u00e7eneklerle veritaban\u0131 alanlar\u0131n\u0131n yap\u0131s\u0131n\u0131 tan\u0131mlar.\n- **`Y\u0131\u011f\u0131n`**: \u0130\u015flemsel i\u015flemler ve geri alma deste\u011fi sa\u011flar.\n\n#### **Kullan\u0131m \u00d6rnekleri**\n\n- **Hafif Veritaban\u0131 Alternatifi**: Geleneksel veritabanlar\u0131n\u0131n (SQL, NoSQL) a\u015f\u0131r\u0131 oldu\u011fu k\u00fc\u00e7\u00fck \u00f6l\u00e7ekli uygulamalar i\u00e7in uygundur.\n- **G\u00f6m\u00fcl\u00fc Veri Depolama**: Harici ba\u011f\u0131ml\u0131l\u0131klar olmadan yap\u0131land\u0131r\u0131lm\u0131\u015f, kal\u0131c\u0131 depolama gerektiren Python uygulamalar\u0131nda kullan\u0131labilir.\n- **Veri \u0130\u015fleme ve Analiti\u011fi**: Veri odakl\u0131 uygulamalar i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015f sorgulama, filtreleme ve d\u00f6n\u00fc\u015ft\u00fcrme yetenekleri sa\u011flar.\n\n## \u00d6zellikler\n\n- \u015eema tabanl\u0131 veri do\u011frulama\n- JSON dosya depolamas\u0131 i\u00e7in destek\n- T\u00fcr denetimi ve veri do\u011frulama\n- Otomatik artan alanlar\n- Benzersiz k\u0131s\u0131tlamalar\n- Birincil anahtar y\u00f6netimi\n- Varsay\u0131lan de\u011fer i\u015fleyicileri\n- \u00d6zel s\u00fctun ba\u011f\u0131ml\u0131l\u0131klar\u0131\n- Veri inceleme ve denetimi\n\n## Kurulum\n\n```bash\npip install pysonfield\n```\n\n## H\u0131zl\u0131 Ba\u015flang\u0131\u00e7\n\nJSONIC'in nas\u0131l kullan\u0131laca\u011f\u0131na dair temel bir \u00f6rnek:\n\n```python\nfrom pysonfield import JSONField, JSONIC, Column\nfrom pysonfield.utils import Random\n\n@JSONField(increment_by=1)\nclass UserModel:\nid: str = Column(depends=Random.hash, primary_key=True)\nname: str = Column(not_null=True)\nage: int = Column(increment=True)\nemail: str = Column(unique=True)\n\n# Veritaban\u0131 ba\u011flant\u0131s\u0131 olu\u015ftur\nJSONIC(db_path=\"database\", model=UserModel) as db:\ncursor = db.cursor()\n\n# Yeni kay\u0131t ekle\ncursor.add({\n\"name\": \"John Doe\",\n\"email\": \"john@example.com\"\n})\n\n# De\u011fi\u015fiklikleri kaydet\ncursor.commit()\n```\n\n## \u015eema Tan\u0131m\u0131\n\n### JSONField Dekorat\u00f6r\u00fcn\u00fc Kullanma\n\n`@JSONField` dekorat\u00f6r\u00fc model d\u00fczeyindeki ayarlar\u0131 yap\u0131land\u0131r\u0131r:\n\n```python\n@JSONField(\nincrement_by=1, # Otomatik artan alanlar i\u00e7in ad\u0131m art\u0131rma\nignore_types=False, # T\u00fcr denetimini etkinle\u015ftir/devre d\u0131\u015f\u0131 b\u0131rak\nauto_fit_columns=True # S\u00fctunlar\u0131 otomatik olarak ayarla\n)\nclass MyModel:\n# Model alanlar\u0131 burada\n```\n\n### S\u00fctun T\u00fcrleri\n\nS\u00fctunlar \u00e7e\u015fitli \u00f6zniteliklerle tan\u0131mlanabilir:\n\n```python\nclass UserModel:\nid: str = Column(primary_key=True) # Birincil anahtar alan\u0131\nname: str = Column(not_null=True) # Zorunlu s\u00fctun\nage: int = Column(increment=True) # Otomatik artan\nemail: str = Column(unique=True) # Benzersiz s\u00fctun\ncreated: str = Column(depends=Random.date) # Olu\u015fturulan s\u00fctun\nhash: str = Column(depends=Random.hash, unique=True) # Benzersiz hash\n```\n\n### S\u00fctun \u00d6zellikleri\n\n- `primary_key`: Alan\u0131 benzersiz ve null de\u011fil yapar\n- `not_null`: S\u00fctun null olamaz\n- `unique`: S\u00fctun benzersiz de\u011ferlere sahip olmal\u0131\n- `increment`: Otomatik art\u0131\u015f alan\u0131\n- `depends`: S\u00fctun de\u011ferlerini \u00fcretme i\u015flevi\n- `default`: S\u00fctun i\u00e7in varsay\u0131lan de\u011fer\n\n## Veritaban\u0131 \u0130\u015flemleri\n\n### Veritaban\u0131na Ba\u011flanma\n\n```python\n# JSON Dosya Depolama\nwith JSONIC(db_path=\"database\", model=MyModel) as db:\n# \u0130\u015flemler burada\n```\n\n### Temel \u0130\u015flemler\n\n```python\n# \u0130mleci al\ncursor = db.cursor()\n\n# Kay\u0131t ekle\ncursor.add({\n\"name\": \"John\",\n\"email\": \"john@example.com\"\n})\n\n# De\u011fi\u015fiklikleri kaydet\ncursor.commit()\n\n# T\u00fcm kay\u0131tlar\u0131 al\nall_records = db.fetch()\n\n# Kay\u0131tlar\u0131 sorgula\nresults = db.query({\"name\": \"John\"})\n```\n\n### Veri Filtreleme\n\n```python\n# Lambda'ya g\u00f6re filtrele\nadults = db.stack[lambda x: x[\"age\"] >= 18]\nadults = db.stack[lambda x: x.age >= 18]\nadults = db.stack[lambda age, year: age > 18 and year < 2006]\n\n# D\u00fczenli ifadeye g\u00f6re filtrele\nname_filter = RegExp(r\"^John\", \"name\")\njohns = db.stack[name_filter]\n```\n\n## Veri Do\u011frulamas\u0131\n\n### \u0130nceleme Veri\n\n```python\n# Do\u011frulama raporu olu\u015ftur\nreport = db.review(save_report=False)\n\n# Eri\u015fim sorunlar\u0131\nprint(report.type_issues)\nprint(report.unique_constraint_issues)\nprint(report.required_field_issues)\n```\n\n## Hata \u0130\u015fleme\n\nYayg\u0131n istisnalar:\n\n- `KeyAlreadyExists`: Birincil anahtar yineleniyor\n- `KeyNotFound`: Gerekli alanlar eksik\n- `NotNullViolation`: Bo\u015f olmayan alanda bo\u015f de\u011fer\n- `NotUniqueViolation`: Benzersiz alanda yinelenen de\u011fer\n- `TypeError`: Ge\u00e7ersiz veri t\u00fcr\u00fc\n- `DataCorrupted`: Veritaban\u0131 dosyas\u0131 bozulmas\u0131\n\n## En \u0130yi Uygulamalar\n\n1. Model tan\u0131mlar\u0131nda her zaman t\u00fcr ipu\u00e7lar\u0131 kullan\u0131n\n2. Veritaban\u0131 i\u015flemleri i\u00e7in ba\u011flam y\u00f6neticilerini (`with` ifadesi) kullan\u0131n\n3. Onayla auto_commit devre d\u0131\u015f\u0131 b\u0131rak\u0131ld\u0131\u011f\u0131nda a\u00e7\u0131k\u00e7a de\u011fi\u015fir\n4. review() kullan\u0131larak d\u00fczenli veri do\u011frulamas\u0131\n5. \u0130stisnalar\u0131 uygun \u015fekilde i\u015fleme\n\n## Yap\u0131land\u0131rma Se\u00e7enekleri\n\n```python\nJSONIC(\ndb_path=\"database\", # Depolama motoru\nmodel=MyModel, # Veri modeli\naudit_fix=True, # Bozuk verileri otomatik olarak d\u00fczelt\ncommit_on_exit=False, # Ba\u011flam \u00e7\u0131k\u0131\u015f\u0131nda otomatik olarak onayla\nraise_on_validation=True, # Do\u011frulama s\u0131ras\u0131nda istisnalar\u0131 y\u00fckselt\nallow_promotion=False # T\u00fcr y\u00fckseltmesine izin ver\n)\n```\n\n## Katk\u0131da Bulunma\n\nKatk\u0131lar\u0131n\u0131z memnuniyetle kar\u015f\u0131lan\u0131r! L\u00fctfen bir \u00c7ekme \u0130ste\u011fi g\u00f6ndermekten \u00e7ekinmeyin.\n\n## Lisans\n\nBu proje MIT Lisans\u0131 alt\u0131nda lisanslanm\u0131\u015ft\u0131r - ayr\u0131nt\u0131lar i\u00e7in L\u0130SANS dosyas\u0131na bak\u0131n.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Modular, ORM based, high efficiently \"JSONField\" Database Engine!",
"version": "4.0.3",
"project_urls": {
"Homepage": "https://github.com/fswair/pysonfield"
},
"split_keywords": [
"json",
" pyson",
" jsonfield",
" database",
" orm",
" pysonfield"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "55bf27630d6dcb68457535260c310f3b371b9e7fea2119e92caecef996b473a2",
"md5": "6f6440ea13b461297f59b7f65e8ffebb",
"sha256": "97397e5c8b32e9d0e2b6abab3445133962b85f9737a5df804ee089f93638dd4a"
},
"downloads": -1,
"filename": "pysonfield-4.0.3.tar.gz",
"has_sig": false,
"md5_digest": "6f6440ea13b461297f59b7f65e8ffebb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 23451,
"upload_time": "2025-02-10T15:40:50",
"upload_time_iso_8601": "2025-02-10T15:40:50.165974Z",
"url": "https://files.pythonhosted.org/packages/55/bf/27630d6dcb68457535260c310f3b371b9e7fea2119e92caecef996b473a2/pysonfield-4.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-02-10 15:40:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "fswair",
"github_project": "pysonfield",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"requirements": [
{
"name": "numpy",
"specs": []
},
{
"name": "pandas",
"specs": []
},
{
"name": "pysondb",
"specs": []
},
{
"name": "tqdm",
"specs": []
}
],
"lcname": "pysonfield"
}