semvec/pypi-packages huggingface dataset:
firedom 1.3.0
Simple Firestore ORM
License: MIT

# Firedom
[![Tests](https://github.com/afuenzalida/firedom/actions/workflows/python-test.yml/badge.svg?branch=main)](https://github.com/afuenzalida/firedom/actions/workflows/python-test.yml)


Simple Firestore ORM for Python.

## Installation

```shell
pip install firedom
```

## Getting started

#### Initialize Firedom

```python
from firedom import Firedom


firedom = Firedom(service_account_json_path='your-credentials.json')
```

#### Define your models

Create a model for your Firestore collection by inheriting from `Model`:

```python
from dataclasses import dataclass
from firedom import Firedom


firedom = Firedom(service_account_json_path='your-credentials.json')


@dataclass
class Company(firedom.Model):
    name: str


@dataclass
class User(firedom.Model):
    username: str
    email: int
    country: str
    city: str
    is_active: bool = True
    number_of_pets: int = 0
    company: Company

    class Config:
        # Required: Field to be used as document ID
        document_id_field = 'username'
```

## Manipulate documents

#### Create

```python
company = Company.collection.create(name='Example Company')

user = User.collection.create(
    username='afuenzalida',
    email='afuenzalida@example.com',
    country='Chile',
    city='Santiago',
    company=company,
)
```

#### Retrieve

```python
users = User.collection.all()

user = User.collection.get('afuenzalida')
```

#### Filter

```python
# All arguments are considered as AND:
users = User.collection.where(
    User.country == 'Chile',
    User.is_active == True,
    User.city.is_in(['Santiago', 'Valparaíso']),
    User.number_of_pets > 1,
)

# You can filter with OR using the | operator:
users = User.collection.where(
    (User.country == 'Chile') |
    (User.country == 'China'),
)

# And you can also filter explicitly with AND using the & operator:
users = User.collection.where(
    (User.city == 'Santiago') &
    (User.number_of_pets == 0),
)

# Full example: Filter by active users from Chile or China:
users = User.collection.where(
    (User.is_active == True) &
    (
        (User.country == 'Chile') |
        (User.country == 'China')
    ),
)
```

#### Sort

```python
users = User.collection.where(
    User.country == 'Chile',
).order_by(
    'email',
    desc=True,
)
```

#### Update

```python
user = User.collection.get('afuenzalida')
user.country = 'Australia'
user.save()
```

#### Delete

```python
user = User.collection.get('afuenzalida')
user.delete()

User.collection.all().delete()
```
storage-hub 0.0.10
soon
License: MIT
Keywords: pypi,cicd,python

\n# Бібліотека Storage Hub

<p align="center">
  <img src="asserts/logo_lib1.png" alt="Logo">
</p>

**Storage Hub** - це бібліотека для операцій із сховищем в додатках. Надає зручні абстракції та утиліти для роботи з різними бекендами зберігання, що дозволяє легко інтегрувати функціонал зберігання в проекти.

## Основні Особливості

- **Різноманітні Фреймворки:** Storage Hub підтримує різні фреймворки як web так cli.

- **Різноманітні Бекенди:** Storage Hub підтримує різні бекенди зберігання, включаючи локальні файлові системи, хмарні сервіси (наприклад, Amazon S3, Google Cloud Storage) та інші.

- **Проста Інтеграція:** Інтегруйте операції зберігання в додаток з мінімальними змінами коду для плавного розвитку.

- **Підтримка Асинхронності:** Використовуйте можливості асинхронного програмування з вбудованою підтримкою асинхронних операцій зберігання для ефективної та реактивної поведінки додатка.

- **Можливість Кастомізації:** Налаштовуйте бібліотеку згідно з конкретними вимогами вашого проекту, розширюючи та налаштовуючи її функціонал.

## Встановлення

Встановіть бібліотеку за допомогою pip:

```bash
pip install storage-hub
```

## Ідея (потім видалити)

В результаті я бачу гнучку бібліотеку для взаємодії із файлами.
Вона повина надавати клієнтам використовувати різні сховища в одному проєкті 
(за основу пропоную розглянути реалізацію джанго із мульти бд),
надавити права на разні операції або на цілу групу операцій(читання або запис).

## Принцип робити (потребує узгодження із усіма)
Вся розробка має основні вітки як main, test, develop(поки більшого не бачу сенсу).
Для кожної задачі створюється окрема вітка і після її завершення 
відбуватиметься pull request із подальшим рев'ю від інших чуваків. після чого відбуватиметься мердж в test.
Існує поточні задачі, якщо є пропозиції внести її і узгодити із усіма.

## Поточні задачі
- [ ] Спроектувати архітектуру
- [ ] Налаштувати CI/CD
- [ ] Налаштувати Доки

## Пропозиції
- [ ] Пункт 1
- [x] Пункт 2