Skip to content

Latest commit

 

History

History
376 lines (271 loc) · 17.5 KB

README.md

File metadata and controls

376 lines (271 loc) · 17.5 KB

Help you

Цей пакет вміщує в себе функціонал:

  1. для зберігання контактів в контактній книзі
  2. для зберігання нотаток в книзі для нотаток
  3. команду для сортування потрібної папки

Для встановлення цього пакету можна використати команду

  • "pip install -e ." (знаходячий у папці з розпакованим проектом)
  • збереження файлів проходить за шляхом

"/home/{getlogin()}/Documents/help_you" для Linux
"C:/Users/{getlogin()}/AppData/Local/help_you" для Windows
"Macintosh/Users/{getlogin()}/Documents/help_you" для MacOS

Після встановлення - для запуску роботи скрипту треба використати в командному рядку команду "help_you"

Контакти у книзі контактів мають у собі наступні поля:

  • Name: ім'я контакту
  • Phones: список телефонів
  • Emails: список імейлів
  • Addresses: список адрес
  • Birthday: одну дату Дня народження

Нотатки у книзі нотаток мають у собі наступні поля:

  • Name: ім'я нотатки
  • Tags: список тегів прив'язаних до нотатки у форматі #tag
  • Text: текст нотатки

Що робить сортувальник програм:

  • розподіляє файли в папці, яку ви обирете, по окремих вкладених папках, відповідно до їхґ розширення. Створює ці папки, наприклад такі як images, video, archives, other etc

Опис команд для взаємодії з пакетом

NoteBook

Це клас, який успадковує свою поведінку від UserDict.
У ньому зберігаються нотатки у форматі
{name: Note(name)}


"create_note NAME TEXT"
  • Створює нотатку з іменем NAME. І заповнює її текстом TEXT. У TEXT можна відмічати слова символом # і тоді ці слова будуть додані в теги цієї нотатки. Вони будуть скопійовані і залишаться також у тексті.
  • Приклад: create_note New I want to #buy new #car.

NAME = New
TEXT = I want to #buy new #car
tags = #buy #car

У разі успішного виконання повертає:
Нотатоку у такому форматі:

Note Name: New
Note Tags: #buy #car
Note Text: I want to #buy new #car


"show_note_book"
  • Показує всі нотатки які присутні у Книзі Нотаток
  • Приклад: show_note_book

У разі успішного виконання повертає:

Список Нотаток у такому форматі

Note Name: New
Note Tags: #buy #car
Note Text: I want to #buy new #car


"show_note NAME"
  • Показує одну нотатку має яка має ім'я NAME
  • Приклад: show_note New

У разі успішного виконання поверне:

Нотаток у такому форматі

Note Name: New
Note Tags: #buy #car
Note Text: I want to #buy new #car


"show_note_page INT"
  • Виводить одну або кілька сторінок книги нотаток. Кожна сторінка відображує певну кількість нотаток і ця кількість дорівнює INT. Якщо нотаток у книзі менше або дорівнює INT - відобразить всі нотатки однією сторінкою
  • Приклад: show_note_page 5

У разі успішного виконання повертає:

Списки які містять П'ЯТЬ нотаток в собі кожен.


"clear_note_book"
  • Очистить книгу нотаток, видалить всі нотатки.
  • Приклад: clear_note_book
Має питати чи впевнені Ви, що хочете видалити всі нотатки? Y/N

У разі успішного виконання повертає:

"Note book now clean"


"delete_note NAME"
  • Видаляє нотатку яка має ім'я NAME
  • Приклад: delete_note New

У разі успішного виконання повертає:

"Note {name} is deleted"


"add_to_note NAME TEXT"
  • Додає інформацію TEXT до нотатки яка має ім'я NAME. У TEXT можна відмічати слова символом # і тоді ці слова будуть додані в теги цієї нотатки. Вони будуть скопійовані і залишаться також у тексті.
  • Приклад: add_to_note New or maybe i want to #buy a #house

Tags = old_tags + (#buy, #house)
Text = old_text + or maybe i want to #buy a #house
RESULT:
Note Name = New
Note Tags = #buy #car #house
Note Text = I want to #buy new #car or maybe i want to #buy a #house


"edit_note NAME FIELD TEXT"
  • Додає інформацію TEXT у поле FIELD до нотатки яка має ім'я NAME. Стару інформацію з обраного поля буде повністю видалено і заповнено новою.

Варіанти FIELD і приклади використання:

  • FIELD tags - теги (#storm #dream). Обов'язково використовувати # . У разі відсутності цього символу - слово буде проігноровано. Текст нотатки залишається незмінним
  • FIELD text - текст (My #dream - swim in the #storm). Все речення буде додано повністю. Слова помічені символом # буде ДОДАНО до старих тегів.
  • Приклад: edit_note New text My #dream - swim in the #storm

"edit_note_name"
  • Змінює ім'я нотатки OLD_NAME на нове ім'я NEW_NAME
  • Приклад: edit_note_name New My_dream

"search_in_notes VALUE"
  • Проводить пошук у всіх полях всіх нотаток згадки рядку VALUE
  • Приклад: search_in_note road - буде шукати всі нотатки в яких зустрічається це слово і повертати ВЕСЮ нотатку. Шукати буде у ВСІХ полях, а не лише текст. Але якщо потрібно провести пошук САМЕ у тегах - використовуйте символ #

У разі успішного виконання повертає:

Список співпадінь.


"sorted_notes_by_tags TAG_1 TAG_2 TAG_3 ..."
  • сортує книгу нотаток за кількістю співпадінь тегів нотаток з переданими тегами. Кількість тегів не обмежена. Задавати теги для сортування треба з використанням символу #
  • Приклад: sorted_notes_by_tags #house #car #dream

У разі успішного виконання повертає:

Список нотаток у яких є співпадіння хочаб з одним тегом. Має бути щось типу
"Співпадіння з тегами: 3
Note Name: New
Note tags: #house #car #dream
Note text: My #dream - buy #car and #house

Співпадіння з тегами: 2
Name: My_dream
Note tags: #car #house
Note text: I want to sell #car and #house


ContactBook

Класс ContactBook успадковує свою поведінку від UserDict
У ньому зберігаються контакти у форматі
{name: Record(name)}


"create_contact NAME"
  • Створює контакт з іменем NAME.
  • Приклад: create_contact Stas

Результат створення
Name: Stas
phones: [ ]
emails: [ ]
address: Address not set
birthday: Birthday not set
note: None

У разі успішного виконання команди повертає:

"Contact with name {name} successfully created."

У разі виникнення помилки, що контакт з цим ім'ям існує:

"Note with name '{name} already exist."


"show_contact_book"
  • Показує всі контакти які є в КонтактнійКнизі зі всією інформацією про кожен контакт.
  • Приклад: show_contact_book

У разі успішного виконання повертає всі контакти у форматі

Name: Stas
phones: [x, y, s]
emails: [x, y, s]
address: Soborna 50
birthday: 25.06.1992


"show_contact NAME"
  • Показує контакт, який має ім'я NAME. Всю інформацію що мається в цьому контакті.
  • Приклад: show_contact Stas

У разі успішного виконання повертає:

Name: Stas
phones: [x, y, s]
emails: [x, y, s]
address: Soborna 50
birthday: 25.06.1992

У разі якщо контакт з цим іменем не знайдено:

'Contact {name} is not founded'


"show_contact_page INT"
  • Виводить одну або кілька сторінок контактної книги. Кожна сторінка відображує певну кількість контактів і ця кількість дорівнює INT. Якщо контактів у книзі менше або дорівнює INT - відобразить всі контакти однією сторінкою
  • Приклад: show_contacts_page 5

У разі успішного виконання повертає:

Списки які містять П'ЯТЬ контактів в собі кожен.

Якщо INT при вводі не буде цілим числом виведе:

Повідомлення про невідповідність введеної інформації до потрібного формату


"clear_contact_book"
  • Очистить контактну книгу, видалить всі контакти.
  • Приклад: clear_contact_book
Має питати чи впевнені Ви, що хочете видалити всі контакти? Y/N

У разі успішного виконання повертає:

'Contacts book now clean'


"delete_contact NAME"
  • Видаляє контакт який має ім'я NAME
  • Приклад: delete_contact Stas

У разі успішного виконання повертає:

"Contact {name} is deleted"

У разі відсутності контакту з таким ім'ям повертає:

"Contact {name} is not in book"


"add_to_contact NAME FIELD VALUE"
  • Додає у контакт який має ім'я NAME інформацію VALUE у поле FIELD

Відповідність полей і приклади значень які вони приймають:

  • FIELD phones - номера телефонів (+380661112233). Саме з кодом країни загальною довжиною 12 цифр і тринадцятий символ це +
  • FIELD emails - імейли ([email protected]). Імейл може складатися з букв латинського алфавіту, цифр і символів ".-_" до знаку "собака", і лише з буков і символу крапки "." після "собаки". остання група букв має бути НЕ меншою за ТРИ символи поспіль.
  • FIELD address - адреси ("Kharkov, Ivanova str, 40/32"). Особливих вимог не має. Зберігається як звичайний текст.
  • FIELD birthday - день народження(2222.12.25). Приймає данні у форматі рррр.мм.дд

У разі успішного виконання повертає:

"Emails [email protected] successfully added to contact Stas"


"edit_contact NAME FIELD OLD_VALUE NEW_VALUE"
  • Заміню OLD_VALUE на NEW_VALUE для контакту NAME у полі FIELD
  • У випадку з полями birthday and addresses - треба вводити на одне значення менше, тому що у разі виклику команди change старе значення буде змінено на нове. У разі використання del взагалі не треба вводити ні NEW_VALUE ні OLD_VALUE бо старі данні буду просто замінено на "Not set
    Приклад change:
    edit_contact Stas change birthday 25.06.1992
    edit_contact Stas change addresses Kharkiv, Maidan
    Приклад del:
    edit_contact Stas del birthday x (де х - це просто значення вказуюче на видалення інформації. Підійде будь яка буква)
    edit_contact Stas del addresses x (де х - це просто значення вказуюче на видалення інформації. Підійде будь яка буква)
  • FIELD phones - номера телефонів (+380661112233). Саме з кодом країни загальною довжиною 12 цифр і тринадцятий символ це +
  • FIELD emails - імейли ([email protected]). Імейл може складатися з букв латинського алфавіту, цифр і символів ".-_" до знаку "собака", і лише з буков і символу крапки "." після "собаки". остання група букв має бути НЕ меншою за ТРИ символи поспіль.
  • FIELD address - адреси ("Kharkov, Ivanova str, 40/32"). Особливих вимог не має. Зберігається як звичайний текст.
  • FIELD birthday - день народження(2222.12.25). Приймає данні у форматі рррр.мм.дд
  • Приклад: edit_contact Stas phones +380501112233 +380667778899

У разі успішного виконання повертає:

"{old} successfully changed to {new}" "{old} successfully deleted from {field}"


"edit_contact_name OLD_NAME NEW_NAME"
  • Змінює ім'я контакту OLD_NAME на нове ім'я NEW_NAME
  • Приклад: edit_contact_name Stas Dima

У разі успішного виконання повертає:

"{name}'s name has been changed to {new_name}"


"search_in_contacts VALUE"
  • Проводить пошук у всіх полях всіх контактів згадки рядку VALUE
  • Приклад: search_in_contacts [email protected] - буде шукати всі контакти в яких зустрічається цей імейл і повертати ВЕСЬ контакт. Шукати буде у ВСІХ полях, а не лише у імейл

У разі успішного виконання повертатиме:

Список знайдених співпадінь


"show_birthdays INT"
  • Показує контакти у яких день народження протягом найближчих INT днів.
  • Приклад: show_birthdays 5

У разі успішного виконання поверне:

Список контактів з повною інформацією у яких ДН протягом найближчих 5 днів


"days_to_birthday NAME"
  • Показує скільки днів залишилося до ДН контакту який має ім'я NAME
  • Приклад: days_to_birthday Dima

У разі успішного виконання поверне:

"Days to birthday for {name} = days"


"days_to_birthday_for_all"
  • Поверне кількість днів до ДН для всіх контактів
  • Приклад: show_days_to_birthday_for_all

У разі успішного виконання поверне:

Список який міститиме в собі ось такий рядок про кожен контакт:

  • "Days to Stas's birthday: 228"

FileSorter

"file_sorter PATH"

виклик автоматичного сортувальника файлів. В змінну PATH вам треба вказати шлях до папки в середині якої буде відбуватися сортування. Шлях може бути як абсолютним (кращий варіант, менше вірогідність помилки) так і відносним до того місця в якому ви викликали помічника. Приклад: file_sorter C:/Users/Zver/Downloads

"archives" - "zip", "tar", "tgz", "gz", "7zip", "7z", "iso", "rar"
"audios" - "wav", "mp3", "ogg", "amr"
"images" - "jpeg", "png", "jpg", "svg"
"videos" - "avi", "mp4", "mov", "mkv"
"documents" - "doc", "docx", "txt", "pdf", "xls", "xlsx", "ppt", "pptx", "rtf", "xml", "ini"
"softwares" - "exe", "msi", "bat", "dll"
"other" - all other files