semvec/pypi-packages huggingface dataset:
darkseid 7.2.2
A library to interact with comic archives
Requires Python: >=3.10
Keywords: cb7, cbr, cbt, cbz, comic, comicinfo, metadata, metroninfo, pdf

# Darkseid

[![PyPI - Version](https://img.shields.io/pypi/v/darkseid.svg)](https://pypi.org/project/darkseid/)
[![PyPI - Python](https://img.shields.io/pypi/pyversions/darkseid.svg)](https://pypi.org/project/darkseid/)
[![Ruff](https://img.shields.io/badge/Linter-Ruff-informational)](https://github.com/charliermarsh/ruff)
[![Pre-Commit](https://img.shields.io/badge/Pre--Commit-Enabled-informational?logo=pre-commit)](https://github.com/pre-commit/pre-commit)

A [Python](https://www.python.org/) library to interact with comic archives.

## Installation

```bash
pip install darkseid
```

There are optional dependencies which can be installed by specifying one or more
of them in braces e.g. darkseid[7zip]

The optional dependencies are:

- **7zip**: Provides support for reading/writing to CB7 files.
- **pillow**: Provides support for getting page information that is used with
  ComicInfo.xml metadata.
- **pdf**: Provides support for reading/writing metadata in PDF comics and
  exporting them to CBZ format.

  The pymupdf dependency includes pre-built wheels for most platforms. On some
  platforms (e.g., Linux ARM, Windows), installation may require libstdc++ and
  C/C++ build tools to compile libmupdf. See the
  [pymupdf documentation](https://pymupdf.readthedocs.io/) for details.

## Example

```python
from pathlib import Path
from darkseid.comic import Comic, MetadataFormat

comic = Comic(Path("my_comic.cbz"))

# Check if it's a valid comic
if comic.is_valid_comic():
    print(f"Comic '{comic.name}' has {comic.get_number_of_pages()} pages")

# Read metadata
if comic.has_metadata(MetadataFormat.COMIC_INFO):
    metadata = comic.read_metadata(MetadataFormat.COMIC_INFO)
    print(f"Series: {metadata.series.name}")

# Get a page
page_data = comic.get_page(0)  # First page
if page_data:
    with open("cover.jpg", "wb") as f:
        f.write(page_data)
```

## Documentation

[Read the project documentation](https://darkseid.readthedocs.io/en/stable/?badge=latest)

## Bugs/Requests

Please use the
[GitHub issue tracker](https://github.com/Metron-Project/darkseid/issues) to
submit bugs or request features.
webviz-ert 0.7.0
Webviz plugins for ERT

[![PyPI version](https://badge.fury.io/py/webviz-ert.svg)](https://badge.fury.io/py/webviz-ert)
[![Build Status](https://github.com/equinor/webviz-ert/workflows/Python/badge.svg)](https://github.com/equinor/webviz-ert/actions?query=workflow%3APython)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
[![PyPI license](https://img.shields.io/pypi/l/webviz-ert.svg)](https://pypi.org/project/webviz-ert/)

# Web based visualization for ERT

## What is Webviz-ert
Webviz-ert is a visualization tool for ERT based on [dash](https://github.com/plotly/dash) 
and [webviz-config](https://github.com/equinor/webviz-config).

## Download project
The code is hosted on GitHub:
https://github.com/equinor/webviz-ert

```sh
# From the downloaded project's root folder - to install
pip install .
```

## Running tests
Make sure that you have a browser and driver available for running the tests,
e.g. chrome / chromium and the chrome driver, which should be installed /
downloaded as binaries and made available in the path.

```sh
# From the downloaded project's root folder - to run tests
pip install -r test_requirements.txt
cd tests
pytest
```

## Run Webviz-ert
Webviz-ert connects automatically to a storage server running in [ERT](https://github.com/equinor/ert).
Here are a few steps to get an example version of webviz-ert running.

```sh
# Run simulations in ert - <ert-root-folder>/test-data/ert/poly_example/
ert ensemble_smoother --target-ensemble smoother_%d poly.ert

# After simulation has finished, start webviz-ert from the same location with
ert vis

# Alternatively, you might have to supply the config file if you're using the
# classic ert storage solution:
ert vis poly.ert
```

## Example

#### Start up 

![startup](https://user-images.githubusercontent.com/4508053/186850915-4b53c4fb-273d-4c15-961c-299966c3232c.gif)

#### Plot viewer 

![plot_viewer](https://user-images.githubusercontent.com/4508053/186850936-38a13f16-f795-4691-8455-fc12f8372d8e.gif)

#### Observation Analyzer

![observation_analyzer](https://user-images.githubusercontent.com/4508053/186850964-68b137eb-17c4-4bf9-9436-81c8c86e5956.gif)

#### Parameter comparison 

![parameter_comparison](https://user-images.githubusercontent.com/4508053/186851000-e5b750e1-d7ae-4da4-a612-b6c3740f5698.gif)

#### Response correlation 

![response_correlation](https://user-images.githubusercontent.com/4508053/186851026-df2085fd-5c35-42a6-a87e-c1890a963254.gif)
aiogram-lazy-kb 0.1.0
Простой генератор клавиатур для aiogram 3.x
Requires Python: >=3.9

# aiogram-lazy-kb 🎹

Простая обертка для быстрого создания клавиатур в `aiogram 3.x`.
Забудьте о `KeyboardBuilder`, `adjust()` и импортах кнопок для простых задач.

## Установка

```bash
pip install aiogram-lazy-kb
Использование
1. Reply Клавиатура (Кнопки меню)
Python

from aiogram_lazy_kb import LazyKeyboard

# Простая сетка 2 кнопки в ряд
kb = LazyKeyboard.reply(
    buttons=["Меню", "Помощь", "О нас", "Контакты"],
    sizes=2,
    placeholder="Выберите пункт..."
)

# Сложная схема: 2 кнопки в первом ряду, 1 во втором
kb_complex = LazyKeyboard.reply(
    buttons=["Кнопка 1", "Кнопка 2", "Кнопка 3 (во всю ширь)"],
    sizes=[2, 1]
)
2. Inline Клавиатура (Кнопки под сообщением)
Поддерживает автоматическое определение ссылок (URL).

Python

# Передаем словарь: Текст -> callback_data
kb = LazyKeyboard.inline(
    data={
        "Лайк": "like_action",
        "Дизлайк": "dislike_action",
        "Наш сайт": "https://google.com" # Автоматически станет url-кнопкой
    },
    sizes=2
)
Требования
Python 3.9+
aiogram 3.x
text


---

### Как протестировать перед заливкой

Создай рядом с папкой `src` файл `test_bot.py` (не заливай его на PyPI, это для тебя):

```python
import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.filters import Command
# Импортируем наш локальный модуль (симуляция)
import sys
import os
sys.path.insert(0, os.path.abspath("src"))

from aiogram_lazy_kb import LazyKeyboard

# Вставь сюда токен тестового бота
TOKEN = "YOUR_BOT_TOKEN"

dp = Dispatcher()
bot = Bot(token=TOKEN)

@dp.message(Command("start"))
async def cmd_start(message: types.Message):
    # Тест Reply
    kb = LazyKeyboard.reply(["Каталог", "Корзина", "Инфо"], sizes=[2, 1], placeholder="Жми!")
    await message.answer("Привет! Вот reply клавиатура:", reply_markup=kb)

    # Тест Inline
    kb_inline = LazyKeyboard.inline({
        "Купить": "buy_item",
        "Ссылка": "https://ya.ru"
    }, sizes=2)
    await message.answer("А вот inline:", reply_markup=kb_inline)

async def main():
    await dp.start_polling(bot)

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