
Приложение напоминания о день рождения
Программа проверяет, есть ли у человека день рождения в течение недели и при желании отправляет напоминания остальной части группы. Он включает в себя необходимые функции для проверки ввода и отправки электронных писем. Этот репозиторий содержит 2 модуля , где BdayReminder.py включает эти функциональные возможности, в то время как tests.py проверяет пакет. Пожалуйста, обратитесь к требованиям для импорта библиотек, пакетов и дополнительных модулей, прежде чем рассматривать использование приложения или функций, тестов, задания Cron и других областей.
Python 3.9.12 необходим для правильного выполнения модулей пакета, импортированных библиотек и определенных функций. Импорт нескольких библиотек, таких как Dotnet, Pytest, чтобы назвать несколько, также необходимы. Некоторые необходимые версии находятся здесь, в то время как те, которые не упоминаются, поставляются с использованной версией Python. Также осмотрите переменные среды и аутентификацию, прежде чем продолжить. Для правильного использования программы вам может потребоваться запустить Python3 , а не предложенный Python, как показано при использовании. 1
1 Python или Python3 зависит от того, как вы установили Python на машине.
Чтобы иметь возможность отправлять электронные письма, вам нужно будет настроить переменные среды. Чтобы сделать это локально, пожалуйста, создайте файл .env и добавьте в него две переменные ENV с допустимыми значениями, например: 1
USR=<youremail>
PSW=<yourpassword> or <token>
1 Если вы отправите из Gmail, то для настройки правильного пароля переменной среды вам нужно будет создать токен. Дополнительная информация об этом в разделе аутентификации.
Чтобы иметь возможность отправить электронное письмо после установки электронной почты Gmail на переменной среды, вам нужно будет создать токен. Подробности о том, как это сделать, можно найти здесь.
После выполнения требований, пакет приложений устанавливается в вашем каталоге, а терминал запускается, у вас есть четыре варианта 1,2,3 :
>>> python bdayreminder.py <data_file_path>
Choose 1 to validate if input data file is correct or 2 to check for upcoming birthdays and send respective emails
>>> 1
ERROR: Invalid email for Laura Dreyfuss at row 6
ERROR: Empty name field is for email [email protected] at row 7
ERROR: Invalid date for Anna Higgins at row 11. Date given is 02-30
ERROR: Date is in the future for Tom Brady at row 12. Date given is 2075-10-22
ERROR: Invalid email for Ching Yeung Michael Tam at row 19
'''
'''
>>> python bdayreminder.py <data_file_path>
Choose 1 to validate if input data file is correct or 2 to check for upcoming birthdays and send respective emails
>>> 2
Kai Yuen Leung will have birthday in a week.
Patrick Kienzle will have birthday in a week.
Emails sent successfully.
>>> python bdayreminder.py <data_file_path> 3
Choose 1 to validate if input data file is correct or 2 to check for upcoming birthdays and send respective emails
>>> 3
Please choose either 1 or 2
>>> 1
ERROR: Invalid email for Laura Dreyfuss at row 6
ERROR: Empty name field is for email [email protected] at row 7
ERROR: Invalid date for Anna Higgins at row 11. Date given is 02-30
ERROR: Date is in the future for Tom Brady at row 12. Date given is 2075-10-22
ERROR: Invalid email for Ching Yeung Michael Tam at row 19
>>> python bdayreminder.py <data_file_path> 1
ERROR: Invalid email for Laura Dreyfuss at row 6
ERROR: Empty name field is for email [email protected] at row 7
ERROR: Invalid date for Anna Higgins at row 11. Date given is 02-30
ERROR: Date is in the future for Tom Brady at row 12. Date given is 2075-10-22
ERROR: Invalid email for Ching Yeung Michael Tam at row 19
>>> python bdayreminder.py <data_file_path> 2
Kai Yuen Leung will have birthday in a week.
Patrick Kienzle will have birthday in a week.
Emails sent successfully.
1 <Data_file_path> должен выглядеть так - наборы данных/data_20.csv, но в вашем каталоге. Полным путем для меня будет/Ousers/aurimasnausedas/documents/python/birthdayreminderapp/datasets/data_20.csv
2 Основной модуль принимает два аргумента при запуске из консоли.
3 Данные, используемые для примеров, были Data_20.csv 23 июня 2022 года.
Обзор функций, найденных в модуле - bdayReminder.py :
Глубокие объяснения функций можно найти внутри модуля - bdayReminder.py.
Есть три возможных набора данных для использования. Это DATA_20 из 20 получателей, DATA_50 из 50 получателей и DATA_80 из 80 получателей.
Обзор функций, найденных в модуле - tests.py:
Навигация в папку Program/App, где она извлечена - BirthdayReminderApp - одна папка до того, как проводится tests.py, и можно запустить эти команды тестирования:
>>> pyflakes .
>>> pyflakes Tests/tests.py
>>> python -m pytest Tests/tests.py
Может возникнуть несколько ошибок, таких как:
>>> python bdayreminder.py Datasets/data_20.json 1
Traceback (most recent call last):
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 237, in <module>
run(arg_path, cron_input)
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 215, in run
raise Exception('ERROR: Wrong data format file')
Exception: ERROR: Wrong data format file
>>> python bdayreminder.py Datasets/data_13.csv 1
Traceback (most recent call last):
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 237, in <module>
run(arg_path, cron_input)
File "/Users/aurimasnausedas/Documents/Python/BirthdayReminderApp/bdayreminder.py", line 199, in run
raise Exception('ERROR: File doesn't exist')
Exception: ERROR: File doesn't exist
>>> python bdayreminder.py Datasets/data_20.csv versada
Argument passed not an integer
Есть еще больше, что это будет наиболее распространенным.
Чтобы построить работу Cron в Mac Terminal Run:
>>> crontab -e
Синтаксис для Cronjob при входе в терминал может выглядеть следующим образом: 1,2,3
>>> 0 6 * * * cd <directory_to_app> && <directory_to_python> bdayreminder.py <data_file_path> 2
[Optional] >>> 0 6 * * * cd <directory_to_app> && <directory_to_python> bdayreminder.py <data_file_path> 2 >> Public/birthdays.txt
1 <Directory_to_app> - должен быть каталог, где папка «День рождения» похожа на/aurmasnausedas/documents/python/birthdayReminderpp
2 <Directory_to_python> должен быть там, где вы установили Python на вашем компьютере, например, пользователи/aurimasnausas/opt/miniconda3/envs/symmetric/bin/python
3 <ta Data_file_path> должен быть набором данных в каталоге приложения, как в/пользователя/aurimasnausedas/documents/python/birthdayReminderApp, установив его для наборов данных/data_20.csv
Настройка синтаксиса для работы Cron можно проверить здесь.
Общественная папка содержит три файла:
Логотип приложения напоминания о день рождения можно найти здесь.
Лицензия MIT