Skip to main content

A Python package for text processing and argument parsing

Project description

Task_3_Collection_Framework_Task_4_CLI


Завдання (Task_3_Collection_Framework):

Написати програму, яка приймає рядок і повертає кількість символів в рядку, які трапляються лише раз. Очікується, що рядок з однією такою ж послідовністю символів може бути переданий методу декілька раз. Оскільки операція підрахунку може зайняти багато часу, метод повинен кешувати результати, так що, коли методу буде наданий рядок, який трапився раніше, він просто витягне збережений результат.

Вимоги:

  • використання модуля collections для підрахунку символів
  • використання методу для кешування результатів
  • використання map() для підрахунку унікальних символів
  • тестування через pytest
  • використaти для покриття коду пакет coverage 5.1

Завдання (Task_4_CLI):

  • додати інтерфейс командного рядка до Task_3_Collection_Framework, використовуючи стандартний бібліотечний модуль
  • додати функціонал для обробки текстового файлу. Програма повинна мати два параметри --string або --file. Наприклад: python collect_framework.py --string “your string” python collect_framework.py --file path_to_text_file якщо передано два параметри, параметр '--file' повинен мати вищий пріоритет - значить рядок слід ігнорувати python collect_framework.py --string “your string” --file path_to_text_file

Тести повинні мати моки для читання файлу та роботи з переданими параметрами.

Завдання (Task_5_Packaging):

Конвертувати попередній проект із task 3-4 в пакет python. Додати README.md та описати як використовувати цей пакет. Для корректного встановлення додати відсутнє зіставлення шляху до файлу pyproject.toml

MY_COLLECTION

Опис

Python-пакет для обробки тексту, включаючи підрахунок унікальних символів, підтримує обробку даних черех командний рядок

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

встанови пакет за допомогою pip з PyPi(https://pypi.org): "bash" - pip install my-collection

Використання

1 - після встановлення пакету можна використовувати його як CLI-інструмент

  • для обробки текстового рядка: "bash" - my-collection --string "This is a test"
  • для обробки текстового файлу: "bash" - my-collection --file path/text.txt Аргумент --file має вищий пріоритет над --string, якщо передані обидва. Якщо не передати жодного аргументу, програма завершиться з помилкою. 2 - використання у Python-коді from my_collection import unique_char_count text = "example text" result = unique_char_count(text) print(f"Unique character count: {result")

Документація

для перегляду вбудованої документації: 1 - відкрий Python-інтерпретатор: "bash" - python 2 - імпортуй функцію та використовуй help(): from my_collection import unique_char_count help(unique_char_count)

Приклади

1 - підрахунок унікальних символів у рядку from my_collection import unique_char_count print(unique_char_count("abbbccdf")) # виведе 3 2 - використання CLI "bash" - my-collection --string "abbbccdf" # виведе Unique character count: 3

Оновлення пакету

Для оновлення пакету до останньої версії "bash" - pip install --upgrade my-collection

Тестування

Використовується Pytest для запуску тестів. Для виконання: 1 - клонувати репозиторій "bash" - cd task-5-packaging git clone git@git.foxminded.ua:liliia-shpytsia-mentoring/task-5-packaing.git 2 - встановити залежності для розробки: "bash" - pip install -r requirements.txt 3 - запустити тести: "bash" - pytest

Структура проекту

Опис зображення

Ліцензія

Цей проєкт ліцензовано за умовами MIT License. Детальніше - у файлі LICENSE

Пошук проблем

Якщо виникли проблеми, створи Issue на Gitlab (https://git.foxminded.ua/liliia-shpytsia-mentoring/task-5-packaging/-/issues) або напиши коментар

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

my_collection-0.1.0.tar.gz (86.7 kB view details)

Uploaded Source

Built Distribution

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

my_collection-0.1.0-py3-none-any.whl (6.7 kB view details)

Uploaded Python 3

File details

Details for the file my_collection-0.1.0.tar.gz.

File metadata

  • Download URL: my_collection-0.1.0.tar.gz
  • Upload date:
  • Size: 86.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for my_collection-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7b80fb3590431df7d41c0320cf3eee166b14387863e7e2f804f87b9c650fd8fa
MD5 2548d25f2bd7693990c29d60d89d6329
BLAKE2b-256 1386d784a9b43beb922e4d72490abd895c6c27c9183f6dd9f985f655b55a5c67

See more details on using hashes here.

File details

Details for the file my_collection-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: my_collection-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 6.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for my_collection-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 91e88e85729a9b0d79d7a57a2db3d699a48929faff3c737fd4e4c57054774585
MD5 f9b19f81c83af9ae524942a74ab8662d
BLAKE2b-256 350440c079ec2f7064533b13b2ec4b44e09af230278e501cb575783ea555721c

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