semvec/pypi-packages huggingface dataset:
dataclass-parser 0.1.3
Библиотека для удобного преобразования данных между Python dataclasses и другими форматами
License: MIT
Requires Python: >=3.10
Keywords: dataclass, parser, serialization, deserialization, json

# Dataclass Parser

Библиотека для удобного преобразования данных между Python dataclasses и другими форматами (JSON, ORM объекты и т.д.).

## Основные возможности
- Автоматически преобразует данные в/из dataclass объектов
- Поддерживает вложенные структуры данных
- Обрабатывает сложные типы (UUID, Enum, Decimal, Path, datetime)
- Поддерживает Union и Optional типы
- Работает с коллекциями (list, set, tuple, dict)
- Предотвращает рекурсивные циклы в структурах данных
- Поддержка как синхронного, так и асинхронного API

## Установка
```bash
pip install dataclass-parser
```

## Использование

### Синхронный API

```python
from dataclass_parser import EntityBase
from dataclasses import dataclass
from datetime import datetime

@dataclass
class User(EntityBase):
    id: int
    name: str
    created_at: datetime
    
# Загрузка данных
data = {"id": 1, "name": "John", "created_at": "2023-01-01T12:00:00"}
user = User.parse(data)

# Выгрузка данных
user_dict = user.serialize(exclude=['id'])  # {"name": "John", "created_at": "2023-01-01T12:00:00"}
```

### Асинхронный API

```python
from dataclass_parser.async_parser import AEntityBase
from dataclasses import dataclass
from datetime import datetime
import asyncio

@dataclass
class User(AEntityBase):
    id: int
    name: str
    created_at: datetime

async def main():
    # Загрузка данных
    data = {"id": 1, "name": "John", "created_at": "2023-01-01T12:00:00"}
    user = await User.parse(data)
    
    # Выгрузка данных
    user_dict = await user.serialize()
    
    print(user)
    print(user_dict)

if __name__ == "__main__":
    asyncio.run(main())
```

## Поддерживаемые типы данных

### Простые типы
- int, float, str, bool
- datetime, date, time
- UUID
- Decimal
- Path
- Enum

### Сложные типы
- Вложенные dataclass объекты
- Optional/Union типы (включая None)
- Коллекции:
  - list[T]
  - set[T]
  - tuple[T, ...] 
  - dict[K, V]
- Вложенные коллекции (например, list[list[int]])

## Продвинутые возможности

### Кастомная обработка типов

Библиотека позволяет расширять обработку типов данных с помощью кастомных обработчиков.

### Обработка рекурсивных структур

Библиотека автоматически обрабатывает циклические ссылки и рекурсивные структуры, предотвращая бесконечные циклы.

### Типизация

Полная поддержка аннотаций типов, что обеспечивает корректную работу статических анализаторов типов, таких как mypy.

## Примеры

Для дополнительных примеров смотрите директорию `dataclass_parser/examples/`. 

## Лицензия

MIT License

Copyright (c) 2023 EnterNick

Подробности смотрите в файле [LICENSE](LICENSE).
snet-contracts 1.0.1
SingularityNET Ecosystem Contracts
License: MIT
Requires Python: >=3.10

# SingularityNET Ecosystem Contracts Package

The package was created to easily work with SingularityNET ecosystem EVM contracts

## Python
### Usage 
  
Easily get an instance of the contract you need from any SingularityNET product with just one call to one of the functions

Install:
```bash
pip install snet-contracts
```

Usage:
```python
from snet.contracts import get_contract_deployment_block, get_contract_object

import web3

provider = web3.HTTPProvider("https://mainnet.infura.io/v3/")
w3 = web3.Web3(provider)

token_contract_instance = get_contract_object(w3, "SingularityNetToken")
deployed_block = get_contract_deployment_block(w3, "SingularityNetToken")
print("Block:", deployed_block)
```
Result:
```bash
Block: 12326815
```

Optional: get an instance at the contract address
```python
token_contract_instance = get_contract_object(w3, "SingularityNetToken" "0x5B7533812759B45C2B44C19e320ba2cD2681b542")
```

### Tests

```bash
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 test/unit_test.py
```

## Golang

### Install
```bash
go get -u github.com/singnet/snet-ecosystem-contracts
```

### Usage

```go
package main

import (
	"fmt"
	"github.com/singnet/snet-ecosystem-contracts"
)

func main() {

	// get list of all contracts
	fmt.Println(contracts.List)
	
	// get ABI of contract Registry
	fmt.Println(string(contracts.GetABI(contracts.Registry)))

	// get bytecode of contract SingularityNetToken
	fmt.Println(string(contracts.GetBytecode(contracts.SingularityNetToken)))

	// get addresses, events, and more for smart contracts for different networks
	fmt.Println(string(contracts.GetNetworks(contracts.Registry)))

	// clean methods returns content without spaces and line breaks
	fmt.Println(string(contracts.GetABIClean(contracts.SingularityNetToken)))
	fmt.Println(string(contracts.GetBytecodeClean(contracts.Registry)))
	fmt.Println(string(contracts.GetNetworksClean(contracts.SingularityNetToken)))
}

```