Цей пакет вміщує в себе функціонал:
- для зберігання контактів в контактній книзі
- для зберігання нотаток в книзі для нотаток
- команду для сортування потрібної папки
- "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
Це клас, який успадковує свою поведінку від UserDict.
У ньому зберігаються нотатки у форматі
{name: Note(name)}
- Створює нотатку з іменем 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
У разі успішного виконання повертає:
Список Нотаток у такому форматі
Note Name: New
Note Tags: #buy #car
Note Text: I want to #buy new #car
- Показує одну нотатку має яка має ім'я NAME
- Приклад: show_note New
У разі успішного виконання поверне:
Нотаток у такому форматі
Note Name: New
Note Tags: #buy #car
Note Text: I want to #buy new #car
- Виводить одну або кілька сторінок книги нотаток. Кожна сторінка відображує певну кількість нотаток і ця кількість дорівнює INT. Якщо нотаток у книзі менше або дорівнює INT - відобразить всі нотатки однією сторінкою
- Приклад: show_note_page 5
У разі успішного виконання повертає:
Списки які містять П'ЯТЬ нотаток в собі кожен.
- Очистить книгу нотаток, видалить всі нотатки.
- Приклад: clear_note_book
У разі успішного виконання повертає:
"Note book now clean"
- Видаляє нотатку яка має ім'я NAME
- Приклад: delete_note New
У разі успішного виконання повертає:
"Note {name} is deleted"
- Додає інформацію 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
- Додає інформацію 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
- Змінює ім'я нотатки OLD_NAME на нове ім'я NEW_NAME
- Приклад: edit_note_name New My_dream
- Проводить пошук у всіх полях всіх нотаток згадки рядку VALUE
- Приклад: search_in_note road - буде шукати всі нотатки в яких зустрічається це слово і повертати ВЕСЮ нотатку. Шукати буде у ВСІХ полях, а не лише текст. Але якщо потрібно провести пошук САМЕ у тегах - використовуйте символ #
У разі успішного виконання повертає:
Список співпадінь.
- сортує книгу нотаток за кількістю співпадінь тегів нотаток з переданими тегами. Кількість тегів не обмежена. Задавати теги для сортування треба з використанням символу #
- Приклад: 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 успадковує свою поведінку від UserDict
У ньому зберігаються контакти у форматі
{name: Record(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
У разі успішного виконання повертає всі контакти у форматі
Name: Stas
phones: [x, y, s]
emails: [x, y, s]
address: Soborna 50
birthday: 25.06.1992
- Показує контакт, який має ім'я 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'
- Виводить одну або кілька сторінок контактної книги. Кожна сторінка відображує певну кількість контактів і ця кількість дорівнює INT. Якщо контактів у книзі менше або дорівнює INT - відобразить всі контакти однією сторінкою
- Приклад: show_contacts_page 5
У разі успішного виконання повертає:
Списки які містять П'ЯТЬ контактів в собі кожен.
Якщо INT при вводі не буде цілим числом виведе:
Повідомлення про невідповідність введеної інформації до потрібного формату
- Очистить контактну книгу, видалить всі контакти.
- Приклад: clear_contact_book
У разі успішного виконання повертає:
'Contacts book now clean'
- Видаляє контакт який має ім'я NAME
- Приклад: delete_contact Stas
У разі успішного виконання повертає:
"Contact {name} is deleted"
У разі відсутності контакту з таким ім'ям повертає:
"Contact {name} is not in book"
- Додає у контакт який має ім'я NAME інформацію VALUE у поле FIELD
Відповідність полей і приклади значень які вони приймають:
- FIELD phones - номера телефонів (+380661112233). Саме з кодом країни загальною довжиною 12 цифр і тринадцятий символ це +
- FIELD emails - імейли ([email protected]). Імейл може складатися з букв латинського алфавіту, цифр і символів ".-_" до знаку "собака", і лише з буков і символу крапки "." після "собаки". остання група букв має бути НЕ меншою за ТРИ символи поспіль.
- FIELD address - адреси ("Kharkov, Ivanova str, 40/32"). Особливих вимог не має. Зберігається як звичайний текст.
- FIELD birthday - день народження(2222.12.25). Приймає данні у форматі рррр.мм.дд
- Приклад: add_to_contact Stas emails [email protected]
У разі успішного виконання повертає:
"Emails [email protected] successfully added to contact Stas"
- Заміню 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}"
- Змінює ім'я контакту OLD_NAME на нове ім'я NEW_NAME
- Приклад: edit_contact_name Stas Dima
У разі успішного виконання повертає:
"{name}'s name has been changed to {new_name}"
- Проводить пошук у всіх полях всіх контактів згадки рядку VALUE
- Приклад: search_in_contacts [email protected] - буде шукати всі контакти в яких зустрічається цей імейл і повертати ВЕСЬ контакт. Шукати буде у ВСІХ полях, а не лише у імейл
У разі успішного виконання повертатиме:
Список знайдених співпадінь
- Показує контакти у яких день народження протягом найближчих INT днів.
- Приклад: show_birthdays 5
У разі успішного виконання поверне:
Список контактів з повною інформацією у яких ДН протягом найближчих 5 днів
- Показує скільки днів залишилося до ДН контакту який має ім'я NAME
- Приклад: days_to_birthday Dima
У разі успішного виконання поверне:
"Days to birthday for {name} = days"
- Поверне кількість днів до ДН для всіх контактів
- Приклад: show_days_to_birthday_for_all
У разі успішного виконання поверне:
Список який міститиме в собі ось такий рядок про кожен контакт:
- "Days to Stas's birthday: 228"
виклик автоматичного сортувальника файлів. В змінну 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