Skip to main content

Art studio tz CLI

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

art_studio_tz-0.1.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

art_studio_tz-0.1.1-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

Details for the file art_studio_tz-0.1.1.tar.gz.

File metadata

  • Download URL: art_studio_tz-0.1.1.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.8.0-84-generic

File hashes

Hashes for art_studio_tz-0.1.1.tar.gz
Algorithm Hash digest
SHA256 f520683a16fd296bc8f22c0383ad801843abfb05710ef04f90941734be7c78aa
MD5 fff5ec61e54792b0ad7394dc424740a4
BLAKE2b-256 184c2ad043ebececa176810680e21fe45929f18d93cf97d73a1481f6aee0c1dd

See more details on using hashes here.

File details

Details for the file art_studio_tz-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: art_studio_tz-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.2.1 CPython/3.12.3 Linux/6.8.0-84-generic

File hashes

Hashes for art_studio_tz-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 38560cb8981d8c6b9e6283040ef62f1c42324a6aaab80d55680d38b46f754c4b
MD5 e8d1b2ba89a95264c850c0aa47af9c42
BLAKE2b-256 cdb1e7f77df9a0ef81ab4f19f1509db642aad4ea26e9b79cc7490e9b6f362638

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page