Skip to main content

Art studio tz CLI

Coverage pages-build-deployment

Это консольное приложение для управления цитатами. Поддерживает локальную базу данных(quotes.csv) и работу с MySQL.

  • решение ТЗ пункт(3, 4, 5): art_studio_tz - консольное приложенение работа с DB на основе CSV файла и MySQL c автоматической загрузкой данных по средсвам свободных API

  • решение ТЗ пункт(2) index.html: Мудрые цитаты

  • Репозиторий: https://github.com/nafanius/art_studio_tz

  • Лицензия: MIT

Возможности

  • Получение цитат из внешнего API с паузой по одной или блоками по 50 шт(zenquotes.io).
  • Добавление, удаление, обновление цитат.
  • Список цитат с фильтрацией по автору, по дате добаления в БД.
  • Сохранение и управления цитатами в локальную БД(quotes.csv) или MySQL.
  • Получение свежих цитат из БД MySQL c указанием количества (по умолчянию 5).
  • Работа через современный CLI-фреймворк Typer и форматирование таблиц с помощью Rich.

Установка

С PyPI (рекомендуется)

pip install art_studio_tz

Из GitHub

pip install git+https://github.com/nafanius/art_studio_tz.git

Из исходного кода

# Клонируем репозиторий
git clone https://github.com/nafanius/art_studio_tz.git
cd art_studio_tz

# Устанавливаем через pip
pip install .

# Или с помощью poetry (для разработки)
poetry install

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

После установки доступна команда art_studio_tz:

art_studio_tz --help

Основные команды CLI для локальной БД(quotes.csv)

  Usage: art_studio_tz [OPTIONS] COMMAND [ARGS]...

  quotes is a small command line task tracking application
  • start [-u URL] [-p Пауза] — Получать цитаты с API и сохранять в локальную БД(quotes.csv) с паузой между запросами (по умолчанию 5 с)
  • list [-a Автор] — Показать список цитат (опционально с фильтрацией по автору)
  • version — Показать версию приложения
  • add "ТЕКСТ" -a "Автор" — Добавить цитату в локальную БД
  • delete <ID> — Удалить цитату по ID, либо все
  • update <ID> -t "Новый текст" -o "Новый автор" — Обновить цитату по ID
  • config — Показать путь к локальной базе данных
  • count — Показать количество цитат в локальной базе

Команды для работы с MySQL

  • get -u user -p password [-H host] [-P port] [-d db] [--url URL] — Получить 50 цитат из API и записать в MySQL(требуется сервер mySQL)

  • list-latest-5 -u user -p pass ... [-n N] — Показать последние N цитат из MySQL (по умолчанию 5) --отробатывает через ORM аналогичено сырому запросу:

      SELECT id, text
      FROM quotes
      ORDER BY timestep DESC, id DESC
      LIMIT 5;
    
  • delete-all-sql -u user -p pass ... — Удалить все цитаты в MySQL

  • list-sql -u user -p pass ... [-a Автор] — Показать список цитат из MySQL

    каждая команда имеет отдельный --help пример:

  art_studio_tz get --help

  $ art_studio_tz get -u USER -p PASSWORD

    Usage: art_studio_tz get [OPTIONS]


  Get 50 quotes from url and add to mySQL


  * --user -u TEXT Database user [required]
  * --password -p TEXT Database password [required]
  --host -H TEXT Database host, default localhost
  --port -P INTEGER Database port, default 3306
  --database -d TEXT Database name, default quotes_db
  --url TEXT URL for get quotes, default https://zenquotes.io/api/random
  --help Show this message and exit.

Примеры использования

Получение цитаты каждые 30 секунд по API, запись в quotes.csv

  $ art_studio_tz start -p 30

  For stop taking quotes press 'Ctrl + C'
  Added Quote: The attempt to escape from pain, is what creates more pain. - Author: Gabor Mate
  For stop taking quotes press 'Ctrl + C'
  Added Quote: Our greatest glory is not in never falling but in rising every time we fall. - Author: Confucius
  For stop taking quotes press 'Ctrl + C'
  Added Quote: If the plan doesn't work, change the plan, but never the goal. - Author: Unknown
  For stop taking quotes press 'Ctrl + C'
  ^C
  Остановка запроса цитат пользователем.

Получение всех записей из quotes.csv

  $ art_studio_tz list

   ID   TimeStep                  Quote                                                                          Author
 ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
  8    2025-09-28 08:31:24 UTC   The attempt to escape from pain, is what creates more pain.                    Gabor Mate
  9    2025-09-28 08:31:55 UTC   Our greatest glory is not in never falling but in rising every time we fall.   Confucius
  10   2025-09-28 08:32:26 UTC   If the plan doesn't work, change the plan, but never the goal.                 Unknown

Переменные окружения

  # по умолчянию DB на основе CSV(quotes.csv) создаётся автомотически в директории откуда вызывается программа
  # при необходимости создайте переменную окружения где нужно сохранять quotes.csv
  export QUOTES_DB_DIR=/путь/к/папке

Разработка и тестирование

poetry install --with test
pytest

Требования

  • Python >= 3.10
  • Зависимости перечислены в pyproject.toml (SQLAlchemy, Typer, Rich и др.), requirement.txt

Струуктура

.
├── art_studio_tz
│ ├── __init__.py
│ ├── __main__.py
│ ├── cli.py          # UI через командную строку
│ ├── api.py          # API управляющее приложением сязь между CLI и DB
│ ├── db.py           # БД на базе csv
│ └── db_sql.py       # БД на базе MySQL
├── index.html        # Страница цитатник AJAX запросы
├── LICENSE
├── pyproject.toml
├── quotes.csv
├── README.md
├── requirement.txt
├── tests
│ ├── test_api.py
│ ├── test_cli.py
│ ├── test_db.py
│ └── test_db_sql.py
└── ТЗ.pdf

Лицензия

MIT © 2025 Ilin Maksim

Metadata

Release files for art_studio_tz 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for art_studio_tz 0.1.1
File Size Uploaded
art_studio_tz-0.1.1.tar.gz 13.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for art_studio_tz 0.1.1
File Interpreter ABI Platform
art_studio_tz-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 26.0 kB

Release files / art_studio_tz-0.1.1.tar.gz

Download URL art_studio_tz-0.1.1.tar.gz
Size 13.0 kB
Tags Source
SHA-256 checksum
How to use checksums
f520683a16fd296bc8f22c0383ad801843abfb05710ef04f90941734be7c78aa
BLAKE2b-256 checksum
How to use checksums
184c2ad043ebececa176810680e21fe45929f18d93cf97d73a1481f6aee0c1dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.3 Linux/6.8.0-84-generic

Release files / art_studio_tz-0.1.1-py3-none-any.whl

Download URL art_studio_tz-0.1.1-py3-none-any.whl
Size 13.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
38560cb8981d8c6b9e6283040ef62f1c42324a6aaab80d55680d38b46f754c4b
BLAKE2b-256 checksum
How to use checksums
cdb1e7f77df9a0ef81ab4f19f1509db642aad4ea26e9b79cc7490e9b6f362638
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.2.1 CPython/3.12.3 Linux/6.8.0-84-generic

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page