From 60a58d25363ce1c52d7929de482a13e84831d959 Mon Sep 17 00:00:00 2001 From: Jose Salvatierra Date: Wed, 12 Oct 2022 14:24:11 +0100 Subject: [PATCH 1/8] feat(rq): add section on task queues --- .../01_send_emails_python_mailgun/README.md | 79 ++++++ .../assets/mailgun-api-key.png | Bin 0 -> 910011 bytes .../end/.env.example | 3 + .../end/.flaskenv | 2 + .../end/.gitignore | 7 + .../end/CONTRIBUTING.md | 7 + .../end/Dockerfile | 6 + .../end/README.md | 3 + .../01_send_emails_python_mailgun/end/app.py | 109 ++++++++ .../end/blocklist.py | 9 + .../01_send_emails_python_mailgun/end/db.py | 3 + .../end/docker-entrypoint.sh | 5 + .../end/migrations/README | 1 + .../end/migrations/alembic.ini | 50 ++++ .../end/migrations/env.py | 95 +++++++ .../end/migrations/script.py.mako | 24 ++ .../end/migrations/versions/07006e31e788_.py | 68 +++++ .../end/migrations/versions/8ca023a4a4b0_.py | 28 ++ .../end/migrations/versions/bb5da1e68550_.py | 42 +++ .../end/models/__init__.py | 5 + .../end/models/item.py | 13 + .../end/models/item_tags.py | 9 + .../end/models/store.py | 10 + .../end/models/tag.py | 12 + .../end/models/user.py | 9 + .../end/requirements.txt | 11 + .../end/resources/item.py | 67 +++++ .../end/resources/store.py | 51 ++++ .../end/resources/tag.py | 97 +++++++ .../end/resources/user.py | 99 +++++++ .../end/schemas.py | 52 ++++ .../start/.env.example | 1 + .../start/.flaskenv | 2 + .../start/.gitignore | 7 + .../start/CONTRIBUTING.md | 7 + .../start/Dockerfile | 6 + .../start/README.md | 3 + .../start/app.py | 109 ++++++++ .../start/blocklist.py | 9 + .../01_send_emails_python_mailgun/start/db.py | 3 + .../start/docker-entrypoint.sh | 5 + .../start/migrations/README | 1 + .../start/migrations/alembic.ini | 50 ++++ .../start/migrations/env.py | 95 +++++++ .../start/migrations/script.py.mako | 24 ++ .../migrations/versions/07006e31e788_.py | 68 +++++ .../migrations/versions/8ca023a4a4b0_.py | 28 ++ .../migrations/versions/bb5da1e68550_.py | 42 +++ .../start/models/__init__.py | 5 + .../start/models/item.py | 13 + .../start/models/item_tags.py | 9 + .../start/models/store.py | 10 + .../start/models/tag.py | 12 + .../start/models/user.py | 9 + .../start/requirements.txt | 10 + .../start/resources/item.py | 67 +++++ .../start/resources/store.py | 51 ++++ .../start/resources/tag.py | 97 +++++++ .../start/resources/user.py | 77 ++++++ .../start/schemas.py | 52 ++++ .../02_send_email_user_registration/README.md | 150 ++++++++++ .../end/.env.example | 3 + .../end/.flaskenv | 2 + .../end/.gitignore | 7 + .../end/.python-version | 1 + .../end/CONTRIBUTING.md | 7 + .../end/Dockerfile | 6 + .../end/README.md | 3 + .../end/app.py | 109 ++++++++ .../end/blocklist.py | 9 + .../02_send_email_user_registration/end/db.py | 3 + .../end/docker-entrypoint.sh | 5 + .../end/migrations/README | 1 + .../end/migrations/alembic.ini | 50 ++++ .../end/migrations/env.py | 95 +++++++ .../end/migrations/script.py.mako | 24 ++ .../end/migrations/versions/07006e31e788_.py | 68 +++++ .../end/migrations/versions/8ca023a4a4b0_.py | 28 ++ .../end/migrations/versions/bb5da1e68550_.py | 54 ++++ .../end/migrations/versions/d8e0f80631fb_.py | 30 ++ .../end/models/__init__.py | 5 + .../end/models/item.py | 13 + .../end/models/item_tags.py | 9 + .../end/models/store.py | 10 + .../end/models/tag.py | 12 + .../end/models/user.py | 10 + .../end/requirements.txt | 11 + .../end/resources/item.py | 67 +++++ .../end/resources/store.py | 51 ++++ .../end/resources/tag.py | 97 +++++++ .../end/resources/user.py | 112 ++++++++ .../end/schemas.py | 56 ++++ .../start/.env.example | 3 + .../start/.flaskenv | 2 + .../start/.gitignore | 7 + .../start/CONTRIBUTING.md | 7 + .../start/Dockerfile | 6 + .../start/README.md | 3 + .../start/app.py | 109 ++++++++ .../start/blocklist.py | 9 + .../start/db.py | 3 + .../start/docker-entrypoint.sh | 5 + .../start/migrations/README | 1 + .../start/migrations/alembic.ini | 50 ++++ .../start/migrations/env.py | 95 +++++++ .../start/migrations/script.py.mako | 24 ++ .../migrations/versions/07006e31e788_.py | 68 +++++ .../migrations/versions/8ca023a4a4b0_.py | 28 ++ .../migrations/versions/bb5da1e68550_.py | 42 +++ .../start/models/__init__.py | 5 + .../start/models/item.py | 13 + .../start/models/item_tags.py | 9 + .../start/models/store.py | 10 + .../start/models/tag.py | 12 + .../start/models/user.py | 9 + .../start/requirements.txt | 11 + .../start/resources/item.py | 67 +++++ .../start/resources/store.py | 51 ++++ .../start/resources/tag.py | 97 +++++++ .../start/resources/user.py | 99 +++++++ .../start/schemas.py | 52 ++++ .../03_what_is_task_queue/README.md | 27 ++ .../assets/queues.drawio.png | Bin 0 -> 60727 bytes .../04_populate_rq_task_queue/README.md | 121 ++++++++ .../end/.env.example | 4 + .../04_populate_rq_task_queue/end/.flaskenv | 2 + .../04_populate_rq_task_queue/end/.gitignore | 7 + .../end/CONTRIBUTING.md | 7 + .../04_populate_rq_task_queue/end/Dockerfile | 6 + .../04_populate_rq_task_queue/end/README.md | 3 + .../04_populate_rq_task_queue/end/app.py | 109 ++++++++ .../end/blocklist.py | 9 + .../04_populate_rq_task_queue/end/db.py | 3 + .../end/docker-entrypoint.sh | 5 + .../end/migrations/README | 1 + .../end/migrations/alembic.ini | 50 ++++ .../end/migrations/env.py | 95 +++++++ .../end/migrations/script.py.mako | 24 ++ .../end/migrations/versions/07006e31e788_.py | 68 +++++ .../end/migrations/versions/8ca023a4a4b0_.py | 28 ++ .../end/migrations/versions/bb5da1e68550_.py | 42 +++ .../end/migrations/versions/d8e0f80631fb_.py | 30 ++ .../end/models/__init__.py | 5 + .../end/models/item.py | 13 + .../end/models/item_tags.py | 9 + .../end/models/store.py | 10 + .../end/models/tag.py | 12 + .../end/models/user.py | 10 + .../end/requirements.txt | 13 + .../end/resources/item.py | 67 +++++ .../end/resources/store.py | 51 ++++ .../end/resources/tag.py | 97 +++++++ .../end/resources/user.py | 100 +++++++ .../04_populate_rq_task_queue/end/schemas.py | 56 ++++ .../04_populate_rq_task_queue/end/tasks.py | 28 ++ .../start/.env.example | 3 + .../04_populate_rq_task_queue/start/.flaskenv | 2 + .../start/.gitignore | 7 + .../start/CONTRIBUTING.md | 7 + .../start/Dockerfile | 6 + .../04_populate_rq_task_queue/start/README.md | 3 + .../04_populate_rq_task_queue/start/app.py | 109 ++++++++ .../start/blocklist.py | 9 + .../04_populate_rq_task_queue/start/db.py | 3 + .../start/docker-entrypoint.sh | 5 + .../start/migrations/README | 1 + .../start/migrations/alembic.ini | 50 ++++ .../start/migrations/env.py | 95 +++++++ .../start/migrations/script.py.mako | 24 ++ .../migrations/versions/07006e31e788_.py | 68 +++++ .../migrations/versions/8ca023a4a4b0_.py | 28 ++ .../migrations/versions/bb5da1e68550_.py | 42 +++ .../migrations/versions/d8e0f80631fb_.py | 30 ++ .../start/models/__init__.py | 5 + .../start/models/item.py | 13 + .../start/models/item_tags.py | 9 + .../start/models/store.py | 10 + .../start/models/tag.py | 12 + .../start/models/user.py | 10 + .../start/requirements.txt | 11 + .../start/resources/item.py | 67 +++++ .../start/resources/store.py | 51 ++++ .../start/resources/tag.py | 97 +++++++ .../start/resources/user.py | 112 ++++++++ .../start/schemas.py | 56 ++++ .../05_rq_background_worker/README.md | 80 ++++++ .../05_rq_background_worker/end/.env.example | 4 + .../05_rq_background_worker/end/.flaskenv | 2 + .../05_rq_background_worker/end/.gitignore | 7 + .../end/CONTRIBUTING.md | 7 + .../05_rq_background_worker/end/Dockerfile | 6 + .../05_rq_background_worker/end/README.md | 3 + .../05_rq_background_worker/end/app.py | 109 ++++++++ .../05_rq_background_worker/end/blocklist.py | 9 + .../05_rq_background_worker/end/db.py | 3 + .../end/docker-entrypoint.sh | 5 + .../end/migrations/README | 1 + .../end/migrations/alembic.ini | 50 ++++ .../end/migrations/env.py | 95 +++++++ .../end/migrations/script.py.mako | 24 ++ .../end/migrations/versions/07006e31e788_.py | 68 +++++ .../end/migrations/versions/8ca023a4a4b0_.py | 28 ++ .../end/migrations/versions/bb5da1e68550_.py | 42 +++ .../end/migrations/versions/d8e0f80631fb_.py | 30 ++ .../end/models/__init__.py | 5 + .../end/models/item.py | 13 + .../end/models/item_tags.py | 9 + .../end/models/store.py | 10 + .../05_rq_background_worker/end/models/tag.py | 12 + .../end/models/user.py | 10 + .../end/requirements.txt | 13 + .../end/resources/item.py | 67 +++++ .../end/resources/store.py | 51 ++++ .../end/resources/tag.py | 97 +++++++ .../end/resources/user.py | 100 +++++++ .../05_rq_background_worker/end/schemas.py | 56 ++++ .../05_rq_background_worker/end/tasks.py | 28 ++ .../start/.env.example | 4 + .../05_rq_background_worker/start/.flaskenv | 2 + .../05_rq_background_worker/start/.gitignore | 7 + .../start/CONTRIBUTING.md | 7 + .../05_rq_background_worker/start/Dockerfile | 6 + .../05_rq_background_worker/start/README.md | 3 + .../05_rq_background_worker/start/app.py | 109 ++++++++ .../start/blocklist.py | 9 + .../05_rq_background_worker/start/db.py | 3 + .../start/docker-entrypoint.sh | 5 + .../start/migrations/README | 1 + .../start/migrations/alembic.ini | 50 ++++ .../start/migrations/env.py | 95 +++++++ .../start/migrations/script.py.mako | 24 ++ .../migrations/versions/07006e31e788_.py | 68 +++++ .../migrations/versions/8ca023a4a4b0_.py | 28 ++ .../migrations/versions/bb5da1e68550_.py | 42 +++ .../migrations/versions/d8e0f80631fb_.py | 30 ++ .../start/models/__init__.py | 5 + .../start/models/item.py | 13 + .../start/models/item_tags.py | 9 + .../start/models/store.py | 10 + .../start/models/tag.py | 12 + .../start/models/user.py | 10 + .../start/requirements.txt | 13 + .../start/resources/item.py | 67 +++++ .../start/resources/store.py | 51 ++++ .../start/resources/tag.py | 97 +++++++ .../start/resources/user.py | 100 +++++++ .../05_rq_background_worker/start/schemas.py | 56 ++++ .../05_rq_background_worker/start/tasks.py | 28 ++ .../06_sending_html_emails/README.md | 258 ++++++++++++++++++ .../assets/html-email.png | Bin 0 -> 416940 bytes .../06_sending_html_emails/end/.env.example | 4 + .../06_sending_html_emails/end/.flaskenv | 2 + .../06_sending_html_emails/end/.gitignore | 7 + .../end/.python-version | 1 + .../end/CONTRIBUTING.md | 7 + .../06_sending_html_emails/end/Dockerfile | 6 + .../06_sending_html_emails/end/README.md | 3 + .../06_sending_html_emails/end/app.py | 109 ++++++++ .../06_sending_html_emails/end/blocklist.py | 9 + .../06_sending_html_emails/end/db.py | 3 + .../end/docker-entrypoint.sh | 5 + .../end/migrations/README | 1 + .../end/migrations/alembic.ini | 50 ++++ .../end/migrations/env.py | 95 +++++++ .../end/migrations/script.py.mako | 24 ++ .../end/migrations/versions/07006e31e788_.py | 68 +++++ .../end/migrations/versions/8ca023a4a4b0_.py | 28 ++ .../end/migrations/versions/bb5da1e68550_.py | 42 +++ .../end/migrations/versions/d8e0f80631fb_.py | 30 ++ .../end/models/__init__.py | 5 + .../06_sending_html_emails/end/models/item.py | 13 + .../end/models/item_tags.py | 9 + .../end/models/store.py | 10 + .../06_sending_html_emails/end/models/tag.py | 12 + .../06_sending_html_emails/end/models/user.py | 10 + .../end/requirements.txt | 13 + .../end/resources/item.py | 67 +++++ .../end/resources/store.py | 51 ++++ .../end/resources/tag.py | 97 +++++++ .../end/resources/user.py | 100 +++++++ .../06_sending_html_emails/end/schemas.py | 56 ++++ .../06_sending_html_emails/end/tasks.py | 37 +++ .../end/templates/email/diff.txt | 43 +++ .../end/templates/email/registration.html | 85 ++++++ .../email/registration.original.html | 85 ++++++ .../06_sending_html_emails/start/.env.example | 4 + .../06_sending_html_emails/start/.flaskenv | 2 + .../06_sending_html_emails/start/.gitignore | 7 + .../start/CONTRIBUTING.md | 7 + .../06_sending_html_emails/start/Dockerfile | 6 + .../06_sending_html_emails/start/README.md | 3 + .../06_sending_html_emails/start/app.py | 109 ++++++++ .../06_sending_html_emails/start/blocklist.py | 9 + .../06_sending_html_emails/start/db.py | 3 + .../start/docker-entrypoint.sh | 5 + .../start/migrations/README | 1 + .../start/migrations/alembic.ini | 50 ++++ .../start/migrations/env.py | 95 +++++++ .../start/migrations/script.py.mako | 24 ++ .../migrations/versions/07006e31e788_.py | 68 +++++ .../migrations/versions/8ca023a4a4b0_.py | 28 ++ .../migrations/versions/bb5da1e68550_.py | 42 +++ .../migrations/versions/d8e0f80631fb_.py | 30 ++ .../start/models/__init__.py | 5 + .../start/models/item.py | 13 + .../start/models/item_tags.py | 9 + .../start/models/store.py | 10 + .../start/models/tag.py | 12 + .../start/models/user.py | 10 + .../start/requirements.txt | 13 + .../start/resources/item.py | 67 +++++ .../start/resources/store.py | 51 ++++ .../start/resources/tag.py | 97 +++++++ .../start/resources/user.py | 100 +++++++ .../06_sending_html_emails/start/schemas.py | 56 ++++ .../06_sending_html_emails/start/tasks.py | 28 ++ .../12_task_queues_emails/_category_.json | 4 + .../12_task_queues_emails/define_tasks_rq.md | 68 +++++ .../send_emails_mailgun.md | 149 ++++++++++ 319 files changed, 10548 insertions(+) create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/assets/mailgun-api-key.png create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.env.example create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.gitignore create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/README.md create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/app.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/db.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/README create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/item.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/store.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/user.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/schemas.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.env.example create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.gitignore create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/README.md create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/app.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/db.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/README create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/item.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/store.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/user.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/schemas.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/README.md create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.env.example create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.gitignore create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.python-version create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/README.md create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/app.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/db.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/README create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/d8e0f80631fb_.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/item.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/store.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/user.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/end/schemas.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.env.example create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.gitignore create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/README.md create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/app.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/db.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/README create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/item.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/store.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/user.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/02_send_email_user_registration/start/schemas.py create mode 100644 docs/docs/12_task_queues_emails/03_what_is_task_queue/README.md create mode 100644 docs/docs/12_task_queues_emails/03_what_is_task_queue/assets/queues.drawio.png create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/README.md create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.env.example create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.gitignore create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/README.md create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/app.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/db.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/README create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/d8e0f80631fb_.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/item.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/store.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/user.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/schemas.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/tasks.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.env.example create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.gitignore create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/README.md create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/app.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/db.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/README create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/d8e0f80631fb_.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/item.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/store.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/user.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/schemas.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/README.md create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/.env.example create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/.gitignore create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/README.md create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/app.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/db.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/README create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/d8e0f80631fb_.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/item.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/store.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/user.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/schemas.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/end/tasks.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/.env.example create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/.gitignore create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/README.md create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/app.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/db.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/README create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/d8e0f80631fb_.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/item.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/store.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/user.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/schemas.py create mode 100644 docs/docs/12_task_queues_emails/05_rq_background_worker/start/tasks.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/README.md create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/assets/html-email.png create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/.env.example create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/.gitignore create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/.python-version create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/README.md create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/app.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/db.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/migrations/README create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/migrations/versions/d8e0f80631fb_.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/models/item.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/models/store.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/models/user.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/schemas.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/tasks.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/templates/email/diff.txt create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/templates/email/registration.html create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/end/templates/email/registration.original.html create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/.env.example create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/.flaskenv create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/.gitignore create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/CONTRIBUTING.md create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/Dockerfile create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/README.md create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/app.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/blocklist.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/db.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/docker-entrypoint.sh create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/README create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/alembic.ini create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/env.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/script.py.mako create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/07006e31e788_.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/8ca023a4a4b0_.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/bb5da1e68550_.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/d8e0f80631fb_.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/__init__.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/item.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/item_tags.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/store.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/tag.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/user.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/requirements.txt create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/item.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/store.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/tag.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/user.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/schemas.py create mode 100644 docs/docs/12_task_queues_emails/06_sending_html_emails/start/tasks.py create mode 100644 docs/docs/12_task_queues_emails/_category_.json create mode 100644 docs/docs/12_task_queues_emails/define_tasks_rq.md create mode 100644 docs/docs/12_task_queues_emails/send_emails_mailgun.md diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md new file mode 100644 index 00000000..9d193eff --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md @@ -0,0 +1,79 @@ +# How to send emails with Python and Mailgun + +To send e-mails using Python, we are going to use Mailgun, a third party service which actually delivers the messages. + +You could use [your own personal account and the built-in `email` and `smtp` libraries](https://blog.teclado.com/learn-python-send-emails/), but most personal e-mail providers will limit how many e-mails you can send per day. Plus, you won't get analytics and a host of other features that you can get with an email service like Mailgun. + +There are two ways to use the Mailgun service: [via SMTP or via their API](https://www.mailgun.com/blog/email/difference-between-smtp-and-api/). I'll show you how to use the API since it's a bit easier and has the same functionality. + +Sending an e-mail with Mailgun is just a matter of sending a request to their API. To do this, we'll use the `requests` library: + +```bash +pip install requests +``` + +Remember to add it to your `requirements.txt` as well: + +```text title="requirements.txt" +requests +``` + +## Setting up for Mailgun + +Before we can send any emails, we need to set up our Mailgun account. First, register over at [https://mailgun.com](https://mailgun.com). + +Once you have registered, select your sandbox domain. It's in [your dashboard](https://app.mailgun.com/app/dashboard), at the bottom. It looks like this: `sandbox847487f8g78.mailgun.org`. + +Then at the top right, enter your personal email address under "Authorized recipients". + +You will get an email to confirm. Click the button that you see in that email to add your personal email to the list of authorized recipients. + +Next up, grab your API key. You can find it by clicking on this button (my domain and API key are blurred in this screenshot): + +![Click the 'Select' button to reveal your Mailgun API key](./assets/mailgun-api-key.png) + +## Sending emails with Mailgun + +To make the API request which sends an email, we'll use a function that looks very much like this one (taken from their documentation): + +```py +def send_simple_message(): + return requests.post( + "https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages", + auth=("api", "YOUR_API_KEY"), + data={"from": "Excited User ", + "to": ["bar@example.com", "YOU@YOUR_DOMAIN_NAME"], + "subject": "Hello", + "text": "Testing some Mailgun awesomness!"}) +``` + +So let's go into our User resource and add a couple of imports and this function. Make sure to replace "Your Name" with your actual name or that of your application: + +```py title="resources/user.py" +import os +import requests + +... + +def send_simple_message(to, subject, body): + domain = os.getenv("MAILGUN_DOMAIN") + return requests.post( + f"https://api.mailgun.net/v3/{domain}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={ + "from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body, + }, + ) +``` + +Then let's go to the `.env` file and add your Mailgun API key and domain: + +```text title=".env" +MAILGUN_API_KEY="1f1ahfjhf4878797887187j-5ac54n" +MAILGUN_DOMAIN="sandbox723b05d9.mailgun.org" +``` + +With this, we're ready to actually send emails! diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/assets/mailgun-api-key.png b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/assets/mailgun-api-key.png new file mode 100644 index 0000000000000000000000000000000000000000..e854e08e0c04a1a260f7637eb42328b9b20679e3 GIT binary patch literal 910011 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≠dI#EP|;4*Z=TxS99OgfILMxvSqVMm^=#C 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
2fp15gBk3JxL)P$wsuooDLYlYm`7ET7E5oxQhu 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

7e*QZhOWfX@eb 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%0Au7^IlN{e&+9z6mLXrfA9|EPtQyH9QxoX6R;Q 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

8}{ni+F1}^q_nW@orIE#P2BC8mk;3> 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 z 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

a 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

ha!f;WG`w8A`{LuvHB%JJ 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 literal 0 HcmV?d00001 diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.env.example b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.env.example new file mode 100644 index 00000000..312ae619 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.env.example @@ -0,0 +1,3 @@ +DATABASE_URL= +MAILGUN_API_KEY= +MAILGUN_DOMAIN= \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.flaskenv b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.flaskenv new file mode 100644 index 00000000..75473901 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=app +FLASK_ENV=development \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.gitignore b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.gitignore new file mode 100644 index 00000000..6104f428 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/.gitignore @@ -0,0 +1,7 @@ +.env +.venv +.vscode +__pycache__ +data.db +*.pyc +.DS_Store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/CONTRIBUTING.md b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/CONTRIBUTING.md new file mode 100644 index 00000000..7e550e79 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUTING + +## How to run the Dockerfile locally + +``` +docker run -dp 5000:5000 -w /app -v "$(pwd):/app" IMAGE_NAME sh -c "flask run" +``` diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/Dockerfile b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/Dockerfile new file mode 100644 index 00000000..121cf5b6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.10 +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir --upgrade -r requirements.txt +COPY . . +CMD ["/bin/bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/README.md b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/README.md new file mode 100644 index 00000000..ae704d28 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/README.md @@ -0,0 +1,3 @@ +# REST APIs Recording Project + +Nothing here yet! diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/app.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/app.py new file mode 100644 index 00000000..65d7d0ca --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/app.py @@ -0,0 +1,109 @@ +import os + +from flask import Flask, jsonify +from flask_smorest import Api +from flask_jwt_extended import JWTManager +from flask_migrate import Migrate +from dotenv import load_dotenv + + +from db import db +from blocklist import BLOCKLIST +import models + +from resources.item import blp as ItemBlueprint +from resources.store import blp as StoreBlueprint +from resources.tag import blp as TagBlueprint +from resources.user import blp as UserBlueprint + + +def create_app(db_url=None): + app = Flask(__name__) + load_dotenv() + + app.config["PROPAGATE_EXCEPTIONS"] = True + app.config["API_TITLE"] = "Stores REST API" + app.config["API_VERSION"] = "v1" + app.config["OPENAPI_VERSION"] = "3.0.3" + app.config["OPENAPI_URL_PREFIX"] = "/" + app.config["OPENAPI_SWAGGER_UI_PATH"] = "/swagger-ui" + app.config["OPENAPI_SWAGGER_UI_URL"] = "https://cdn.jsdelivr.net/npm/swagger-ui-dist/" + app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db") + app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + db.init_app(app) + migrate = Migrate(app, db) + api = Api(app) + + app.config["JWT_SECRET_KEY"] = "jose" + jwt = JWTManager(app) + + @jwt.token_in_blocklist_loader + def check_if_token_in_blocklist(jwt_header, jwt_payload): + return jwt_payload["jti"] in BLOCKLIST + + @jwt.revoked_token_loader + def revoked_token_callback(jwt_header, jwt_payload): + return ( + jsonify( + {"description": "The token has been revoked.", "error": "token_revoked"} + ), + 401, + ) + + @jwt.needs_fresh_token_loader + def token_not_fresh_callback(jwt_header, jwt_payload): + return ( + jsonify( + { + "description": "The token is not fresh.", + "error": "fresh_token_required", + } + ), + 401, + ) + + @jwt.additional_claims_loader + def add_claims_to_jwt(identity): + # Look in the database and see whether the user is an admin + if identity == 1: + return {"is_admin": True} + return {"is_admin": False} + + @jwt.expired_token_loader + def expired_token_callback(jwt_header, jwt_payload): + return ( + jsonify({"message": "The token has expired.", "error": "token_expired"}), + 401, + ) + + @jwt.invalid_token_loader + def invalid_token_callback(error): + return ( + jsonify( + {"message": "Signature verification failed.", "error": "invalid_token"} + ), + 401, + ) + + @jwt.unauthorized_loader + def missing_token_callback(error): + return ( + jsonify( + { + "description": "Request does not contain an access token.", + "error": "authorization_required", + } + ), + 401, + ) + + @app.before_first_request + def create_tables(): + db.create_all() + + api.register_blueprint(ItemBlueprint) + api.register_blueprint(StoreBlueprint) + api.register_blueprint(TagBlueprint) + api.register_blueprint(UserBlueprint) + + return app \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/blocklist.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/blocklist.py new file mode 100644 index 00000000..77751bef --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/blocklist.py @@ -0,0 +1,9 @@ +""" +blocklist.py + +This file just contains the blocklist of the JWT tokens. It will be imported by +app and the logout resource so that tokens can be added to the blocklist when the +user logs out. +""" + +BLOCKLIST = set() \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/db.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/db.py new file mode 100644 index 00000000..f0b13d6f --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/db.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/docker-entrypoint.sh b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/docker-entrypoint.sh new file mode 100644 index 00000000..134c2988 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +flask db upgrade + +exec gunicorn --bind 0.0.0.0:80 "app:create_app()" \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/README b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/README new file mode 100644 index 00000000..0e048441 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/README @@ -0,0 +1 @@ +Single-database configuration for Flask. diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/alembic.ini b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/alembic.ini new file mode 100644 index 00000000..ec9d45c2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/alembic.ini @@ -0,0 +1,50 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic,flask_migrate + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[logger_flask_migrate] +level = INFO +handlers = +qualname = flask_migrate + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/env.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/env.py new file mode 100644 index 00000000..2ec83a7e --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/env.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import logging +from logging.config import fileConfig + +from flask import current_app + +from alembic import context + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +config.set_main_option( + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.get_engine().url).replace( + '%', '%%')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + compare_type=True, + literal_binds=True + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + connectable = current_app.extensions['migrate'].db.get_engine() + + with connectable.connect() as connection: + context.configure( + connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + compare_type=True, + **current_app.extensions['migrate'].configure_args + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/script.py.mako b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/script.py.mako new file mode 100644 index 00000000..2c015630 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/07006e31e788_.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/07006e31e788_.py new file mode 100644 index 00000000..e58a46db --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/07006e31e788_.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 07006e31e788 +Revises: +Create Date: 2022-08-15 12:44:59.705694 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '07006e31e788' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('stores', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=80), nullable=False), + sa.Column('password', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('username') + ) + op.create_table('items', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('price', sa.Float(precision=2), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('items_tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('item_id', sa.Integer(), nullable=True), + sa.Column('tag_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['item_id'], ['items.id'], ), + sa.ForeignKeyConstraint(['tag_id'], ['tags.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('items_tags') + op.drop_table('tags') + op.drop_table('items') + op.drop_table('users') + op.drop_table('stores') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/8ca023a4a4b0_.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/8ca023a4a4b0_.py new file mode 100644 index 00000000..3c369e48 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/8ca023a4a4b0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 8ca023a4a4b0 +Revises: 07006e31e788 +Create Date: 2022-08-15 12:52:41.303543 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8ca023a4a4b0' +down_revision = '07006e31e788' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('items', sa.Column('description', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('items', 'description') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/bb5da1e68550_.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/bb5da1e68550_.py new file mode 100644 index 00000000..e6e23e40 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/migrations/versions/bb5da1e68550_.py @@ -0,0 +1,42 @@ +"""empty message + +Revision ID: bb5da1e68550 +Revises: 8ca023a4a4b0 +Create Date: 2022-08-29 13:06:57.697368 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'bb5da1e68550' +down_revision = '8ca023a4a4b0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('items', 'price', + existing_type=sa.REAL(), + type_=sa.Float(precision=2), + existing_nullable=False) + op.alter_column('users', 'password', + existing_type=sa.VARCHAR(length=80), + type_=sa.String(length=256), + existing_nullable=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'password', + existing_type=sa.String(length=256), + type_=sa.VARCHAR(length=80), + existing_nullable=False) + op.alter_column('items', 'price', + existing_type=sa.Float(precision=2), + type_=sa.REAL(), + existing_nullable=False) + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/__init__.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/__init__.py new file mode 100644 index 00000000..04f2e012 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/__init__.py @@ -0,0 +1,5 @@ +from models.store import StoreModel +from models.item import ItemModel +from models.tag import TagModel +from models.item_tags import ItemTags +from models.user import UserModel \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/item.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/item.py new file mode 100644 index 00000000..45006d57 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/item.py @@ -0,0 +1,13 @@ +from sqlalchemy import ForeignKey +from db import db + +class ItemModel(db.Model): + __tablename__ = "items" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=False, nullable=False) + description = db.Column(db.String) + price = db.Column(db.Float(precision=2), unique=False, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), unique=False, nullable=False) + store = db.relationship("StoreModel", back_populates="items") + tags = db.relationship("TagModel", back_populates="items", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/item_tags.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/item_tags.py new file mode 100644 index 00000000..5dfd5cf5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/item_tags.py @@ -0,0 +1,9 @@ +from db import db + + +class ItemTags(db.Model): + __tablename__ = "items_tags" + + id = db.Column(db.Integer, primary_key=True) + item_id = db.Column(db.Integer, db.ForeignKey("items.id")) + tag_id = db.Column(db.Integer, db.ForeignKey("tags.id")) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/store.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/store.py new file mode 100644 index 00000000..90ad43d5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/store.py @@ -0,0 +1,10 @@ +from db import db + + +class StoreModel(db.Model): + __tablename__ = "stores" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + items = db.relationship("ItemModel", back_populates="store", lazy="dynamic") + tags = db.relationship("TagModel", back_populates="store", lazy="dynamic") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/tag.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/tag.py new file mode 100644 index 00000000..008e8d37 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/tag.py @@ -0,0 +1,12 @@ +from db import db + + +class TagModel(db.Model): + __tablename__ = "tags" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), nullable=False) + + store = db.relationship("StoreModel", back_populates="tags") + items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/user.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/user.py new file mode 100644 index 00000000..fefdf936 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/models/user.py @@ -0,0 +1,9 @@ +from db import db + + +class UserModel(db.Model): + __tablename__ = "users" + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + password = db.Column(db.String(256), nullable=False) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/requirements.txt b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/requirements.txt new file mode 100644 index 00000000..215ae898 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/requirements.txt @@ -0,0 +1,11 @@ +flask==2.1.3 +flask-smorest +python-dotenv +sqlalchemy +flask-sqlalchemy +flask-jwt-extended +passlib +flask-migrate +gunicorn +psycopg2 +requests \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/item.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/item.py new file mode 100644 index 00000000..545f73b5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/item.py @@ -0,0 +1,67 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from flask_jwt_extended import jwt_required, get_jwt +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import ItemModel +from schemas import ItemSchema, ItemUpdateSchema + +blp = Blueprint("Items", __name__, description="Operations on items") + + +@blp.route("/item/") +class Item(MethodView): + @jwt_required() + @blp.response(200, ItemSchema) + def get(self, item_id): + item = ItemModel.query.get_or_404(item_id) + return item + + @jwt_required() + def delete(self, item_id): + jwt = get_jwt() + if not jwt.get("is_admin"): + abort(401, message="Admin privilege required.") + + item = ItemModel.query.get_or_404(item_id) + db.session.delete(item) + db.session.commit() + return {"message": "Item deleted."} + + @blp.arguments(ItemUpdateSchema) + @blp.response(200, ItemSchema) + def put(self, item_data, item_id): + item = ItemModel.query.get(item_id) + if item: + item.price = item_data["price"] + item.name = item_data["name"] + else: + item = ItemModel(id=item_id, **item_data) + + db.session.add(item) + db.session.commit() + + return item + + +@blp.route("/item") +class ItemList(MethodView): + @jwt_required() + @blp.response(200, ItemSchema(many=True)) + def get(self): + return ItemModel.query.all() + + @jwt_required(fresh=True) + @blp.arguments(ItemSchema) + @blp.response(201, ItemSchema) + def post(self, item_data): + item = ItemModel(**item_data) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred whilte inserting the item.") + + return item \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/store.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/store.py new file mode 100644 index 00000000..488c1f67 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/store.py @@ -0,0 +1,51 @@ +import uuid +from flask import request +from flask.views import MethodView +from flask_smorest import Blueprint, abort + +from sqlalchemy.exc import SQLAlchemyError, IntegrityError + +from db import db +from models import StoreModel +from schemas import StoreSchema + + +blp = Blueprint("stores", __name__, description="Operations on stores") + + +@blp.route("/store/") +class Store(MethodView): + @blp.response(200, StoreSchema) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + return store + + def delete(self, store_id): + store = StoreModel.query.get_or_404(store_id) + db.session.delete(store) + db.session.commit() + return {"message": "Store deleted"} + + +@blp.route("/store") +class StoreList(MethodView): + @blp.response(200, StoreSchema(many=True)) + def get(self): + return StoreModel.query.all() + + @blp.arguments(StoreSchema) + @blp.response(200, StoreSchema) + def post(self, store_data): + store = StoreModel(**store_data) + try: + db.session.add(store) + db.session.commit() + except IntegrityError: + abort( + 400, + message="A store with that name already exists.", + ) + except SQLAlchemyError: + abort(500, message="An error occurred creating the store.") + + return store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/tag.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/tag.py new file mode 100644 index 00000000..f15c41b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/tag.py @@ -0,0 +1,97 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import TagModel, StoreModel, ItemModel +from schemas import TagSchema, TagAndItemSchema + +blp = Blueprint("Tags", "tags", description="Operations on tags") + + +@blp.route("/store//tag") +class TagsInStore(MethodView): + @blp.response(200, TagSchema(many=True)) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + + return store.tags.all() + + @blp.arguments(TagSchema) + @blp.response(201, TagSchema) + def post(self, tag_data, store_id): + tag = TagModel(**tag_data, store_id=store_id) + + try: + db.session.add(tag) + db.session.commit() + except SQLAlchemyError as e: + abort( + 500, + message=str(e) + ) + + return tag + + +@blp.route("/item//tag/") +class LinkTagsToItem(MethodView): + @blp.response(201, TagSchema) + def post(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.append(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return tag + + @blp.response(200, TagAndItemSchema) + def delete(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.remove(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return {"message": "Item removed from tag", "item": item, "tag": tag} + + +@blp.route("/tag/") +class Tag(MethodView): + @blp.response(200, TagSchema) + def get(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + return tag + + @blp.response( + 202, + description="Deletes a tag if no item is tagged with it.", + example={"message": "Tag deleted."} + ) + @blp.alt_response(404, description="Tag not found.") + @blp.alt_response( + 400, + description="Returned if the tag is assigned to one or more items. In this case, the tag is not deleted." + ) + def delete(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + + if not tag.items: + db.session.delete(tag) + db.session.commit() + return {"message": "Tag deleted."} + abort( + 400, + message="Could not delete tag. Make sure tag is not associated with any items, then try again.", + ) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/user.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/user.py new file mode 100644 index 00000000..ec8747f6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/resources/user.py @@ -0,0 +1,99 @@ +import os +import requests +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from passlib.hash import pbkdf2_sha256 +from flask_jwt_extended import ( + create_access_token, + create_refresh_token, + get_jwt_identity, + jwt_required, + get_jwt, +) + +from db import db +from blocklist import BLOCKLIST +from models import UserModel +from schemas import UserSchema + + +blp = Blueprint("Users", "users", description="Operations on users") + + +def send_simple_message(to, subject, body): + domain = os.getenv("MAILGUN_DOMAIN") + return requests.post( + f"https://api.mailgun.net/v3/{domain}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={ + "from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body, + }, + ) + + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + if UserModel.query.filter(UserModel.username == user_data["username"]).first(): + abort(409, message="A user with that username already exists.") + + user = UserModel( + username=user_data["username"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + return {"message": "User created successfully."}, 201 + + +@blp.route("/login") +class UserLogin(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + user = UserModel.query.filter( + UserModel.username == user_data["username"] + ).first() + + if user and pbkdf2_sha256.verify(user_data["password"], user.password): + access_token = create_access_token(identity=user.id, fresh=True) + refresh_token = create_refresh_token(identity=user.id) + return {"access_token": access_token, "refresh_token": refresh_token} + + abort(401, message="Invalid credentials.") + + +@blp.route("/refresh") +class TokenRefresh(MethodView): + @jwt_required(refresh=True) + def post(self): + current_user = get_jwt_identity() + new_token = create_access_token(identity=current_user, fresh=False) + return {"access_token": new_token} + + +@blp.route("/logout") +class UserLogout(MethodView): + @jwt_required() + def post(self): + jti = get_jwt()["jti"] + BLOCKLIST.add(jti) + return {"message": "Successfully logged out."} + + +@blp.route("/user/") +class User(MethodView): + @blp.response(200, UserSchema) + def get(self, user_id): + user = UserModel.query.get_or_404(user_id) + return user + + def delete(self, user_id): + user = UserModel.query.get_or_404(user_id) + db.session.delete(user) + db.session.commit() + return {"message": "User deleted."}, 200 diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/schemas.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/schemas.py new file mode 100644 index 00000000..cb3f7a07 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/end/schemas.py @@ -0,0 +1,52 @@ +from marshmallow import Schema, fields + + +class PlainItemSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + price = fields.Float(required=True) + + +class PlainStoreSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + + +class PlainTagSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str() + + +class ItemUpdateSchema(Schema): + name = fields.Str() + price = fields.Float() + store_id = fields.Int() + + +class ItemSchema(PlainItemSchema): + store_id = fields.Int(required=True, load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class StoreSchema(PlainStoreSchema): + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class TagSchema(PlainTagSchema): + store_id = fields.Int(load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + + +class TagAndItemSchema(Schema): + message = fields.Str() + item = fields.Nested(ItemSchema) + tag = fields.Nested(TagSchema) + + +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.env.example b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.env.example new file mode 100644 index 00000000..4cc714a2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.env.example @@ -0,0 +1 @@ +DATABASE_URL= \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.flaskenv b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.flaskenv new file mode 100644 index 00000000..75473901 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=app +FLASK_ENV=development \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.gitignore b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.gitignore new file mode 100644 index 00000000..6104f428 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/.gitignore @@ -0,0 +1,7 @@ +.env +.venv +.vscode +__pycache__ +data.db +*.pyc +.DS_Store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/CONTRIBUTING.md b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/CONTRIBUTING.md new file mode 100644 index 00000000..7e550e79 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUTING + +## How to run the Dockerfile locally + +``` +docker run -dp 5000:5000 -w /app -v "$(pwd):/app" IMAGE_NAME sh -c "flask run" +``` diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/Dockerfile b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/Dockerfile new file mode 100644 index 00000000..121cf5b6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.10 +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir --upgrade -r requirements.txt +COPY . . +CMD ["/bin/bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/README.md b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/README.md new file mode 100644 index 00000000..ae704d28 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/README.md @@ -0,0 +1,3 @@ +# REST APIs Recording Project + +Nothing here yet! diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/app.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/app.py new file mode 100644 index 00000000..65d7d0ca --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/app.py @@ -0,0 +1,109 @@ +import os + +from flask import Flask, jsonify +from flask_smorest import Api +from flask_jwt_extended import JWTManager +from flask_migrate import Migrate +from dotenv import load_dotenv + + +from db import db +from blocklist import BLOCKLIST +import models + +from resources.item import blp as ItemBlueprint +from resources.store import blp as StoreBlueprint +from resources.tag import blp as TagBlueprint +from resources.user import blp as UserBlueprint + + +def create_app(db_url=None): + app = Flask(__name__) + load_dotenv() + + app.config["PROPAGATE_EXCEPTIONS"] = True + app.config["API_TITLE"] = "Stores REST API" + app.config["API_VERSION"] = "v1" + app.config["OPENAPI_VERSION"] = "3.0.3" + app.config["OPENAPI_URL_PREFIX"] = "/" + app.config["OPENAPI_SWAGGER_UI_PATH"] = "/swagger-ui" + app.config["OPENAPI_SWAGGER_UI_URL"] = "https://cdn.jsdelivr.net/npm/swagger-ui-dist/" + app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db") + app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + db.init_app(app) + migrate = Migrate(app, db) + api = Api(app) + + app.config["JWT_SECRET_KEY"] = "jose" + jwt = JWTManager(app) + + @jwt.token_in_blocklist_loader + def check_if_token_in_blocklist(jwt_header, jwt_payload): + return jwt_payload["jti"] in BLOCKLIST + + @jwt.revoked_token_loader + def revoked_token_callback(jwt_header, jwt_payload): + return ( + jsonify( + {"description": "The token has been revoked.", "error": "token_revoked"} + ), + 401, + ) + + @jwt.needs_fresh_token_loader + def token_not_fresh_callback(jwt_header, jwt_payload): + return ( + jsonify( + { + "description": "The token is not fresh.", + "error": "fresh_token_required", + } + ), + 401, + ) + + @jwt.additional_claims_loader + def add_claims_to_jwt(identity): + # Look in the database and see whether the user is an admin + if identity == 1: + return {"is_admin": True} + return {"is_admin": False} + + @jwt.expired_token_loader + def expired_token_callback(jwt_header, jwt_payload): + return ( + jsonify({"message": "The token has expired.", "error": "token_expired"}), + 401, + ) + + @jwt.invalid_token_loader + def invalid_token_callback(error): + return ( + jsonify( + {"message": "Signature verification failed.", "error": "invalid_token"} + ), + 401, + ) + + @jwt.unauthorized_loader + def missing_token_callback(error): + return ( + jsonify( + { + "description": "Request does not contain an access token.", + "error": "authorization_required", + } + ), + 401, + ) + + @app.before_first_request + def create_tables(): + db.create_all() + + api.register_blueprint(ItemBlueprint) + api.register_blueprint(StoreBlueprint) + api.register_blueprint(TagBlueprint) + api.register_blueprint(UserBlueprint) + + return app \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/blocklist.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/blocklist.py new file mode 100644 index 00000000..77751bef --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/blocklist.py @@ -0,0 +1,9 @@ +""" +blocklist.py + +This file just contains the blocklist of the JWT tokens. It will be imported by +app and the logout resource so that tokens can be added to the blocklist when the +user logs out. +""" + +BLOCKLIST = set() \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/db.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/db.py new file mode 100644 index 00000000..f0b13d6f --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/db.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/docker-entrypoint.sh b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/docker-entrypoint.sh new file mode 100644 index 00000000..134c2988 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +flask db upgrade + +exec gunicorn --bind 0.0.0.0:80 "app:create_app()" \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/README b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/README new file mode 100644 index 00000000..0e048441 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/README @@ -0,0 +1 @@ +Single-database configuration for Flask. diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/alembic.ini b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/alembic.ini new file mode 100644 index 00000000..ec9d45c2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/alembic.ini @@ -0,0 +1,50 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic,flask_migrate + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[logger_flask_migrate] +level = INFO +handlers = +qualname = flask_migrate + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/env.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/env.py new file mode 100644 index 00000000..2ec83a7e --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/env.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import logging +from logging.config import fileConfig + +from flask import current_app + +from alembic import context + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +config.set_main_option( + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.get_engine().url).replace( + '%', '%%')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + compare_type=True, + literal_binds=True + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + connectable = current_app.extensions['migrate'].db.get_engine() + + with connectable.connect() as connection: + context.configure( + connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + compare_type=True, + **current_app.extensions['migrate'].configure_args + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/script.py.mako b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/script.py.mako new file mode 100644 index 00000000..2c015630 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/07006e31e788_.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/07006e31e788_.py new file mode 100644 index 00000000..e58a46db --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/07006e31e788_.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 07006e31e788 +Revises: +Create Date: 2022-08-15 12:44:59.705694 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '07006e31e788' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('stores', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=80), nullable=False), + sa.Column('password', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('username') + ) + op.create_table('items', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('price', sa.Float(precision=2), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('items_tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('item_id', sa.Integer(), nullable=True), + sa.Column('tag_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['item_id'], ['items.id'], ), + sa.ForeignKeyConstraint(['tag_id'], ['tags.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('items_tags') + op.drop_table('tags') + op.drop_table('items') + op.drop_table('users') + op.drop_table('stores') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/8ca023a4a4b0_.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/8ca023a4a4b0_.py new file mode 100644 index 00000000..3c369e48 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/8ca023a4a4b0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 8ca023a4a4b0 +Revises: 07006e31e788 +Create Date: 2022-08-15 12:52:41.303543 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8ca023a4a4b0' +down_revision = '07006e31e788' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('items', sa.Column('description', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('items', 'description') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/bb5da1e68550_.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/bb5da1e68550_.py new file mode 100644 index 00000000..e6e23e40 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/migrations/versions/bb5da1e68550_.py @@ -0,0 +1,42 @@ +"""empty message + +Revision ID: bb5da1e68550 +Revises: 8ca023a4a4b0 +Create Date: 2022-08-29 13:06:57.697368 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'bb5da1e68550' +down_revision = '8ca023a4a4b0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('items', 'price', + existing_type=sa.REAL(), + type_=sa.Float(precision=2), + existing_nullable=False) + op.alter_column('users', 'password', + existing_type=sa.VARCHAR(length=80), + type_=sa.String(length=256), + existing_nullable=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'password', + existing_type=sa.String(length=256), + type_=sa.VARCHAR(length=80), + existing_nullable=False) + op.alter_column('items', 'price', + existing_type=sa.Float(precision=2), + type_=sa.REAL(), + existing_nullable=False) + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/__init__.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/__init__.py new file mode 100644 index 00000000..04f2e012 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/__init__.py @@ -0,0 +1,5 @@ +from models.store import StoreModel +from models.item import ItemModel +from models.tag import TagModel +from models.item_tags import ItemTags +from models.user import UserModel \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/item.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/item.py new file mode 100644 index 00000000..45006d57 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/item.py @@ -0,0 +1,13 @@ +from sqlalchemy import ForeignKey +from db import db + +class ItemModel(db.Model): + __tablename__ = "items" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=False, nullable=False) + description = db.Column(db.String) + price = db.Column(db.Float(precision=2), unique=False, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), unique=False, nullable=False) + store = db.relationship("StoreModel", back_populates="items") + tags = db.relationship("TagModel", back_populates="items", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/item_tags.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/item_tags.py new file mode 100644 index 00000000..5dfd5cf5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/item_tags.py @@ -0,0 +1,9 @@ +from db import db + + +class ItemTags(db.Model): + __tablename__ = "items_tags" + + id = db.Column(db.Integer, primary_key=True) + item_id = db.Column(db.Integer, db.ForeignKey("items.id")) + tag_id = db.Column(db.Integer, db.ForeignKey("tags.id")) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/store.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/store.py new file mode 100644 index 00000000..90ad43d5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/store.py @@ -0,0 +1,10 @@ +from db import db + + +class StoreModel(db.Model): + __tablename__ = "stores" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + items = db.relationship("ItemModel", back_populates="store", lazy="dynamic") + tags = db.relationship("TagModel", back_populates="store", lazy="dynamic") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/tag.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/tag.py new file mode 100644 index 00000000..008e8d37 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/tag.py @@ -0,0 +1,12 @@ +from db import db + + +class TagModel(db.Model): + __tablename__ = "tags" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), nullable=False) + + store = db.relationship("StoreModel", back_populates="tags") + items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/user.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/user.py new file mode 100644 index 00000000..fefdf936 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/models/user.py @@ -0,0 +1,9 @@ +from db import db + + +class UserModel(db.Model): + __tablename__ = "users" + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + password = db.Column(db.String(256), nullable=False) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/requirements.txt b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/requirements.txt new file mode 100644 index 00000000..31d5b60b --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/requirements.txt @@ -0,0 +1,10 @@ +flask==2.1.3 +flask-smorest +python-dotenv +sqlalchemy +flask-sqlalchemy +flask-jwt-extended +passlib +flask-migrate +gunicorn +psycopg2 \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/item.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/item.py new file mode 100644 index 00000000..545f73b5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/item.py @@ -0,0 +1,67 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from flask_jwt_extended import jwt_required, get_jwt +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import ItemModel +from schemas import ItemSchema, ItemUpdateSchema + +blp = Blueprint("Items", __name__, description="Operations on items") + + +@blp.route("/item/") +class Item(MethodView): + @jwt_required() + @blp.response(200, ItemSchema) + def get(self, item_id): + item = ItemModel.query.get_or_404(item_id) + return item + + @jwt_required() + def delete(self, item_id): + jwt = get_jwt() + if not jwt.get("is_admin"): + abort(401, message="Admin privilege required.") + + item = ItemModel.query.get_or_404(item_id) + db.session.delete(item) + db.session.commit() + return {"message": "Item deleted."} + + @blp.arguments(ItemUpdateSchema) + @blp.response(200, ItemSchema) + def put(self, item_data, item_id): + item = ItemModel.query.get(item_id) + if item: + item.price = item_data["price"] + item.name = item_data["name"] + else: + item = ItemModel(id=item_id, **item_data) + + db.session.add(item) + db.session.commit() + + return item + + +@blp.route("/item") +class ItemList(MethodView): + @jwt_required() + @blp.response(200, ItemSchema(many=True)) + def get(self): + return ItemModel.query.all() + + @jwt_required(fresh=True) + @blp.arguments(ItemSchema) + @blp.response(201, ItemSchema) + def post(self, item_data): + item = ItemModel(**item_data) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred whilte inserting the item.") + + return item \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/store.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/store.py new file mode 100644 index 00000000..488c1f67 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/store.py @@ -0,0 +1,51 @@ +import uuid +from flask import request +from flask.views import MethodView +from flask_smorest import Blueprint, abort + +from sqlalchemy.exc import SQLAlchemyError, IntegrityError + +from db import db +from models import StoreModel +from schemas import StoreSchema + + +blp = Blueprint("stores", __name__, description="Operations on stores") + + +@blp.route("/store/") +class Store(MethodView): + @blp.response(200, StoreSchema) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + return store + + def delete(self, store_id): + store = StoreModel.query.get_or_404(store_id) + db.session.delete(store) + db.session.commit() + return {"message": "Store deleted"} + + +@blp.route("/store") +class StoreList(MethodView): + @blp.response(200, StoreSchema(many=True)) + def get(self): + return StoreModel.query.all() + + @blp.arguments(StoreSchema) + @blp.response(200, StoreSchema) + def post(self, store_data): + store = StoreModel(**store_data) + try: + db.session.add(store) + db.session.commit() + except IntegrityError: + abort( + 400, + message="A store with that name already exists.", + ) + except SQLAlchemyError: + abort(500, message="An error occurred creating the store.") + + return store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/tag.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/tag.py new file mode 100644 index 00000000..f15c41b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/tag.py @@ -0,0 +1,97 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import TagModel, StoreModel, ItemModel +from schemas import TagSchema, TagAndItemSchema + +blp = Blueprint("Tags", "tags", description="Operations on tags") + + +@blp.route("/store//tag") +class TagsInStore(MethodView): + @blp.response(200, TagSchema(many=True)) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + + return store.tags.all() + + @blp.arguments(TagSchema) + @blp.response(201, TagSchema) + def post(self, tag_data, store_id): + tag = TagModel(**tag_data, store_id=store_id) + + try: + db.session.add(tag) + db.session.commit() + except SQLAlchemyError as e: + abort( + 500, + message=str(e) + ) + + return tag + + +@blp.route("/item//tag/") +class LinkTagsToItem(MethodView): + @blp.response(201, TagSchema) + def post(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.append(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return tag + + @blp.response(200, TagAndItemSchema) + def delete(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.remove(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return {"message": "Item removed from tag", "item": item, "tag": tag} + + +@blp.route("/tag/") +class Tag(MethodView): + @blp.response(200, TagSchema) + def get(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + return tag + + @blp.response( + 202, + description="Deletes a tag if no item is tagged with it.", + example={"message": "Tag deleted."} + ) + @blp.alt_response(404, description="Tag not found.") + @blp.alt_response( + 400, + description="Returned if the tag is assigned to one or more items. In this case, the tag is not deleted." + ) + def delete(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + + if not tag.items: + db.session.delete(tag) + db.session.commit() + return {"message": "Tag deleted."} + abort( + 400, + message="Could not delete tag. Make sure tag is not associated with any items, then try again.", + ) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/user.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/user.py new file mode 100644 index 00000000..a3edc00d --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/resources/user.py @@ -0,0 +1,77 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from passlib.hash import pbkdf2_sha256 +from flask_jwt_extended import create_access_token, create_refresh_token, get_jwt_identity, jwt_required, get_jwt + +from db import db +from blocklist import BLOCKLIST +from models import UserModel +from schemas import UserSchema + + +blp = Blueprint("Users", "users", description="Operations on users") + + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + if UserModel.query.filter(UserModel.username == user_data["username"]).first(): + abort(409, message="A user with that username already exists.") + + user = UserModel( + username=user_data["username"], + password=pbkdf2_sha256.hash(user_data["password"]) + ) + db.session.add(user) + db.session.commit() + + return {"message": "User created successfully."}, 201 + + +@blp.route("/login") +class UserLogin(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + user = UserModel.query.filter( + UserModel.username == user_data["username"] + ).first() + + if user and pbkdf2_sha256.verify(user_data["password"], user.password): + access_token = create_access_token(identity=user.id, fresh=True) + refresh_token = create_refresh_token(identity=user.id) + return {"access_token": access_token, "refresh_token": refresh_token} + + abort(401, message="Invalid credentials.") + + +@blp.route("/refresh") +class TokenRefresh(MethodView): + @jwt_required(refresh=True) + def post(self): + current_user = get_jwt_identity() + new_token = create_access_token(identity=current_user, fresh=False) + return {"access_token": new_token} + + +@blp.route("/logout") +class UserLogout(MethodView): + @jwt_required() + def post(self): + jti = get_jwt()["jti"] + BLOCKLIST.add(jti) + return {"message": "Successfully logged out."} + + +@blp.route("/user/") +class User(MethodView): + @blp.response(200, UserSchema) + def get(self, user_id): + user = UserModel.query.get_or_404(user_id) + return user + + def delete(self, user_id): + user = UserModel.query.get_or_404(user_id) + db.session.delete(user) + db.session.commit() + return {"message": "User deleted."}, 200 \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/schemas.py b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/schemas.py new file mode 100644 index 00000000..cb3f7a07 --- /dev/null +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/start/schemas.py @@ -0,0 +1,52 @@ +from marshmallow import Schema, fields + + +class PlainItemSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + price = fields.Float(required=True) + + +class PlainStoreSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + + +class PlainTagSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str() + + +class ItemUpdateSchema(Schema): + name = fields.Str() + price = fields.Float() + store_id = fields.Int() + + +class ItemSchema(PlainItemSchema): + store_id = fields.Int(required=True, load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class StoreSchema(PlainStoreSchema): + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class TagSchema(PlainTagSchema): + store_id = fields.Int(load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + + +class TagAndItemSchema(Schema): + message = fields.Str() + item = fields.Nested(ItemSchema) + tag = fields.Nested(TagSchema) + + +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/README.md b/docs/docs/12_task_queues_emails/02_send_email_user_registration/README.md new file mode 100644 index 00000000..99256545 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/README.md @@ -0,0 +1,150 @@ +# Sending emails when users register + +If we want to be able to send emails to users when they register, we'll need to: + +- Add an `email` column to the user model. +- Collect user email addresses when users register. + +Let's begin with the model. + +## Add an `email` column to the user model + +```diff title="models/user.py" ++ email = db.Column(db.String, unique=True, nullable=False) +``` + +Then run the migration as we've already learned, to generate the migration script and upgrade the database to include the new column: + +```bash +flask db migrate +``` + +Now let's check the migration script. It should include adding the `email` column, and making it unique. + +Make sure that the `UniqueConstraint` is given a name. Alembic won't do this for you. Instead, it gives it the name `None` by default: + +```py +op.create_unique_constraint(None, 'users', ['email']) +``` + +Change that to this: + +```py +op.create_unique_constraint("email", 'users', ['email']) +``` + +And also when dropping the constraint: + +```py +op.drop_constraint("email", 'users', type_='unique') +``` + +```bash +flask db upgrade # make sure this is using the local dev database +``` + +## Collect user email addresses when they register + +To do this, first let's add an `email` field to the incoming data. Remember that we use the `UserSchema` for this in our API, but at the moment we are using `UserSchema` for two things: registration and login. + +If we modify `UserSchema` to add an email field, users will need to give us their username, email, and password when they log in. + +So it's better to keep two schemas: one for registration, which asks for an email, and one for login, which only asks for the username. + +```py +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True, load_only=True) + + +# highlight-start +class UserRegisterSchema(UserSchema): + email = fields.Str(required=True) +# highlight-end +``` + +:::info +You could also get rid of usernames and only use emails. You can use email/password for login in that case! +::: + +Now that we've got that, we can actually use the email field to create our `UserModel` objects: + +```py title="resources/user.py" +from schemas import UserSchema, UserRegisterSchema + +... + +@blp.route("/register") +class UserRegister(MethodView): + # highlight-start + @blp.arguments(UserRegisterSchema) + # highlight-end + def post(self, user_data): +... + + user = UserModel( + username=user_data["username"], + # highlight-start + email=user_data["email"], + # highlight-end + password=pbkdf2_sha256.hash(user_data["password"]), + ) +``` + +Now we can use the `send_simple_message` function [we defined earlier](../01_send_emails_python_mailgun/README.md#sending-emails-with-mailgun) to actually send an email! + +```py title="resources/user.py" +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter(UserModel.username == user_data["username"]).first(): + abort(409, message="A user with that username already exists.") + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + # highlight-start + send_simple_message( + to=user.email, + subject="Successfully signed up", + body=f"Hi {user.username}! You have successfully signed up to the Stores REST API." + ) + # highlight-end + + return {"message": "User created successfully."}, 201 +``` + +## Error handling duplicate emails + +In our `UserRegister` resource we are checking for duplicate usernames, but we should also check for duplicate emails. Otherwise, if a user tries to sign up with an email that already exists in the database, they'll get an ugly error. + +```py title="resources/user.py" +from sqlalchemy import or_ + +... + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter( + or_( + UserModel.username == user_data["username"], + UserModel.email == user_data["email"] + ) + ).first(): + abort(409, message="A user with that username or email already exists.") + + # ... Method continues here ... +``` + +So voilà, we're now sending an email when a user signs up! + +But sending an email can take a non-trivial amount of time... Wouldn't it be nice if we could offload the task of sending emails to another process, so that it happens in the background without our API user having to wait? \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.env.example b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.env.example new file mode 100644 index 00000000..312ae619 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.env.example @@ -0,0 +1,3 @@ +DATABASE_URL= +MAILGUN_API_KEY= +MAILGUN_DOMAIN= \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.flaskenv b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.flaskenv new file mode 100644 index 00000000..75473901 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=app +FLASK_ENV=development \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.gitignore b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.gitignore new file mode 100644 index 00000000..6104f428 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.gitignore @@ -0,0 +1,7 @@ +.env +.venv +.vscode +__pycache__ +data.db +*.pyc +.DS_Store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.python-version b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.python-version new file mode 100644 index 00000000..ac957df8 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/.python-version @@ -0,0 +1 @@ +3.10.6 diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/CONTRIBUTING.md b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/CONTRIBUTING.md new file mode 100644 index 00000000..7e550e79 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUTING + +## How to run the Dockerfile locally + +``` +docker run -dp 5000:5000 -w /app -v "$(pwd):/app" IMAGE_NAME sh -c "flask run" +``` diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/Dockerfile b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/Dockerfile new file mode 100644 index 00000000..121cf5b6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.10 +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir --upgrade -r requirements.txt +COPY . . +CMD ["/bin/bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/README.md b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/README.md new file mode 100644 index 00000000..ae704d28 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/README.md @@ -0,0 +1,3 @@ +# REST APIs Recording Project + +Nothing here yet! diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/app.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/app.py new file mode 100644 index 00000000..65d7d0ca --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/app.py @@ -0,0 +1,109 @@ +import os + +from flask import Flask, jsonify +from flask_smorest import Api +from flask_jwt_extended import JWTManager +from flask_migrate import Migrate +from dotenv import load_dotenv + + +from db import db +from blocklist import BLOCKLIST +import models + +from resources.item import blp as ItemBlueprint +from resources.store import blp as StoreBlueprint +from resources.tag import blp as TagBlueprint +from resources.user import blp as UserBlueprint + + +def create_app(db_url=None): + app = Flask(__name__) + load_dotenv() + + app.config["PROPAGATE_EXCEPTIONS"] = True + app.config["API_TITLE"] = "Stores REST API" + app.config["API_VERSION"] = "v1" + app.config["OPENAPI_VERSION"] = "3.0.3" + app.config["OPENAPI_URL_PREFIX"] = "/" + app.config["OPENAPI_SWAGGER_UI_PATH"] = "/swagger-ui" + app.config["OPENAPI_SWAGGER_UI_URL"] = "https://cdn.jsdelivr.net/npm/swagger-ui-dist/" + app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db") + app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + db.init_app(app) + migrate = Migrate(app, db) + api = Api(app) + + app.config["JWT_SECRET_KEY"] = "jose" + jwt = JWTManager(app) + + @jwt.token_in_blocklist_loader + def check_if_token_in_blocklist(jwt_header, jwt_payload): + return jwt_payload["jti"] in BLOCKLIST + + @jwt.revoked_token_loader + def revoked_token_callback(jwt_header, jwt_payload): + return ( + jsonify( + {"description": "The token has been revoked.", "error": "token_revoked"} + ), + 401, + ) + + @jwt.needs_fresh_token_loader + def token_not_fresh_callback(jwt_header, jwt_payload): + return ( + jsonify( + { + "description": "The token is not fresh.", + "error": "fresh_token_required", + } + ), + 401, + ) + + @jwt.additional_claims_loader + def add_claims_to_jwt(identity): + # Look in the database and see whether the user is an admin + if identity == 1: + return {"is_admin": True} + return {"is_admin": False} + + @jwt.expired_token_loader + def expired_token_callback(jwt_header, jwt_payload): + return ( + jsonify({"message": "The token has expired.", "error": "token_expired"}), + 401, + ) + + @jwt.invalid_token_loader + def invalid_token_callback(error): + return ( + jsonify( + {"message": "Signature verification failed.", "error": "invalid_token"} + ), + 401, + ) + + @jwt.unauthorized_loader + def missing_token_callback(error): + return ( + jsonify( + { + "description": "Request does not contain an access token.", + "error": "authorization_required", + } + ), + 401, + ) + + @app.before_first_request + def create_tables(): + db.create_all() + + api.register_blueprint(ItemBlueprint) + api.register_blueprint(StoreBlueprint) + api.register_blueprint(TagBlueprint) + api.register_blueprint(UserBlueprint) + + return app \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/blocklist.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/blocklist.py new file mode 100644 index 00000000..77751bef --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/blocklist.py @@ -0,0 +1,9 @@ +""" +blocklist.py + +This file just contains the blocklist of the JWT tokens. It will be imported by +app and the logout resource so that tokens can be added to the blocklist when the +user logs out. +""" + +BLOCKLIST = set() \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/db.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/db.py new file mode 100644 index 00000000..f0b13d6f --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/db.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/docker-entrypoint.sh b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/docker-entrypoint.sh new file mode 100644 index 00000000..134c2988 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +flask db upgrade + +exec gunicorn --bind 0.0.0.0:80 "app:create_app()" \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/README b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/README new file mode 100644 index 00000000..0e048441 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/README @@ -0,0 +1 @@ +Single-database configuration for Flask. diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/alembic.ini b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/alembic.ini new file mode 100644 index 00000000..ec9d45c2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/alembic.ini @@ -0,0 +1,50 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic,flask_migrate + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[logger_flask_migrate] +level = INFO +handlers = +qualname = flask_migrate + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/env.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/env.py new file mode 100644 index 00000000..2ec83a7e --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/env.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import logging +from logging.config import fileConfig + +from flask import current_app + +from alembic import context + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +config.set_main_option( + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.get_engine().url).replace( + '%', '%%')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + compare_type=True, + literal_binds=True + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + connectable = current_app.extensions['migrate'].db.get_engine() + + with connectable.connect() as connection: + context.configure( + connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + compare_type=True, + **current_app.extensions['migrate'].configure_args + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/script.py.mako b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/script.py.mako new file mode 100644 index 00000000..2c015630 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/07006e31e788_.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/07006e31e788_.py new file mode 100644 index 00000000..e58a46db --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/07006e31e788_.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 07006e31e788 +Revises: +Create Date: 2022-08-15 12:44:59.705694 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '07006e31e788' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('stores', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=80), nullable=False), + sa.Column('password', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('username') + ) + op.create_table('items', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('price', sa.Float(precision=2), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('items_tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('item_id', sa.Integer(), nullable=True), + sa.Column('tag_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['item_id'], ['items.id'], ), + sa.ForeignKeyConstraint(['tag_id'], ['tags.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('items_tags') + op.drop_table('tags') + op.drop_table('items') + op.drop_table('users') + op.drop_table('stores') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/8ca023a4a4b0_.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/8ca023a4a4b0_.py new file mode 100644 index 00000000..3c369e48 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/8ca023a4a4b0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 8ca023a4a4b0 +Revises: 07006e31e788 +Create Date: 2022-08-15 12:52:41.303543 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8ca023a4a4b0' +down_revision = '07006e31e788' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('items', sa.Column('description', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('items', 'description') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/bb5da1e68550_.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/bb5da1e68550_.py new file mode 100644 index 00000000..98ef4cdf --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/bb5da1e68550_.py @@ -0,0 +1,54 @@ +"""empty message + +Revision ID: bb5da1e68550 +Revises: 8ca023a4a4b0 +Create Date: 2022-08-29 13:06:57.697368 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "bb5da1e68550" +down_revision = "8ca023a4a4b0" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column( + "items", + "price", + existing_type=sa.REAL(), + type_=sa.Float(precision=2), + existing_nullable=False, + ) + op.alter_column( + "users", + "password", + existing_type=sa.VARCHAR(length=80), + type_=sa.String(length=256), + existing_nullable=False, + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column( + "users", + "password", + existing_type=sa.String(length=256), + type_=sa.VARCHAR(length=80), + existing_nullable=False, + ) + op.alter_column( + "items", + "price", + existing_type=sa.Float(precision=2), + type_=sa.REAL(), + existing_nullable=False, + ) + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/d8e0f80631fb_.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/d8e0f80631fb_.py new file mode 100644 index 00000000..c5a7f793 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/migrations/versions/d8e0f80631fb_.py @@ -0,0 +1,30 @@ +"""empty message + +Revision ID: d8e0f80631fb +Revises: bb5da1e68550 +Create Date: 2022-10-11 14:46:28.100282 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "d8e0f80631fb" +down_revision = "bb5da1e68550" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column("users", sa.Column("email", sa.String(), nullable=False)) + op.create_unique_constraint("email", "users", ["email"]) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint("email", "users", type_="unique") + op.drop_column("users", "email") + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/__init__.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/__init__.py new file mode 100644 index 00000000..04f2e012 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/__init__.py @@ -0,0 +1,5 @@ +from models.store import StoreModel +from models.item import ItemModel +from models.tag import TagModel +from models.item_tags import ItemTags +from models.user import UserModel \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/item.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/item.py new file mode 100644 index 00000000..45006d57 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/item.py @@ -0,0 +1,13 @@ +from sqlalchemy import ForeignKey +from db import db + +class ItemModel(db.Model): + __tablename__ = "items" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=False, nullable=False) + description = db.Column(db.String) + price = db.Column(db.Float(precision=2), unique=False, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), unique=False, nullable=False) + store = db.relationship("StoreModel", back_populates="items") + tags = db.relationship("TagModel", back_populates="items", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/item_tags.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/item_tags.py new file mode 100644 index 00000000..5dfd5cf5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/item_tags.py @@ -0,0 +1,9 @@ +from db import db + + +class ItemTags(db.Model): + __tablename__ = "items_tags" + + id = db.Column(db.Integer, primary_key=True) + item_id = db.Column(db.Integer, db.ForeignKey("items.id")) + tag_id = db.Column(db.Integer, db.ForeignKey("tags.id")) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/store.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/store.py new file mode 100644 index 00000000..90ad43d5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/store.py @@ -0,0 +1,10 @@ +from db import db + + +class StoreModel(db.Model): + __tablename__ = "stores" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + items = db.relationship("ItemModel", back_populates="store", lazy="dynamic") + tags = db.relationship("TagModel", back_populates="store", lazy="dynamic") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/tag.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/tag.py new file mode 100644 index 00000000..008e8d37 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/tag.py @@ -0,0 +1,12 @@ +from db import db + + +class TagModel(db.Model): + __tablename__ = "tags" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), nullable=False) + + store = db.relationship("StoreModel", back_populates="tags") + items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/user.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/user.py new file mode 100644 index 00000000..5fb33bbb --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/models/user.py @@ -0,0 +1,10 @@ +from db import db + + +class UserModel(db.Model): + __tablename__ = "users" + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + email = db.Column(db.String, unique=True, nullable=False) + password = db.Column(db.String(256), nullable=False) diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/requirements.txt b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/requirements.txt new file mode 100644 index 00000000..215ae898 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/requirements.txt @@ -0,0 +1,11 @@ +flask==2.1.3 +flask-smorest +python-dotenv +sqlalchemy +flask-sqlalchemy +flask-jwt-extended +passlib +flask-migrate +gunicorn +psycopg2 +requests \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/item.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/item.py new file mode 100644 index 00000000..545f73b5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/item.py @@ -0,0 +1,67 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from flask_jwt_extended import jwt_required, get_jwt +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import ItemModel +from schemas import ItemSchema, ItemUpdateSchema + +blp = Blueprint("Items", __name__, description="Operations on items") + + +@blp.route("/item/") +class Item(MethodView): + @jwt_required() + @blp.response(200, ItemSchema) + def get(self, item_id): + item = ItemModel.query.get_or_404(item_id) + return item + + @jwt_required() + def delete(self, item_id): + jwt = get_jwt() + if not jwt.get("is_admin"): + abort(401, message="Admin privilege required.") + + item = ItemModel.query.get_or_404(item_id) + db.session.delete(item) + db.session.commit() + return {"message": "Item deleted."} + + @blp.arguments(ItemUpdateSchema) + @blp.response(200, ItemSchema) + def put(self, item_data, item_id): + item = ItemModel.query.get(item_id) + if item: + item.price = item_data["price"] + item.name = item_data["name"] + else: + item = ItemModel(id=item_id, **item_data) + + db.session.add(item) + db.session.commit() + + return item + + +@blp.route("/item") +class ItemList(MethodView): + @jwt_required() + @blp.response(200, ItemSchema(many=True)) + def get(self): + return ItemModel.query.all() + + @jwt_required(fresh=True) + @blp.arguments(ItemSchema) + @blp.response(201, ItemSchema) + def post(self, item_data): + item = ItemModel(**item_data) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred whilte inserting the item.") + + return item \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/store.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/store.py new file mode 100644 index 00000000..488c1f67 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/store.py @@ -0,0 +1,51 @@ +import uuid +from flask import request +from flask.views import MethodView +from flask_smorest import Blueprint, abort + +from sqlalchemy.exc import SQLAlchemyError, IntegrityError + +from db import db +from models import StoreModel +from schemas import StoreSchema + + +blp = Blueprint("stores", __name__, description="Operations on stores") + + +@blp.route("/store/") +class Store(MethodView): + @blp.response(200, StoreSchema) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + return store + + def delete(self, store_id): + store = StoreModel.query.get_or_404(store_id) + db.session.delete(store) + db.session.commit() + return {"message": "Store deleted"} + + +@blp.route("/store") +class StoreList(MethodView): + @blp.response(200, StoreSchema(many=True)) + def get(self): + return StoreModel.query.all() + + @blp.arguments(StoreSchema) + @blp.response(200, StoreSchema) + def post(self, store_data): + store = StoreModel(**store_data) + try: + db.session.add(store) + db.session.commit() + except IntegrityError: + abort( + 400, + message="A store with that name already exists.", + ) + except SQLAlchemyError: + abort(500, message="An error occurred creating the store.") + + return store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/tag.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/tag.py new file mode 100644 index 00000000..f15c41b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/tag.py @@ -0,0 +1,97 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import TagModel, StoreModel, ItemModel +from schemas import TagSchema, TagAndItemSchema + +blp = Blueprint("Tags", "tags", description="Operations on tags") + + +@blp.route("/store//tag") +class TagsInStore(MethodView): + @blp.response(200, TagSchema(many=True)) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + + return store.tags.all() + + @blp.arguments(TagSchema) + @blp.response(201, TagSchema) + def post(self, tag_data, store_id): + tag = TagModel(**tag_data, store_id=store_id) + + try: + db.session.add(tag) + db.session.commit() + except SQLAlchemyError as e: + abort( + 500, + message=str(e) + ) + + return tag + + +@blp.route("/item//tag/") +class LinkTagsToItem(MethodView): + @blp.response(201, TagSchema) + def post(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.append(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return tag + + @blp.response(200, TagAndItemSchema) + def delete(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.remove(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return {"message": "Item removed from tag", "item": item, "tag": tag} + + +@blp.route("/tag/") +class Tag(MethodView): + @blp.response(200, TagSchema) + def get(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + return tag + + @blp.response( + 202, + description="Deletes a tag if no item is tagged with it.", + example={"message": "Tag deleted."} + ) + @blp.alt_response(404, description="Tag not found.") + @blp.alt_response( + 400, + description="Returned if the tag is assigned to one or more items. In this case, the tag is not deleted." + ) + def delete(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + + if not tag.items: + db.session.delete(tag) + db.session.commit() + return {"message": "Tag deleted."} + abort( + 400, + message="Could not delete tag. Make sure tag is not associated with any items, then try again.", + ) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/user.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/user.py new file mode 100644 index 00000000..9fd3da6b --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/resources/user.py @@ -0,0 +1,112 @@ +import os +import requests +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from passlib.hash import pbkdf2_sha256 +from flask_jwt_extended import ( + create_access_token, + create_refresh_token, + get_jwt_identity, + jwt_required, + get_jwt, +) +from sqlalchemy import or_ + +from db import db +from blocklist import BLOCKLIST +from models import UserModel +from schemas import UserSchema, UserRegisterSchema + + +blp = Blueprint("Users", "users", description="Operations on users") + + +def send_simple_message(to, subject, body): + domain = os.getenv("MAILGUN_DOMAIN") + return requests.post( + f"https://api.mailgun.net/v3/{domain}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={ + "from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body, + }, + ) + + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter( + or_( + UserModel.username == user_data["username"], + UserModel.email == user_data["email"], + ) + ).first(): + abort(409, message="A user with that username or email already exists.") + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + send_simple_message( + to=user.email, + subject="Successfully signed up", + body=f"Hi {user.username}! You have successfully signed up to the Stores REST API.", + ) + + return {"message": "User created successfully."}, 201 + + +@blp.route("/login") +class UserLogin(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + user = UserModel.query.filter( + UserModel.username == user_data["username"] + ).first() + + if user and pbkdf2_sha256.verify(user_data["password"], user.password): + access_token = create_access_token(identity=user.id, fresh=True) + refresh_token = create_refresh_token(identity=user.id) + return {"access_token": access_token, "refresh_token": refresh_token} + + abort(401, message="Invalid credentials.") + + +@blp.route("/refresh") +class TokenRefresh(MethodView): + @jwt_required(refresh=True) + def post(self): + current_user = get_jwt_identity() + new_token = create_access_token(identity=current_user, fresh=False) + return {"access_token": new_token} + + +@blp.route("/logout") +class UserLogout(MethodView): + @jwt_required() + def post(self): + jti = get_jwt()["jti"] + BLOCKLIST.add(jti) + return {"message": "Successfully logged out."} + + +@blp.route("/user/") +class User(MethodView): + @blp.response(200, UserSchema) + def get(self, user_id): + user = UserModel.query.get_or_404(user_id) + return user + + def delete(self, user_id): + user = UserModel.query.get_or_404(user_id) + db.session.delete(user) + db.session.commit() + return {"message": "User deleted."}, 200 diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/schemas.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/schemas.py new file mode 100644 index 00000000..8c145440 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/end/schemas.py @@ -0,0 +1,56 @@ +from marshmallow import Schema, fields + + +class PlainItemSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + price = fields.Float(required=True) + + +class PlainStoreSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + + +class PlainTagSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str() + + +class ItemUpdateSchema(Schema): + name = fields.Str() + price = fields.Float() + store_id = fields.Int() + + +class ItemSchema(PlainItemSchema): + store_id = fields.Int(required=True, load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class StoreSchema(PlainStoreSchema): + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class TagSchema(PlainTagSchema): + store_id = fields.Int(load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + + +class TagAndItemSchema(Schema): + message = fields.Str() + item = fields.Nested(ItemSchema) + tag = fields.Nested(TagSchema) + + +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True) + + +class UserRegisterSchema(UserSchema): + email = fields.Str(required=True) diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.env.example b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.env.example new file mode 100644 index 00000000..312ae619 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.env.example @@ -0,0 +1,3 @@ +DATABASE_URL= +MAILGUN_API_KEY= +MAILGUN_DOMAIN= \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.flaskenv b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.flaskenv new file mode 100644 index 00000000..75473901 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=app +FLASK_ENV=development \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.gitignore b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.gitignore new file mode 100644 index 00000000..6104f428 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/.gitignore @@ -0,0 +1,7 @@ +.env +.venv +.vscode +__pycache__ +data.db +*.pyc +.DS_Store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/CONTRIBUTING.md b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/CONTRIBUTING.md new file mode 100644 index 00000000..7e550e79 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUTING + +## How to run the Dockerfile locally + +``` +docker run -dp 5000:5000 -w /app -v "$(pwd):/app" IMAGE_NAME sh -c "flask run" +``` diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/Dockerfile b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/Dockerfile new file mode 100644 index 00000000..121cf5b6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.10 +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir --upgrade -r requirements.txt +COPY . . +CMD ["/bin/bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/README.md b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/README.md new file mode 100644 index 00000000..ae704d28 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/README.md @@ -0,0 +1,3 @@ +# REST APIs Recording Project + +Nothing here yet! diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/app.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/app.py new file mode 100644 index 00000000..65d7d0ca --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/app.py @@ -0,0 +1,109 @@ +import os + +from flask import Flask, jsonify +from flask_smorest import Api +from flask_jwt_extended import JWTManager +from flask_migrate import Migrate +from dotenv import load_dotenv + + +from db import db +from blocklist import BLOCKLIST +import models + +from resources.item import blp as ItemBlueprint +from resources.store import blp as StoreBlueprint +from resources.tag import blp as TagBlueprint +from resources.user import blp as UserBlueprint + + +def create_app(db_url=None): + app = Flask(__name__) + load_dotenv() + + app.config["PROPAGATE_EXCEPTIONS"] = True + app.config["API_TITLE"] = "Stores REST API" + app.config["API_VERSION"] = "v1" + app.config["OPENAPI_VERSION"] = "3.0.3" + app.config["OPENAPI_URL_PREFIX"] = "/" + app.config["OPENAPI_SWAGGER_UI_PATH"] = "/swagger-ui" + app.config["OPENAPI_SWAGGER_UI_URL"] = "https://cdn.jsdelivr.net/npm/swagger-ui-dist/" + app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db") + app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + db.init_app(app) + migrate = Migrate(app, db) + api = Api(app) + + app.config["JWT_SECRET_KEY"] = "jose" + jwt = JWTManager(app) + + @jwt.token_in_blocklist_loader + def check_if_token_in_blocklist(jwt_header, jwt_payload): + return jwt_payload["jti"] in BLOCKLIST + + @jwt.revoked_token_loader + def revoked_token_callback(jwt_header, jwt_payload): + return ( + jsonify( + {"description": "The token has been revoked.", "error": "token_revoked"} + ), + 401, + ) + + @jwt.needs_fresh_token_loader + def token_not_fresh_callback(jwt_header, jwt_payload): + return ( + jsonify( + { + "description": "The token is not fresh.", + "error": "fresh_token_required", + } + ), + 401, + ) + + @jwt.additional_claims_loader + def add_claims_to_jwt(identity): + # Look in the database and see whether the user is an admin + if identity == 1: + return {"is_admin": True} + return {"is_admin": False} + + @jwt.expired_token_loader + def expired_token_callback(jwt_header, jwt_payload): + return ( + jsonify({"message": "The token has expired.", "error": "token_expired"}), + 401, + ) + + @jwt.invalid_token_loader + def invalid_token_callback(error): + return ( + jsonify( + {"message": "Signature verification failed.", "error": "invalid_token"} + ), + 401, + ) + + @jwt.unauthorized_loader + def missing_token_callback(error): + return ( + jsonify( + { + "description": "Request does not contain an access token.", + "error": "authorization_required", + } + ), + 401, + ) + + @app.before_first_request + def create_tables(): + db.create_all() + + api.register_blueprint(ItemBlueprint) + api.register_blueprint(StoreBlueprint) + api.register_blueprint(TagBlueprint) + api.register_blueprint(UserBlueprint) + + return app \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/blocklist.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/blocklist.py new file mode 100644 index 00000000..77751bef --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/blocklist.py @@ -0,0 +1,9 @@ +""" +blocklist.py + +This file just contains the blocklist of the JWT tokens. It will be imported by +app and the logout resource so that tokens can be added to the blocklist when the +user logs out. +""" + +BLOCKLIST = set() \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/db.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/db.py new file mode 100644 index 00000000..f0b13d6f --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/db.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/docker-entrypoint.sh b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/docker-entrypoint.sh new file mode 100644 index 00000000..134c2988 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +flask db upgrade + +exec gunicorn --bind 0.0.0.0:80 "app:create_app()" \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/README b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/README new file mode 100644 index 00000000..0e048441 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/README @@ -0,0 +1 @@ +Single-database configuration for Flask. diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/alembic.ini b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/alembic.ini new file mode 100644 index 00000000..ec9d45c2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/alembic.ini @@ -0,0 +1,50 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic,flask_migrate + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[logger_flask_migrate] +level = INFO +handlers = +qualname = flask_migrate + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/env.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/env.py new file mode 100644 index 00000000..2ec83a7e --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/env.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import logging +from logging.config import fileConfig + +from flask import current_app + +from alembic import context + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +config.set_main_option( + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.get_engine().url).replace( + '%', '%%')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + compare_type=True, + literal_binds=True + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + connectable = current_app.extensions['migrate'].db.get_engine() + + with connectable.connect() as connection: + context.configure( + connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + compare_type=True, + **current_app.extensions['migrate'].configure_args + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/script.py.mako b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/script.py.mako new file mode 100644 index 00000000..2c015630 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/07006e31e788_.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/07006e31e788_.py new file mode 100644 index 00000000..e58a46db --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/07006e31e788_.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 07006e31e788 +Revises: +Create Date: 2022-08-15 12:44:59.705694 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '07006e31e788' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('stores', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=80), nullable=False), + sa.Column('password', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('username') + ) + op.create_table('items', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('price', sa.Float(precision=2), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('items_tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('item_id', sa.Integer(), nullable=True), + sa.Column('tag_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['item_id'], ['items.id'], ), + sa.ForeignKeyConstraint(['tag_id'], ['tags.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('items_tags') + op.drop_table('tags') + op.drop_table('items') + op.drop_table('users') + op.drop_table('stores') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/8ca023a4a4b0_.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/8ca023a4a4b0_.py new file mode 100644 index 00000000..3c369e48 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/8ca023a4a4b0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 8ca023a4a4b0 +Revises: 07006e31e788 +Create Date: 2022-08-15 12:52:41.303543 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8ca023a4a4b0' +down_revision = '07006e31e788' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('items', sa.Column('description', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('items', 'description') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/bb5da1e68550_.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/bb5da1e68550_.py new file mode 100644 index 00000000..e6e23e40 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/migrations/versions/bb5da1e68550_.py @@ -0,0 +1,42 @@ +"""empty message + +Revision ID: bb5da1e68550 +Revises: 8ca023a4a4b0 +Create Date: 2022-08-29 13:06:57.697368 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'bb5da1e68550' +down_revision = '8ca023a4a4b0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('items', 'price', + existing_type=sa.REAL(), + type_=sa.Float(precision=2), + existing_nullable=False) + op.alter_column('users', 'password', + existing_type=sa.VARCHAR(length=80), + type_=sa.String(length=256), + existing_nullable=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'password', + existing_type=sa.String(length=256), + type_=sa.VARCHAR(length=80), + existing_nullable=False) + op.alter_column('items', 'price', + existing_type=sa.Float(precision=2), + type_=sa.REAL(), + existing_nullable=False) + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/__init__.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/__init__.py new file mode 100644 index 00000000..04f2e012 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/__init__.py @@ -0,0 +1,5 @@ +from models.store import StoreModel +from models.item import ItemModel +from models.tag import TagModel +from models.item_tags import ItemTags +from models.user import UserModel \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/item.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/item.py new file mode 100644 index 00000000..45006d57 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/item.py @@ -0,0 +1,13 @@ +from sqlalchemy import ForeignKey +from db import db + +class ItemModel(db.Model): + __tablename__ = "items" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=False, nullable=False) + description = db.Column(db.String) + price = db.Column(db.Float(precision=2), unique=False, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), unique=False, nullable=False) + store = db.relationship("StoreModel", back_populates="items") + tags = db.relationship("TagModel", back_populates="items", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/item_tags.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/item_tags.py new file mode 100644 index 00000000..5dfd5cf5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/item_tags.py @@ -0,0 +1,9 @@ +from db import db + + +class ItemTags(db.Model): + __tablename__ = "items_tags" + + id = db.Column(db.Integer, primary_key=True) + item_id = db.Column(db.Integer, db.ForeignKey("items.id")) + tag_id = db.Column(db.Integer, db.ForeignKey("tags.id")) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/store.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/store.py new file mode 100644 index 00000000..90ad43d5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/store.py @@ -0,0 +1,10 @@ +from db import db + + +class StoreModel(db.Model): + __tablename__ = "stores" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + items = db.relationship("ItemModel", back_populates="store", lazy="dynamic") + tags = db.relationship("TagModel", back_populates="store", lazy="dynamic") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/tag.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/tag.py new file mode 100644 index 00000000..008e8d37 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/tag.py @@ -0,0 +1,12 @@ +from db import db + + +class TagModel(db.Model): + __tablename__ = "tags" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), nullable=False) + + store = db.relationship("StoreModel", back_populates="tags") + items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/user.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/user.py new file mode 100644 index 00000000..fefdf936 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/models/user.py @@ -0,0 +1,9 @@ +from db import db + + +class UserModel(db.Model): + __tablename__ = "users" + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + password = db.Column(db.String(256), nullable=False) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/requirements.txt b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/requirements.txt new file mode 100644 index 00000000..215ae898 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/requirements.txt @@ -0,0 +1,11 @@ +flask==2.1.3 +flask-smorest +python-dotenv +sqlalchemy +flask-sqlalchemy +flask-jwt-extended +passlib +flask-migrate +gunicorn +psycopg2 +requests \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/item.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/item.py new file mode 100644 index 00000000..545f73b5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/item.py @@ -0,0 +1,67 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from flask_jwt_extended import jwt_required, get_jwt +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import ItemModel +from schemas import ItemSchema, ItemUpdateSchema + +blp = Blueprint("Items", __name__, description="Operations on items") + + +@blp.route("/item/") +class Item(MethodView): + @jwt_required() + @blp.response(200, ItemSchema) + def get(self, item_id): + item = ItemModel.query.get_or_404(item_id) + return item + + @jwt_required() + def delete(self, item_id): + jwt = get_jwt() + if not jwt.get("is_admin"): + abort(401, message="Admin privilege required.") + + item = ItemModel.query.get_or_404(item_id) + db.session.delete(item) + db.session.commit() + return {"message": "Item deleted."} + + @blp.arguments(ItemUpdateSchema) + @blp.response(200, ItemSchema) + def put(self, item_data, item_id): + item = ItemModel.query.get(item_id) + if item: + item.price = item_data["price"] + item.name = item_data["name"] + else: + item = ItemModel(id=item_id, **item_data) + + db.session.add(item) + db.session.commit() + + return item + + +@blp.route("/item") +class ItemList(MethodView): + @jwt_required() + @blp.response(200, ItemSchema(many=True)) + def get(self): + return ItemModel.query.all() + + @jwt_required(fresh=True) + @blp.arguments(ItemSchema) + @blp.response(201, ItemSchema) + def post(self, item_data): + item = ItemModel(**item_data) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred whilte inserting the item.") + + return item \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/store.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/store.py new file mode 100644 index 00000000..488c1f67 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/store.py @@ -0,0 +1,51 @@ +import uuid +from flask import request +from flask.views import MethodView +from flask_smorest import Blueprint, abort + +from sqlalchemy.exc import SQLAlchemyError, IntegrityError + +from db import db +from models import StoreModel +from schemas import StoreSchema + + +blp = Blueprint("stores", __name__, description="Operations on stores") + + +@blp.route("/store/") +class Store(MethodView): + @blp.response(200, StoreSchema) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + return store + + def delete(self, store_id): + store = StoreModel.query.get_or_404(store_id) + db.session.delete(store) + db.session.commit() + return {"message": "Store deleted"} + + +@blp.route("/store") +class StoreList(MethodView): + @blp.response(200, StoreSchema(many=True)) + def get(self): + return StoreModel.query.all() + + @blp.arguments(StoreSchema) + @blp.response(200, StoreSchema) + def post(self, store_data): + store = StoreModel(**store_data) + try: + db.session.add(store) + db.session.commit() + except IntegrityError: + abort( + 400, + message="A store with that name already exists.", + ) + except SQLAlchemyError: + abort(500, message="An error occurred creating the store.") + + return store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/tag.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/tag.py new file mode 100644 index 00000000..f15c41b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/tag.py @@ -0,0 +1,97 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import TagModel, StoreModel, ItemModel +from schemas import TagSchema, TagAndItemSchema + +blp = Blueprint("Tags", "tags", description="Operations on tags") + + +@blp.route("/store//tag") +class TagsInStore(MethodView): + @blp.response(200, TagSchema(many=True)) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + + return store.tags.all() + + @blp.arguments(TagSchema) + @blp.response(201, TagSchema) + def post(self, tag_data, store_id): + tag = TagModel(**tag_data, store_id=store_id) + + try: + db.session.add(tag) + db.session.commit() + except SQLAlchemyError as e: + abort( + 500, + message=str(e) + ) + + return tag + + +@blp.route("/item//tag/") +class LinkTagsToItem(MethodView): + @blp.response(201, TagSchema) + def post(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.append(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return tag + + @blp.response(200, TagAndItemSchema) + def delete(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.remove(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return {"message": "Item removed from tag", "item": item, "tag": tag} + + +@blp.route("/tag/") +class Tag(MethodView): + @blp.response(200, TagSchema) + def get(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + return tag + + @blp.response( + 202, + description="Deletes a tag if no item is tagged with it.", + example={"message": "Tag deleted."} + ) + @blp.alt_response(404, description="Tag not found.") + @blp.alt_response( + 400, + description="Returned if the tag is assigned to one or more items. In this case, the tag is not deleted." + ) + def delete(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + + if not tag.items: + db.session.delete(tag) + db.session.commit() + return {"message": "Tag deleted."} + abort( + 400, + message="Could not delete tag. Make sure tag is not associated with any items, then try again.", + ) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/user.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/user.py new file mode 100644 index 00000000..ec8747f6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/resources/user.py @@ -0,0 +1,99 @@ +import os +import requests +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from passlib.hash import pbkdf2_sha256 +from flask_jwt_extended import ( + create_access_token, + create_refresh_token, + get_jwt_identity, + jwt_required, + get_jwt, +) + +from db import db +from blocklist import BLOCKLIST +from models import UserModel +from schemas import UserSchema + + +blp = Blueprint("Users", "users", description="Operations on users") + + +def send_simple_message(to, subject, body): + domain = os.getenv("MAILGUN_DOMAIN") + return requests.post( + f"https://api.mailgun.net/v3/{domain}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={ + "from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body, + }, + ) + + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + if UserModel.query.filter(UserModel.username == user_data["username"]).first(): + abort(409, message="A user with that username already exists.") + + user = UserModel( + username=user_data["username"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + return {"message": "User created successfully."}, 201 + + +@blp.route("/login") +class UserLogin(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + user = UserModel.query.filter( + UserModel.username == user_data["username"] + ).first() + + if user and pbkdf2_sha256.verify(user_data["password"], user.password): + access_token = create_access_token(identity=user.id, fresh=True) + refresh_token = create_refresh_token(identity=user.id) + return {"access_token": access_token, "refresh_token": refresh_token} + + abort(401, message="Invalid credentials.") + + +@blp.route("/refresh") +class TokenRefresh(MethodView): + @jwt_required(refresh=True) + def post(self): + current_user = get_jwt_identity() + new_token = create_access_token(identity=current_user, fresh=False) + return {"access_token": new_token} + + +@blp.route("/logout") +class UserLogout(MethodView): + @jwt_required() + def post(self): + jti = get_jwt()["jti"] + BLOCKLIST.add(jti) + return {"message": "Successfully logged out."} + + +@blp.route("/user/") +class User(MethodView): + @blp.response(200, UserSchema) + def get(self, user_id): + user = UserModel.query.get_or_404(user_id) + return user + + def delete(self, user_id): + user = UserModel.query.get_or_404(user_id) + db.session.delete(user) + db.session.commit() + return {"message": "User deleted."}, 200 diff --git a/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/schemas.py b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/schemas.py new file mode 100644 index 00000000..cb3f7a07 --- /dev/null +++ b/docs/docs/12_task_queues_emails/02_send_email_user_registration/start/schemas.py @@ -0,0 +1,52 @@ +from marshmallow import Schema, fields + + +class PlainItemSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + price = fields.Float(required=True) + + +class PlainStoreSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + + +class PlainTagSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str() + + +class ItemUpdateSchema(Schema): + name = fields.Str() + price = fields.Float() + store_id = fields.Int() + + +class ItemSchema(PlainItemSchema): + store_id = fields.Int(required=True, load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class StoreSchema(PlainStoreSchema): + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class TagSchema(PlainTagSchema): + store_id = fields.Int(load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + + +class TagAndItemSchema(Schema): + message = fields.Str() + item = fields.Nested(ItemSchema) + tag = fields.Nested(TagSchema) + + +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/03_what_is_task_queue/README.md b/docs/docs/12_task_queues_emails/03_what_is_task_queue/README.md new file mode 100644 index 00000000..0a0ddacf --- /dev/null +++ b/docs/docs/12_task_queues_emails/03_what_is_task_queue/README.md @@ -0,0 +1,27 @@ +# What is a task queue? + +A queue is a data structure to which you can add and remove data, but a key aspect of it is that when you want to remove a piece of data from it, the piece of data removed is the first piece of data that was added. + +![New elements are added at the end, called pushing, and removed from the start, called popping, of a queue](./assets/queues.drawio.png) + +This is identical to how people queuing works. The first person to arrive at the queue (i.e. the first in line), is the first person removed from the queue when they reach the ticket counter. + +We need a queueing system for our email sending so that when we offload tasks, we put them in a queue. Then we will have a separate program (the **background worker**), taking items from the queue one at a time and processing them. + +Each item in the queue will be an email to be sent (or rather, information so that the background worker can send the email). + +## Setting up the Redis database for our queue + +We can use the Redis database to store our queue of tasks. There are alternative options, such as RabbitMQ, but we won't cover them in this course. + +You can install Redis in a few different ways: + +- Install it locally by following their guides. +- Install it using Docker (I recommend this for a local install). +- Use a Redis database in the cloud so you don't have to install anything (this is what we do in the video). + +Render.com can provide us with a free Redis database, so I recommend using that to get started. + +Navigate to your Render.com dashboard, and create a new free Redis database. The free Redis provided doesn't have persistence enabled, but that's okay. It means we will lose data if the service is turned off, but since we're using it as a task queue that's not as big a deal as it otherwise could be. + +Later on if we want, we can upgrade to one of the paid plans. diff --git a/docs/docs/12_task_queues_emails/03_what_is_task_queue/assets/queues.drawio.png b/docs/docs/12_task_queues_emails/03_what_is_task_queue/assets/queues.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..16f44a7f71c8f605a6a74e49c2e7615d9250a338 GIT binary patch literal 60727 zcmeFY2RxkXx<1ShB@rz_B+7`E=!_BsgCIhXNYo&N(R-QbCK9A5A<=t}&gh~A(T3=Z znndr>W3=xbk+rh++I#JDzP-;m|L^}Dzn{eW%v10Cy080sp68wCYAOn6PhUKZgM)Kc z@#c-YI5?md92~q`LTGUo;`pQONku1HTPr7XyFV5_ zvbC`>dF1qmiiQpjw(vhzgV|c0tns8XJ75`qXoM|L|J`!GRMRv!b}~Du%P%bYV;R`$ zH%-h<%}$2CCLr?T18c*dl}}dUXl7_^3;)sncjG(Q+5#=HZm@nVYhs19-A}vxXea*< zKK*TC4kk7yWB-!|CoNnIt(;GmENyITZet1z>0}H1V+j1(JDXrXlm`A}6%e*}#!gPg z&e_rIxZcl#A1icpa{Y-fCzHq6ie^sMR=@)Jfj=Fc9BeI3WNoc%v3RqwwE=pS0U&Di zH${e4=B7444J#8Ewg(pz2PbpD`qC%G*5<~>*g<6AX68;N>UM^Yuv3QvPy@;wY@Kb4 zO|bst1D=cx9nFp(u*2H|HO-x{m=nQ%2D7zsI>8pdF!20i0ocJzPJsG%%z0dN;u-}L zTWb?12Uox@Ck;e}espqz>uW!Z&jVBPM->wiY=3Hccs{fx&GfY=%SP7ePmH1q$2*e~mc2%hx%E1da-P741eJpT#K zw`|R9{$zvS!yOype~%D;;h%qKt6yy*aBTU17~=dtS9}uVKV$b7qx`)P|IK*+icLG$6Qu9Nlt5@EuBhjo4i;=f{9;gbpfu7*zB{C}lo`33*`EPL&TWq+~b zUq>YXJ_lE=6BT#-ppAXt5dr{t{CEQ^xv(lLkn~3}^Rh+P?=-*`1ACz;_=x+q#Z<6%5>wl&hPj)505Q&Vf z(Vrak$9(ZmlFMHSZY(FM{!xSfGnf1mHU5us_5VN~I@$XDV#||k{R`y(&miT$a?$ag z=pk70XHS8jIQR$b`9s6~JJ^%|&vN{~Ym0Jh&Oe*( zBkN}>M&8vMCO{)Gqs^*zd8;qpI{RQ?94|BTW8+PVVQPQd&>VckCq)c>=Ar*j>l#HTkOkqbTeYxcz*jA1WY}I99|9Mn3 zU!!pOSrGY!*t+bFrH(Bn27aVe-%)jbRIbJm95qodfwIb|Oel+rIuv;$Fpe6?pZM+$ zakski_Pm{HS(LSw?JNwUYXKXHMt5%2atk7NPYp?*!`jO4#=|S1T{Xy_Mpg+oYUvA; zcGrG-2Fl9#VA2}3#4DRqt1VIF`dWR~5~YkMatcH~cO4NNjlRESVViZ-qR+Y2uu}rt zemEP$BNs>$gXVWu>f}dWl`X#Y!J!IMjal>VAYW|V6CUjJL@8h1b%N~4RDV&TXK)>n zIlvAtaPGnjXiYb2Jl`Wf2>5SGilpO0Cd5%b+G zm~cL`Ms6mHEh5J`xRu0zxc60a5$Ujj(|w|;tYZuKl0I{NLBDx?2{VlK`~@W_1_9dn+fke2^|j7#@dXl-A6FF zhE%InWx5FS3i`zU+Ty~+XP0debh_UuS_JA7YMWUnhL)?2%D^B`v+AoLr>jb+Lk>ln1dPtgVrf+@PY|$)zH>bl5aSe;A zZbKa!cn<7G3DXY*zoK8TbvVkdc`&^qylU-&=0sUdV$K9c-?{Z-{PLhfdZP4cRin9!`D`!I3a}2 zNM;vrC52!PSv?hb`w!n8ey>533NDc4=L|xI;L;IR4`B=09GFfK-Ib(k3+^cq)Ax3& zVd<-dhqY)M@j(0{5095oS0ilhu4a1+A_*5fv+rC#Z@XnlHO&P-Tekji-3Vz}dziOc zj(PaOszA7B*+S&B1g=`bzV3ne2v-Knj{ekjRyC>c+!cWs-;O15SC?xGegLld=s?=| zMPAE0eV2N-WrmC9AHlYzf^b*)kO^gmUDqHn@j72aMuoHEwOA8%mW}vh-B{Yj;zR_Y z68a(^=uxcuC6i6wgM?d+Y=gIR-(62ew5a5DC%R-s%@-PByb7;(qgYz@7DYT-QR$`i zcOuG>0)aN&KAh64)aXRqy#hAto7Wct_iW3|Ws&WDK^~Gxh>2E-B30fc5_rLz$euIM zW+6WLs<$4=lCtljxT$iVU2m(R*me?If`PWFU}Rl*WdE=Wm38YtOp>>m z%QbD%&yxD83{4q(^Iov@h~3aqNh_F6^y|hJYaK5oJE1m-mC8XDTOr7Zo=Em+`hzLz z>44sa*yw&Hw$`1YYBuhW{)v)NFnXJ7`O{u3>(v!go%U=-G{=!S>}$k%%{Ls39l5h; zxDcPl#M(|Yx(>|W7o6GNp{(1N_Oiy($UZyD`u>p}WY#||{)$)W;f`^veFXYS%~3?s zk=<1+OUMuxbB6Q=ud>D$-wuYUhNAD&<{3u^%)x@_%wQ9?U(!NLVbHK1vzW3k1CSwM z+ZEG`H{Z0Ba5g@a!;9Cye(RI5xr-)9EXv$gqnXaMLqB|)L;F+_OtVP}&0)cpFje-n zRSg!_Z(2O5m{MPICx)`%;%EQ6f(@*Pxfhh|JQK%#!ijD>Tny7vG`fD_s2FOqDUb?d zs$D`Qo}CGMT0ZP(3UaRI3}H3)8cn6FCVIOhJFW~~^iMV7L5OH|qe`D@BO}C1PU#jk z-U4a6UntWRoQ(Gn8Esx{P5ExTSe7c8YjC?UA>PcawD!IMW&0+XQj?Yx$vqunV{5r| zPrv(;Hn7&d$GugXhAgwr-bwhkao?2f@KQhh+=h{IA$${)}f4~v?FH3 zuhDb;^3=o9LxlrkCCo**ZVhZFn=I3o)oV^6WJ#l2*u@~{2wvp$Q4f~lwJ7=8s*KT| z{@Bt)fTiD>jn&HpM{W&iHhI#@9_2Rob%fK+`Mlob3JzUbT?iHt%I>;Zo_5NCeZgE4 zoPoDif=MxwNSD06WtifrnD2Z;+o7WIMPmT$-o=g;V~UoPj-}d#U_T+|sPi30ihPQF zW;3_t2=n(vS>LdXdz-+#^Q9^Wa^7%)Ht(jxUKCMxTvTFVn-0gkiX9$gHaLrNyVFiZ zEIT&CIY!8ud057yHXem3d^;4D0SyN`HkBE9Iv=bRGdL?fWs_0g&Q$f}I909=(uR!g zq%DL$?t!aF*-;S^e@ngj`DTDcx`3V^bI5(ob>=$H_j&A!82c%kgLF$h#L_TRIOfnS zU6=46wJcWoOpOY$v4nj{f$9sdkgE~%SKow_&YM5=@?euwH63N=%X{p6@OlDsI8Pja zu_)T`%`-0+SE~Y{t!2-Vx`C2}H<^15l9=Kt^K7~)sShIUUe>6$_3QX0Umu%m4(ANn zYP_wgI+_Mq39A4AKrr@7N*d5o-&7NUiAcKjecqIA-V9D<2qr5nMa3oEp^ENM+LrJ4 zww$?*2Xmtq;|>wOqY7kYZASF8q{`sZ^SyxeOU{MSpB3{*24*kb94iTo#vNEn<2;Wf zno7-e(eDv&MQuL0cee*=jH$X&OrQ=Y@V+AcrhG5))>Ea%4Aa3a`I>?2>~d1nHZ9*v zZj#Ml3=`|odIYb7e4|^Gz?N|t1L^E?A8sm{jh4Klq#Vq+u((!S6<-0^IYW)DonzBi z@q@Z$(O7aCc*6NGaqLtv$z{D!R_X=j+<5A=)xkXiN^_m;7_RA%^1dQ+iRTW_JeUzV z*7d~_k-B}VtbAdYCpN2<8y~ad7lq$!t(g)Zp7Sr*k6ylhs)tNwOT3Jch49&&Eruz1 zwI)yL#Q?R^y~@EfM+3kFj7gaK@TD$hgY%XL8cwES-n~=_OU}3RnPv(p zA-In$YX#>!cV-CA-*t=4k>-w??t7IoU|g!(mp{tAaUPQEZ*^~!5eU|hrLbWeT?~RX zDJfZ-r}}!oS(RjNtJ9$03~Pv!b=#Hi237tvc>g~>X4|@@o z%vg#sOyI#tC$@ri6azRz{4aU0U`65Qw}92OZDSMel-)*U!y!SrHwwRI_YecJ4HV>+y=cZVWu35BM z>P7Z1pEiE3NxUa7sv+)PE;?#0Du4kn%i8fam zpHunNLsBZNyJg{`j=aU;N@Se7(YH?ZRs$~~&)(p$$6M*CG5SM31!r}^70LWu+lUOW zuX&=MI6`_~>E;?9mP9RUi*NxpsqB}(+h^N*xoz4Z^W3=uJyq4vG+Y2YZiT$A_IE(H z#ov)=9166&a(SsMerPY2Vdh?04=WyHm6#P1zv3hVZWpyyh#a?dE#2o99U&GtE(VeoE(YQU zAFAQrklqzWMf3iIG3$bLAWR~(b=MTV^H%Q^@gUEE&TVns$=Wt4a}Kg8*i_V;8t*`IQ#TusYgehPI_<+N(-pxV!a z+HCL0JExi^Q?xY9uZ^C;C3^D$$|?PYR80HqAVc)?x}K%rz0lB7@*dp-Un+RW%|`8v zg*#P%%4C=pi6ORPdpbrtA}@8Jr^eESSM)j)8Dc4~-#WuI6^6{L>~6OGdEtv4V0c!14#>5jaY7kfg?t`ZdiU1e;^75zg}U@r+me^h zyh6+Z^InAOupnDIjIxCi+z>ohb$CaY-V`{|>rCX7G|i)hx#ha+L2lY=5F0lX=a+ac zJYZ+2x5j))ha1n{bRJmuSZ-EdI%i0*2r~Z~UynEs$+kp~+r8(}#vNur;vGYL0N7zI zSx+mJrf_&yl5@MVS+iBlcgZF`_pyBGyKx4d1BIrnNfjkg?Dz;CuZ%B9=OG1=Az%RpnK3arENY1i%KbU5gUz-9Dk^ zw<^|bO=PGe)}CDPrCrHLCkP4LPbsirsC8S95^e>MJzVd1hhJ?KMZ#veFsj zoy_@qD-}kcucwXa876Ix-i}KNcidhq3X4+d&}Wm;9IOCUpfz+WJN3lEs9W+>b+Wmo zdvoUIU+Kr+h8>hRnRsPGXTQ7ZfXTKG6ps>J_7LuUn-8Tn#~(;t<+X36YKczMCQ7@*rOl3HdfhR5l#uyHF(z;~QF$G(5;>cA@y#h=x2wwT zeHI!6o~c0Bo0Svw+ri<>Vq8qxDRGjq4Pz#sv$xQ#f=8Q5#pbw?k{4jgVdvKG<-7EC zA$SxO86Wi6EQveo>3~HZC2mXV9(A%$JX}VFoTtC_)drnjyI8frv(-KE z0I_uVZ4hI$Y(17!4naqcX+F3wL(#Hwju<_b^C=Y`(p^F{rLyIG?wN~WA{%e7m$b_Y$fiwS9A3CN(!wgYJ!cZL+5IsOx^j$(-8b=fR2d19 zw8fuaAT}x^kpo)>7Kk%*8Gi2kknOc|6V`EgvCs~KLslJWw4aLnr9ljZi=NV4jBDTD8eU^>bT2o80 zYhkl|(}r$dz2*Gmjq~p+E45TDzV8KT zPf%5BMG?74tPJ+j(sRboFdIfZ7+fk~Y*J#Mcz5%Pu(%o9Bceg+d2>E$g`n0UR4d|-v}YSuC{k^^pf=@q4NkX{gr6-!UL6q z*S43%dhyCvy4`MfOexh_%u+P9OEeX9#}DLUWZc3HNNTjp

BVan9~sSxlAW22^+d zdi>OtuNv0#gpuK(a^I2xR;6#|9ms*sjNr!mapu6<7?LdWa#lC8v;_|$&CX{R18677 zW{_a&I^z)C|E9bvlo+ntD8KhIW3T*15$y4O|Hk4A=}IZA_{042gu5(qQg^q843xwK z9XSd!7^!T!&#~+b%}zmfT79b2Z)9IMJG~(f(%!nlc(n$@pIO7AqDaAfaKT|`=54T8 zVOQK%M8Lp~niN5a&2{e0dkMe}$rw7p4OgIEzLv6D=#Yj98o0E`00%);nPl7*Rcor+ z3pXdeX6;aKf)Z*}Z6=%_y@WE{Qk`W0`1%e0MPlQQh4If?+2>M5aZBGakEH9*I2sW3 zK4dLSXI3NR9Nv<~Q@Y&O1FASS_jC#=ZMS`&uQi;_oAqv!PFlY-N5{~7&1R0i+slg0 z*X_Pd(hy6G!2q5N%au(QCeH$yN^WBMj>8H_UZs2$Ub$z%{e<3}ya8pAkrd$y15gqA zqOo2IJIy-0Aeo-Bxb)g?H$Y{ID500*Hy@`h4kU5wOhik@IV@vv1p~eKDxJ;P#9Wzj zUqc7r4|s1cbi0ZJ<}3-eOZln}&M3pTGERUsZ@ppB>uF{esnk?0?lTSJ9_`_sPYYhQ zX}bGWZ;O@n4XrUco94w9Wl4A*iAM2sTvcvTjkjtUs9_d+>?s58x(Tkbw-|;o-4SP!YXojFJN~PP(x;bRv20e;T;SNYQ1<=^+l_}CmLrhLwZ7S za#`;kP%gKgQCg{veii{`(4}$LF-nT~xG6=PWGpqVv0Q?A!28Hz-Y*_BM^0khke-`5 z+8`{b%Yoqfl7y@2yYsO5G}%Dp56np&Z5=^|kP$EY4$5y=L$d31 zA-vH{_q(B?Uhd;2pKZFN-q7}Oe51(kOYF-w^H^R&%CjEGXoRaTu5W?!hACRUG@e5& zv1`mXNJZ1vq|iQ=aJ@MW>2foHUs9DC=;gqkhmiu8ZEzyvFbgLqyLHf8p6*KHn5z`r$^AKyrO9FGI}fNBxe~bq`qWxHglRt`ot7!Tv7jzzHO_BS81!7XVV!~^9En?rZ^$QI2^mib;U z4QA6mS{_Pdr55XJ7(*vrXwT|@;pMYr0N2*NXD)gsEf&A{oT7uzbCr>O57CZS!&z&v z?dKR9*_CZK41a!_(Xeor!~ws>g=>VseaK535L)$pNq-FNL6J@GbhC~QaATOI0@Yo* zYCEssQPiQ^AN5%Zun0e3k;eKapJA2?h@Mlx7I4}zr*eLGr z*P;JAG3Os#KR?;l6@FcnWv_rCJml#aBV5M9HJ=~u^-x-60`Pno7#@A_vutc=^d@f}*l z@Ikw2K2{d6;J%}cN!WJBy`07cNytbi3e%BOW?a}v2MA*i{7xZct1}X~kv3IlTVVY> zyXZaHdT;luza06TAnpN?WQ}whuo(SeCJZKt>X4X1*s8T$g+Z8yqUTgY(ze=h7EhkDRG1*r%|~*z!>k!JeLD%J;X1b9#M@$rw&G=eG$7p z6+nLchRu)7yk%7sErH#Yi=Z*i8W=2kx?6zcG&Zp(k$0)TySjD6x?`yw5&lRGD6#-@ zeT3jR(bNp0dudG`RvH%N*%PHW;Fk31jbMD_Dd4y-!e@P10ktG!IwG?CCdIjV7!wG> zUjGB{yQK0ffXiqi2P4r9TS`Y}Fk6dN;k+jRgQ_tn(mBW-c>3W#cPam#9A!>s49r07 zHjt-7Khh)Ke?4`vVC7Q#zOs|^ozQRk- zGbZENG=%CUFxe->;E*!}<2H^&#>i^aQn(nObwlcMWY6^5&X=wR0+6@@1+3)gdg0^c zv-nPZy=e6Y@Rmw;%y&8vc_s;v?-XSNq5Afti(6aY&0t!P#`)yQhg%NuFJQhaSIw_u zgXjtku0$M0Wh`|k3LV^L!Y}}2(Rg533Bp9}4WcQkCp#-*;Ev7r?NQw0jVKi%iGfcpG{g1}{3%K(yO;YKgn&M;0YZQ^kP74~_pn&H zmcg^~$u;6An3tp}4B4^N6#9_@37BS`qD#qD)r4wUxO7n6XkA`gzy7~9V%%CnR^e@{J{Fe3v*@3sHepL?8Iwqh*{1+_& z#X%@D{!|fIdW1d#p}@V6Uvvt%jzqxoCvzU_3!nnwuNAsNag?}pE`J66qJcO7C~96E z{(ky*MFLa`DM6FO2ChAlLPaAW@=z++<=30|8MII(Rq4G(Iv?l?cxiHHDomV zzI(?-uc6lQ;51jmG;(yMjK}>WZ0HS#vz^D;=sGdjwhH8uDXc0QeFZXtLJdHWoillf z{H{V?6;Tq_u;56v45X?9H4}|K3){}oY&W|u44U#?R}jqd;9HW0?XFMT3L^DTR#jse zD_)HY*|{~CfINz9p_h|&Q-}!>Opd$G4nyE!=N4xsiT|gf>2`gO!=~8;1IxgY`2GIp zwU`%CW9a_=t&DZ=!GeNh{B05BbJ#Z1Q@a8QDBiRXOt>ADcXr?m2`?V*x-@Mv-}OsR zP=sjwb(Tw(dM@AAl_EIj&0(gzkly@Cor;5`kwMo3>U`6IhmYy6MpRKWc8QfONY%G`J)ya>J#1zVT@kA{s}}}E|DWo>qMm_ zP3Mafl-)bNn$k=>WL^@e>SMs8#y`#SO$;Lb3AKGcX2iC(n%;HlwMz?=|4_KDjdmif zVES&iwa1JXJuO)tbFf3vVkJdlZ^J&cfd)P9{fPd#h?=Ov(d3*=|#@RN}q6XAob$Q|P{0+P{>IV$-Zt zIzPYv8YV2ObX9oFNnQM4vv)c2QP9;Q&*8SHI@X8>My9d$eiE3u6br>*onQfEyMs;m zLIW^35yZw?m;SEgg$H29NA5un9!=4dd2elxtdtz+A4x9yAXg?H=APBJiovHLkbT(d zsH7oo-Dy5@uux-=YdoKYWj_D@HmB(euW!DLL%4)=%XDwB_R9>sd&R#@t$ky!yQFdKyh{~d{AH9<& zeLwu-dGr+N zD*jesPI9tDo&AXG`z)Fr{ZA{@Zx_!^`L;cKU(sNKBFsKLm9j)n7PrwA*v?kI0ytauzX{-o=&G($6)4E8jNY1maD6)TVJ{lgI22VTzhtInG(!ctdw1dVD(2 z@aECTaNBac`-)-N=}P%PpK;iPeKUO+_h-^+zSnI|B9GGjF7Bpi5~+6u0IaUC2YiMe|!VXbfy|1k61x|UA2eO|rh+;yG) z=k8UfR>?_=WqmxlNYhU1tEYPu$Y5b=Q$FK2yCmVZddD#+&QbT&qbKdYE*QX5cHRKjjMhaU;$9Xs`qas(M&`-4v8uKsWuH(`hs)0;e37?9zCxYB~FY zkkO;7bkw0;*mkmrgF>s=?6q}CzlMXhxK55KY}hE2k`drr5B}wH1z-q0m*iacZ;`%a z?m&If7bVT~!H)N+7(CGR`BjF8XUQbjHqRY(2)xXciOGPJG{2i{4lawatr7j?k|}Nn za$l`38*^yqUVmajjc9ft-)JRV`&gP1|CWid4;B)^Yv2_b<(Zl?en;C0-|54+MDVC% z!`dL7ccGp|u-q(|bXq#m<<`KvjCc#vIA;xpEp<~Cd=>F!LGisMUw`$W>%1U`$kY1 zO$gc7Kx+jFPFcyD`0Ht~QaOd{lp-zS>wW$G&Q3XFoy`uy0_ zlT3CyWAKqq@l`JW;{I0Bwa0$!q<}xhlDI)8Er362hEc_j<3R`w{P^XC1tU=v&RZVw z@;v(QBO9dW&iPVyG2vdaDNo7+HfxK%oLEM=(lG3r(H25RiOBI}*OYLn+&H}Z zhz>s-?(94-cjh$yFjIkY#dH&mK`{lhe6gd%;Jr6>MJDZ5fZM`$hFhO>QkqJE85?N_ zgWT`?d32d5p!?!i;)y-a?ajbPWjS7jLNzr936q^jGSN2@~A@cgSy$9D*doqbOI~VACrMjeIm@`sNTgG?t zfoBv&iYh(H0$zXNN)ey(6_8I$72fS61hl%#tD@+BiCp*Kik(jf)g64W*X(U5Kz9CVHP>$6o4A1DtCYEAG7G>AR?l$>4VG9T)<(l;ttIb*n8r^&UhYQ%n#-<>ubz7wP@t?oNV`8WR=}Y%Zm9} zGg>(&!rQW#92b|Mk?4umn=>_pjmi5tc7Q!j6G~+-VrL_2*;qb4L>Q$Kg22HuBG9^D z+qdJR<$QSRyQ<_B90#u3-?2v1a=VN00yZj7>AloR0=_gC@R0#4dnT$g=GQ{lALt4D z!n2wOdd` z9B2`xMmBM0ViyN-egA?+7Qwc3-o0}1FI;#=>{m2WNdf=M@$ET~O|Yyl;h}(C{ra~@TJJ8Bx4b~#IF!80ab}h$ zR=fyMw)VokGjH4YUR~t`++QT0{?uicfm|toML4X55O_Ua!P^7tvY`6F5{qr=Afcj) z?@d0DX9liuZUNXKRlG60ntg{Pz$8$aczIm{98Rui z#rB%a=%rcE;W1F?d@ot{19)MMd1*irQ1LJjc^5Ef>^-Gvs@=qUU#^t#ABVu`LCTu} zrVu6C@S=-A;0?6A>EZ$E5x;JPQSO3E17_xeS3MG~$J4i+c9iF0hD4+kq~3{L25b=U zB&wE^Bw!a3lzs|mAqZ|?B-%}UUwAdn1n7AW9FeE=W+d?!6x_8@D$HZSzd)`;89wL7hRugqMB)|k`c}XT)2@Mw)&kX>fBHeJN;qkik1$&NXZ;vf-ehf^ zpy84a8I28IlNFCuoS6+;iXZTd?I?CdRQjNsC?7((!r@)H00w;hX#CcueEGiKJI#4) zfUA|#TJi;C4q9vLR@`{Wvp7%t-UBOR(LfB}k|YwelSFODk&(AZCNn&a0ipp%F^gs7be|KHKsuK=h$e}gZ16F4?VBfAqtVhrU{ z7rbTj5}<*p$3}d?9^|s;&#c#D*FW_HM6U#?M!Gd`l5Kt}r4?qSPWZ;G2?EggH89%& znDGNarTMeFi2#%{?i~9f_8_@fqmazOTvlD9;R1R4#VE?*X?G|WQ|OTLWyVJ8Zn}dt ztN}y`L_TIwwD8LdX(n7CcWk<(ISn|V+$_B3(z^83hPx^$#~~%UCug231C9_DG!c4* zTbT3uYLXsMkMi>K4wiLkD~gV8Ml2D;KC*k1a}h!J=$_-&b6kGS_xASzR)6&pcD0&` z@r?l2v>=e{=86=BT^_F2ZQ7@Nw5~#Q_d9sa^4(JBY|w^>c$&I4(b`+_i8RAkU_G3!z(*nHul?r*l_5 z>LgnlP8)35ti<(;r+X)Qmv$6f?cZPs_J{i5+7oqUxnW_GHF{<<#zPIf)D^Ri^=;Bl z;*(`l06hr*2|7HZ@BCaSJOC?(K^kRD>(b7T63~vvP7^imufat;SpH5{?@rLj1kGOH z27H_4z}scJE{!OVwFR68#OS#1=~70-1HNzHVje+Br2L+_eg*)A>Ru4OA(?5j1aV)% zS`*@*Gb{pp6OaCg>G3C@YxrjOtDAuJ-(NX}xh;8x+-2@I;LbmgKvF~F;XZIQv|&o8 zeTF39^(jGBI6yD182K?F&=j7S%m_Y!!EI?9@p})hfE;N$>CqCod)H#jH^3l-FcBZP z6!*E3201{3l>Vc{A!H5;bgFpRAP|kOxfjU}0N}#Hg^NbeS4=NX?P90g(!n7jE1BuA z3BmlBGQq2MOXPJ%A3XeFmO7sywktf32r59HJ|1caFuY9;-y!4XT~$LMP@g3QB{2~+ zUP#soAp=bGWHiSCGUdymAeFKT3 z!c&N#B--PyWO+Hd2=N^d1(RkkaQT0zN8Cbk_UthrLk+KenySX~W9NAu9(nAt0Y*ms z-L4Yb+0a9XR=nQkz>8&q1c~26c!8L&@nFu0!{z^wI5QmzkTY*>CY%)z_HjwpAi$h^ z;4*p+p7V%bd7m5sy#(aFzgjv9yL1v~lC%8akK|2HJOEr!Pr=^CFfrZ}#n5{0U?T(T zr`S{l#+Dm^_B@woVXy><8sP((_ki|%A{r!r%z1PNnQFX|(mdzkbAkL|KZbhH@($3~ zoW=c^%Z&Gg)@8qqVB>;}$?SgZDa3;75{ti^k%5zSn?2oP;? z$H;HHgJ#5e-gP#>YB6^Awjf}6s!oqMtbZ2iOD?g`cM}Vce>>KGvIXURIdF~D$V0>- zTDT#-4i97ve4DoHFVG%Cg?V93iOt%B7>psjNWOd5-3ADNE6}D1P5)IWH9;gC3WG~p{b3uXb%-RPah6BR- zZJv6lEq^y%AIGlT^fV0(Gw{t^T4Fvh?C*Bp9l=ww^q;wvX5zKfG+!E(Nff&6S+NXX2K&D~lBeMWpe!nZ!Q@(&R!N7ORNOlw3 zx!@*zMAkLnbcNfrq)X@VbkHzlHuh~7Hc_l>}Y&OgSk zn`lZHY~Oks1nBdxA>zO>!AiiSc^%dP&Akz)*PeQYoT;Z%XC?{YmxGuZ0M-$$QrJ3X zAuNypus>-^gAp0KNy`IWy{gOdr~p>fwsdAa&O_~Z-xo&)yfrQ|;jw|)nEhmsp`8Jo z_np;6 zd2DmI-KX3?N$dk|to1{AcE*Zw5)PWiyM7$d&X~8|V=ANg8VI|*fjnndid=Qh-m!xrHAu($~pQ1rh=Kgg>M-CjSqCVo+ub`wA&5uhD%tji+(Q7allc{DGLJ9EYke3JX z0Bm1w31<$J@*`~{(KM)~bVDr$E6K;}t?bM9^WFM6@(h5pk}NdxAg0=}bOgA5CA0fQtB>%HD%36avLX)z_a zbA>R54AvQIu0ZeH$B}gS&0oq&)4iDycm>Sj`^-&i;?8KVG!#tLdBXxe1m6PMMhF-4@>U3y)YKXJ4+W zG!?fT8PZ9zQ&_G+S(Io(9dO_fPW|M9}R46B2!LEEZ80ewJ3 z-ctcrDe?D!c7fxfrG?ei2>`4I^Vy8RH9|=!DG~sJq~p|U1)gExY%ak;{559?e8jpe zZQ}b!k<#xQ2}keq^179`V7jHloQ%`-Z0fh4Ut`!(}=l$=X->*Y7TC_(^O8PzM!`PsYs9kyP` z?S>txqYWv`qp^tzTLn7%#`fgBxA`7ThqK;?&Eq>YJLu=^@n-A^9z_RJ>{9Oz9uFJ< zC$AZCj-8@z(benY28Zhr+pVfzJ;K9g%zNlhUK)G*?h||C9Iny{jKEdVS@$r9`eO6m zCCyq)e_QOg_?`F7LD$!BUXt?iu#@P5OJ=@->K7TeTKF@1edh_5I{Y533mmjcN8 z{^1PosL}QkI%W}hurqP=+Lui7d-rW&^wcxgjhS4>ZaErj=hf<+0r?p7-t-Pe5u2tn zfzP2T!(zZq72{)o`D>=4Oyg!T zyO}Q|A)l^0PUFm+Huhwr;Cfw+hQ;&~pnOTiGF^gUi8MSOSDjfvqJ^ryrLZU=Gw&70 z1SI3ZoI*+P#j}a@DQv05?G z8r?j?6W{&Rv~KU)0Mwp+LyV%OmCHdMdpUz;$Ez`wXrQ6N`z2C(&Z5PYsAg73xO z921ck2j-%RIz~)^;NFw^UQc!?@owJMdv9dn9GmiE-@`rn)yK_~z|G)CJR43Rg-Yq$ zH&Q4pbY{#{ZYQDbUoC#!*z*L0LvX?T4 zh||fzsVmz1$_`E1txIk`b+E%TLe2?OwzP+HXLI|1pJY5T6JLFg9CKUDE!`e2nfP3i z{7DMa9Xz~*Mp_=_N^b)z-QvJYx={j)7`t33?!3@9oKOt2Z#cX4u-*c4J6c*}clVRG zjjj90h{pI#p6ozkBuO3pN^XS)*8cq!k2x5vsL@+RuhmF-7|Xw^E3u3ptiT67oR0EV zvtUtUz?X8kt9y#Bl(ASwZ#B-6d4HE(X4V8-<|2n3cWy@1sniU%4x3hQBu+D)q2|iu z9_d;?4Hu1A_m978Zr;q~Pj`33TjI@EamE`JWJTfE%jpxl*Zqmlv0dMPr|P-Dq_=Yb z#LfNL1n)x^4BXrMh+cf9d{U~He(t5g{#Q%y%@oFd*i-Mrjf4r{9*+|7elkd$XL)ti z8%_2KFpOhdN|0FA_R^GN!rrLo|HIyUMn%~z>!Q+R2~89bfd(W>MuNm92uKzrBcMPd zNsyeO$x0TCHSMuF!RgWU)cSm2(f9JuSBERMe;@=PUY>Etk{<=Vu8q5CaZ&050R>5BJmfvKkf{qdt5whYM|!E) z9~m7Dez-6r8D}r@bKMmE6-cUV{YmR$zt|VE+_n7LlDw?wNtxa;s(A6^wuq(O$=n0pLgPfDHNVT7q(-x@{zJ%Kx?AzRp76`QzFL@J~t2(NfaJo@vw>T5)?6;vD zbI&iRdj7vY7BdGr+c{!p-fBTG2%jw-dkd@2O2ktMk{&j}{ zFV7}LdI81)hseR0>E*~$<6*<5x7}5oqJ0UR(B9T|C!KLhDPavPI&H~Wd)9&i)nzSR zyM`Sh%Lz)uc^^Dh<9`%k6z+L2ZlTjlyZlf>oY@)EA!9sK8*)6Psa9FuE3#^yi-El3 z;1V%?V4OTIvBL*yj1IB)Oe@kH&bB*?Q!|J6U&BYrup4xuxe75HGU`ED$Gz;O^B|Wl z!1QR?k?nWc+;#>TcbSFB2dsB3SAa=5QpKa-GPKKx5Ii}o95wQsq_RjY-S6``C|9W( zdmiR%2LUBjc&*gJ}`0h%6u~8idF)Dd`xOTPxyczLc1jf$Z@}RXrYpw!Ewnf_D zx|L_Gy2}?Sm@BI@=w@N;_A98!`|#&sgnmLQ&U2kJK~b><{tw692TkCtWhJ^j<20yJ z-8e^HtXqTSzPI#4&G=P2xoh@Qy)X8^^smlKohzFbU{d~noy8W4s;xjyH{I@#si7qB zRW#(d868^idQ>i8!p>)x`ZVhDC@R@lKQ`wlqv5tF50A-wM}(&ycFoeKur<;TN3!di z-vn?LI%XJwAt9XEpv<>9WD?h*#7=-t(Y1Yx{UFyeq~z$q{&}aB?xMd!+#m)r?yaXT zYV*Qft9B_!g0rx{%kx{*8IefVzu-NEW3?PZ1E2`l7zJ$q^g)}RMcV!!YPe-}@>}#46n40}mcH0?n8BnlENK@QHPoCG*}w+g@55D~KMTbN zT-7ZC%gP>u#IM3%&>my?u4sPHf8dxZL9bNa@lE1W@~>fz@@b;ctPA!NW$W-kCiidh z{L1<|IfI2nD4c~me2*S$RV9nRyc-_Sg}o6;98vX3>CS*lq{kz*hoU2f&cj+kHy0!? zkNfT!&kaW%ECfnc^RG2sUbuijPQWXvBuAD1oy!^C0{JTPc9X0CS(Mn%`Ioyc)9!x? z%Q9ronHmKC^rQ&wP&6I2zac;D?Q#*3+AL`$oLp?drZY6)K2}K)Tz?PZz;&vp8J=n& z@V2$9UCx^D{*&t1D-Hnt;LES&1Mzo!%(-GNPrGVGihg2IR*g-2&G$|f4={)CS~hHou@oB43lp67KBXbzD#NAQ zpVBS8{PS))-1sz&IoqbjK%73B7=_HLZ$U(1lXgfgqT8lr4YKYVNtFk{r;circ;DJm zh3SKqOH<-W#SI7gr_I>f_1u?pfbn$v=R?!ZqV&4iM{~1}WEc)13~}akX6xFozO!Xd zeZYB|w6$t{>9O#LCG9>luly-ZF$jLSr(9>eSD7cIGp z5rj{y16YFL$Vip%q-tW1Cw(|;jcC4zMB*BQ~aHgf)zqLD`t+yC?G1CU+0MdQ8qBY*A5tF_Y3jr5FMztc6UYO=J z?cg{cNN992##g#$NQ<*Tm>HLVh^j8(^1T0+YW{v|y3zNT?WXf}JL~esZ(Tw~G9Itg zP7|`iu;>Zie0$`w@n@p?NkBoo?%jt`qWfc-59Cc} zi&*7Oq|pjEhML-@IghY?>B295FmnvMjTEcrsduU#p`HP!WNX0sGg$|*Sff(*%vF^7 zVYQ&Vw@lks>~PAF(dV#krZD@oBa-HH4IEQRdJ0NcMM0Uo+Kb&?^778jlEthv&F_s* z4N_Da*2-ov%EbCJ9;Lm>mQpZZ8!N3ER23ztZE1`*U7n2wF<$EhI3o`uVg$-l3m((5 zH?#i)@n`|bD*aJ%H!bubB{oxZNORWx>Lqir^H3k)>edB{-Bs3|8Wz53S%%vT5?!Ur zrx591)|fzsjc^aEhnAb46Dv%Mk{{-hp7NydCNQVNZWdcQ<((v`Z!We}FP|@pT#|~2d2P&{>F3$w*6WEB11Dsm)81Ww?mD~pF5BpJg=+76>Ha>fT|aT$vS?+rkCr9?YRP6#x-YUY;Pg&SS{3#_xLRl zc)Jk*P@$FaR%-h~z^wG|K9eg+t#KbnRe>BBpN&KW0>1Z1vZM;+ppn0B{xIB;3Vpn5 z1|rITNgThzz{7+DTs4vu|L+k7kT*76dWd<#e{~eu zUnRPOL=79TzF`lC9Y>2_u4|ahD7MN>DA1{7W%ag z{R-GcZO6BWUlD+bLJ6(~5FM#;i=P-}{#usDg$IU3%6=IPvbX1?q0^8ZsXh9Q)PSq6 z)i{W$dW(4kwjp2? z;W*f+z@kmVUKCvb($*WHqVGWUUj5+66uRQEW~RzrleQcV!ZZwm;9Smb-w^0^IgGJWZ6q3bflte!4m$lM!{TV;rYXZL`HW zUu*4?pY-^qKmo#qICgh0*KEsFnUm5N1D3UQdAEl-~kibB2R(LQ_ zKwfsHN&ukgYH;u-J(LK&2K=t~KrdQk;mP0lLL@16N3nQ-GG$oOp_dDixT<-XJ8!(y z^X%VEQeMw&oaX1T! z87X0Q|1%fL>52cKrASOyM2EhBrS~frF=fNw)z=Z0gVom20c~ zqI26)@Dz6Xna*(Xf2PFMTv6iij_vOt{x_pR##zp1ClGLaF0%{J5(sv(ThGTC3uPx= z`6UWMMoJ9^@`t(BTnE6Cp1t1qlON}#iI@Jy5&A#i zOZ+!f5&i&WIu!gGX1<1{>7$o1sQ^odACkXwMG<2!=SI2iNL^EXud(RgNyK>p)s`(`C1Es^7L#_xVjCFBnZ3nK==dH5A@{$CFDFZ8eoG**cPB|t3W zp24xUfQR$sxYvMVTXz@t%F{=FUT}*SDSvTfY(w7QJv8~-ey5d%^!%v9K>&I0bcUhLw>#Ek%yB%{$I?fYf{JR-K*3!=yAuzueA*Cg8O zm>bZ^iCpfe0KyG%r*!=l;bzXPk{S?hL@$!+uL(CvU)$Sp%ue8PR|e?69O_@pe8&wk zx*ZVh^(NQ_RsxC)lrag$^?;$^wf#^j5;73zO ze=);En?YxIg-QbzVy&QIY-QGn9^m%d+>1sHG*9Oc4*GNDAKl|uuz2srWAQ6a%e7KrI0T!#%B6xN8AZnc z%Fchu&j(a%{DvGj9T5uiYh(r+R@-0o0N8EPsRb^K3jtQ0lCg(Z0oDV}FJCA@IV$SE zr}|%odUg+%0l}!L? z!(|qU{rwGH%DAU^ip=gY5sYr3RiIYC>#AbK3smsj{p*$T>uPHo>~Vno7JdiS^?fc`+E#2-fI;*PqM_}0UHft-$8V}#QXrmb z=;D1zKI&z)+K%)l&@odpW=KXAb&(xUNWt zCK1I0dr=KsP_Gij_@~e(@ymGc*e8Gqpt2V2oNN70f(vYFH@lj^A_lA6fJlXgdATNcu;vXm#Ucq98B8T9Zu&H++-!vjcZ=| zk+I%*x-m$nXGHA#2b2fV%|CP3y{<{iS1!9KH3c+8& z+u5gvI_2YLa#W?>!q4h)?~qNJ{f0?FUF!gfjEEbNl`3%SC}{Gl{-Vn9d0$S6cCONy z3U7W2=~*TS=#Ee=1nNxd{=D}Tz90DhF=Kk`4Htl|d+z;^-~SMjJRX;xivgs=^fk5T zTiIej0>;i8y#>bu>bjXkyL}&P6%2=}<_?d2wi!wDI_nF!9=t;dpG`nftrSmWC8A_N zPSECvi;ItpjtaH0f8k_?fZD~8nHlbcu~Xr!=Bht<$LZp#aW#21$0k}xLul*HViz}0 z`T9Ll@;kPQCM_9wwA0(Wq7s&jYmlolU2=?Isaa=)OPx!FNp3q2tDHmrE~}QPPW^QE zMrfPB)C(Yxs{y~{g&(IU!Kbqt_3En3K0ZnCtI`*_F6dlgXx=3x6&~nDky3a^v{g^)k>ePmp1r- z%uE=krWzMHVW}UwV092RWP-|dA6~;M8U-~-he*CZ0aES7vOBST67DMmt}`XaAv1fw zSlI8h=G7D>&2!U7=HEJyK0mKbILT@Z zpPTO7Y?!QFi>;5QkoQ90lC~zYc)^xX<#$!IJkIjKFWsE?ak(sDCCHV%}uei^Q3g$C>-8!K{-cH{# z)Fh9hu<4A>`r3si6zZBAZTbQ?X=pKI;dbR8vN>nX%2lUCcTkM$(K3Xkz(DcAgm?t# zOJ4k7xMJ(AmvwO|siFquL80qim;Ce(6);e$T@V(Sd{r?1sDyc3mtWK@p~tmURJCdT z8UJKg_t-K+ckkKS$McZJxf9W%nHSsTVZNsM<97(raQUN&^$J_jRfk@CzE-;`yYxO7 z?{t~*cAb0{LSqBiIn^Y_hJR1j3Fbx+rxBPM?eUv`Y9iToMb zAb!fI?TF@kq(bNO<;V7La?9BUU1OcQ2&G|@ze4trmwh$#;yBRty?sj3vV6}u!o^}8 zv) zg1O2n+T877e6a0M_Z=Z9Eba7`=J`_>o>9*^(u)K_=p1u;w&v#j@>hte{G)*d1V zWOyn3ljQ!^fI=E{wIF2DxVpy#^pCjyt~w5&=h7!yV*KY%VPqgFqRtSM_V2+!2abQs z?BA+!wOjtZo&Ie#fZ6=Fas0PKx$4XG|Hf~E*80;!-7bBzs6m8aU-$cNduRfJk>~n0 zx*c#E9mnK)W`jp~l5@&9A>x3YKgAR=8aJYkAK)hmu0;#a6Y|YY5;s9mCypC|JL&|> z(R_bn4ws2`#3fB$U3%wS2HGCctz1rzc5CNfp0Xegq}BI$Z$X$?z=JPBle{f(4rc7G zn(TpF=H`hu{>1;rxRpHavL6NIE4OCw8@5IyWS$8RcB@7;3mN*svvCcdBjiW#iT8B( z3YJ%=j7RJ@v0XAlY6opQwLgeNJ8!l-!nn(Kbk z&zFe06Cr*aJkY&-Q>dJ7Pmw=1ii8R8PhUqntCMg%VP+Ue`Du_SF8;l1h( zXco{nV~UU@2$Uc130HwNjdmBgrhl+NR9{_{#%#<6TE*pI+_x^Ei)QyY8L&f$4ma_i zq%=x;q8D;PKH@BZoA>xT*=P95U+?=$E{4}wCyzHx?j(o7ZXm00z_l>R>w_oRE#GhL z2Xa16CBt2HtuQB`sAMP!OIq#>eM5`OW$7&QO;U2IyC`QehtBxh$;#W52zR0_xmnF# z%?IKhO%vT!PPD~!{NdB#_@93f^w>E49I;5HqcZ3B6|(qQ8b5Z&K&U^B=U32a*+T+P zf0lkrBnM2Ndf$NGvq8qfmfw@hO<%a*5+Xn3tDb9AsN<`dO`R@*BP-W@-n({qIVnmZ zT$tx@DTy9TaYssqig*XI+b} zca;K0T_X)q>{q{a9qzZA-LPY0e@7qcu>;w>-1YRP;JkI}J=1Ww)>Suhvfh`iw$nRp zUHIp;;JjeQ$g|KQ3}yGw%+uC!kCVaSt*PMYOTrPk!+4k>8^fQt3+j}8*!u@Hv!2k8 z=ea}*GO&z~39nJEmA5vHCTySf;)Gh&Gf%0>O5A10S7bP?WY;#O;Iq-?X7Ih27N&=k zk;QOseCnZfDTyZPMJ#Y^cZ2;F%w)1xjtyew|8<{l$fW zRAR(|&vx?}{L^;FwtptbjBh&=TXK`{f$mw9;U+@8)EXzEU*_T%2-g7iQ>62AAxy7NI3TT^4AT|y@$?zr#AwO)tzhYW^hY= zNb2@WrO3UhY+F6LSY#KHZdSnrVREzmn;Gd!d!B?;?psZY*eA4S;SxxX3yl?0OErve zikL|yg455T9IX3~oSWu-l0OUFnR=3izGrUVj5f2OIagl4U@%5>5bEhm-xxqK@v)3+ z_PtCn?Vj~nuupL1kW?wzdh0%`{IOPCK;z9i^~g8QO83lMS#=_xr*}}4XpJY?6Rfnf zit%ljOu-MByWt@Zh?-&wvDbcV^15*3I{e~Uzi8Bz&5G;29lqsk<*!*dWRwp?98U{Y)e{MkKXpLT`V$^9kX=c8aXIbvr=RNSEo zOSMYn3>0 z*);6n>^Q!LS+pez1_v`gsYEL5)yB^YGTQ#T5fWzFK{~6b7wLl55AiXn)n;-ldUd zpmXZb`V)LcpU$QxO%d$aTe}Yz{+MrASKzHWd?@aZZk#ecQ5MRB8_J}-o8`|JH;^q7 zV20QeB6_uMD|{9bt#XR`#GQ&RDnBwR^SYd@|GXhV}PXhFlE%ikA^bpW+99P1j}ZiOxv^7Hnfs zjicK?ltB=a7NNHP?*0ozZ0K2bs0qBt2|ndR4>w^nDeUKx?QbsHaKP?uhrbcMCPt|Ae1&#T7sNMKRku|CLs2H4IxOO38Z+I14Mn4`pE;0fgN=CRy6Aepm#u+YSWS z>+s978rUx6wB6!gC!+lQF`Jy-ReTKzC0D}Oc1RKK;oBf5_D-ukc8zPF<7aU2U5=uh z*~HVeo`<5{^p{ZJ$zA244jxi|7t&$u`q7?|$bHYYKk*zHx70;bT48Dz5_4Lha&np>o zxW)p;ot>YoWDxz*RAOPknq3cePlR49P6P@gPq|-c6PKsB)uj{GbA^Nwc*16Q1?PS> zqx*U6M^?WKr2;G4dkp2|VrUZ9_^P#{^d*G2&i`y=^c2r7U?@eRf?%1ZrD6anC^Ne< zkG=6g;K7Y&c)f1AIZj?`q^T?QiYa@0+nCBkgTxf~XcWS3Hl>hqlu$!zHM(VLO0>ky zOz|7ipHNNT$l+_jBjpm_Qja`&vQk~*9r`Ec25ulMIvB29oHhgt%QlT$FciS$fBrlF zai~bQ&$D>605L2vXBeFR#&aw!nk=|>lj)Y6k4gPXTlameZ|Ue?@yfYzPJY`kw}np# zgj>^Z@#cRDbH}I;Q7TT{)`xyo>DidO-TgaPkGq?8mi$X?vP3lP`X3wo-zS1F9K| zv9kU)Nneu!g)sD6YSo~c8a#PV+-C5u&<>(Hcfp5Q)=SbQS7L?*mD$ShNrV#D!bkdK z#9CW%<7Z4XAW-y^XA)w;s-jbmbk7eOst?8cz((~lpiOhRM*)~*m6NeE) z%#m5s*g9mDM<#q!X$6M_mAKuyDqBfN6d)m?4*;&*9?m?DyLz1_1y}|Pw}(g7GnBpK z|Kw+8yVCGt5#dkk=I0UOi>wTD8ztrTkROTCV)&2jtf1e9um*m<8TlBK&qdS}H!PVT zM70ylq{er(e0r_D9ig5hf*H+#gd@1 zgxh3T+Tt2Fs7uL|qV}qF<>L^T`+_M-96Z*A2n=+?x^Xq#dlBbQ;r{F=zO8mg)FZ^E zf_gMk5GsFV&ZioG=&SkW-is(B3??&?yBM+9!i-e*4mnW^azp&N$V>qa9I8Avb zwy9%xP>Rjwx!u-+WfU%jxJ5q+dGPUBqc{A!xR_ZUx^HJgrljz%U!-=5dm-Ynmz|2S zcXYXnc4+3G;VH##A@TDdWxkw8qfOL)~tud*9(VQ(!^RhEjY{+w#kaypO?0ix1oT zI_2ml8dUILrJru;EeXm^JW5Dfm?&hc|Mnh|daK3SLBJsNGFYK^mj{#YBI1h`ZQ^XR zZ19DP?0)s<4Q@?X0Mqk>Ftqg_32$fnR`QWYcABvH2#PlQ{u5(mMHnI<-Fk-C(x34S zyhB->nRMtVLx?Jt&}w9|TPC9Vlhs#+9!hM^23|S`6=bRf-SeM!XPJhi)p)tMwx-9xGW^mfUkrI--F*`H*?@Ui1$M8#(+5n-_1`&g0T0x+2DJ)xYI% zO+*vNLmIvu)Ojm0K$Tz+_9ltbJHE(pW>ARApK*jFnW1*T8}nn%2u4Nq>WDrCcmcCCrsyOdf^vUECfiK>2jj2#WD<7Fuf@<*>-5=;x1D(Z%S^wm6id! z=`@AA@2_q$)FN%!tO18Xi-)UoGr~+)VFj2ehyGfVbDw7Uz;`C2ES$>7aC52?9QqApw4yFLVkM2(At;?%)h_Mi-y=)`JJL;XP( zYZqw2L_HO|7t>2=cXMx?r5%kwrFLddk1b6rvytfVAQ;uLiYOosif$KC*f+^8TT3?h zCl}y*ID2#{8MdCf{S$+mkkUN64rOpnSn(+@Y2WP#)ncAN#*@?%nxM?Z~$YEYDGP3~d4G#DpCs4S%e5H4B| z*o}EE3MJtWiBYwPgz}mtf4oOLb_%j(gTC zo6Q-0FB76PATKhXZq8%!?50`0!>CX+yU`x{J7n8#t)iRvTjaI;su(k;FY zeDVCCaas;FnQpC++r`}+w>&(mU@3cxjvkkh4ADK+?jGVEo?uoRhYlA*ov@n=je8zO zN)TM4P=@GMFRR-s0~Q%ucH-PD@ArE4Gah&Mf4ERV8mgu*Lu%fl*uniW9FS-Jx8m(* z1yV#x@QjU_KW)AU7S`rBJ~=VQakpvY(F-C+#f?15c)A!^A~9(9((L|upg@=v;*PJ9 z0c;gLYCQg~_h){tge(pvWO#)8mk{>M-_pK=<>IpBDE1HRU*Zk4Kk<*ccaoz#e1$fZ z>bXXR>f~M%pD3G>A;Ssc*$d-)Z&>e@z7p7Yye{#^;N=)l5JOvcobN;9rkc#pUuqmC zutj$@^k`Nkr8p5g5@k63(z8vX{r)wDr*ab`Nsotl7EHCL+FRt(L0b2Nd+`ARYw?$D z-gjIYL;>z3wi_*OG#npdiDT9sxKdoVH+r6x^R>vNQi?-)x3oq&)3{3!#%NbYQaZMl zjfm~4q*(nm#7vZG`rEIgKeX z`O3S|rE)ZfQ9f{G>3)XQHz)p#)9Oo5p(`KXpMR(LnTFg)-~6dIa6#|;%nmZtiOgNv z@S)@%JiHL=?BR|9R*2qZe{_CrmnGEAEdb zy~30kbPwW&&dHsz^wbJ@ox*#MUb8}KG`#MyM926L*SvX!kvVjK zGOy1`C+wH^GHHE0h5`%&34BN1!&?5h$;ZZhVNJ`_!{2Qe@P6#|l<9sJ2naW)VgK-o zay#8_05`c*j-46ju>d0uaiBnihYMt_TgZ_(;L!v`Pi;FmZNp=Ndyr);EowAw1*HjN zSRnS@dvo|)s*qLX^ZL`p5ZKTD9B+e+sFWH0KH&sDFDYfa_po0P^|H12=28aH#S zqxZeJPpEq;Fv}k3eL^&M?c;gR`9o@MZO~S=SVJsv&AO9w`gl{QC%0NK_aF6JSw<6; z#OUa$NoF?Qi5tc*Ya}FOz*JKCzMdm*F<{a3oj~ElhTO%%G#HD+{zf&nZc#S*vn z(Vi5kZ{J@NBSvNM+)H3XU+b}0CGg3aVYUYUhm6g0-a;vH;@$=W$zC;WK za>=|NJt=Q>-{$ri6=Z>h0^6bD4B7K6xZq$!T-S2MNl&K4N#}!Zl~Ol@jHZ3{gJsLw ztrWKCeJ9hzXPq4l>8W*JZqeyH{-8#yavFUiQ$uD{6-2A555c2Go z2ccbi>ssu|TW&|Jnt=i0-FZQjR&gUyVijDFKmEzXLWD&29}2MLPJ2y`@2UsE^&wQ$ zqFWyLArGvPNpd#&n(j)a-yrU4moF>GrKpNKhTMNAjFgd}Uc@)P#yv2J4N1})7XdFr*qg)-nTeYMizv9OIK^l zn1Ktgq!0$gGc4OZ-*V*`=Nq)47o1(k!>E2EaHN9E6-z&j_;~01Ucm3pSN<4fHH1|D z_|Ox?`&YY;LsDJuU?io4x9mFYO`4G3%}7U#ANS&&ynX-OuHd_r*jE|<30Uw<=`(z4 zis2YpeEgHQv?B@m`z?7~3r+I%I@D^VBec-Pm7b^l347f>p=I4?)4v^>DlqvbOnh?M zywH(8evM{6AKyYAD02U)xf=}uO2lUr@{7D)q+6$Ij3_WdYNfdVAM0i)DZbSaCGz5% zcB(}qZI1?QK7-oIGQ^61q>PijL85&$ou~Dq1jOGFroX4Qn7q*%>F#~w>r6i910c){ zg5Rqyp?A9NO@FeD;KwWR$NwS0s}N1Rymn?bOzRsJ_|+$L(p&Rt&!(NeVmcX znL8_?W0rcaY^4i&dymNVG%)UISRSC>Ji?xi*FD8Lx5gdKltX|BJ!E6l?;XVIu|WG#KvU+<<_1r&FxG(fx? z8G?SMrWSxOqIhRa&c94q-$kPb{1>zI7a6Z7B3tytXKFM!J15}OgZapyJmv_x9&ccif3K>wO=6^-dR^X8z;F|)WN>Qhuiy>_o zKvpXgh2$xJ7Pt@Hm8#WnUzGS5UM);i{+k+F&cR`=0bK;Axz$(np~JuD6>X6>+5QpXnEQm1iS){uhCpqvPmLk<0K zbjP{BwV(_a`ZCe}@u_3UpRaSTt*w7v%v^ewH_@a-R%RN)5r*1$vH1TB7}td`)SQu_FLYKNuT5kjvNbqM)ghI99skw|R*;%h> zju_81)j!Di%1uZeL0wvfKv2gX{g^IZ+hj!G#W57|73Re|MrX*!zBDX|=n<)msIBeW zN)M>qP}t0oAbGs}3)`kNMr+vOgszK=XA)~$f1|ne{>HcTYPv1xL_nsBRfbK!wePzK ziAZSG6OYj5wi}4R7%t8w9=f%B^RV2Jnf&vgXX-fd@;z*ftlQCV4lum;*`i(Ba(qg%$gvZ<+Xkr*}qI{_BvvEx37&maPUXV?H3-8T)gmY)iHc}6-yU3*T z@Lpz%#0xCue3!Ut5}Efchl;im+Lv}LL=x%7hc zzOICFV(YcXSY>!7->@gj@8T29-?7<~zU=IVF%!am!$P+`e4WF02I}uFDS5crf0ek2 zqsZ|=D)pf;+aa5Ix%aD0ZcSMJBMSSrGLg2VQ6&i}Is;8CWnfMFb|>#?^LIDz0k@8Ld&R?^Uu+~qAMdCBrrc%;6@keZ4-r{uTYZ7dup zz3|oz|8Ic~A@7aFHr3v-eDgDp@r%P?jV^RDu!<0ryg*WAr5F1>V%m7CkYHs9=QQlne^3L=7mF|f6%dNMe9S94zKF$BSRgZtT@>6v+I9qRL#*3vSHW7i*Pm7xFS9*W-N<-V^-5pqWx``M$H7e1|8OOYz zTBn%gRi^lEQlo)0&UV+1)y)MCOYG60VoWZaANXd?!dVscf^ExUK_Jjofsmmr2P*5< zN*VkE&lL`{vel%C!gI?myepE2eYPKl4XZw3EO4U{`{C?z7C@!H_c!q{Z zeT6}!bLF}|)6v$O_wDpH=cuAj4%&!O7E6`-|p7^6qUPZBrs(1T|c)sLUxZeX-7Wu+K}OX zQSgI|KP(<#CV_$f{_BGr10pibm=C%Ohy2Hf3y8zzM}Ea?4Dg75d|-k=24eu=#06XP zA0NLk@Z+a@?6wU5F&-L8sEQxtfuM+y!heo;ca{O|rWr+pV#0YG zWafuUc7~`osAGn*L>jOao0TBgadXXl#N%B`ko(D38&ixCjyyxQ%7>v^8Ok&2O5#wV6=EQHO=y;bd@qcjjFidN#CmjzL^gx;IHi zd<<1P!Ron-W{hi+JKWBoVRr)<(n|UMm%zSkUj53Dp5aftn54Sww4g`JEruPVWg(nJ z&H7cQ`-vE541OWAju7Q6_(48hzdra$6fXG56bA##8&oVqnJ?UUiJM_F!Kdk=tm@8} zrhX@qE#wVEl09K_fW=W}eRza%Fejn`*L6XD+|EV|}e44V2 zYz%#`QKR`szHy-(`vp<`h9p~QKnk1Ueh0DOVPG113w;b_Y6^WbMAEV$9B;A#B&jP6 zW=A4lnsoKBXfm`JOg;&gQ#p)8M@8eIH}<${;9(`H@Q~0{ZI7<|0}cjbUf2Exz+YYz zD0-r8vg?2T!`6KOdUCp8JE8dZ%@7CtnwG2>^6F*(@o8oO6O?dIsrtLac)|n%4sv3( z|MX~JxnF}Bs7+@TUcKHwKUzSwbRM>m{^xjp7+xS+S&OZNh&N{1kcWG7#Cb7Gwto9pJIm1q1=w2ua zongl%hs2EpH;}Q}jVMy{y#+7r!lMt)25RXt3!RuT;_Oro!KeiPi)k(go&HU+OLTVc zMNO6+L#c&AepxPsPZ{mxrGV;G7J5g8J~fcqfejsfu~>FNjyUOq5}t1EJq$|d+Tq=K z1UWjmei?z%jgU zHN=`E{OZ$H4_-d6qpcF>?fTmcCC}S$)_~?x3!pn}0_YMgSGi_Hd>k1nrX{0du4xr@ zV_s_g__G@4bFn2-38S?e$Z-bI;n%4Ri?b~u_;+}pk0B|HzIZH@b~gU@v%D`QOWU+o z=B#GuzSw)ITaMMGRQ%!Y&Zw2iSDb~{3+y z;+$8YUwN~zBY$M@2aOQgEv(wd)^P`HJo+a$K3m-yJLj5J6v(&2*VK(Tn+k-@Lk=<^7t$W3!F?J(vvE%hN zI6Smwtu-5# z(lB<-*4RXBYh?fOe(JVgTC)HoNcx!&aSKL&2R?bxxPqrNF+3}5cV%V8h^J2w01era zud~^>@^LUnmSZbM^T)m%K1NjAPyCeX;H7o@v$KQ6Pg}zOMK)cX)iB_*A=kL9!E;i# ztfHcgR4d3a?PrJ9;QHR)-Z6n~X;++z%F5gbPX)9?cUO)KCVC*MK);1Sws33-_em9l z$%hi&16|xgFGX#1d2KnNB&@`VIyySlueXLRqGR?h5uY6lYMt21wMzQPa7~0xjXc*g zHJa1fqF%cV@=`+UUpc$UP(imH z=+lzCy3@wNhqp55YvDfl#;Ey$H-_h$v2oVL+S~07=+P;ZFy)=3yRQ!z{8arOMEpt)OGaA*`lX56qRasu8 z&*FFITa)PT#B*bViWlQ`)+4DwdS(IvVmh*sHJ}^r!jxlQp|j{%;~gBZJL5njxpupb zDSC!^#}|<<*mpeN|DQx%yzcC;tM%C&-KATCWM8tt zY=n82h#JK)F$SMTYW?fQTigwMZ~s?&=NS}bv+aALBqa+Hgb@Wqf&!9sNCJWaf}-T4 zmB{f=_VBx6-fMTz*eb7FuhH{xafu}51mhBY+I55{C*&1Q^AnBz>;bJ9$; zS4P;<^t7!nJ?#U&b7^IR4rN}q@}e3HR7P5vjeAy63^#hbI!{LnAQiCQX75XB`ED=g!tw zjj2Af^A&Q|Z#a>o5B9Z@%QdP?l^b}7ON2?&=jA#oi@uLG=~SbS4(Q6EP^38&cfF8o z((Ts0A4#^jBYv~_1Py&dQ{62d&9jU=;TRV_o%%6B-r)1|xq6>*s8qMMM4)4|cznyB z)LZO4nv@@)9w8MgI+CJwJd#WbRhFyYNZgN{^zx$$t!v{%(<_Duo zH&XO$`XJL~CWeZio1JY7mJ3u+obArhtB(%RU1-O#MMskyaXLepCN=n^?~cXpm6Lsb&82z2F}oQDI8%1^j`EvDw- zF}AlshX)1hi2^-(1M{$PIPQqKWW#tUe%-AusIk6FD3|yWxV2Hq4*0)8EgGoUW+g!q=2rSgEWoBZxwD*mwSp$%^3oXgs5w$4id*%1G+Y>c?TrL{jNR61 z`Tcx3GQfpV!PobNP*|zF<37dS9m{&XN)e1B%-m-@~09bM%;&gs#JsnJ5Qj^ znIxC4S9Ev@Z zsojFZd;^7nHm_c_>?dW!l==vK-GGmfr`=J88!kIV{3fp!!f%-LHStLBiIhYO9ZiJ6 zWC8MJvv&+{K-bAo7&=CMWIRz~078V2Iy^SE*OQR6$bqA|unHD=omFQnT+x;5Cia^c zF+*OcX#)7Ff9Xva_je(YH-#l0d*y9yLj~Q-NHkozcNY$IyWHd=Lt8T=&c-;bYPUI9 zAThm!IWmldlk(J|k9c2@3s~FP%`eO*H48A!)5pSOL_TP4e8v~!fYZO>V2Q*~AhVw+ z{+_BO4NDI5r3yJD0XyxuOY!tMO7n>17hYN{G^-l~b2JL@p`+ZXZ=kou=f7~(5DGJi zzZ7~cSK4GCRrX>9VMSK3qX{l6g}Y(om+R2oD2mWd5+Cd!3j65ue4raS>MC|+&kq4Z*yeSV(tOG& zIT;m6)>LSIZHC^I1M9y1`S#AY)YP5r*4Af<4RzeGuBiUax*CLal|RVY>pdwS6&cBl zU+gr0U7YbSW1szv_)~~_#iA`uY5ucDD6trfH{ri7PIs7{tmf{LAAB)JYt~0LoaI^w zT&wSBBBq*$KlHKCp3&uN! zT{Z4G2TbUV=-deI^Z%SrAzullmy(D~@-p$qnR0o@WOX|z8;SV`umPv}Vyc#iVhJwL zxSlaY>e1mFH2FUpq{QNSKI=kMW`uET4G(oVi(Fe7C3u#%4eneXN8MRmEiHr<`B^4z zlo3-{u)+lczX=xh9|s=Z*ME0P3sEuMdDMO^IDruBpZyAov!L&kz%_hA$ce50lt^Yq zg`cH@*3U~$r@k+L$FGq$V~;N3XL6J5uMPg0$v-ps$0q;S z*x>1>62uNJR}rEdZ-;eQXnt6=uBdIew{9oY({kB(?fV2M=D`+t3?Wo5NQC!^26b9{wLT=`)sqfg zji^}3bC%aNDty58GiEHILFGT(w#VXPyFIdX@`qk$WK5X(?&C}BuR^JNU~__#~F6 zSt>@e3Zq*&4n!bf!lIQefDu)LH!(j@oadIYc4*B%uI?${?$K?$n1wp;ym(j0DTRkB z0RaJs53ZtDb-TkSn4mt6#qt?6&l~T#$d~!n*u0@@D zUd4ckBwN|NI4mk1a%8bedSCg3awpF!nK6O+RO zPC(V2lv@O{imyLZzYmgSSBeG1VL(J}2pKwmu=vjT0QmLp`qD6`ua!dQGgaQol}5Jx zvVO;k^}Fr)oomU>A%^M*JXr0;d#$W*Z=z*Bckuen7l!Taq7N&8!^Cnw>J_yS0u7Ju zx=_+hnHL23zKAS#|K-|Mz~Cr1MsuPc1w~(8l&n1>Yd_B>X8YXGy+dhr_;7!?$Z_ye zuT5489s{CQm_rj(UY?Bk9724rwL-0xYwp++uIE*B@YDfI&G5qtL;r!{Y%5pVEnX2d zMPvT(O8Prz`_IP23+NTCe|f~PNt|8`5B>>7Oy&sWsK5)9hp9-P)iuEV4A}8hfpt72 zsfxjg5?jg@wyrUS3PfKUB{;>ljTlD`&YJ z;V}Clb~h%e51JcSz_!o)jAo&EI*Pec9Z(%q0h=Zld`W%t&B3CUEn65M+DLy)Paox+>(0*y#Mwb< z@0=s~M53sbP%o_OLmG=g_%9?&BTa_&FaRq1iSVme%8qx1C?d=(I*Adxm&f634SBc$uM*Min z5;oOuk?&w8&cHDiih|Xa%G95q=^ZV6rH3uJ((8k2@s2U%&6K+VE};)#!K;dv5lG~JcsM@;da{LcCDQ|oevZZBr|et;`SRuZ}vN(C3w`6KHiHr^7OIl zEwV6ZPnGr~iF-KW1kaG^&<`slfPeFP)`xwBLowsJ6ob7@*u!<)@2gwJocbVKk;6$_0j-=pc;L|#LN<=lR%FKDDUlOeX*<6f zn{gf(sGOH)2uL3B_4s=RQV9LgqU*(&&xG=-=aZShNSiiH8bi!|iaxHAMCxH>BQTde zxc2MGCp=?Wz}Y?i)x*Nr zj-!|>79#;?)6agi?7&JbO03;ve^zI+;YUX6xj;A$EufsG;0_kh zmG9M(C0#@h_jbC`L*;5js+{0XE&xszm{@RDu6iE658`bEW=B{=nd*E7gTQ#K>FgQCGc2Fb<0P1>oWqFYv@>aa~=S&vS`3{|AcMv zxtw^s!n-4FUtrr07pItB;-v5Z;y@M?O770aExR;DO`Sv z0>X)W+*0)@uU2_-lK8Qs40%`4T(05jMB6Y~1MlCw84uAJz7uucf0Qa)2pDI~oi^7I zX1(?J9&=AlbV6=kj$4eJ_QY+ww4L2#DL1Ai5S0(f{Q^^`^!Q`o`PkJuo6B9sAG6Kl z%vQ!4?ng36{>sW+&!DvpD5T)989uiv(qvrcJdhCL`!`- zi+N?h$ju6p*8+vX7qm@Aiftc}j>}h{{LT&4sIPT#Jd}IR&BT4zaE~a>K~;c9EukPk z>C})#ywT%Co|bV~SVE4OSFS#WLtxXTghT;yT#$$JRfUS)wob#_K!9b93YtqxZ3EiROY+z^ z+X-e-y#mT2agTF!3-1wB3*!Mn)efpbCEAFfIfLOoNw-Sh^;z}m8)158Ih>7zgb{j{ z<_WO*j)hr04ytE0TdVmhjd-_mN810c6YL)2M_m(BTL?QI8&vkqyTn{5y@l^#KPR}M zCziApI)7A>QkXSlDVVFNdTq8m%*;$Wv<^)b<~sZ2Wzh`OvmKnxhK=mR-Yyh<)C=gm zqjP+%)sp)+Pfd_lEkV=Y!esGhH~uu4hMKAN&fhKT^cO3-01#TrY!{jZ*w#Jsi{gEE zwON|aI#16%T**LUWg64PNBO4qV3PPPpVy$c>2z69A)=Vt!Fb|(g2P=6rFW8~^Ug%V zAV!jHZzwm0_;2sts*v%EJbI6-sOnpg;k6TU{`Q!V$X_;qzEu=fQ2IoJniii?6%K?8 zf{eKJ_gCwB6y_fl+ME1=nJV~IgmN#6=DA_e{`xW7hr3{J0W0vM!KyA-QhNjUtKG>l z)!v9H0)ON*_%~iB57}5At&b2z&z8@A$i~8*W1}$$z0qgafU}!reQU1pSu96SyE|P? zptmQ`Z@>#uCw+yuwDd-a0O{(t7yPmp@76sKro~wkcd62_ zh+qeS(iF(%KSF|*pZ0Qh7wB9&*G<1hsXwLKMPYtoElhSVU2-l$ z7Ki(r=L6$*c83pTx=0nG9P&1;mT*cR$nVclu84xTH@MTW*=!R5{~e} z)^;tkwGnuz-ER*l7!GVF@0F$x>+h$>KnM*p`Z1ZyW3!e7VZ5B#985_3tw`BX$N%ie z`>fQbz|Jm_jEGFMD7o5uBx_>uDs{Mz->ZB3wi}XB7fQ7eZ$@F&;Z)(d%6D(u*=%h6 z^x)EXq$13(#J=mGdynpGp8lsvsFOY53JR$~J_J%kzepJ6(D9}eJ zi^WaxDg+bX6JggnOIrMu7IV(XVBlO1ypeUQ7{?zagbRyg(Q{LxjNWm#9j-_TnQeoD zFZcIfd4eX?9d$m(h60w9N2e(rpJUAQxIAh=IatQ1&3oioS#jAqGZ(Q2UGLV5@^V4z ze+nN?10vojCLjsyuX=HHxyq@LmeneJDoMnpCBMHa2>*~I3|^A;Dp~cIGmt61tUR6#mRVS^?L#+?N((G& zwWT!gN5(n%@x`o7I5{k^)8={@^*q!#R)JsDm#e6Y>Zn|x)8FFpCgr(Z;gdN)Lp^g%yuGY7au`9s=&3^=U62B;xTby2HZ&nRY`mbME{^fo^4J*-}X1G}1x2p7i$di^#5d%hdb%-I%epM&3 z3%)yea*jKatlD=-26A#1*7Q;ZEjh5r83TO@GDX#s%+zDsys`Qb6X=oMKi_< z=EW1gZfK+GcBjNTCws?{7wZ-<>&gfF#N;|_wO(}nhYoF7_>LvMr-PQ#{PNzfFzs82 zO~O>CcoB}RNteqDpbh?X@+nF3iCN=v@~L8{74$M)pVUI=SbY(_4#5#U$L%3R)jlNN zHtPu^revHdTfdI5blT9u6MxW}47K9StI})>&d!Iv8xwsw?;W+d4DR+h{h_FW0c`t6D=982~3&Q@hMo3-F%`1b6U#|r~K&cNiuN7ik z-c>;F)@N9QKPTq&XBaVgJ{O7oBoUSbQp4wdFU&jqp^6Oz1avvq6y$Y${5v&v zftKaxk3s3;^!GL?cs140bR`5*+#W8;=LXruyaoJvP;?L%Z)eE$SGXxXR(d{!Laz#>=W#4DE7GG={LcspN`> zt-R8fuJ=qNxun?mQNU2Lc=WqMcPur41wEHb!G2u8;M_5Hk2|^hI-QV zhMvLKy!m_JZnd&vR5<|9C%^%A)a9hc%8QyxpEc~eH&OSuHy>lB0wzYv2O*C9vLxRc zM3r+jxfUTH?pBB?Hl+Angom!iNCz;RR8Rd*ZxE_nzLF^JkhHGd5sV|pOKu_oJMOog zL&Nc}hqH=*VpLKHgTdhk43k|!M^Q}n;{B*QF%)p7|m`ZBRT>mMdKSk`;T zh*-WF(n(D|=Ff`(0#f`heB8N?u}?-aC|q0n)O0KwiZ>Wck6%Ksbz&~U1sntzih}{?| z0~hDWFz7KGi%DWuDMCfM6y_Iqh3U3?z@3iIf)R5(@-m(q)mv=UoM@H$=o}|=EOBwp zOOJ`G5Vb9VD=`utmv`6=%jJiRsJC{z!e-PC_6`9N#h7`%OQ;OD$)f?FAF|?h#v0Hv zMp*wnb!L28QY*+zFF=x9eRFF5vJ%nOi5f_H;Lg_0t&`QDk2MHyq=Ln1TrQOq8%fsT zy)xg&^~y5V3pxEtng%@{#e3u^>&NO+eM}ctp1>}8NfxpSg#GpolEkJo7=6AlVz#`5 z$!zWHvfVvBCp&I*>6wxA_4Pp#4OK39T3OfBkF?%JVhD=V?_A*M!3vg&g+nl`#p&v; zhDMEH_n&bPT6-F?9JbazJiZN{&i#_+_;zW9w+YSSDu^XsE{%JZiK>Dbr z()m2TUCCABJ@TT0pRL)urfq~CbtT>TNqD4d6Hgy~bWNW{v+?!>NSH$i*VZ$!=r{(< zR>14r`?u_8i_akXDgH-kEQH~a(+zT z(=aqiOwmRq*c7uG$quXezEeZK&CN5ry=IZMF($2R#cUTizAq`k(9M(Q(Vq=~N|1$| z&3D{vx+h7NJ@@GS8PAa4kU~Ye1#xi=*919#3YFcz?)QZ94L-|f$4pu<7eeuC>KALh zN78>vi?VQSr*vkYH(aS9uD{CRH*c4kxK#WpL8`hkS@KB2bt0CaVaaEaPyE1nCRS`9 z*_TpqIRLViY!x_iuq}mesux4_KqU{h`kC=JlV0FQ87N0p;uQKFB+~EB_ju7%<9rrmD8_9L*njC3+D60xCnJ2Jmu6*lMZml8`dG4N@jL@ za_a;-z*~CfoJ6IoWQtvs*|_`ul}6&P(vXi(9%3_ONs`CB{pEZps|x+MpC03~nqgbLFL3O1jLS*SVv|rt z=Pk18atW6)MX8l93>I6-RF9 zT;H|acw^s*6frxFfveagEybY^mfBEB?_2Fx;_4^o7vFP&+{-`S_~cm#^(B>!0XGd6 zar=Z{-QB9_!2J)Mt!OJb)B1CM`", + "to": [to], + "subject": subject, + "text": body} + ) +``` + +Here I moved the domain line outside the function so it only runs once, and I've made sure to run `load_dotenv()` before it is requested. + +The background worker will import `tasks.py` once at the start of its lifetime, so doing this will (very slightly) improve performance. + +We could leave it like this, but I think we can do better. Let's write another function underneath that one that specifically describes the task that we want to perform in the background: send a registration email to a specific user: + +```py title="tasks.py" +import os +import requests +from dotenv import load_dotenv + +load_dotenv() + +DOMAIN = os.getenv("MAILGUN_DOMAIN") + +def send_simple_message(to, subject, body): + return requests.post( + f"https://api.mailgun.net/v3/{DOMAIN}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={"from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body} + ) + + +# highlight-start +def send_user_registration_email(email, username): + return send_simple_message( + email, + "Successfully signed up", + f"Hi {username}! You have successfully signed up to the Stores REST API.", + ) +# highlight-end +``` + +:::tip +Remember to change "Your Name" in `from` to whatever name you want your emails to come from! +::: + +Next up, let's get our Redis connection string and add it to the `.env` file: + +```text title=".env" +REDIS_URL="rediss://red-ct8aen0hkl10:MnLs0mmrX7MBXWRkdrh49@frankfurt-redis.render.com:6379" +``` + +And then let's go to our User resource and add a couple of imports: + +```py title="resources/user.py" +import redis +from rq import Queue +from tasks import send_user_registration_email +``` + +Then let's connect to Redis and create our `rq` queue. Under the blueprint definition, I'll add these lines: + +```py title="resources/user.py" +connection = redis.from_url( + os.getenv("REDIS_URL") +) # Get this from Render.com or run in Docker +queue = Queue("emails", connection=connection) +``` + +Now we can use the `queue` to "enqueue" jobs, i.e. add to the queue. That will put some data into the Redis database, which then the background worker can consume. + +### How to enqueue a job using `rq` + +This is the easy part! + +We are going to remove the code that sends the email from `resources/user.py`, and instead enqueue it using the `queue` variable. This takes the name of the function we want the background worker to call, and then all the arguments we'd like to pass to that function when it runs. + +```diff title="resources/user.py" +-send_simple_message( +- to=user.email, +- subject="Successfully signed up", +- body=f"Hi {user.username}! You have successfully signed up to the Stores REST API." +-) ++queue.enqueue(send_user_registration_email, user.email, user.username) +``` + +:::info +Remember the `send_user_registration_email` function doesn't run when we call `.enqueue`. It runs when the background worker starts working on this task, which could take some time! +::: \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.env.example b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.env.example new file mode 100644 index 00000000..0437809b --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.env.example @@ -0,0 +1,4 @@ +DATABASE_URL= +MAILGUN_API_KEY= +MAILGUN_DOMAIN= +REDIS_URL= \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.flaskenv b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.flaskenv new file mode 100644 index 00000000..75473901 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=app +FLASK_ENV=development \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.gitignore b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.gitignore new file mode 100644 index 00000000..6104f428 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/.gitignore @@ -0,0 +1,7 @@ +.env +.venv +.vscode +__pycache__ +data.db +*.pyc +.DS_Store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/CONTRIBUTING.md b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/CONTRIBUTING.md new file mode 100644 index 00000000..7e550e79 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUTING + +## How to run the Dockerfile locally + +``` +docker run -dp 5000:5000 -w /app -v "$(pwd):/app" IMAGE_NAME sh -c "flask run" +``` diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/Dockerfile b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/Dockerfile new file mode 100644 index 00000000..121cf5b6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.10 +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir --upgrade -r requirements.txt +COPY . . +CMD ["/bin/bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/README.md b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/README.md new file mode 100644 index 00000000..ae704d28 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/README.md @@ -0,0 +1,3 @@ +# REST APIs Recording Project + +Nothing here yet! diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/app.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/app.py new file mode 100644 index 00000000..65d7d0ca --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/app.py @@ -0,0 +1,109 @@ +import os + +from flask import Flask, jsonify +from flask_smorest import Api +from flask_jwt_extended import JWTManager +from flask_migrate import Migrate +from dotenv import load_dotenv + + +from db import db +from blocklist import BLOCKLIST +import models + +from resources.item import blp as ItemBlueprint +from resources.store import blp as StoreBlueprint +from resources.tag import blp as TagBlueprint +from resources.user import blp as UserBlueprint + + +def create_app(db_url=None): + app = Flask(__name__) + load_dotenv() + + app.config["PROPAGATE_EXCEPTIONS"] = True + app.config["API_TITLE"] = "Stores REST API" + app.config["API_VERSION"] = "v1" + app.config["OPENAPI_VERSION"] = "3.0.3" + app.config["OPENAPI_URL_PREFIX"] = "/" + app.config["OPENAPI_SWAGGER_UI_PATH"] = "/swagger-ui" + app.config["OPENAPI_SWAGGER_UI_URL"] = "https://cdn.jsdelivr.net/npm/swagger-ui-dist/" + app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db") + app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + db.init_app(app) + migrate = Migrate(app, db) + api = Api(app) + + app.config["JWT_SECRET_KEY"] = "jose" + jwt = JWTManager(app) + + @jwt.token_in_blocklist_loader + def check_if_token_in_blocklist(jwt_header, jwt_payload): + return jwt_payload["jti"] in BLOCKLIST + + @jwt.revoked_token_loader + def revoked_token_callback(jwt_header, jwt_payload): + return ( + jsonify( + {"description": "The token has been revoked.", "error": "token_revoked"} + ), + 401, + ) + + @jwt.needs_fresh_token_loader + def token_not_fresh_callback(jwt_header, jwt_payload): + return ( + jsonify( + { + "description": "The token is not fresh.", + "error": "fresh_token_required", + } + ), + 401, + ) + + @jwt.additional_claims_loader + def add_claims_to_jwt(identity): + # Look in the database and see whether the user is an admin + if identity == 1: + return {"is_admin": True} + return {"is_admin": False} + + @jwt.expired_token_loader + def expired_token_callback(jwt_header, jwt_payload): + return ( + jsonify({"message": "The token has expired.", "error": "token_expired"}), + 401, + ) + + @jwt.invalid_token_loader + def invalid_token_callback(error): + return ( + jsonify( + {"message": "Signature verification failed.", "error": "invalid_token"} + ), + 401, + ) + + @jwt.unauthorized_loader + def missing_token_callback(error): + return ( + jsonify( + { + "description": "Request does not contain an access token.", + "error": "authorization_required", + } + ), + 401, + ) + + @app.before_first_request + def create_tables(): + db.create_all() + + api.register_blueprint(ItemBlueprint) + api.register_blueprint(StoreBlueprint) + api.register_blueprint(TagBlueprint) + api.register_blueprint(UserBlueprint) + + return app \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/blocklist.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/blocklist.py new file mode 100644 index 00000000..77751bef --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/blocklist.py @@ -0,0 +1,9 @@ +""" +blocklist.py + +This file just contains the blocklist of the JWT tokens. It will be imported by +app and the logout resource so that tokens can be added to the blocklist when the +user logs out. +""" + +BLOCKLIST = set() \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/db.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/db.py new file mode 100644 index 00000000..f0b13d6f --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/db.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/docker-entrypoint.sh b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/docker-entrypoint.sh new file mode 100644 index 00000000..134c2988 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +flask db upgrade + +exec gunicorn --bind 0.0.0.0:80 "app:create_app()" \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/README b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/README new file mode 100644 index 00000000..0e048441 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/README @@ -0,0 +1 @@ +Single-database configuration for Flask. diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/alembic.ini b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/alembic.ini new file mode 100644 index 00000000..ec9d45c2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/alembic.ini @@ -0,0 +1,50 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic,flask_migrate + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[logger_flask_migrate] +level = INFO +handlers = +qualname = flask_migrate + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/env.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/env.py new file mode 100644 index 00000000..2ec83a7e --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/env.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import logging +from logging.config import fileConfig + +from flask import current_app + +from alembic import context + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +config.set_main_option( + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.get_engine().url).replace( + '%', '%%')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + compare_type=True, + literal_binds=True + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + connectable = current_app.extensions['migrate'].db.get_engine() + + with connectable.connect() as connection: + context.configure( + connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + compare_type=True, + **current_app.extensions['migrate'].configure_args + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/script.py.mako b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/script.py.mako new file mode 100644 index 00000000..2c015630 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/07006e31e788_.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/07006e31e788_.py new file mode 100644 index 00000000..e58a46db --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/07006e31e788_.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 07006e31e788 +Revises: +Create Date: 2022-08-15 12:44:59.705694 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '07006e31e788' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('stores', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=80), nullable=False), + sa.Column('password', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('username') + ) + op.create_table('items', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('price', sa.Float(precision=2), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('items_tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('item_id', sa.Integer(), nullable=True), + sa.Column('tag_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['item_id'], ['items.id'], ), + sa.ForeignKeyConstraint(['tag_id'], ['tags.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('items_tags') + op.drop_table('tags') + op.drop_table('items') + op.drop_table('users') + op.drop_table('stores') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/8ca023a4a4b0_.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/8ca023a4a4b0_.py new file mode 100644 index 00000000..3c369e48 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/8ca023a4a4b0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 8ca023a4a4b0 +Revises: 07006e31e788 +Create Date: 2022-08-15 12:52:41.303543 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8ca023a4a4b0' +down_revision = '07006e31e788' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('items', sa.Column('description', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('items', 'description') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/bb5da1e68550_.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/bb5da1e68550_.py new file mode 100644 index 00000000..e6e23e40 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/bb5da1e68550_.py @@ -0,0 +1,42 @@ +"""empty message + +Revision ID: bb5da1e68550 +Revises: 8ca023a4a4b0 +Create Date: 2022-08-29 13:06:57.697368 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'bb5da1e68550' +down_revision = '8ca023a4a4b0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('items', 'price', + existing_type=sa.REAL(), + type_=sa.Float(precision=2), + existing_nullable=False) + op.alter_column('users', 'password', + existing_type=sa.VARCHAR(length=80), + type_=sa.String(length=256), + existing_nullable=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'password', + existing_type=sa.String(length=256), + type_=sa.VARCHAR(length=80), + existing_nullable=False) + op.alter_column('items', 'price', + existing_type=sa.Float(precision=2), + type_=sa.REAL(), + existing_nullable=False) + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/d8e0f80631fb_.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/d8e0f80631fb_.py new file mode 100644 index 00000000..c5a7f793 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/migrations/versions/d8e0f80631fb_.py @@ -0,0 +1,30 @@ +"""empty message + +Revision ID: d8e0f80631fb +Revises: bb5da1e68550 +Create Date: 2022-10-11 14:46:28.100282 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "d8e0f80631fb" +down_revision = "bb5da1e68550" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column("users", sa.Column("email", sa.String(), nullable=False)) + op.create_unique_constraint("email", "users", ["email"]) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint("email", "users", type_="unique") + op.drop_column("users", "email") + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/__init__.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/__init__.py new file mode 100644 index 00000000..04f2e012 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/__init__.py @@ -0,0 +1,5 @@ +from models.store import StoreModel +from models.item import ItemModel +from models.tag import TagModel +from models.item_tags import ItemTags +from models.user import UserModel \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/item.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/item.py new file mode 100644 index 00000000..45006d57 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/item.py @@ -0,0 +1,13 @@ +from sqlalchemy import ForeignKey +from db import db + +class ItemModel(db.Model): + __tablename__ = "items" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=False, nullable=False) + description = db.Column(db.String) + price = db.Column(db.Float(precision=2), unique=False, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), unique=False, nullable=False) + store = db.relationship("StoreModel", back_populates="items") + tags = db.relationship("TagModel", back_populates="items", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/item_tags.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/item_tags.py new file mode 100644 index 00000000..5dfd5cf5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/item_tags.py @@ -0,0 +1,9 @@ +from db import db + + +class ItemTags(db.Model): + __tablename__ = "items_tags" + + id = db.Column(db.Integer, primary_key=True) + item_id = db.Column(db.Integer, db.ForeignKey("items.id")) + tag_id = db.Column(db.Integer, db.ForeignKey("tags.id")) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/store.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/store.py new file mode 100644 index 00000000..90ad43d5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/store.py @@ -0,0 +1,10 @@ +from db import db + + +class StoreModel(db.Model): + __tablename__ = "stores" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + items = db.relationship("ItemModel", back_populates="store", lazy="dynamic") + tags = db.relationship("TagModel", back_populates="store", lazy="dynamic") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/tag.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/tag.py new file mode 100644 index 00000000..008e8d37 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/tag.py @@ -0,0 +1,12 @@ +from db import db + + +class TagModel(db.Model): + __tablename__ = "tags" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), nullable=False) + + store = db.relationship("StoreModel", back_populates="tags") + items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/user.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/user.py new file mode 100644 index 00000000..5fb33bbb --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/models/user.py @@ -0,0 +1,10 @@ +from db import db + + +class UserModel(db.Model): + __tablename__ = "users" + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + email = db.Column(db.String, unique=True, nullable=False) + password = db.Column(db.String(256), nullable=False) diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/requirements.txt b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/requirements.txt new file mode 100644 index 00000000..98937dfa --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/requirements.txt @@ -0,0 +1,13 @@ +flask==2.1.3 +flask-smorest +python-dotenv +sqlalchemy +flask-sqlalchemy +flask-jwt-extended +passlib +flask-migrate +gunicorn +psycopg2 +requests +redis +rq \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/item.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/item.py new file mode 100644 index 00000000..545f73b5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/item.py @@ -0,0 +1,67 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from flask_jwt_extended import jwt_required, get_jwt +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import ItemModel +from schemas import ItemSchema, ItemUpdateSchema + +blp = Blueprint("Items", __name__, description="Operations on items") + + +@blp.route("/item/") +class Item(MethodView): + @jwt_required() + @blp.response(200, ItemSchema) + def get(self, item_id): + item = ItemModel.query.get_or_404(item_id) + return item + + @jwt_required() + def delete(self, item_id): + jwt = get_jwt() + if not jwt.get("is_admin"): + abort(401, message="Admin privilege required.") + + item = ItemModel.query.get_or_404(item_id) + db.session.delete(item) + db.session.commit() + return {"message": "Item deleted."} + + @blp.arguments(ItemUpdateSchema) + @blp.response(200, ItemSchema) + def put(self, item_data, item_id): + item = ItemModel.query.get(item_id) + if item: + item.price = item_data["price"] + item.name = item_data["name"] + else: + item = ItemModel(id=item_id, **item_data) + + db.session.add(item) + db.session.commit() + + return item + + +@blp.route("/item") +class ItemList(MethodView): + @jwt_required() + @blp.response(200, ItemSchema(many=True)) + def get(self): + return ItemModel.query.all() + + @jwt_required(fresh=True) + @blp.arguments(ItemSchema) + @blp.response(201, ItemSchema) + def post(self, item_data): + item = ItemModel(**item_data) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred whilte inserting the item.") + + return item \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/store.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/store.py new file mode 100644 index 00000000..488c1f67 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/store.py @@ -0,0 +1,51 @@ +import uuid +from flask import request +from flask.views import MethodView +from flask_smorest import Blueprint, abort + +from sqlalchemy.exc import SQLAlchemyError, IntegrityError + +from db import db +from models import StoreModel +from schemas import StoreSchema + + +blp = Blueprint("stores", __name__, description="Operations on stores") + + +@blp.route("/store/") +class Store(MethodView): + @blp.response(200, StoreSchema) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + return store + + def delete(self, store_id): + store = StoreModel.query.get_or_404(store_id) + db.session.delete(store) + db.session.commit() + return {"message": "Store deleted"} + + +@blp.route("/store") +class StoreList(MethodView): + @blp.response(200, StoreSchema(many=True)) + def get(self): + return StoreModel.query.all() + + @blp.arguments(StoreSchema) + @blp.response(200, StoreSchema) + def post(self, store_data): + store = StoreModel(**store_data) + try: + db.session.add(store) + db.session.commit() + except IntegrityError: + abort( + 400, + message="A store with that name already exists.", + ) + except SQLAlchemyError: + abort(500, message="An error occurred creating the store.") + + return store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/tag.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/tag.py new file mode 100644 index 00000000..f15c41b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/tag.py @@ -0,0 +1,97 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import TagModel, StoreModel, ItemModel +from schemas import TagSchema, TagAndItemSchema + +blp = Blueprint("Tags", "tags", description="Operations on tags") + + +@blp.route("/store//tag") +class TagsInStore(MethodView): + @blp.response(200, TagSchema(many=True)) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + + return store.tags.all() + + @blp.arguments(TagSchema) + @blp.response(201, TagSchema) + def post(self, tag_data, store_id): + tag = TagModel(**tag_data, store_id=store_id) + + try: + db.session.add(tag) + db.session.commit() + except SQLAlchemyError as e: + abort( + 500, + message=str(e) + ) + + return tag + + +@blp.route("/item//tag/") +class LinkTagsToItem(MethodView): + @blp.response(201, TagSchema) + def post(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.append(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return tag + + @blp.response(200, TagAndItemSchema) + def delete(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.remove(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return {"message": "Item removed from tag", "item": item, "tag": tag} + + +@blp.route("/tag/") +class Tag(MethodView): + @blp.response(200, TagSchema) + def get(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + return tag + + @blp.response( + 202, + description="Deletes a tag if no item is tagged with it.", + example={"message": "Tag deleted."} + ) + @blp.alt_response(404, description="Tag not found.") + @blp.alt_response( + 400, + description="Returned if the tag is assigned to one or more items. In this case, the tag is not deleted." + ) + def delete(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + + if not tag.items: + db.session.delete(tag) + db.session.commit() + return {"message": "Tag deleted."} + abort( + 400, + message="Could not delete tag. Make sure tag is not associated with any items, then try again.", + ) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/user.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/user.py new file mode 100644 index 00000000..15fc1e04 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/resources/user.py @@ -0,0 +1,100 @@ +import os +import redis +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from passlib.hash import pbkdf2_sha256 +from flask_jwt_extended import ( + create_access_token, + create_refresh_token, + get_jwt_identity, + jwt_required, + get_jwt, +) +from rq import Queue +from sqlalchemy import or_ + +from db import db +from blocklist import BLOCKLIST +from models import UserModel +from schemas import UserSchema, UserRegisterSchema +from tasks import send_user_registration_email + + +blp = Blueprint("Users", "users", description="Operations on users") +connection = redis.from_url( + os.getenv("REDIS_URL") +) # Get this from Render.com or run in Docker +queue = Queue("emails", connection=connection) + + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter( + or_( + UserModel.username == user_data["username"], + UserModel.email == user_data["email"], + ) + ).first(): + abort(409, message="A user with that username or email already exists.") + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + queue.enqueue(send_user_registration_email, user.email, user.username) + + return {"message": "User created successfully."}, 201 + + +@blp.route("/login") +class UserLogin(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + user = UserModel.query.filter( + UserModel.username == user_data["username"] + ).first() + + if user and pbkdf2_sha256.verify(user_data["password"], user.password): + access_token = create_access_token(identity=user.id, fresh=True) + refresh_token = create_refresh_token(identity=user.id) + return {"access_token": access_token, "refresh_token": refresh_token} + + abort(401, message="Invalid credentials.") + + +@blp.route("/refresh") +class TokenRefresh(MethodView): + @jwt_required(refresh=True) + def post(self): + current_user = get_jwt_identity() + new_token = create_access_token(identity=current_user, fresh=False) + return {"access_token": new_token} + + +@blp.route("/logout") +class UserLogout(MethodView): + @jwt_required() + def post(self): + jti = get_jwt()["jti"] + BLOCKLIST.add(jti) + return {"message": "Successfully logged out."} + + +@blp.route("/user/") +class User(MethodView): + @blp.response(200, UserSchema) + def get(self, user_id): + user = UserModel.query.get_or_404(user_id) + return user + + def delete(self, user_id): + user = UserModel.query.get_or_404(user_id) + db.session.delete(user) + db.session.commit() + return {"message": "User deleted."}, 200 diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/schemas.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/schemas.py new file mode 100644 index 00000000..8c145440 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/schemas.py @@ -0,0 +1,56 @@ +from marshmallow import Schema, fields + + +class PlainItemSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + price = fields.Float(required=True) + + +class PlainStoreSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + + +class PlainTagSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str() + + +class ItemUpdateSchema(Schema): + name = fields.Str() + price = fields.Float() + store_id = fields.Int() + + +class ItemSchema(PlainItemSchema): + store_id = fields.Int(required=True, load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class StoreSchema(PlainStoreSchema): + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class TagSchema(PlainTagSchema): + store_id = fields.Int(load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + + +class TagAndItemSchema(Schema): + message = fields.Str() + item = fields.Nested(ItemSchema) + tag = fields.Nested(TagSchema) + + +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True) + + +class UserRegisterSchema(UserSchema): + email = fields.Str(required=True) diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/tasks.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/tasks.py new file mode 100644 index 00000000..9fccd544 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/end/tasks.py @@ -0,0 +1,28 @@ +import os +import requests +from dotenv import load_dotenv + +load_dotenv() + +DOMAIN = os.getenv("MAILGUN_DOMAIN") + + +def send_simple_message(to, subject, body): + return requests.post( + f"https://api.mailgun.net/v3/{DOMAIN}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={ + "from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body, + }, + ) + + +def send_user_registration_email(email, username): + return send_simple_message( + email, + "Successfully signed up", + f"Hi {username}! You have successfully signed up to the Stores REST API.", + ) diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.env.example b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.env.example new file mode 100644 index 00000000..312ae619 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.env.example @@ -0,0 +1,3 @@ +DATABASE_URL= +MAILGUN_API_KEY= +MAILGUN_DOMAIN= \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.flaskenv b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.flaskenv new file mode 100644 index 00000000..75473901 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=app +FLASK_ENV=development \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.gitignore b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.gitignore new file mode 100644 index 00000000..6104f428 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/.gitignore @@ -0,0 +1,7 @@ +.env +.venv +.vscode +__pycache__ +data.db +*.pyc +.DS_Store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/CONTRIBUTING.md b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/CONTRIBUTING.md new file mode 100644 index 00000000..7e550e79 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUTING + +## How to run the Dockerfile locally + +``` +docker run -dp 5000:5000 -w /app -v "$(pwd):/app" IMAGE_NAME sh -c "flask run" +``` diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/Dockerfile b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/Dockerfile new file mode 100644 index 00000000..121cf5b6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.10 +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir --upgrade -r requirements.txt +COPY . . +CMD ["/bin/bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/README.md b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/README.md new file mode 100644 index 00000000..ae704d28 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/README.md @@ -0,0 +1,3 @@ +# REST APIs Recording Project + +Nothing here yet! diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/app.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/app.py new file mode 100644 index 00000000..65d7d0ca --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/app.py @@ -0,0 +1,109 @@ +import os + +from flask import Flask, jsonify +from flask_smorest import Api +from flask_jwt_extended import JWTManager +from flask_migrate import Migrate +from dotenv import load_dotenv + + +from db import db +from blocklist import BLOCKLIST +import models + +from resources.item import blp as ItemBlueprint +from resources.store import blp as StoreBlueprint +from resources.tag import blp as TagBlueprint +from resources.user import blp as UserBlueprint + + +def create_app(db_url=None): + app = Flask(__name__) + load_dotenv() + + app.config["PROPAGATE_EXCEPTIONS"] = True + app.config["API_TITLE"] = "Stores REST API" + app.config["API_VERSION"] = "v1" + app.config["OPENAPI_VERSION"] = "3.0.3" + app.config["OPENAPI_URL_PREFIX"] = "/" + app.config["OPENAPI_SWAGGER_UI_PATH"] = "/swagger-ui" + app.config["OPENAPI_SWAGGER_UI_URL"] = "https://cdn.jsdelivr.net/npm/swagger-ui-dist/" + app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db") + app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + db.init_app(app) + migrate = Migrate(app, db) + api = Api(app) + + app.config["JWT_SECRET_KEY"] = "jose" + jwt = JWTManager(app) + + @jwt.token_in_blocklist_loader + def check_if_token_in_blocklist(jwt_header, jwt_payload): + return jwt_payload["jti"] in BLOCKLIST + + @jwt.revoked_token_loader + def revoked_token_callback(jwt_header, jwt_payload): + return ( + jsonify( + {"description": "The token has been revoked.", "error": "token_revoked"} + ), + 401, + ) + + @jwt.needs_fresh_token_loader + def token_not_fresh_callback(jwt_header, jwt_payload): + return ( + jsonify( + { + "description": "The token is not fresh.", + "error": "fresh_token_required", + } + ), + 401, + ) + + @jwt.additional_claims_loader + def add_claims_to_jwt(identity): + # Look in the database and see whether the user is an admin + if identity == 1: + return {"is_admin": True} + return {"is_admin": False} + + @jwt.expired_token_loader + def expired_token_callback(jwt_header, jwt_payload): + return ( + jsonify({"message": "The token has expired.", "error": "token_expired"}), + 401, + ) + + @jwt.invalid_token_loader + def invalid_token_callback(error): + return ( + jsonify( + {"message": "Signature verification failed.", "error": "invalid_token"} + ), + 401, + ) + + @jwt.unauthorized_loader + def missing_token_callback(error): + return ( + jsonify( + { + "description": "Request does not contain an access token.", + "error": "authorization_required", + } + ), + 401, + ) + + @app.before_first_request + def create_tables(): + db.create_all() + + api.register_blueprint(ItemBlueprint) + api.register_blueprint(StoreBlueprint) + api.register_blueprint(TagBlueprint) + api.register_blueprint(UserBlueprint) + + return app \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/blocklist.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/blocklist.py new file mode 100644 index 00000000..77751bef --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/blocklist.py @@ -0,0 +1,9 @@ +""" +blocklist.py + +This file just contains the blocklist of the JWT tokens. It will be imported by +app and the logout resource so that tokens can be added to the blocklist when the +user logs out. +""" + +BLOCKLIST = set() \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/db.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/db.py new file mode 100644 index 00000000..f0b13d6f --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/db.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/docker-entrypoint.sh b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/docker-entrypoint.sh new file mode 100644 index 00000000..134c2988 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +flask db upgrade + +exec gunicorn --bind 0.0.0.0:80 "app:create_app()" \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/README b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/README new file mode 100644 index 00000000..0e048441 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/README @@ -0,0 +1 @@ +Single-database configuration for Flask. diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/alembic.ini b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/alembic.ini new file mode 100644 index 00000000..ec9d45c2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/alembic.ini @@ -0,0 +1,50 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic,flask_migrate + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[logger_flask_migrate] +level = INFO +handlers = +qualname = flask_migrate + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/env.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/env.py new file mode 100644 index 00000000..2ec83a7e --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/env.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import logging +from logging.config import fileConfig + +from flask import current_app + +from alembic import context + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +config.set_main_option( + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.get_engine().url).replace( + '%', '%%')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + compare_type=True, + literal_binds=True + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + connectable = current_app.extensions['migrate'].db.get_engine() + + with connectable.connect() as connection: + context.configure( + connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + compare_type=True, + **current_app.extensions['migrate'].configure_args + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/script.py.mako b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/script.py.mako new file mode 100644 index 00000000..2c015630 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/07006e31e788_.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/07006e31e788_.py new file mode 100644 index 00000000..e58a46db --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/07006e31e788_.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 07006e31e788 +Revises: +Create Date: 2022-08-15 12:44:59.705694 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '07006e31e788' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('stores', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=80), nullable=False), + sa.Column('password', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('username') + ) + op.create_table('items', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('price', sa.Float(precision=2), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('items_tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('item_id', sa.Integer(), nullable=True), + sa.Column('tag_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['item_id'], ['items.id'], ), + sa.ForeignKeyConstraint(['tag_id'], ['tags.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('items_tags') + op.drop_table('tags') + op.drop_table('items') + op.drop_table('users') + op.drop_table('stores') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/8ca023a4a4b0_.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/8ca023a4a4b0_.py new file mode 100644 index 00000000..3c369e48 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/8ca023a4a4b0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 8ca023a4a4b0 +Revises: 07006e31e788 +Create Date: 2022-08-15 12:52:41.303543 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8ca023a4a4b0' +down_revision = '07006e31e788' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('items', sa.Column('description', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('items', 'description') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/bb5da1e68550_.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/bb5da1e68550_.py new file mode 100644 index 00000000..e6e23e40 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/bb5da1e68550_.py @@ -0,0 +1,42 @@ +"""empty message + +Revision ID: bb5da1e68550 +Revises: 8ca023a4a4b0 +Create Date: 2022-08-29 13:06:57.697368 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'bb5da1e68550' +down_revision = '8ca023a4a4b0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('items', 'price', + existing_type=sa.REAL(), + type_=sa.Float(precision=2), + existing_nullable=False) + op.alter_column('users', 'password', + existing_type=sa.VARCHAR(length=80), + type_=sa.String(length=256), + existing_nullable=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'password', + existing_type=sa.String(length=256), + type_=sa.VARCHAR(length=80), + existing_nullable=False) + op.alter_column('items', 'price', + existing_type=sa.Float(precision=2), + type_=sa.REAL(), + existing_nullable=False) + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/d8e0f80631fb_.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/d8e0f80631fb_.py new file mode 100644 index 00000000..c5a7f793 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/migrations/versions/d8e0f80631fb_.py @@ -0,0 +1,30 @@ +"""empty message + +Revision ID: d8e0f80631fb +Revises: bb5da1e68550 +Create Date: 2022-10-11 14:46:28.100282 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "d8e0f80631fb" +down_revision = "bb5da1e68550" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column("users", sa.Column("email", sa.String(), nullable=False)) + op.create_unique_constraint("email", "users", ["email"]) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint("email", "users", type_="unique") + op.drop_column("users", "email") + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/__init__.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/__init__.py new file mode 100644 index 00000000..04f2e012 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/__init__.py @@ -0,0 +1,5 @@ +from models.store import StoreModel +from models.item import ItemModel +from models.tag import TagModel +from models.item_tags import ItemTags +from models.user import UserModel \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/item.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/item.py new file mode 100644 index 00000000..45006d57 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/item.py @@ -0,0 +1,13 @@ +from sqlalchemy import ForeignKey +from db import db + +class ItemModel(db.Model): + __tablename__ = "items" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=False, nullable=False) + description = db.Column(db.String) + price = db.Column(db.Float(precision=2), unique=False, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), unique=False, nullable=False) + store = db.relationship("StoreModel", back_populates="items") + tags = db.relationship("TagModel", back_populates="items", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/item_tags.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/item_tags.py new file mode 100644 index 00000000..5dfd5cf5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/item_tags.py @@ -0,0 +1,9 @@ +from db import db + + +class ItemTags(db.Model): + __tablename__ = "items_tags" + + id = db.Column(db.Integer, primary_key=True) + item_id = db.Column(db.Integer, db.ForeignKey("items.id")) + tag_id = db.Column(db.Integer, db.ForeignKey("tags.id")) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/store.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/store.py new file mode 100644 index 00000000..90ad43d5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/store.py @@ -0,0 +1,10 @@ +from db import db + + +class StoreModel(db.Model): + __tablename__ = "stores" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + items = db.relationship("ItemModel", back_populates="store", lazy="dynamic") + tags = db.relationship("TagModel", back_populates="store", lazy="dynamic") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/tag.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/tag.py new file mode 100644 index 00000000..008e8d37 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/tag.py @@ -0,0 +1,12 @@ +from db import db + + +class TagModel(db.Model): + __tablename__ = "tags" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), nullable=False) + + store = db.relationship("StoreModel", back_populates="tags") + items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/user.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/user.py new file mode 100644 index 00000000..5fb33bbb --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/models/user.py @@ -0,0 +1,10 @@ +from db import db + + +class UserModel(db.Model): + __tablename__ = "users" + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + email = db.Column(db.String, unique=True, nullable=False) + password = db.Column(db.String(256), nullable=False) diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/requirements.txt b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/requirements.txt new file mode 100644 index 00000000..215ae898 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/requirements.txt @@ -0,0 +1,11 @@ +flask==2.1.3 +flask-smorest +python-dotenv +sqlalchemy +flask-sqlalchemy +flask-jwt-extended +passlib +flask-migrate +gunicorn +psycopg2 +requests \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/item.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/item.py new file mode 100644 index 00000000..545f73b5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/item.py @@ -0,0 +1,67 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from flask_jwt_extended import jwt_required, get_jwt +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import ItemModel +from schemas import ItemSchema, ItemUpdateSchema + +blp = Blueprint("Items", __name__, description="Operations on items") + + +@blp.route("/item/") +class Item(MethodView): + @jwt_required() + @blp.response(200, ItemSchema) + def get(self, item_id): + item = ItemModel.query.get_or_404(item_id) + return item + + @jwt_required() + def delete(self, item_id): + jwt = get_jwt() + if not jwt.get("is_admin"): + abort(401, message="Admin privilege required.") + + item = ItemModel.query.get_or_404(item_id) + db.session.delete(item) + db.session.commit() + return {"message": "Item deleted."} + + @blp.arguments(ItemUpdateSchema) + @blp.response(200, ItemSchema) + def put(self, item_data, item_id): + item = ItemModel.query.get(item_id) + if item: + item.price = item_data["price"] + item.name = item_data["name"] + else: + item = ItemModel(id=item_id, **item_data) + + db.session.add(item) + db.session.commit() + + return item + + +@blp.route("/item") +class ItemList(MethodView): + @jwt_required() + @blp.response(200, ItemSchema(many=True)) + def get(self): + return ItemModel.query.all() + + @jwt_required(fresh=True) + @blp.arguments(ItemSchema) + @blp.response(201, ItemSchema) + def post(self, item_data): + item = ItemModel(**item_data) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred whilte inserting the item.") + + return item \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/store.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/store.py new file mode 100644 index 00000000..488c1f67 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/store.py @@ -0,0 +1,51 @@ +import uuid +from flask import request +from flask.views import MethodView +from flask_smorest import Blueprint, abort + +from sqlalchemy.exc import SQLAlchemyError, IntegrityError + +from db import db +from models import StoreModel +from schemas import StoreSchema + + +blp = Blueprint("stores", __name__, description="Operations on stores") + + +@blp.route("/store/") +class Store(MethodView): + @blp.response(200, StoreSchema) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + return store + + def delete(self, store_id): + store = StoreModel.query.get_or_404(store_id) + db.session.delete(store) + db.session.commit() + return {"message": "Store deleted"} + + +@blp.route("/store") +class StoreList(MethodView): + @blp.response(200, StoreSchema(many=True)) + def get(self): + return StoreModel.query.all() + + @blp.arguments(StoreSchema) + @blp.response(200, StoreSchema) + def post(self, store_data): + store = StoreModel(**store_data) + try: + db.session.add(store) + db.session.commit() + except IntegrityError: + abort( + 400, + message="A store with that name already exists.", + ) + except SQLAlchemyError: + abort(500, message="An error occurred creating the store.") + + return store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/tag.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/tag.py new file mode 100644 index 00000000..f15c41b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/tag.py @@ -0,0 +1,97 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import TagModel, StoreModel, ItemModel +from schemas import TagSchema, TagAndItemSchema + +blp = Blueprint("Tags", "tags", description="Operations on tags") + + +@blp.route("/store//tag") +class TagsInStore(MethodView): + @blp.response(200, TagSchema(many=True)) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + + return store.tags.all() + + @blp.arguments(TagSchema) + @blp.response(201, TagSchema) + def post(self, tag_data, store_id): + tag = TagModel(**tag_data, store_id=store_id) + + try: + db.session.add(tag) + db.session.commit() + except SQLAlchemyError as e: + abort( + 500, + message=str(e) + ) + + return tag + + +@blp.route("/item//tag/") +class LinkTagsToItem(MethodView): + @blp.response(201, TagSchema) + def post(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.append(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return tag + + @blp.response(200, TagAndItemSchema) + def delete(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.remove(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return {"message": "Item removed from tag", "item": item, "tag": tag} + + +@blp.route("/tag/") +class Tag(MethodView): + @blp.response(200, TagSchema) + def get(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + return tag + + @blp.response( + 202, + description="Deletes a tag if no item is tagged with it.", + example={"message": "Tag deleted."} + ) + @blp.alt_response(404, description="Tag not found.") + @blp.alt_response( + 400, + description="Returned if the tag is assigned to one or more items. In this case, the tag is not deleted." + ) + def delete(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + + if not tag.items: + db.session.delete(tag) + db.session.commit() + return {"message": "Tag deleted."} + abort( + 400, + message="Could not delete tag. Make sure tag is not associated with any items, then try again.", + ) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/user.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/user.py new file mode 100644 index 00000000..9fd3da6b --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/resources/user.py @@ -0,0 +1,112 @@ +import os +import requests +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from passlib.hash import pbkdf2_sha256 +from flask_jwt_extended import ( + create_access_token, + create_refresh_token, + get_jwt_identity, + jwt_required, + get_jwt, +) +from sqlalchemy import or_ + +from db import db +from blocklist import BLOCKLIST +from models import UserModel +from schemas import UserSchema, UserRegisterSchema + + +blp = Blueprint("Users", "users", description="Operations on users") + + +def send_simple_message(to, subject, body): + domain = os.getenv("MAILGUN_DOMAIN") + return requests.post( + f"https://api.mailgun.net/v3/{domain}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={ + "from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body, + }, + ) + + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter( + or_( + UserModel.username == user_data["username"], + UserModel.email == user_data["email"], + ) + ).first(): + abort(409, message="A user with that username or email already exists.") + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + send_simple_message( + to=user.email, + subject="Successfully signed up", + body=f"Hi {user.username}! You have successfully signed up to the Stores REST API.", + ) + + return {"message": "User created successfully."}, 201 + + +@blp.route("/login") +class UserLogin(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + user = UserModel.query.filter( + UserModel.username == user_data["username"] + ).first() + + if user and pbkdf2_sha256.verify(user_data["password"], user.password): + access_token = create_access_token(identity=user.id, fresh=True) + refresh_token = create_refresh_token(identity=user.id) + return {"access_token": access_token, "refresh_token": refresh_token} + + abort(401, message="Invalid credentials.") + + +@blp.route("/refresh") +class TokenRefresh(MethodView): + @jwt_required(refresh=True) + def post(self): + current_user = get_jwt_identity() + new_token = create_access_token(identity=current_user, fresh=False) + return {"access_token": new_token} + + +@blp.route("/logout") +class UserLogout(MethodView): + @jwt_required() + def post(self): + jti = get_jwt()["jti"] + BLOCKLIST.add(jti) + return {"message": "Successfully logged out."} + + +@blp.route("/user/") +class User(MethodView): + @blp.response(200, UserSchema) + def get(self, user_id): + user = UserModel.query.get_or_404(user_id) + return user + + def delete(self, user_id): + user = UserModel.query.get_or_404(user_id) + db.session.delete(user) + db.session.commit() + return {"message": "User deleted."}, 200 diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/schemas.py b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/schemas.py new file mode 100644 index 00000000..8c145440 --- /dev/null +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/start/schemas.py @@ -0,0 +1,56 @@ +from marshmallow import Schema, fields + + +class PlainItemSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + price = fields.Float(required=True) + + +class PlainStoreSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + + +class PlainTagSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str() + + +class ItemUpdateSchema(Schema): + name = fields.Str() + price = fields.Float() + store_id = fields.Int() + + +class ItemSchema(PlainItemSchema): + store_id = fields.Int(required=True, load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class StoreSchema(PlainStoreSchema): + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class TagSchema(PlainTagSchema): + store_id = fields.Int(load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + + +class TagAndItemSchema(Schema): + message = fields.Str() + item = fields.Nested(ItemSchema) + tag = fields.Nested(TagSchema) + + +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True) + + +class UserRegisterSchema(UserSchema): + email = fields.Str(required=True) diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/README.md b/docs/docs/12_task_queues_emails/05_rq_background_worker/README.md new file mode 100644 index 00000000..6670fdfa --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/README.md @@ -0,0 +1,80 @@ +# Process background tasks with the rq worker + +We've got our queue and we've added tasks to it, but they won't run until we start consuming them and popping them off the queue. + +To do this, we'll run a background worker whose job it is to pop items off the queue one at a time, and run the associated Python function with the associated arguments. + +:::tip MacOS or Linux? +If you are using MacOS or Linux, you can run the background worker for testing using this command (make sure your virtual environment is active): + +```bash +rq worker -u rediss://red-ccu1t8a0hklj2a10:MnLsMDwImrX7Rkdrhwrp@frankfurt-redis.render.com:6379 emails +``` + +The `rq` executable is available after installing the `rq` library with `pip`. The `-u` flag gives it the Redis URL to connect to. The `emails` at the end is the name of the queue that it should consume from. Make sure it matches the name of the queue you defined in `resources/user.py`. +::: + +:::warning Running on MacOS +You may get an error when running `rq worker` directly using MacOS (without Docker): + +```text +objc[21400]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. +``` + +If so, try running this command before starting your `rq worker`: + +```bash +export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES +``` + +::: + +The most reliable way to run the worker though, is using Docker. + +We are already used to running our API using Docker, so now we can use the same Docker image to run our worker. + +First, build the image: + +```bash +docker build -t rest-apis-flask-smorest-rq . +``` + +Then run a container, but instead of running the default entrypoint (defined by the `CMD` line in the `Dockerfile`), we'll tell it to run the `rq` program: + +```bash +docker run -w /app rest-apis-flask-smorest-rq sh -c "rq worker -u rediss://red-caenka10:MnLsmrX7Mrh9sp@frankfurt-redis.render.com:6379 emails" +``` + +:::info +Make sure to enter your own Redis connection string in that command! +::: + +This ensures one of the [considerations](https://python-rq.org/docs/#considerations-for-jobs) that the `rq` documentation suggests: that the worker and the work generator (our API) share _exactly_ the same source code. + +Run another Docker container for your API, and try to register! + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +

\ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/.env.example b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/.env.example new file mode 100644 index 00000000..0437809b --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/.env.example @@ -0,0 +1,4 @@ +DATABASE_URL= +MAILGUN_API_KEY= +MAILGUN_DOMAIN= +REDIS_URL= \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/.flaskenv b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/.flaskenv new file mode 100644 index 00000000..75473901 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=app +FLASK_ENV=development \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/.gitignore b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/.gitignore new file mode 100644 index 00000000..6104f428 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/.gitignore @@ -0,0 +1,7 @@ +.env +.venv +.vscode +__pycache__ +data.db +*.pyc +.DS_Store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/CONTRIBUTING.md b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/CONTRIBUTING.md new file mode 100644 index 00000000..7e550e79 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUTING + +## How to run the Dockerfile locally + +``` +docker run -dp 5000:5000 -w /app -v "$(pwd):/app" IMAGE_NAME sh -c "flask run" +``` diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/Dockerfile b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/Dockerfile new file mode 100644 index 00000000..121cf5b6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.10 +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir --upgrade -r requirements.txt +COPY . . +CMD ["/bin/bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/README.md b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/README.md new file mode 100644 index 00000000..ae704d28 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/README.md @@ -0,0 +1,3 @@ +# REST APIs Recording Project + +Nothing here yet! diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/app.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/app.py new file mode 100644 index 00000000..65d7d0ca --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/app.py @@ -0,0 +1,109 @@ +import os + +from flask import Flask, jsonify +from flask_smorest import Api +from flask_jwt_extended import JWTManager +from flask_migrate import Migrate +from dotenv import load_dotenv + + +from db import db +from blocklist import BLOCKLIST +import models + +from resources.item import blp as ItemBlueprint +from resources.store import blp as StoreBlueprint +from resources.tag import blp as TagBlueprint +from resources.user import blp as UserBlueprint + + +def create_app(db_url=None): + app = Flask(__name__) + load_dotenv() + + app.config["PROPAGATE_EXCEPTIONS"] = True + app.config["API_TITLE"] = "Stores REST API" + app.config["API_VERSION"] = "v1" + app.config["OPENAPI_VERSION"] = "3.0.3" + app.config["OPENAPI_URL_PREFIX"] = "/" + app.config["OPENAPI_SWAGGER_UI_PATH"] = "/swagger-ui" + app.config["OPENAPI_SWAGGER_UI_URL"] = "https://cdn.jsdelivr.net/npm/swagger-ui-dist/" + app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db") + app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + db.init_app(app) + migrate = Migrate(app, db) + api = Api(app) + + app.config["JWT_SECRET_KEY"] = "jose" + jwt = JWTManager(app) + + @jwt.token_in_blocklist_loader + def check_if_token_in_blocklist(jwt_header, jwt_payload): + return jwt_payload["jti"] in BLOCKLIST + + @jwt.revoked_token_loader + def revoked_token_callback(jwt_header, jwt_payload): + return ( + jsonify( + {"description": "The token has been revoked.", "error": "token_revoked"} + ), + 401, + ) + + @jwt.needs_fresh_token_loader + def token_not_fresh_callback(jwt_header, jwt_payload): + return ( + jsonify( + { + "description": "The token is not fresh.", + "error": "fresh_token_required", + } + ), + 401, + ) + + @jwt.additional_claims_loader + def add_claims_to_jwt(identity): + # Look in the database and see whether the user is an admin + if identity == 1: + return {"is_admin": True} + return {"is_admin": False} + + @jwt.expired_token_loader + def expired_token_callback(jwt_header, jwt_payload): + return ( + jsonify({"message": "The token has expired.", "error": "token_expired"}), + 401, + ) + + @jwt.invalid_token_loader + def invalid_token_callback(error): + return ( + jsonify( + {"message": "Signature verification failed.", "error": "invalid_token"} + ), + 401, + ) + + @jwt.unauthorized_loader + def missing_token_callback(error): + return ( + jsonify( + { + "description": "Request does not contain an access token.", + "error": "authorization_required", + } + ), + 401, + ) + + @app.before_first_request + def create_tables(): + db.create_all() + + api.register_blueprint(ItemBlueprint) + api.register_blueprint(StoreBlueprint) + api.register_blueprint(TagBlueprint) + api.register_blueprint(UserBlueprint) + + return app \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/blocklist.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/blocklist.py new file mode 100644 index 00000000..77751bef --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/blocklist.py @@ -0,0 +1,9 @@ +""" +blocklist.py + +This file just contains the blocklist of the JWT tokens. It will be imported by +app and the logout resource so that tokens can be added to the blocklist when the +user logs out. +""" + +BLOCKLIST = set() \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/db.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/db.py new file mode 100644 index 00000000..f0b13d6f --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/db.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/docker-entrypoint.sh b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/docker-entrypoint.sh new file mode 100644 index 00000000..134c2988 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +flask db upgrade + +exec gunicorn --bind 0.0.0.0:80 "app:create_app()" \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/README b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/README new file mode 100644 index 00000000..0e048441 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/README @@ -0,0 +1 @@ +Single-database configuration for Flask. diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/alembic.ini b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/alembic.ini new file mode 100644 index 00000000..ec9d45c2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/alembic.ini @@ -0,0 +1,50 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic,flask_migrate + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[logger_flask_migrate] +level = INFO +handlers = +qualname = flask_migrate + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/env.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/env.py new file mode 100644 index 00000000..2ec83a7e --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/env.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import logging +from logging.config import fileConfig + +from flask import current_app + +from alembic import context + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +config.set_main_option( + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.get_engine().url).replace( + '%', '%%')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + compare_type=True, + literal_binds=True + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + connectable = current_app.extensions['migrate'].db.get_engine() + + with connectable.connect() as connection: + context.configure( + connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + compare_type=True, + **current_app.extensions['migrate'].configure_args + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/script.py.mako b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/script.py.mako new file mode 100644 index 00000000..2c015630 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/07006e31e788_.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/07006e31e788_.py new file mode 100644 index 00000000..e58a46db --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/07006e31e788_.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 07006e31e788 +Revises: +Create Date: 2022-08-15 12:44:59.705694 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '07006e31e788' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('stores', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=80), nullable=False), + sa.Column('password', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('username') + ) + op.create_table('items', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('price', sa.Float(precision=2), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('items_tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('item_id', sa.Integer(), nullable=True), + sa.Column('tag_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['item_id'], ['items.id'], ), + sa.ForeignKeyConstraint(['tag_id'], ['tags.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('items_tags') + op.drop_table('tags') + op.drop_table('items') + op.drop_table('users') + op.drop_table('stores') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/8ca023a4a4b0_.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/8ca023a4a4b0_.py new file mode 100644 index 00000000..3c369e48 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/8ca023a4a4b0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 8ca023a4a4b0 +Revises: 07006e31e788 +Create Date: 2022-08-15 12:52:41.303543 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8ca023a4a4b0' +down_revision = '07006e31e788' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('items', sa.Column('description', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('items', 'description') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/bb5da1e68550_.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/bb5da1e68550_.py new file mode 100644 index 00000000..e6e23e40 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/bb5da1e68550_.py @@ -0,0 +1,42 @@ +"""empty message + +Revision ID: bb5da1e68550 +Revises: 8ca023a4a4b0 +Create Date: 2022-08-29 13:06:57.697368 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'bb5da1e68550' +down_revision = '8ca023a4a4b0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('items', 'price', + existing_type=sa.REAL(), + type_=sa.Float(precision=2), + existing_nullable=False) + op.alter_column('users', 'password', + existing_type=sa.VARCHAR(length=80), + type_=sa.String(length=256), + existing_nullable=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'password', + existing_type=sa.String(length=256), + type_=sa.VARCHAR(length=80), + existing_nullable=False) + op.alter_column('items', 'price', + existing_type=sa.Float(precision=2), + type_=sa.REAL(), + existing_nullable=False) + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/d8e0f80631fb_.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/d8e0f80631fb_.py new file mode 100644 index 00000000..c5a7f793 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/migrations/versions/d8e0f80631fb_.py @@ -0,0 +1,30 @@ +"""empty message + +Revision ID: d8e0f80631fb +Revises: bb5da1e68550 +Create Date: 2022-10-11 14:46:28.100282 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "d8e0f80631fb" +down_revision = "bb5da1e68550" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column("users", sa.Column("email", sa.String(), nullable=False)) + op.create_unique_constraint("email", "users", ["email"]) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint("email", "users", type_="unique") + op.drop_column("users", "email") + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/__init__.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/__init__.py new file mode 100644 index 00000000..04f2e012 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/__init__.py @@ -0,0 +1,5 @@ +from models.store import StoreModel +from models.item import ItemModel +from models.tag import TagModel +from models.item_tags import ItemTags +from models.user import UserModel \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/item.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/item.py new file mode 100644 index 00000000..45006d57 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/item.py @@ -0,0 +1,13 @@ +from sqlalchemy import ForeignKey +from db import db + +class ItemModel(db.Model): + __tablename__ = "items" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=False, nullable=False) + description = db.Column(db.String) + price = db.Column(db.Float(precision=2), unique=False, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), unique=False, nullable=False) + store = db.relationship("StoreModel", back_populates="items") + tags = db.relationship("TagModel", back_populates="items", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/item_tags.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/item_tags.py new file mode 100644 index 00000000..5dfd5cf5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/item_tags.py @@ -0,0 +1,9 @@ +from db import db + + +class ItemTags(db.Model): + __tablename__ = "items_tags" + + id = db.Column(db.Integer, primary_key=True) + item_id = db.Column(db.Integer, db.ForeignKey("items.id")) + tag_id = db.Column(db.Integer, db.ForeignKey("tags.id")) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/store.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/store.py new file mode 100644 index 00000000..90ad43d5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/store.py @@ -0,0 +1,10 @@ +from db import db + + +class StoreModel(db.Model): + __tablename__ = "stores" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + items = db.relationship("ItemModel", back_populates="store", lazy="dynamic") + tags = db.relationship("TagModel", back_populates="store", lazy="dynamic") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/tag.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/tag.py new file mode 100644 index 00000000..008e8d37 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/tag.py @@ -0,0 +1,12 @@ +from db import db + + +class TagModel(db.Model): + __tablename__ = "tags" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), nullable=False) + + store = db.relationship("StoreModel", back_populates="tags") + items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/user.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/user.py new file mode 100644 index 00000000..5fb33bbb --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/models/user.py @@ -0,0 +1,10 @@ +from db import db + + +class UserModel(db.Model): + __tablename__ = "users" + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + email = db.Column(db.String, unique=True, nullable=False) + password = db.Column(db.String(256), nullable=False) diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/requirements.txt b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/requirements.txt new file mode 100644 index 00000000..98937dfa --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/requirements.txt @@ -0,0 +1,13 @@ +flask==2.1.3 +flask-smorest +python-dotenv +sqlalchemy +flask-sqlalchemy +flask-jwt-extended +passlib +flask-migrate +gunicorn +psycopg2 +requests +redis +rq \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/item.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/item.py new file mode 100644 index 00000000..545f73b5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/item.py @@ -0,0 +1,67 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from flask_jwt_extended import jwt_required, get_jwt +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import ItemModel +from schemas import ItemSchema, ItemUpdateSchema + +blp = Blueprint("Items", __name__, description="Operations on items") + + +@blp.route("/item/") +class Item(MethodView): + @jwt_required() + @blp.response(200, ItemSchema) + def get(self, item_id): + item = ItemModel.query.get_or_404(item_id) + return item + + @jwt_required() + def delete(self, item_id): + jwt = get_jwt() + if not jwt.get("is_admin"): + abort(401, message="Admin privilege required.") + + item = ItemModel.query.get_or_404(item_id) + db.session.delete(item) + db.session.commit() + return {"message": "Item deleted."} + + @blp.arguments(ItemUpdateSchema) + @blp.response(200, ItemSchema) + def put(self, item_data, item_id): + item = ItemModel.query.get(item_id) + if item: + item.price = item_data["price"] + item.name = item_data["name"] + else: + item = ItemModel(id=item_id, **item_data) + + db.session.add(item) + db.session.commit() + + return item + + +@blp.route("/item") +class ItemList(MethodView): + @jwt_required() + @blp.response(200, ItemSchema(many=True)) + def get(self): + return ItemModel.query.all() + + @jwt_required(fresh=True) + @blp.arguments(ItemSchema) + @blp.response(201, ItemSchema) + def post(self, item_data): + item = ItemModel(**item_data) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred whilte inserting the item.") + + return item \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/store.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/store.py new file mode 100644 index 00000000..488c1f67 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/store.py @@ -0,0 +1,51 @@ +import uuid +from flask import request +from flask.views import MethodView +from flask_smorest import Blueprint, abort + +from sqlalchemy.exc import SQLAlchemyError, IntegrityError + +from db import db +from models import StoreModel +from schemas import StoreSchema + + +blp = Blueprint("stores", __name__, description="Operations on stores") + + +@blp.route("/store/") +class Store(MethodView): + @blp.response(200, StoreSchema) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + return store + + def delete(self, store_id): + store = StoreModel.query.get_or_404(store_id) + db.session.delete(store) + db.session.commit() + return {"message": "Store deleted"} + + +@blp.route("/store") +class StoreList(MethodView): + @blp.response(200, StoreSchema(many=True)) + def get(self): + return StoreModel.query.all() + + @blp.arguments(StoreSchema) + @blp.response(200, StoreSchema) + def post(self, store_data): + store = StoreModel(**store_data) + try: + db.session.add(store) + db.session.commit() + except IntegrityError: + abort( + 400, + message="A store with that name already exists.", + ) + except SQLAlchemyError: + abort(500, message="An error occurred creating the store.") + + return store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/tag.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/tag.py new file mode 100644 index 00000000..f15c41b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/tag.py @@ -0,0 +1,97 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import TagModel, StoreModel, ItemModel +from schemas import TagSchema, TagAndItemSchema + +blp = Blueprint("Tags", "tags", description="Operations on tags") + + +@blp.route("/store//tag") +class TagsInStore(MethodView): + @blp.response(200, TagSchema(many=True)) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + + return store.tags.all() + + @blp.arguments(TagSchema) + @blp.response(201, TagSchema) + def post(self, tag_data, store_id): + tag = TagModel(**tag_data, store_id=store_id) + + try: + db.session.add(tag) + db.session.commit() + except SQLAlchemyError as e: + abort( + 500, + message=str(e) + ) + + return tag + + +@blp.route("/item//tag/") +class LinkTagsToItem(MethodView): + @blp.response(201, TagSchema) + def post(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.append(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return tag + + @blp.response(200, TagAndItemSchema) + def delete(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.remove(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return {"message": "Item removed from tag", "item": item, "tag": tag} + + +@blp.route("/tag/") +class Tag(MethodView): + @blp.response(200, TagSchema) + def get(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + return tag + + @blp.response( + 202, + description="Deletes a tag if no item is tagged with it.", + example={"message": "Tag deleted."} + ) + @blp.alt_response(404, description="Tag not found.") + @blp.alt_response( + 400, + description="Returned if the tag is assigned to one or more items. In this case, the tag is not deleted." + ) + def delete(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + + if not tag.items: + db.session.delete(tag) + db.session.commit() + return {"message": "Tag deleted."} + abort( + 400, + message="Could not delete tag. Make sure tag is not associated with any items, then try again.", + ) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/user.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/user.py new file mode 100644 index 00000000..15fc1e04 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/resources/user.py @@ -0,0 +1,100 @@ +import os +import redis +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from passlib.hash import pbkdf2_sha256 +from flask_jwt_extended import ( + create_access_token, + create_refresh_token, + get_jwt_identity, + jwt_required, + get_jwt, +) +from rq import Queue +from sqlalchemy import or_ + +from db import db +from blocklist import BLOCKLIST +from models import UserModel +from schemas import UserSchema, UserRegisterSchema +from tasks import send_user_registration_email + + +blp = Blueprint("Users", "users", description="Operations on users") +connection = redis.from_url( + os.getenv("REDIS_URL") +) # Get this from Render.com or run in Docker +queue = Queue("emails", connection=connection) + + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter( + or_( + UserModel.username == user_data["username"], + UserModel.email == user_data["email"], + ) + ).first(): + abort(409, message="A user with that username or email already exists.") + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + queue.enqueue(send_user_registration_email, user.email, user.username) + + return {"message": "User created successfully."}, 201 + + +@blp.route("/login") +class UserLogin(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + user = UserModel.query.filter( + UserModel.username == user_data["username"] + ).first() + + if user and pbkdf2_sha256.verify(user_data["password"], user.password): + access_token = create_access_token(identity=user.id, fresh=True) + refresh_token = create_refresh_token(identity=user.id) + return {"access_token": access_token, "refresh_token": refresh_token} + + abort(401, message="Invalid credentials.") + + +@blp.route("/refresh") +class TokenRefresh(MethodView): + @jwt_required(refresh=True) + def post(self): + current_user = get_jwt_identity() + new_token = create_access_token(identity=current_user, fresh=False) + return {"access_token": new_token} + + +@blp.route("/logout") +class UserLogout(MethodView): + @jwt_required() + def post(self): + jti = get_jwt()["jti"] + BLOCKLIST.add(jti) + return {"message": "Successfully logged out."} + + +@blp.route("/user/") +class User(MethodView): + @blp.response(200, UserSchema) + def get(self, user_id): + user = UserModel.query.get_or_404(user_id) + return user + + def delete(self, user_id): + user = UserModel.query.get_or_404(user_id) + db.session.delete(user) + db.session.commit() + return {"message": "User deleted."}, 200 diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/schemas.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/schemas.py new file mode 100644 index 00000000..8c145440 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/schemas.py @@ -0,0 +1,56 @@ +from marshmallow import Schema, fields + + +class PlainItemSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + price = fields.Float(required=True) + + +class PlainStoreSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + + +class PlainTagSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str() + + +class ItemUpdateSchema(Schema): + name = fields.Str() + price = fields.Float() + store_id = fields.Int() + + +class ItemSchema(PlainItemSchema): + store_id = fields.Int(required=True, load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class StoreSchema(PlainStoreSchema): + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class TagSchema(PlainTagSchema): + store_id = fields.Int(load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + + +class TagAndItemSchema(Schema): + message = fields.Str() + item = fields.Nested(ItemSchema) + tag = fields.Nested(TagSchema) + + +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True) + + +class UserRegisterSchema(UserSchema): + email = fields.Str(required=True) diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/end/tasks.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/tasks.py new file mode 100644 index 00000000..9fccd544 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/end/tasks.py @@ -0,0 +1,28 @@ +import os +import requests +from dotenv import load_dotenv + +load_dotenv() + +DOMAIN = os.getenv("MAILGUN_DOMAIN") + + +def send_simple_message(to, subject, body): + return requests.post( + f"https://api.mailgun.net/v3/{DOMAIN}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={ + "from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body, + }, + ) + + +def send_user_registration_email(email, username): + return send_simple_message( + email, + "Successfully signed up", + f"Hi {username}! You have successfully signed up to the Stores REST API.", + ) diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/.env.example b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/.env.example new file mode 100644 index 00000000..0437809b --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/.env.example @@ -0,0 +1,4 @@ +DATABASE_URL= +MAILGUN_API_KEY= +MAILGUN_DOMAIN= +REDIS_URL= \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/.flaskenv b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/.flaskenv new file mode 100644 index 00000000..75473901 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=app +FLASK_ENV=development \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/.gitignore b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/.gitignore new file mode 100644 index 00000000..6104f428 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/.gitignore @@ -0,0 +1,7 @@ +.env +.venv +.vscode +__pycache__ +data.db +*.pyc +.DS_Store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/CONTRIBUTING.md b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/CONTRIBUTING.md new file mode 100644 index 00000000..7e550e79 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUTING + +## How to run the Dockerfile locally + +``` +docker run -dp 5000:5000 -w /app -v "$(pwd):/app" IMAGE_NAME sh -c "flask run" +``` diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/Dockerfile b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/Dockerfile new file mode 100644 index 00000000..121cf5b6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.10 +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir --upgrade -r requirements.txt +COPY . . +CMD ["/bin/bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/README.md b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/README.md new file mode 100644 index 00000000..ae704d28 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/README.md @@ -0,0 +1,3 @@ +# REST APIs Recording Project + +Nothing here yet! diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/app.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/app.py new file mode 100644 index 00000000..65d7d0ca --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/app.py @@ -0,0 +1,109 @@ +import os + +from flask import Flask, jsonify +from flask_smorest import Api +from flask_jwt_extended import JWTManager +from flask_migrate import Migrate +from dotenv import load_dotenv + + +from db import db +from blocklist import BLOCKLIST +import models + +from resources.item import blp as ItemBlueprint +from resources.store import blp as StoreBlueprint +from resources.tag import blp as TagBlueprint +from resources.user import blp as UserBlueprint + + +def create_app(db_url=None): + app = Flask(__name__) + load_dotenv() + + app.config["PROPAGATE_EXCEPTIONS"] = True + app.config["API_TITLE"] = "Stores REST API" + app.config["API_VERSION"] = "v1" + app.config["OPENAPI_VERSION"] = "3.0.3" + app.config["OPENAPI_URL_PREFIX"] = "/" + app.config["OPENAPI_SWAGGER_UI_PATH"] = "/swagger-ui" + app.config["OPENAPI_SWAGGER_UI_URL"] = "https://cdn.jsdelivr.net/npm/swagger-ui-dist/" + app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db") + app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + db.init_app(app) + migrate = Migrate(app, db) + api = Api(app) + + app.config["JWT_SECRET_KEY"] = "jose" + jwt = JWTManager(app) + + @jwt.token_in_blocklist_loader + def check_if_token_in_blocklist(jwt_header, jwt_payload): + return jwt_payload["jti"] in BLOCKLIST + + @jwt.revoked_token_loader + def revoked_token_callback(jwt_header, jwt_payload): + return ( + jsonify( + {"description": "The token has been revoked.", "error": "token_revoked"} + ), + 401, + ) + + @jwt.needs_fresh_token_loader + def token_not_fresh_callback(jwt_header, jwt_payload): + return ( + jsonify( + { + "description": "The token is not fresh.", + "error": "fresh_token_required", + } + ), + 401, + ) + + @jwt.additional_claims_loader + def add_claims_to_jwt(identity): + # Look in the database and see whether the user is an admin + if identity == 1: + return {"is_admin": True} + return {"is_admin": False} + + @jwt.expired_token_loader + def expired_token_callback(jwt_header, jwt_payload): + return ( + jsonify({"message": "The token has expired.", "error": "token_expired"}), + 401, + ) + + @jwt.invalid_token_loader + def invalid_token_callback(error): + return ( + jsonify( + {"message": "Signature verification failed.", "error": "invalid_token"} + ), + 401, + ) + + @jwt.unauthorized_loader + def missing_token_callback(error): + return ( + jsonify( + { + "description": "Request does not contain an access token.", + "error": "authorization_required", + } + ), + 401, + ) + + @app.before_first_request + def create_tables(): + db.create_all() + + api.register_blueprint(ItemBlueprint) + api.register_blueprint(StoreBlueprint) + api.register_blueprint(TagBlueprint) + api.register_blueprint(UserBlueprint) + + return app \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/blocklist.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/blocklist.py new file mode 100644 index 00000000..77751bef --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/blocklist.py @@ -0,0 +1,9 @@ +""" +blocklist.py + +This file just contains the blocklist of the JWT tokens. It will be imported by +app and the logout resource so that tokens can be added to the blocklist when the +user logs out. +""" + +BLOCKLIST = set() \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/db.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/db.py new file mode 100644 index 00000000..f0b13d6f --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/db.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/docker-entrypoint.sh b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/docker-entrypoint.sh new file mode 100644 index 00000000..134c2988 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +flask db upgrade + +exec gunicorn --bind 0.0.0.0:80 "app:create_app()" \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/README b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/README new file mode 100644 index 00000000..0e048441 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/README @@ -0,0 +1 @@ +Single-database configuration for Flask. diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/alembic.ini b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/alembic.ini new file mode 100644 index 00000000..ec9d45c2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/alembic.ini @@ -0,0 +1,50 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic,flask_migrate + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[logger_flask_migrate] +level = INFO +handlers = +qualname = flask_migrate + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/env.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/env.py new file mode 100644 index 00000000..2ec83a7e --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/env.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import logging +from logging.config import fileConfig + +from flask import current_app + +from alembic import context + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +config.set_main_option( + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.get_engine().url).replace( + '%', '%%')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + compare_type=True, + literal_binds=True + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + connectable = current_app.extensions['migrate'].db.get_engine() + + with connectable.connect() as connection: + context.configure( + connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + compare_type=True, + **current_app.extensions['migrate'].configure_args + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/script.py.mako b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/script.py.mako new file mode 100644 index 00000000..2c015630 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/07006e31e788_.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/07006e31e788_.py new file mode 100644 index 00000000..e58a46db --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/07006e31e788_.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 07006e31e788 +Revises: +Create Date: 2022-08-15 12:44:59.705694 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '07006e31e788' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('stores', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=80), nullable=False), + sa.Column('password', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('username') + ) + op.create_table('items', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('price', sa.Float(precision=2), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('items_tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('item_id', sa.Integer(), nullable=True), + sa.Column('tag_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['item_id'], ['items.id'], ), + sa.ForeignKeyConstraint(['tag_id'], ['tags.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('items_tags') + op.drop_table('tags') + op.drop_table('items') + op.drop_table('users') + op.drop_table('stores') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/8ca023a4a4b0_.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/8ca023a4a4b0_.py new file mode 100644 index 00000000..3c369e48 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/8ca023a4a4b0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 8ca023a4a4b0 +Revises: 07006e31e788 +Create Date: 2022-08-15 12:52:41.303543 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8ca023a4a4b0' +down_revision = '07006e31e788' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('items', sa.Column('description', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('items', 'description') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/bb5da1e68550_.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/bb5da1e68550_.py new file mode 100644 index 00000000..e6e23e40 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/bb5da1e68550_.py @@ -0,0 +1,42 @@ +"""empty message + +Revision ID: bb5da1e68550 +Revises: 8ca023a4a4b0 +Create Date: 2022-08-29 13:06:57.697368 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'bb5da1e68550' +down_revision = '8ca023a4a4b0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('items', 'price', + existing_type=sa.REAL(), + type_=sa.Float(precision=2), + existing_nullable=False) + op.alter_column('users', 'password', + existing_type=sa.VARCHAR(length=80), + type_=sa.String(length=256), + existing_nullable=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'password', + existing_type=sa.String(length=256), + type_=sa.VARCHAR(length=80), + existing_nullable=False) + op.alter_column('items', 'price', + existing_type=sa.Float(precision=2), + type_=sa.REAL(), + existing_nullable=False) + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/d8e0f80631fb_.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/d8e0f80631fb_.py new file mode 100644 index 00000000..c5a7f793 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/migrations/versions/d8e0f80631fb_.py @@ -0,0 +1,30 @@ +"""empty message + +Revision ID: d8e0f80631fb +Revises: bb5da1e68550 +Create Date: 2022-10-11 14:46:28.100282 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "d8e0f80631fb" +down_revision = "bb5da1e68550" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column("users", sa.Column("email", sa.String(), nullable=False)) + op.create_unique_constraint("email", "users", ["email"]) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint("email", "users", type_="unique") + op.drop_column("users", "email") + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/__init__.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/__init__.py new file mode 100644 index 00000000..04f2e012 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/__init__.py @@ -0,0 +1,5 @@ +from models.store import StoreModel +from models.item import ItemModel +from models.tag import TagModel +from models.item_tags import ItemTags +from models.user import UserModel \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/item.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/item.py new file mode 100644 index 00000000..45006d57 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/item.py @@ -0,0 +1,13 @@ +from sqlalchemy import ForeignKey +from db import db + +class ItemModel(db.Model): + __tablename__ = "items" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=False, nullable=False) + description = db.Column(db.String) + price = db.Column(db.Float(precision=2), unique=False, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), unique=False, nullable=False) + store = db.relationship("StoreModel", back_populates="items") + tags = db.relationship("TagModel", back_populates="items", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/item_tags.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/item_tags.py new file mode 100644 index 00000000..5dfd5cf5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/item_tags.py @@ -0,0 +1,9 @@ +from db import db + + +class ItemTags(db.Model): + __tablename__ = "items_tags" + + id = db.Column(db.Integer, primary_key=True) + item_id = db.Column(db.Integer, db.ForeignKey("items.id")) + tag_id = db.Column(db.Integer, db.ForeignKey("tags.id")) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/store.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/store.py new file mode 100644 index 00000000..90ad43d5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/store.py @@ -0,0 +1,10 @@ +from db import db + + +class StoreModel(db.Model): + __tablename__ = "stores" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + items = db.relationship("ItemModel", back_populates="store", lazy="dynamic") + tags = db.relationship("TagModel", back_populates="store", lazy="dynamic") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/tag.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/tag.py new file mode 100644 index 00000000..008e8d37 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/tag.py @@ -0,0 +1,12 @@ +from db import db + + +class TagModel(db.Model): + __tablename__ = "tags" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), nullable=False) + + store = db.relationship("StoreModel", back_populates="tags") + items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/user.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/user.py new file mode 100644 index 00000000..5fb33bbb --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/models/user.py @@ -0,0 +1,10 @@ +from db import db + + +class UserModel(db.Model): + __tablename__ = "users" + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + email = db.Column(db.String, unique=True, nullable=False) + password = db.Column(db.String(256), nullable=False) diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/requirements.txt b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/requirements.txt new file mode 100644 index 00000000..98937dfa --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/requirements.txt @@ -0,0 +1,13 @@ +flask==2.1.3 +flask-smorest +python-dotenv +sqlalchemy +flask-sqlalchemy +flask-jwt-extended +passlib +flask-migrate +gunicorn +psycopg2 +requests +redis +rq \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/item.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/item.py new file mode 100644 index 00000000..545f73b5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/item.py @@ -0,0 +1,67 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from flask_jwt_extended import jwt_required, get_jwt +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import ItemModel +from schemas import ItemSchema, ItemUpdateSchema + +blp = Blueprint("Items", __name__, description="Operations on items") + + +@blp.route("/item/") +class Item(MethodView): + @jwt_required() + @blp.response(200, ItemSchema) + def get(self, item_id): + item = ItemModel.query.get_or_404(item_id) + return item + + @jwt_required() + def delete(self, item_id): + jwt = get_jwt() + if not jwt.get("is_admin"): + abort(401, message="Admin privilege required.") + + item = ItemModel.query.get_or_404(item_id) + db.session.delete(item) + db.session.commit() + return {"message": "Item deleted."} + + @blp.arguments(ItemUpdateSchema) + @blp.response(200, ItemSchema) + def put(self, item_data, item_id): + item = ItemModel.query.get(item_id) + if item: + item.price = item_data["price"] + item.name = item_data["name"] + else: + item = ItemModel(id=item_id, **item_data) + + db.session.add(item) + db.session.commit() + + return item + + +@blp.route("/item") +class ItemList(MethodView): + @jwt_required() + @blp.response(200, ItemSchema(many=True)) + def get(self): + return ItemModel.query.all() + + @jwt_required(fresh=True) + @blp.arguments(ItemSchema) + @blp.response(201, ItemSchema) + def post(self, item_data): + item = ItemModel(**item_data) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred whilte inserting the item.") + + return item \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/store.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/store.py new file mode 100644 index 00000000..488c1f67 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/store.py @@ -0,0 +1,51 @@ +import uuid +from flask import request +from flask.views import MethodView +from flask_smorest import Blueprint, abort + +from sqlalchemy.exc import SQLAlchemyError, IntegrityError + +from db import db +from models import StoreModel +from schemas import StoreSchema + + +blp = Blueprint("stores", __name__, description="Operations on stores") + + +@blp.route("/store/") +class Store(MethodView): + @blp.response(200, StoreSchema) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + return store + + def delete(self, store_id): + store = StoreModel.query.get_or_404(store_id) + db.session.delete(store) + db.session.commit() + return {"message": "Store deleted"} + + +@blp.route("/store") +class StoreList(MethodView): + @blp.response(200, StoreSchema(many=True)) + def get(self): + return StoreModel.query.all() + + @blp.arguments(StoreSchema) + @blp.response(200, StoreSchema) + def post(self, store_data): + store = StoreModel(**store_data) + try: + db.session.add(store) + db.session.commit() + except IntegrityError: + abort( + 400, + message="A store with that name already exists.", + ) + except SQLAlchemyError: + abort(500, message="An error occurred creating the store.") + + return store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/tag.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/tag.py new file mode 100644 index 00000000..f15c41b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/tag.py @@ -0,0 +1,97 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import TagModel, StoreModel, ItemModel +from schemas import TagSchema, TagAndItemSchema + +blp = Blueprint("Tags", "tags", description="Operations on tags") + + +@blp.route("/store//tag") +class TagsInStore(MethodView): + @blp.response(200, TagSchema(many=True)) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + + return store.tags.all() + + @blp.arguments(TagSchema) + @blp.response(201, TagSchema) + def post(self, tag_data, store_id): + tag = TagModel(**tag_data, store_id=store_id) + + try: + db.session.add(tag) + db.session.commit() + except SQLAlchemyError as e: + abort( + 500, + message=str(e) + ) + + return tag + + +@blp.route("/item//tag/") +class LinkTagsToItem(MethodView): + @blp.response(201, TagSchema) + def post(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.append(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return tag + + @blp.response(200, TagAndItemSchema) + def delete(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.remove(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return {"message": "Item removed from tag", "item": item, "tag": tag} + + +@blp.route("/tag/") +class Tag(MethodView): + @blp.response(200, TagSchema) + def get(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + return tag + + @blp.response( + 202, + description="Deletes a tag if no item is tagged with it.", + example={"message": "Tag deleted."} + ) + @blp.alt_response(404, description="Tag not found.") + @blp.alt_response( + 400, + description="Returned if the tag is assigned to one or more items. In this case, the tag is not deleted." + ) + def delete(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + + if not tag.items: + db.session.delete(tag) + db.session.commit() + return {"message": "Tag deleted."} + abort( + 400, + message="Could not delete tag. Make sure tag is not associated with any items, then try again.", + ) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/user.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/user.py new file mode 100644 index 00000000..15fc1e04 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/resources/user.py @@ -0,0 +1,100 @@ +import os +import redis +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from passlib.hash import pbkdf2_sha256 +from flask_jwt_extended import ( + create_access_token, + create_refresh_token, + get_jwt_identity, + jwt_required, + get_jwt, +) +from rq import Queue +from sqlalchemy import or_ + +from db import db +from blocklist import BLOCKLIST +from models import UserModel +from schemas import UserSchema, UserRegisterSchema +from tasks import send_user_registration_email + + +blp = Blueprint("Users", "users", description="Operations on users") +connection = redis.from_url( + os.getenv("REDIS_URL") +) # Get this from Render.com or run in Docker +queue = Queue("emails", connection=connection) + + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter( + or_( + UserModel.username == user_data["username"], + UserModel.email == user_data["email"], + ) + ).first(): + abort(409, message="A user with that username or email already exists.") + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + queue.enqueue(send_user_registration_email, user.email, user.username) + + return {"message": "User created successfully."}, 201 + + +@blp.route("/login") +class UserLogin(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + user = UserModel.query.filter( + UserModel.username == user_data["username"] + ).first() + + if user and pbkdf2_sha256.verify(user_data["password"], user.password): + access_token = create_access_token(identity=user.id, fresh=True) + refresh_token = create_refresh_token(identity=user.id) + return {"access_token": access_token, "refresh_token": refresh_token} + + abort(401, message="Invalid credentials.") + + +@blp.route("/refresh") +class TokenRefresh(MethodView): + @jwt_required(refresh=True) + def post(self): + current_user = get_jwt_identity() + new_token = create_access_token(identity=current_user, fresh=False) + return {"access_token": new_token} + + +@blp.route("/logout") +class UserLogout(MethodView): + @jwt_required() + def post(self): + jti = get_jwt()["jti"] + BLOCKLIST.add(jti) + return {"message": "Successfully logged out."} + + +@blp.route("/user/") +class User(MethodView): + @blp.response(200, UserSchema) + def get(self, user_id): + user = UserModel.query.get_or_404(user_id) + return user + + def delete(self, user_id): + user = UserModel.query.get_or_404(user_id) + db.session.delete(user) + db.session.commit() + return {"message": "User deleted."}, 200 diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/schemas.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/schemas.py new file mode 100644 index 00000000..8c145440 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/schemas.py @@ -0,0 +1,56 @@ +from marshmallow import Schema, fields + + +class PlainItemSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + price = fields.Float(required=True) + + +class PlainStoreSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + + +class PlainTagSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str() + + +class ItemUpdateSchema(Schema): + name = fields.Str() + price = fields.Float() + store_id = fields.Int() + + +class ItemSchema(PlainItemSchema): + store_id = fields.Int(required=True, load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class StoreSchema(PlainStoreSchema): + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class TagSchema(PlainTagSchema): + store_id = fields.Int(load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + + +class TagAndItemSchema(Schema): + message = fields.Str() + item = fields.Nested(ItemSchema) + tag = fields.Nested(TagSchema) + + +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True) + + +class UserRegisterSchema(UserSchema): + email = fields.Str(required=True) diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/start/tasks.py b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/tasks.py new file mode 100644 index 00000000..9fccd544 --- /dev/null +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/start/tasks.py @@ -0,0 +1,28 @@ +import os +import requests +from dotenv import load_dotenv + +load_dotenv() + +DOMAIN = os.getenv("MAILGUN_DOMAIN") + + +def send_simple_message(to, subject, body): + return requests.post( + f"https://api.mailgun.net/v3/{DOMAIN}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={ + "from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body, + }, + ) + + +def send_user_registration_email(email, username): + return send_simple_message( + email, + "Successfully signed up", + f"Hi {username}! You have successfully signed up to the Stores REST API.", + ) diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/README.md b/docs/docs/12_task_queues_emails/06_sending_html_emails/README.md new file mode 100644 index 00000000..4bce036e --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/README.md @@ -0,0 +1,258 @@ +# Sending HTML emails with Mailgun + +Until now, we've been sending exclusively text emails. These have a clear advantage: text is simple! They'll look the same in every email client and device, and for many things, text is good enough. + +However, I'll be the first to say that it doesn't look amazing. You're at the mercy of the default font family and size of the recipient's email client, and you can't personalize the email with your business branding. + +This is where HTML emails come into play. + +HTML emails require that we write HTML instead of text, and also CSS for the styling. We should still keep the text version of the email, just in case the recipient's email client doesn't render HTML for whatever reason. + +## Writing HTML emails + +Crafting HTML emails is difficult! Every email client renders things slightly differently and supports different versions of the HTML and CSS specs. + +For example, it's discouraged to use CSS Flex when writing emails, because many email clients don't support it. + +That's why you'll see most HTML emails use HTML tables for their layout 🤮 + +Fortunately for us, Mailgun provides a few [HTML templates](https://www.mailgun.com/blog/email/transactional-html-email-templates/) that we can simply copy, paste, and modify. They test these HTML templates to make sure they render correctly in most email clients, and they come with CSS already written. + +## Getting the Mailgun HTML email templates + +This link has a writeup of how HTML templates work: [https://www.mailgun.com/blog/email/transactional-html-email-templates/](https://www.mailgun.com/blog/email/transactional-html-email-templates/). + +You can find their templates here: [https://github.com/mailgun/transactional-email-templates/tree/master/templates/inlined](https://github.com/mailgun/transactional-email-templates/tree/master/templates/inlined). + +There are three different transactional email templates, and we'll be using the [`action.html`](https://raw.githubusercontent.com/mailgun/transactional-email-templates/master/templates/inlined/action.html) template in this lecture for our "user registration" email. + +## Adding the template to our application + +Create a `templates/email/action.html` file in your project, and place the entire raw code of the `action.html` file from the Mailgun repository. + +:::tip +Make sure to grab the [**raw** code](https://raw.githubusercontent.com/mailgun/transactional-email-templates/master/templates/inlined/action.html) to make sure there are no GitHub artefacts in the code. +::: + +The copied [`action.html`](https://github.com/mailgun/transactional-email-templates/blob/master/templates/inlined/action.html) code from the [Mailgun repository](https://github.com/mailgun/transactional-email-templates) (below) is licensed with the MIT license. Please see the [repository license](https://github.com/mailgun/transactional-email-templates/blob/master/LICENSE) for more information. + +```html title="templates/email/action.html" + + + + + +Actionable emails e.g. reset password + + + + + + + + + + +
+
+ +
+ + + + +
+ Please confirm your email address by clicking the link below. +
+ We may need to send you critical information about our service and it is important that we have an accurate email address. +
+ +
+ — The Mailgunners +
+
+ +``` + +Now we can easily modify this file to suit our needs. Here are the changes I'll make: + +```diff title="templates/email/action.html" + + + +-Actionable emails e.g. reset password ++Welcome to Stores REST API + + + + + + + + + + +
+
+ +
+ + + + +
+ Welcome to the Stores REST API. +
+ Your account with username {{ username }} has been created successfully. +
+ +
+ — Stores REST API +
+
+ diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/end/templates/email/registration.original.html b/docs/docs/12_task_queues_emails/06_sending_html_emails/end/templates/email/registration.original.html new file mode 100644 index 00000000..6a2d39b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/end/templates/email/registration.original.html @@ -0,0 +1,85 @@ + + + + + +Actionable emails e.g. reset password + + + + + + + + + + +
+
+ +
+ + + + +
+ Please confirm your email address by clicking the link below. +
+ We may need to send you critical information about our service and it is important that we have an accurate email address. +
+ +
+ — The Mailgunners +
+
+ \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/.env.example b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/.env.example new file mode 100644 index 00000000..0437809b --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/.env.example @@ -0,0 +1,4 @@ +DATABASE_URL= +MAILGUN_API_KEY= +MAILGUN_DOMAIN= +REDIS_URL= \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/.flaskenv b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/.flaskenv new file mode 100644 index 00000000..75473901 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/.flaskenv @@ -0,0 +1,2 @@ +FLASK_APP=app +FLASK_ENV=development \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/.gitignore b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/.gitignore new file mode 100644 index 00000000..6104f428 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/.gitignore @@ -0,0 +1,7 @@ +.env +.venv +.vscode +__pycache__ +data.db +*.pyc +.DS_Store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/CONTRIBUTING.md b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/CONTRIBUTING.md new file mode 100644 index 00000000..7e550e79 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/CONTRIBUTING.md @@ -0,0 +1,7 @@ +# CONTRIBUTING + +## How to run the Dockerfile locally + +``` +docker run -dp 5000:5000 -w /app -v "$(pwd):/app" IMAGE_NAME sh -c "flask run" +``` diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/Dockerfile b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/Dockerfile new file mode 100644 index 00000000..121cf5b6 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/Dockerfile @@ -0,0 +1,6 @@ +FROM python:3.10 +WORKDIR /app +COPY requirements.txt . +RUN pip install --no-cache-dir --upgrade -r requirements.txt +COPY . . +CMD ["/bin/bash", "docker-entrypoint.sh"] \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/README.md b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/README.md new file mode 100644 index 00000000..ae704d28 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/README.md @@ -0,0 +1,3 @@ +# REST APIs Recording Project + +Nothing here yet! diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/app.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/app.py new file mode 100644 index 00000000..65d7d0ca --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/app.py @@ -0,0 +1,109 @@ +import os + +from flask import Flask, jsonify +from flask_smorest import Api +from flask_jwt_extended import JWTManager +from flask_migrate import Migrate +from dotenv import load_dotenv + + +from db import db +from blocklist import BLOCKLIST +import models + +from resources.item import blp as ItemBlueprint +from resources.store import blp as StoreBlueprint +from resources.tag import blp as TagBlueprint +from resources.user import blp as UserBlueprint + + +def create_app(db_url=None): + app = Flask(__name__) + load_dotenv() + + app.config["PROPAGATE_EXCEPTIONS"] = True + app.config["API_TITLE"] = "Stores REST API" + app.config["API_VERSION"] = "v1" + app.config["OPENAPI_VERSION"] = "3.0.3" + app.config["OPENAPI_URL_PREFIX"] = "/" + app.config["OPENAPI_SWAGGER_UI_PATH"] = "/swagger-ui" + app.config["OPENAPI_SWAGGER_UI_URL"] = "https://cdn.jsdelivr.net/npm/swagger-ui-dist/" + app.config["SQLALCHEMY_DATABASE_URI"] = db_url or os.getenv("DATABASE_URL", "sqlite:///data.db") + app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False + db.init_app(app) + migrate = Migrate(app, db) + api = Api(app) + + app.config["JWT_SECRET_KEY"] = "jose" + jwt = JWTManager(app) + + @jwt.token_in_blocklist_loader + def check_if_token_in_blocklist(jwt_header, jwt_payload): + return jwt_payload["jti"] in BLOCKLIST + + @jwt.revoked_token_loader + def revoked_token_callback(jwt_header, jwt_payload): + return ( + jsonify( + {"description": "The token has been revoked.", "error": "token_revoked"} + ), + 401, + ) + + @jwt.needs_fresh_token_loader + def token_not_fresh_callback(jwt_header, jwt_payload): + return ( + jsonify( + { + "description": "The token is not fresh.", + "error": "fresh_token_required", + } + ), + 401, + ) + + @jwt.additional_claims_loader + def add_claims_to_jwt(identity): + # Look in the database and see whether the user is an admin + if identity == 1: + return {"is_admin": True} + return {"is_admin": False} + + @jwt.expired_token_loader + def expired_token_callback(jwt_header, jwt_payload): + return ( + jsonify({"message": "The token has expired.", "error": "token_expired"}), + 401, + ) + + @jwt.invalid_token_loader + def invalid_token_callback(error): + return ( + jsonify( + {"message": "Signature verification failed.", "error": "invalid_token"} + ), + 401, + ) + + @jwt.unauthorized_loader + def missing_token_callback(error): + return ( + jsonify( + { + "description": "Request does not contain an access token.", + "error": "authorization_required", + } + ), + 401, + ) + + @app.before_first_request + def create_tables(): + db.create_all() + + api.register_blueprint(ItemBlueprint) + api.register_blueprint(StoreBlueprint) + api.register_blueprint(TagBlueprint) + api.register_blueprint(UserBlueprint) + + return app \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/blocklist.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/blocklist.py new file mode 100644 index 00000000..77751bef --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/blocklist.py @@ -0,0 +1,9 @@ +""" +blocklist.py + +This file just contains the blocklist of the JWT tokens. It will be imported by +app and the logout resource so that tokens can be added to the blocklist when the +user logs out. +""" + +BLOCKLIST = set() \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/db.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/db.py new file mode 100644 index 00000000..f0b13d6f --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/db.py @@ -0,0 +1,3 @@ +from flask_sqlalchemy import SQLAlchemy + +db = SQLAlchemy() diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/docker-entrypoint.sh b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/docker-entrypoint.sh new file mode 100644 index 00000000..134c2988 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/docker-entrypoint.sh @@ -0,0 +1,5 @@ +#!/bin/sh + +flask db upgrade + +exec gunicorn --bind 0.0.0.0:80 "app:create_app()" \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/README b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/README new file mode 100644 index 00000000..0e048441 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/README @@ -0,0 +1 @@ +Single-database configuration for Flask. diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/alembic.ini b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/alembic.ini new file mode 100644 index 00000000..ec9d45c2 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/alembic.ini @@ -0,0 +1,50 @@ +# A generic, single database configuration. + +[alembic] +# template used to generate migration files +# file_template = %%(rev)s_%%(slug)s + +# set to 'true' to run the environment during +# the 'revision' command, regardless of autogenerate +# revision_environment = false + + +# Logging configuration +[loggers] +keys = root,sqlalchemy,alembic,flask_migrate + +[handlers] +keys = console + +[formatters] +keys = generic + +[logger_root] +level = WARN +handlers = console +qualname = + +[logger_sqlalchemy] +level = WARN +handlers = +qualname = sqlalchemy.engine + +[logger_alembic] +level = INFO +handlers = +qualname = alembic + +[logger_flask_migrate] +level = INFO +handlers = +qualname = flask_migrate + +[handler_console] +class = StreamHandler +args = (sys.stderr,) +level = NOTSET +formatter = generic + +[formatter_generic] +format = %(levelname)-5.5s [%(name)s] %(message)s +datefmt = %H:%M:%S diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/env.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/env.py new file mode 100644 index 00000000..2ec83a7e --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/env.py @@ -0,0 +1,95 @@ +from __future__ import with_statement + +import logging +from logging.config import fileConfig + +from flask import current_app + +from alembic import context + +# this is the Alembic Config object, which provides +# access to the values within the .ini file in use. +config = context.config + +# Interpret the config file for Python logging. +# This line sets up loggers basically. +fileConfig(config.config_file_name) +logger = logging.getLogger('alembic.env') + +# add your model's MetaData object here +# for 'autogenerate' support +# from myapp import mymodel +# target_metadata = mymodel.Base.metadata +config.set_main_option( + 'sqlalchemy.url', + str(current_app.extensions['migrate'].db.get_engine().url).replace( + '%', '%%')) +target_metadata = current_app.extensions['migrate'].db.metadata + +# other values from the config, defined by the needs of env.py, +# can be acquired: +# my_important_option = config.get_main_option("my_important_option") +# ... etc. + + +def run_migrations_offline(): + """Run migrations in 'offline' mode. + + This configures the context with just a URL + and not an Engine, though an Engine is acceptable + here as well. By skipping the Engine creation + we don't even need a DBAPI to be available. + + Calls to context.execute() here emit the given string to the + script output. + + """ + url = config.get_main_option("sqlalchemy.url") + context.configure( + url=url, + target_metadata=target_metadata, + compare_type=True, + literal_binds=True + ) + + with context.begin_transaction(): + context.run_migrations() + + +def run_migrations_online(): + """Run migrations in 'online' mode. + + In this scenario we need to create an Engine + and associate a connection with the context. + + """ + + # this callback is used to prevent an auto-migration from being generated + # when there are no changes to the schema + # reference: http://alembic.zzzcomputing.com/en/latest/cookbook.html + def process_revision_directives(context, revision, directives): + if getattr(config.cmd_opts, 'autogenerate', False): + script = directives[0] + if script.upgrade_ops.is_empty(): + directives[:] = [] + logger.info('No changes in schema detected.') + + connectable = current_app.extensions['migrate'].db.get_engine() + + with connectable.connect() as connection: + context.configure( + connection=connection, + target_metadata=target_metadata, + process_revision_directives=process_revision_directives, + compare_type=True, + **current_app.extensions['migrate'].configure_args + ) + + with context.begin_transaction(): + context.run_migrations() + + +if context.is_offline_mode(): + run_migrations_offline() +else: + run_migrations_online() diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/script.py.mako b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/script.py.mako new file mode 100644 index 00000000..2c015630 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/script.py.mako @@ -0,0 +1,24 @@ +"""${message} + +Revision ID: ${up_revision} +Revises: ${down_revision | comma,n} +Create Date: ${create_date} + +""" +from alembic import op +import sqlalchemy as sa +${imports if imports else ""} + +# revision identifiers, used by Alembic. +revision = ${repr(up_revision)} +down_revision = ${repr(down_revision)} +branch_labels = ${repr(branch_labels)} +depends_on = ${repr(depends_on)} + + +def upgrade(): + ${upgrades if upgrades else "pass"} + + +def downgrade(): + ${downgrades if downgrades else "pass"} diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/07006e31e788_.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/07006e31e788_.py new file mode 100644 index 00000000..e58a46db --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/07006e31e788_.py @@ -0,0 +1,68 @@ +"""empty message + +Revision ID: 07006e31e788 +Revises: +Create Date: 2022-08-15 12:44:59.705694 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '07006e31e788' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.create_table('stores', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('users', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('username', sa.String(length=80), nullable=False), + sa.Column('password', sa.String(length=80), nullable=False), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('username') + ) + op.create_table('items', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('price', sa.Float(precision=2), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id') + ) + op.create_table('tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('name', sa.String(length=80), nullable=False), + sa.Column('store_id', sa.Integer(), nullable=False), + sa.ForeignKeyConstraint(['store_id'], ['stores.id'], ), + sa.PrimaryKeyConstraint('id'), + sa.UniqueConstraint('name') + ) + op.create_table('items_tags', + sa.Column('id', sa.Integer(), nullable=False), + sa.Column('item_id', sa.Integer(), nullable=True), + sa.Column('tag_id', sa.Integer(), nullable=True), + sa.ForeignKeyConstraint(['item_id'], ['items.id'], ), + sa.ForeignKeyConstraint(['tag_id'], ['tags.id'], ), + sa.PrimaryKeyConstraint('id') + ) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_table('items_tags') + op.drop_table('tags') + op.drop_table('items') + op.drop_table('users') + op.drop_table('stores') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/8ca023a4a4b0_.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/8ca023a4a4b0_.py new file mode 100644 index 00000000..3c369e48 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/8ca023a4a4b0_.py @@ -0,0 +1,28 @@ +"""empty message + +Revision ID: 8ca023a4a4b0 +Revises: 07006e31e788 +Create Date: 2022-08-15 12:52:41.303543 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = '8ca023a4a4b0' +down_revision = '07006e31e788' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column('items', sa.Column('description', sa.String(), nullable=True)) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_column('items', 'description') + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/bb5da1e68550_.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/bb5da1e68550_.py new file mode 100644 index 00000000..e6e23e40 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/bb5da1e68550_.py @@ -0,0 +1,42 @@ +"""empty message + +Revision ID: bb5da1e68550 +Revises: 8ca023a4a4b0 +Create Date: 2022-08-29 13:06:57.697368 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'bb5da1e68550' +down_revision = '8ca023a4a4b0' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('items', 'price', + existing_type=sa.REAL(), + type_=sa.Float(precision=2), + existing_nullable=False) + op.alter_column('users', 'password', + existing_type=sa.VARCHAR(length=80), + type_=sa.String(length=256), + existing_nullable=False) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.alter_column('users', 'password', + existing_type=sa.String(length=256), + type_=sa.VARCHAR(length=80), + existing_nullable=False) + op.alter_column('items', 'price', + existing_type=sa.Float(precision=2), + type_=sa.REAL(), + existing_nullable=False) + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/d8e0f80631fb_.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/d8e0f80631fb_.py new file mode 100644 index 00000000..c5a7f793 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/migrations/versions/d8e0f80631fb_.py @@ -0,0 +1,30 @@ +"""empty message + +Revision ID: d8e0f80631fb +Revises: bb5da1e68550 +Create Date: 2022-10-11 14:46:28.100282 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = "d8e0f80631fb" +down_revision = "bb5da1e68550" +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.add_column("users", sa.Column("email", sa.String(), nullable=False)) + op.create_unique_constraint("email", "users", ["email"]) + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + op.drop_constraint("email", "users", type_="unique") + op.drop_column("users", "email") + # ### end Alembic commands ### diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/__init__.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/__init__.py new file mode 100644 index 00000000..04f2e012 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/__init__.py @@ -0,0 +1,5 @@ +from models.store import StoreModel +from models.item import ItemModel +from models.tag import TagModel +from models.item_tags import ItemTags +from models.user import UserModel \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/item.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/item.py new file mode 100644 index 00000000..45006d57 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/item.py @@ -0,0 +1,13 @@ +from sqlalchemy import ForeignKey +from db import db + +class ItemModel(db.Model): + __tablename__ = "items" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=False, nullable=False) + description = db.Column(db.String) + price = db.Column(db.Float(precision=2), unique=False, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), unique=False, nullable=False) + store = db.relationship("StoreModel", back_populates="items") + tags = db.relationship("TagModel", back_populates="items", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/item_tags.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/item_tags.py new file mode 100644 index 00000000..5dfd5cf5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/item_tags.py @@ -0,0 +1,9 @@ +from db import db + + +class ItemTags(db.Model): + __tablename__ = "items_tags" + + id = db.Column(db.Integer, primary_key=True) + item_id = db.Column(db.Integer, db.ForeignKey("items.id")) + tag_id = db.Column(db.Integer, db.ForeignKey("tags.id")) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/store.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/store.py new file mode 100644 index 00000000..90ad43d5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/store.py @@ -0,0 +1,10 @@ +from db import db + + +class StoreModel(db.Model): + __tablename__ = "stores" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + items = db.relationship("ItemModel", back_populates="store", lazy="dynamic") + tags = db.relationship("TagModel", back_populates="store", lazy="dynamic") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/tag.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/tag.py new file mode 100644 index 00000000..008e8d37 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/tag.py @@ -0,0 +1,12 @@ +from db import db + + +class TagModel(db.Model): + __tablename__ = "tags" + + id = db.Column(db.Integer, primary_key=True) + name = db.Column(db.String(80), unique=True, nullable=False) + store_id = db.Column(db.Integer, db.ForeignKey("stores.id"), nullable=False) + + store = db.relationship("StoreModel", back_populates="tags") + items = db.relationship("ItemModel", back_populates="tags", secondary="items_tags") \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/user.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/user.py new file mode 100644 index 00000000..5fb33bbb --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/models/user.py @@ -0,0 +1,10 @@ +from db import db + + +class UserModel(db.Model): + __tablename__ = "users" + + id = db.Column(db.Integer, primary_key=True) + username = db.Column(db.String(80), unique=True, nullable=False) + email = db.Column(db.String, unique=True, nullable=False) + password = db.Column(db.String(256), nullable=False) diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/requirements.txt b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/requirements.txt new file mode 100644 index 00000000..98937dfa --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/requirements.txt @@ -0,0 +1,13 @@ +flask==2.1.3 +flask-smorest +python-dotenv +sqlalchemy +flask-sqlalchemy +flask-jwt-extended +passlib +flask-migrate +gunicorn +psycopg2 +requests +redis +rq \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/item.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/item.py new file mode 100644 index 00000000..545f73b5 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/item.py @@ -0,0 +1,67 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from flask_jwt_extended import jwt_required, get_jwt +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import ItemModel +from schemas import ItemSchema, ItemUpdateSchema + +blp = Blueprint("Items", __name__, description="Operations on items") + + +@blp.route("/item/") +class Item(MethodView): + @jwt_required() + @blp.response(200, ItemSchema) + def get(self, item_id): + item = ItemModel.query.get_or_404(item_id) + return item + + @jwt_required() + def delete(self, item_id): + jwt = get_jwt() + if not jwt.get("is_admin"): + abort(401, message="Admin privilege required.") + + item = ItemModel.query.get_or_404(item_id) + db.session.delete(item) + db.session.commit() + return {"message": "Item deleted."} + + @blp.arguments(ItemUpdateSchema) + @blp.response(200, ItemSchema) + def put(self, item_data, item_id): + item = ItemModel.query.get(item_id) + if item: + item.price = item_data["price"] + item.name = item_data["name"] + else: + item = ItemModel(id=item_id, **item_data) + + db.session.add(item) + db.session.commit() + + return item + + +@blp.route("/item") +class ItemList(MethodView): + @jwt_required() + @blp.response(200, ItemSchema(many=True)) + def get(self): + return ItemModel.query.all() + + @jwt_required(fresh=True) + @blp.arguments(ItemSchema) + @blp.response(201, ItemSchema) + def post(self, item_data): + item = ItemModel(**item_data) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred whilte inserting the item.") + + return item \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/store.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/store.py new file mode 100644 index 00000000..488c1f67 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/store.py @@ -0,0 +1,51 @@ +import uuid +from flask import request +from flask.views import MethodView +from flask_smorest import Blueprint, abort + +from sqlalchemy.exc import SQLAlchemyError, IntegrityError + +from db import db +from models import StoreModel +from schemas import StoreSchema + + +blp = Blueprint("stores", __name__, description="Operations on stores") + + +@blp.route("/store/") +class Store(MethodView): + @blp.response(200, StoreSchema) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + return store + + def delete(self, store_id): + store = StoreModel.query.get_or_404(store_id) + db.session.delete(store) + db.session.commit() + return {"message": "Store deleted"} + + +@blp.route("/store") +class StoreList(MethodView): + @blp.response(200, StoreSchema(many=True)) + def get(self): + return StoreModel.query.all() + + @blp.arguments(StoreSchema) + @blp.response(200, StoreSchema) + def post(self, store_data): + store = StoreModel(**store_data) + try: + db.session.add(store) + db.session.commit() + except IntegrityError: + abort( + 400, + message="A store with that name already exists.", + ) + except SQLAlchemyError: + abort(500, message="An error occurred creating the store.") + + return store \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/tag.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/tag.py new file mode 100644 index 00000000..f15c41b9 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/tag.py @@ -0,0 +1,97 @@ +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from sqlalchemy.exc import SQLAlchemyError + +from db import db +from models import TagModel, StoreModel, ItemModel +from schemas import TagSchema, TagAndItemSchema + +blp = Blueprint("Tags", "tags", description="Operations on tags") + + +@blp.route("/store//tag") +class TagsInStore(MethodView): + @blp.response(200, TagSchema(many=True)) + def get(self, store_id): + store = StoreModel.query.get_or_404(store_id) + + return store.tags.all() + + @blp.arguments(TagSchema) + @blp.response(201, TagSchema) + def post(self, tag_data, store_id): + tag = TagModel(**tag_data, store_id=store_id) + + try: + db.session.add(tag) + db.session.commit() + except SQLAlchemyError as e: + abort( + 500, + message=str(e) + ) + + return tag + + +@blp.route("/item//tag/") +class LinkTagsToItem(MethodView): + @blp.response(201, TagSchema) + def post(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.append(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return tag + + @blp.response(200, TagAndItemSchema) + def delete(self, item_id, tag_id): + item = ItemModel.query.get_or_404(item_id) + tag = TagModel.query.get_or_404(tag_id) + + item.tags.remove(tag) + + try: + db.session.add(item) + db.session.commit() + except SQLAlchemyError: + abort(500, message="An error occurred while inserting the tag.") + + return {"message": "Item removed from tag", "item": item, "tag": tag} + + +@blp.route("/tag/") +class Tag(MethodView): + @blp.response(200, TagSchema) + def get(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + return tag + + @blp.response( + 202, + description="Deletes a tag if no item is tagged with it.", + example={"message": "Tag deleted."} + ) + @blp.alt_response(404, description="Tag not found.") + @blp.alt_response( + 400, + description="Returned if the tag is assigned to one or more items. In this case, the tag is not deleted." + ) + def delete(self, tag_id): + tag = TagModel.query.get_or_404(tag_id) + + if not tag.items: + db.session.delete(tag) + db.session.commit() + return {"message": "Tag deleted."} + abort( + 400, + message="Could not delete tag. Make sure tag is not associated with any items, then try again.", + ) \ No newline at end of file diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/user.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/user.py new file mode 100644 index 00000000..15fc1e04 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/resources/user.py @@ -0,0 +1,100 @@ +import os +import redis +from flask.views import MethodView +from flask_smorest import Blueprint, abort +from passlib.hash import pbkdf2_sha256 +from flask_jwt_extended import ( + create_access_token, + create_refresh_token, + get_jwt_identity, + jwt_required, + get_jwt, +) +from rq import Queue +from sqlalchemy import or_ + +from db import db +from blocklist import BLOCKLIST +from models import UserModel +from schemas import UserSchema, UserRegisterSchema +from tasks import send_user_registration_email + + +blp = Blueprint("Users", "users", description="Operations on users") +connection = redis.from_url( + os.getenv("REDIS_URL") +) # Get this from Render.com or run in Docker +queue = Queue("emails", connection=connection) + + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter( + or_( + UserModel.username == user_data["username"], + UserModel.email == user_data["email"], + ) + ).first(): + abort(409, message="A user with that username or email already exists.") + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + queue.enqueue(send_user_registration_email, user.email, user.username) + + return {"message": "User created successfully."}, 201 + + +@blp.route("/login") +class UserLogin(MethodView): + @blp.arguments(UserSchema) + def post(self, user_data): + user = UserModel.query.filter( + UserModel.username == user_data["username"] + ).first() + + if user and pbkdf2_sha256.verify(user_data["password"], user.password): + access_token = create_access_token(identity=user.id, fresh=True) + refresh_token = create_refresh_token(identity=user.id) + return {"access_token": access_token, "refresh_token": refresh_token} + + abort(401, message="Invalid credentials.") + + +@blp.route("/refresh") +class TokenRefresh(MethodView): + @jwt_required(refresh=True) + def post(self): + current_user = get_jwt_identity() + new_token = create_access_token(identity=current_user, fresh=False) + return {"access_token": new_token} + + +@blp.route("/logout") +class UserLogout(MethodView): + @jwt_required() + def post(self): + jti = get_jwt()["jti"] + BLOCKLIST.add(jti) + return {"message": "Successfully logged out."} + + +@blp.route("/user/") +class User(MethodView): + @blp.response(200, UserSchema) + def get(self, user_id): + user = UserModel.query.get_or_404(user_id) + return user + + def delete(self, user_id): + user = UserModel.query.get_or_404(user_id) + db.session.delete(user) + db.session.commit() + return {"message": "User deleted."}, 200 diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/schemas.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/schemas.py new file mode 100644 index 00000000..8c145440 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/schemas.py @@ -0,0 +1,56 @@ +from marshmallow import Schema, fields + + +class PlainItemSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + price = fields.Float(required=True) + + +class PlainStoreSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str(required=True) + + +class PlainTagSchema(Schema): + id = fields.Int(dump_only=True) + name = fields.Str() + + +class ItemUpdateSchema(Schema): + name = fields.Str() + price = fields.Float() + store_id = fields.Int() + + +class ItemSchema(PlainItemSchema): + store_id = fields.Int(required=True, load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class StoreSchema(PlainStoreSchema): + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + tags = fields.List(fields.Nested(PlainTagSchema()), dump_only=True) + + +class TagSchema(PlainTagSchema): + store_id = fields.Int(load_only=True) + store = fields.Nested(PlainStoreSchema(), dump_only=True) + items = fields.List(fields.Nested(PlainItemSchema()), dump_only=True) + + +class TagAndItemSchema(Schema): + message = fields.Str() + item = fields.Nested(ItemSchema) + tag = fields.Nested(TagSchema) + + +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True) + + +class UserRegisterSchema(UserSchema): + email = fields.Str(required=True) diff --git a/docs/docs/12_task_queues_emails/06_sending_html_emails/start/tasks.py b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/tasks.py new file mode 100644 index 00000000..9fccd544 --- /dev/null +++ b/docs/docs/12_task_queues_emails/06_sending_html_emails/start/tasks.py @@ -0,0 +1,28 @@ +import os +import requests +from dotenv import load_dotenv + +load_dotenv() + +DOMAIN = os.getenv("MAILGUN_DOMAIN") + + +def send_simple_message(to, subject, body): + return requests.post( + f"https://api.mailgun.net/v3/{DOMAIN}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={ + "from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body, + }, + ) + + +def send_user_registration_email(email, username): + return send_simple_message( + email, + "Successfully signed up", + f"Hi {username}! You have successfully signed up to the Stores REST API.", + ) diff --git a/docs/docs/12_task_queues_emails/_category_.json b/docs/docs/12_task_queues_emails/_category_.json new file mode 100644 index 00000000..910ee98e --- /dev/null +++ b/docs/docs/12_task_queues_emails/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Task queues with rq and e-mail sending", + "position": 12 +} diff --git a/docs/docs/12_task_queues_emails/define_tasks_rq.md b/docs/docs/12_task_queues_emails/define_tasks_rq.md new file mode 100644 index 00000000..bab7e58f --- /dev/null +++ b/docs/docs/12_task_queues_emails/define_tasks_rq.md @@ -0,0 +1,68 @@ +# Define e-mail sending tasks with RQ + +In `.env`: + +```text +MAILGUN_DOMAIN=sandbox8vb7a9v7ba76vva.mailgun.org +``` + +In `tasks.py`: + +```py +import os +import requests +from dotenv import load_dotenv + +load_dotenv() + +DOMAIN = os.getenv("MAILGUN_DOMAIN") + +def send_simple_message(to, subject, body): + return requests.post( + f"https://api.mailgun.net/v3/{DOMAIN}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={"from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body} + ) + + +def send_user_registration_email(email, username): + return send_simple_message( + email, + "Successfully signed up", + f"Hi {username}! You have successfully signed up to the Stores REST API.", + ) +``` + +Then in the user resource, change to this: + +```py +from redis import Redis +from rq import Queue +from schemas import UserSchema, UserRegisterSchema +from tasks import send_user_registration_email + +connection = Redis("REDIS_URL") # Get this from Render.com or run in Docker +queue = Queue("emails", connection=connection) + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter(UserModel.username == user_data["username"]).first(): + abort(409, message="A user with that username already exists.") + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + queue.enqueue(send_user_registration_email, user) + + return {"message": "User created successfully."}, 201 +``` diff --git a/docs/docs/12_task_queues_emails/send_emails_mailgun.md b/docs/docs/12_task_queues_emails/send_emails_mailgun.md new file mode 100644 index 00000000..e9b29260 --- /dev/null +++ b/docs/docs/12_task_queues_emails/send_emails_mailgun.md @@ -0,0 +1,149 @@ +# How to send e-mails using Postmark and Python + +- Register for Mailgun (free trial, up to 5 recipients) +- Under "Sending", select the sandbox domain +- Enter a new "authorized recipient" and then confirm it by clicking the button on the e-mail you've received. +- Copy the "Python" code snippet which looks like this: + +```py +def send_simple_message(): + return requests.post( + "https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages", + auth=("api", "YOUR_API_KEY"), + data={"from": "Excited User ", + "to": ["bar@example.com", "YOU@YOUR_DOMAIN_NAME"], + "subject": "Hello", + "text": "Testing some Mailgun awesomness!"}) +``` + +- We will need this in a few moments! + +```py +DOMAIN = "sandbox723b0599ff8148a08a38f9df9cfaf5d9.mailgun.org" +def send_simple_message(to, subject, body): + return requests.post( + f"https://api.mailgun.net/v3/{DOMAIN}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY"), + data={"from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body}) +``` + +Make sure to have this in your `.env` file: + +```env +POSTMARK_SERVER_API_TOKEN="751756815-5617a-158b98-bgb8a879858" +``` + +- Next we will send an e-mail to the user when they register. +- First let's add an e-mail column to our user model + +```diff ++ email = db.Column(db.String, unique=True, nullable=False) +``` + +- Then run the migration as we've already learned. + +```bash +flask db migrate +flask db upgrade # make sure this is using the local dev database +``` + +Make the e-mail required through the schemas by creating a `UserRegisterSchema`: + +```py +class UserSchema(Schema): + id = fields.Int(dump_only=True) + username = fields.Str(required=True) + password = fields.Str(required=True, load_only=True) + + +class UserRegisterSchema(UserSchema): + email = fields.Str(required=True) +``` + +And then in the User resource: + +```py +from schemas import UserSchema, UserRegisterSchema + +... + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): +... + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) +``` + +Now when a user registers, we can send an e-mail: + +```py +import os +import requests + +... + +DOMAIN = "sandbox723b0599ff8148a08a38f9df9cfaf5d9.mailgun.org" +def send_simple_message(to, subject, body): + return requests.post( + f"https://api.mailgun.net/v3/{DOMAIN}/messages", + auth=("api", os.getenv("MAILGUN_API_KEY")), + data={"from": f"Your Name ", + "to": [to], + "subject": subject, + "text": body} + ) + +... + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter(UserModel.username == user_data["username"]).first(): + abort(409, message="A user with that username already exists.") + + user = UserModel( + username=user_data["username"], + email=user_data["email"], + password=pbkdf2_sha256.hash(user_data["password"]), + ) + db.session.add(user) + db.session.commit() + + send_simple_message( + to=user.email, + subject="Successfully signed up", + body=f"Hi {user.username}! You have successfully signed up to the Stores REST API." + ) + + return {"message": "User created successfully."}, 201 +``` + +We will also want to add some error handling on the unique e-mail column: + +```py +from sqlalchemy import or_ + +... + +@blp.route("/register") +class UserRegister(MethodView): + @blp.arguments(UserRegisterSchema) + def post(self, user_data): + if UserModel.query.filter( + or_( + UserModel.username == user_data["username"], + UserModel.email == user_data["email"] + ) + ).first(): + abort(409, message="A user with that username or email already exists.") +``` \ No newline at end of file From 1826915cfe8008351a28d5c18a977da29ab8eb79 Mon Sep 17 00:00:00 2001 From: Jose Salvatierra Date: Wed, 12 Oct 2022 15:00:38 +0100 Subject: [PATCH 2/8] docs(rq): remove my own notes that I added accidentally --- .../12_task_queues_emails/define_tasks_rq.md | 68 -------- .../send_emails_mailgun.md | 149 ------------------ 2 files changed, 217 deletions(-) delete mode 100644 docs/docs/12_task_queues_emails/define_tasks_rq.md delete mode 100644 docs/docs/12_task_queues_emails/send_emails_mailgun.md diff --git a/docs/docs/12_task_queues_emails/define_tasks_rq.md b/docs/docs/12_task_queues_emails/define_tasks_rq.md deleted file mode 100644 index bab7e58f..00000000 --- a/docs/docs/12_task_queues_emails/define_tasks_rq.md +++ /dev/null @@ -1,68 +0,0 @@ -# Define e-mail sending tasks with RQ - -In `.env`: - -```text -MAILGUN_DOMAIN=sandbox8vb7a9v7ba76vva.mailgun.org -``` - -In `tasks.py`: - -```py -import os -import requests -from dotenv import load_dotenv - -load_dotenv() - -DOMAIN = os.getenv("MAILGUN_DOMAIN") - -def send_simple_message(to, subject, body): - return requests.post( - f"https://api.mailgun.net/v3/{DOMAIN}/messages", - auth=("api", os.getenv("MAILGUN_API_KEY")), - data={"from": f"Your Name ", - "to": [to], - "subject": subject, - "text": body} - ) - - -def send_user_registration_email(email, username): - return send_simple_message( - email, - "Successfully signed up", - f"Hi {username}! You have successfully signed up to the Stores REST API.", - ) -``` - -Then in the user resource, change to this: - -```py -from redis import Redis -from rq import Queue -from schemas import UserSchema, UserRegisterSchema -from tasks import send_user_registration_email - -connection = Redis("REDIS_URL") # Get this from Render.com or run in Docker -queue = Queue("emails", connection=connection) - -@blp.route("/register") -class UserRegister(MethodView): - @blp.arguments(UserRegisterSchema) - def post(self, user_data): - if UserModel.query.filter(UserModel.username == user_data["username"]).first(): - abort(409, message="A user with that username already exists.") - - user = UserModel( - username=user_data["username"], - email=user_data["email"], - password=pbkdf2_sha256.hash(user_data["password"]), - ) - db.session.add(user) - db.session.commit() - - queue.enqueue(send_user_registration_email, user) - - return {"message": "User created successfully."}, 201 -``` diff --git a/docs/docs/12_task_queues_emails/send_emails_mailgun.md b/docs/docs/12_task_queues_emails/send_emails_mailgun.md deleted file mode 100644 index e9b29260..00000000 --- a/docs/docs/12_task_queues_emails/send_emails_mailgun.md +++ /dev/null @@ -1,149 +0,0 @@ -# How to send e-mails using Postmark and Python - -- Register for Mailgun (free trial, up to 5 recipients) -- Under "Sending", select the sandbox domain -- Enter a new "authorized recipient" and then confirm it by clicking the button on the e-mail you've received. -- Copy the "Python" code snippet which looks like this: - -```py -def send_simple_message(): - return requests.post( - "https://api.mailgun.net/v3/YOUR_DOMAIN_NAME/messages", - auth=("api", "YOUR_API_KEY"), - data={"from": "Excited User ", - "to": ["bar@example.com", "YOU@YOUR_DOMAIN_NAME"], - "subject": "Hello", - "text": "Testing some Mailgun awesomness!"}) -``` - -- We will need this in a few moments! - -```py -DOMAIN = "sandbox723b0599ff8148a08a38f9df9cfaf5d9.mailgun.org" -def send_simple_message(to, subject, body): - return requests.post( - f"https://api.mailgun.net/v3/{DOMAIN}/messages", - auth=("api", os.getenv("MAILGUN_API_KEY"), - data={"from": f"Your Name ", - "to": [to], - "subject": subject, - "text": body}) -``` - -Make sure to have this in your `.env` file: - -```env -POSTMARK_SERVER_API_TOKEN="751756815-5617a-158b98-bgb8a879858" -``` - -- Next we will send an e-mail to the user when they register. -- First let's add an e-mail column to our user model - -```diff -+ email = db.Column(db.String, unique=True, nullable=False) -``` - -- Then run the migration as we've already learned. - -```bash -flask db migrate -flask db upgrade # make sure this is using the local dev database -``` - -Make the e-mail required through the schemas by creating a `UserRegisterSchema`: - -```py -class UserSchema(Schema): - id = fields.Int(dump_only=True) - username = fields.Str(required=True) - password = fields.Str(required=True, load_only=True) - - -class UserRegisterSchema(UserSchema): - email = fields.Str(required=True) -``` - -And then in the User resource: - -```py -from schemas import UserSchema, UserRegisterSchema - -... - -@blp.route("/register") -class UserRegister(MethodView): - @blp.arguments(UserRegisterSchema) - def post(self, user_data): -... - - user = UserModel( - username=user_data["username"], - email=user_data["email"], - password=pbkdf2_sha256.hash(user_data["password"]), - ) -``` - -Now when a user registers, we can send an e-mail: - -```py -import os -import requests - -... - -DOMAIN = "sandbox723b0599ff8148a08a38f9df9cfaf5d9.mailgun.org" -def send_simple_message(to, subject, body): - return requests.post( - f"https://api.mailgun.net/v3/{DOMAIN}/messages", - auth=("api", os.getenv("MAILGUN_API_KEY")), - data={"from": f"Your Name ", - "to": [to], - "subject": subject, - "text": body} - ) - -... - -@blp.route("/register") -class UserRegister(MethodView): - @blp.arguments(UserRegisterSchema) - def post(self, user_data): - if UserModel.query.filter(UserModel.username == user_data["username"]).first(): - abort(409, message="A user with that username already exists.") - - user = UserModel( - username=user_data["username"], - email=user_data["email"], - password=pbkdf2_sha256.hash(user_data["password"]), - ) - db.session.add(user) - db.session.commit() - - send_simple_message( - to=user.email, - subject="Successfully signed up", - body=f"Hi {user.username}! You have successfully signed up to the Stores REST API." - ) - - return {"message": "User created successfully."}, 201 -``` - -We will also want to add some error handling on the unique e-mail column: - -```py -from sqlalchemy import or_ - -... - -@blp.route("/register") -class UserRegister(MethodView): - @blp.arguments(UserRegisterSchema) - def post(self, user_data): - if UserModel.query.filter( - or_( - UserModel.username == user_data["username"], - UserModel.email == user_data["email"] - ) - ).first(): - abort(409, message="A user with that username or email already exists.") -``` \ No newline at end of file From 3be92e01914f9c29496cb9c7ced4e2dc5566e4c6 Mon Sep 17 00:00:00 2001 From: Jose Salvatierra Date: Wed, 12 Oct 2022 15:01:31 +0100 Subject: [PATCH 3/8] deps(submodule): update submodule project to use html emails --- project/using-flask-smorest-docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/project/using-flask-smorest-docker b/project/using-flask-smorest-docker index e94a567a..c9a637e0 160000 --- a/project/using-flask-smorest-docker +++ b/project/using-flask-smorest-docker @@ -1 +1 @@ -Subproject commit e94a567a593d03590cc601abf652216e7086e73f +Subproject commit c9a637e0b280ffbb0d746538884f895bf8fafc81 From e5d37b3ab2577587ea577578f5e871221e9f160c Mon Sep 17 00:00:00 2001 From: Jose Salvatierra Date: Thu, 13 Oct 2022 08:10:28 +0100 Subject: [PATCH 4/8] bug(edit): fix broken link to edit this page on all pages --- docs/docusaurus.config.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/docusaurus.config.js b/docs/docusaurus.config.js index 6f6e9dc1..acb4da42 100644 --- a/docs/docusaurus.config.js +++ b/docs/docusaurus.config.js @@ -31,7 +31,8 @@ const config = { sidebarPath: require.resolve("./sidebars.js"), exclude: ["**/start/**", "**/end/**"], // Please change this to your repo. - editUrl: "https://github.com/tecladocode/rest-apis-flask-python/", + editUrl: + "https://github.com/tecladocode/rest-apis-flask-python/tree/develop/docs/", }, theme: { customCss: require.resolve("./src/css/custom.css"), From ebafd7db97b4294f759050faf3ff0961ac7a96a5 Mon Sep 17 00:00:00 2001 From: Jose Salvatierra Date: Thu, 13 Oct 2022 13:01:00 +0100 Subject: [PATCH 5/8] docs(secrets): improve .env file description in readme --- .../01_send_emails_python_mailgun/README.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md index 9d193eff..66b32f46 100644 --- a/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md +++ b/docs/docs/12_task_queues_emails/01_send_emails_python_mailgun/README.md @@ -72,8 +72,14 @@ def send_simple_message(to, subject, body): Then let's go to the `.env` file and add your Mailgun API key and domain: ```text title=".env" -MAILGUN_API_KEY="1f1ahfjhf4878797887187j-5ac54n" -MAILGUN_DOMAIN="sandbox723b05d9.mailgun.org" +MAILGUN_API_KEY="" +MAILGUN_DOMAIN="" ``` +:::info +The API Key should look something like this: `"1f1ahfjhf4878797887187j-5ac54n"`. + +The Domain should look something like this: `"sandbox723b05d9.mailgun.org"` +::: + With this, we're ready to actually send emails! From d78d2513a110525d80ee323fe96c58f347d12486 Mon Sep 17 00:00:00 2001 From: Jose Salvatierra Date: Thu, 13 Oct 2022 13:49:19 +0100 Subject: [PATCH 6/8] deps(flask): use FLASK_DEBUG instead of FLASK_ENV --- .../05_flask_smorest/02_data_model_improvements/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/docs/05_flask_smorest/02_data_model_improvements/README.md b/docs/docs/05_flask_smorest/02_data_model_improvements/README.md index 0d3bc5be..126ef751 100644 --- a/docs/docs/05_flask_smorest/02_data_model_improvements/README.md +++ b/docs/docs/05_flask_smorest/02_data_model_improvements/README.md @@ -108,14 +108,14 @@ Next, let's create the `.flaskenv` file: ```txt title=".flaskenv" FLASK_APP=app -FLASK_ENV=development +FLASK_DEBUG=True ``` If we have the `python-dotenv` library installed, when we run the `flask run` command, Flask will read the variables inside `.flaskenv` and use them to configure the Flask app. -The configuration that we'll do is to define the Flask app file (here, `app.py`). Then we'll also set the Flask environment to `development`, which does a couple things: +The configuration that we'll do is to define the Flask app file (here, `app.py`). Then we'll also set the `FLASK_DEBUG` flag to `True`, which does a couple things: -- Sets debug mode to true, which makes the app give us better error messages +- Makes the app give us better error messages and return a traceback when we make requests if there's an error. - Sets the app reloading to true, so the app restarts when we make code changes We don't want debug mode to be enabled in production (when we deploy our app), but while we're doing development it's definitely a time-saving tool! From c7a3721db9db12785bfa71d2592d2d5e150f86cb Mon Sep 17 00:00:00 2001 From: Jose Salvatierra Date: Thu, 13 Oct 2022 13:57:14 +0100 Subject: [PATCH 7/8] docs(redis): add info on allowing outside connections on render.com --- .../03_what_is_task_queue/README.md | 6 ++++++ .../assets/render-redis-allowing-outside.png | Bin 0 -> 521622 bytes 2 files changed, 6 insertions(+) create mode 100644 docs/docs/12_task_queues_emails/03_what_is_task_queue/assets/render-redis-allowing-outside.png diff --git a/docs/docs/12_task_queues_emails/03_what_is_task_queue/README.md b/docs/docs/12_task_queues_emails/03_what_is_task_queue/README.md index 0a0ddacf..97ba53a9 100644 --- a/docs/docs/12_task_queues_emails/03_what_is_task_queue/README.md +++ b/docs/docs/12_task_queues_emails/03_what_is_task_queue/README.md @@ -25,3 +25,9 @@ Render.com can provide us with a free Redis database, so I recommend using that Navigate to your Render.com dashboard, and create a new free Redis database. The free Redis provided doesn't have persistence enabled, but that's okay. It means we will lose data if the service is turned off, but since we're using it as a task queue that's not as big a deal as it otherwise could be. Later on if we want, we can upgrade to one of the paid plans. + +To be able to add tasks to the queue from your dev environment, make sure to [allow external connections](https://render.com/docs/redis#connecting-to-your-redis-from-outside-render) in your Redis database configuration. + +![Screenshot showing 0.0.0.0/0 as an allowed IP address when connecting to our Render Redis database](./assets/render-redis-allowing-outside.png) + +You should get a Redis URL that looks like this: `rediss://red-ct8aen0hkl10:MnLs0mmrX7MBXWRkdrh49@frankfurt-redis.render.com:6379`. Save it, for we'll need it in the next lecture! diff --git a/docs/docs/12_task_queues_emails/03_what_is_task_queue/assets/render-redis-allowing-outside.png b/docs/docs/12_task_queues_emails/03_what_is_task_queue/assets/render-redis-allowing-outside.png new file mode 100644 index 0000000000000000000000000000000000000000..ab7bfb9390063469f0219c7e55b85743446ce5b0 GIT binary patch literal 521622 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 Or5Zgzu6qHu* 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�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%0D07@M6z)b@6Z9tS-=H@tsvpPGt6xC#4?9aF1J zRFEvS-k1%ot3!Ut^c-llnBTlyG^&3@n=;W10EI|QB|y@k$b?bE{35zX(RM)r<=c_G zM$>KU8*#h%k}5BFG7E@d3U20j+~RYv$2M;Okv-fz^!uODWr9Vc6#i_MG)gD5HRhBB z1acV79E{Pd?aw0`W#HG#<)hLo2EoB}BQZl43BJqbW$MLt2eyrJAn_*_r-UC>w@8Bz zBJ2nu@l!^G@dXWY=;*EYgwB2~s`+p8koyYbK&<%6H%7Vll7mlmQr|Yr;87v+0TaJ4 zL8t8GRC6{0qh`aQ(9VMb?3?~cWkC0f>GoBjH__Lfp!3H^i0`sTfbPuAO4j=Tz>Bo; zG91pBqO`c!_u3>7=2E7Z)Ad+*6($A#^VizM5G`^gUdmntIaG>vsx&jSFZz)YX8&bf zS8N+P9eRyQrhZ`A^m>&qeU{&jbPPlwBsU7`;n=N8Z|HXJ12qlL5c&_&O~I#SUBM{? zQH�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ΜA~ zJT^>Fi|W3}!w=9y`~E4kUv)zZ9~Z=G`_XPDIQfHvGKJTJ_KbBb( zQx>90Oxbo=e)5dVLbUc-_jyk72Xa68l;Cu*&k`>tu$Orv#)QT`D5H5V#ZFhsl;*8D3M=APOfalZ1vc2XbYuxXMI8-^CHPn;K zUoTED^cjO7_v8O)cdzLEqWaE;XLFkm69=F>2VF=ZtB8N3O#COm@D0V?p12iZ*Tc7& zf<+^yZLrV3271&H4*)l2KTMI_PH1JB5&e9O^HmOiC3%grjc*7p_Ij(n0UV1wfR6ok zkLjhr1Sa{%#V(R@wiPk9vcmKZ)@W?FXe2m9S9&$s9j8^6ZI?4>k7kaVK)w=jCK}~7 zZmX7otLiJIM~L!Szxl;xj@TcCo)aC$e;rkWQ5bGRak;&)Zzr+XmNq`~h`AJ=Dna{8HD!4xXM~T^gO3!34RDaAh-USp34n3ou9)!O3CNo-$n!h8nSRd^7 z7g)!lS`dbd_u|uNS5*O@Kd1}W%D6DofuuZ%!&?H1hh>2$F*IBut1~ipG6re$dRqXb2p7aQy!H_k%Z%e{pbkT$mQ!{+SdL=2FwQWd6r8LqKl5c&2c~ z|9IbEOkEYf*t;s%Dtv2!ZAITNp)TpnOCzyWLgb3sRQMlaS*wuWZ#TC}EA^zC&u<9I zl7|W?qI`;crV9Y~{E+do{~!E;P^TgiQV*IllH*QWB{#?a^DX(u??t`GWYmF`d+D6i zyy6E}&iu}=&M;S6p;W1sk5Nq&(s(%r_q$vE*9Ibs2RkydZiGvS^)6qN%c6WILZ130 z;z+q*-f)?Z|F{-#)CS=%n{6uA%R}!Fq(e)&Bcrx}EY}m>D6jQf0zzC4?zPiM%dad2 z@Y(e@4omV-jARvj`Qg9ME%WlI&L!rYVx8r=e0CGXhkF#&0Td9`uP)yWszv1N`PWik zeuJoX;Y*6w?y<#Jv?sfN?|6b(3=b6Y_MxFtM6bdrZOi_ ztpRw*bUe- zt+;QnwF@@>&?p$CAiv4mgQsZF*}fHSW|_IP9-V>B;QRY(pA>Iw%r)MVY}&XL(%g|f8d#5UM|ylwrc z6Sj6-C1Z5zbba|R=Ih=y?zNP>Vts_C0nl;5Io`nga-bj6_AV-{ItlZ#{T%kG@#_s{ zn}azUt05V)O$bcP39F4ISx&9n^kSvxKS)Xct;AG@pX#pej{{u~fcX=4TY9%I+e?^2 z2Eh*Hp0X&BY~NcIclSDsuP7!DiUld28ay1NB;glL4a1`#4t!!4&$u+09*s-CAxVYW z`ThLZimyt+aWMRL`(`A9bmg=EFqIuFr^#!T8+mgHpqy3H#nhEmPFV_AmFUm3DQh3G z{GQ23WF2zPNsh?jH;R|FL6VtkROkI;;qmWK&F_g?bmGmTg4d{wB4pDxy?IWqOpkt@ z{5SxmZn*!LtBW*`_&~jH%9*&r?q*t|YE4Hgq}CzGzLfnj3t z49n^Qz1lj4)?7P*5+%LSwn_|QzrmuTpZ|xv^WWI*TDo-XCl?8FeaFVBL&ZVjeQ-|f zK8T#WC-GBDCIjJtUuT4(`jQ>ZG(N-VR{ta|PvbaMpA-uxuO^@7{7h-<#B`RdvWR(@z^4mP zwkMf9$&cO$x|&pfXKRn$kJ(pTv5UeGl;@*ZvLh z4iuO?Y$>yOwGS%sCLnJ(g_>zDnn$R!AHj`3&&Z;|N4tKxoutb@>DB(Pdx&Jc+_+e_w>#_V9$~{N z-!E7d5sQ+c6kX|;xdwYjNRr;6+rMZjar(y_+W!q8{@1aHNMVT|4gRugMuKT^sx>f$ z`-VuLy%hYQhtn5Sjj)$e#<0HkE}KQB1M7>LgQquMSO? z{vH+Dmg1ZzXcqX1x%vmk!^E8@u)}+z;dfr~*mYE}RXbbW6HA%N95mcPvb=t*?#^Pl zpF_`L)ADLq2d%HY17cb+|BKP539^v}0K|1Pf1-VVRkGPP7|Q8C6@ zeEF0flH%2OCye=+s^IDYojnOR?G7ee`w6wT-ey1W>Rtax@%Nu*l}Cz?E%~^C4iiVq z=3IZMS8v}eh*>YSDnx~($E!oA-vO?<^4_9(zVVXW9;`p8A5uf_P4E(;RUUn>>)4^v zFH3LC2j;a;1o2^?4=$}gVU=yR&CvK%`JjwZ_nOpVUXSm;+3x?^_y23L!4>hpD0}Om zw)(DX7xlQl(Al*59IZTiJ+k{+A@!Z6RxrdB8 z38@_i*6lO(eE#rC2d85M{}HhomFg8EKsPD~|12|ZJI)70MYT}e4I`&OHOh&*Rahb8eTNj9|d_R?A z8E}WFh7JgBE7pAuAuKM-*ssqs?DclbG~qkq6O~zoV(uKRVZ*xnhUUHz7IEknu~?Vi zBljfvot7Y-2I-VNTc97j`W$t2(zj>APNY*Cdc9%K&Ao7+N}OelLf}osr;|qc#23ZH z8^`ss1o@~OF8+q9Ej3>GS5eLj<-MZ?*OKy8(fszA#C=2v(f4c4mGLzbky=f?0b%5B zwD;6TBhb&r?!y`r59DfUZZ#HgkM)6y;x=Ar8lX+Ky%r64KeQWrch*ch{0>-6n9j3& z)*0V##TwJF$ir|?hvv)a&qD^-=?G3<1K8Uv+eCn)k zz&<5yk6fV+e&64}+Mg(5xi^w%YWZ$b7Pfzd;z|1dvxfg-Iy(f26Dv;ol33U3;TGWP z_xP;`v<)a}YkdJ8C(bxQ?Pge#vWP)04w^fF3g6}u1k44r=-1@Oqhv#CxXz;s-C`t< z{;;n0)OOAmRRHK@ir$Q2Fc8&*Hws7k)q%M)E!FCQ&@eLX9ew~t`EZ$18pEZP!GA~MiOy^u(f20l6Ac(DguP3!WiJRM_j))I~>T z)?b+nB}%5Np-Tpr6%y8?pXl!+$e3i5>vwwmYYV&v%Ctj7+B_68-7b zrBMq-wSPT<|8!8)^axxCy79>G1rUffkb#~|QedOPY1%rx_QGpE8Z%$G_od3vIAM(O z;&v6`v(zbymi1Gb5Z|3buDXBAwbrwMo@tu7cnwD#ETKYT5 z71tY~(G04HJE=|yk$sE>mK2~UDMH}$_KScr2ZpYnd;Xk!y^JGdZ84YF_SFg>YK??S zki$mL5Eq%d?D4eu{LpROJA8dMI*PC@v>@)wX>>d--%V(i?OiK6z?H-;to7g5)T3>5IOMCKo{-zEbp+KD4R=2HHyii}u z#Z;?*g1OIF?L9|cAWtT-rwDAI5Yj4^KAVih0F3=V_!FEr^7|F`?;#vpxCG8xmlQD> zy_%vB!VXqN+}=!t&C2H%iMM6e@uJY_;5k!~O1A=;?zP@U(Q6=Ag+RDFEI2u!v_{-GGC{D8fg7p2wO7Rv< zvKm21S^}|WQS<_tPjSYs zAfk8=u!14gh&O1I;gvjbU zP#H8sB)9bb=N;no3sVmK41hgln!ePE%M%c@8YzR^Z|D+rHf6i|v4Dqvau5HvXx<(` zR;R6+HwEhCY7nwdoBUhN=yxe1i?(vhS3{(9>=zz`55}@x@^w%sYA0Y+L_61SFFZ2* z1lYS`<DK9`UMO$HH{ z(1cokrM70?T5WKmt#m3T_~PErED}N}B;MXXd&##y$Hw!g$JS>y;Z&%HX$ra>B!UAA z_u)(hSn_$io|E{<$;izC1b;!qvuN?T_yJI~nw1!~GQgn>mM9xH{5$`3_`?2C+O=}7 zY5KXjhxQIJDw8+e1#L398NMYiwT}+eLw*b(dEUj8N)R(u&fxsL2xVAeLM~w{vs7zy zVZb_17|js1w?Q(l5Px(kn`f1_RISNU&}8mHWymyMN9{lrdWLwbfw=jNKJ!UBNN$D0 zox`i>v=(xC&?{1MZ^&vu#nAeI1#Kl;(XETSl$?NGD*DO6>ktI3t&eJdRp@dd6>WNj zNxr=-8VVuxOZLyyK8}j$6PiYXTev)%oFLmbgc8gZ-9etO59-gbBvH@~KIh9<=p*94 zX-ypPC`}H-6vIE;7NMSkh$4Wi8XxiP4&fW%i!24$eZ=p`>F%`B+&xN@a&}M|%+7$XHK$*>a4@6fucD(K z3aHHQ&TBVF%v&A8GgO~I9nRn_S-OW0k}-PX3m$n-_mhZTAw%kSX(V6iJ`!)Rl!7xK z%e#xq(-En}MR1~UDLO!NIB|W=_)sJv4d zprX^&ojyBnPtnL%x)_LY6mZKmqR|d<;=yXG?EzE@(=jkioqrIb(V5u}gP5TG`w;$r zNW%QDFy(D%FMTu@ouVZVdf#7&##^1|jaP0uVWGVrfFRBk-XQ}tzTsvVTwjw-vw!pP z3nP!Lmk2kjxt)c5l$Bq#!fwPhii~K#aE+3TvgFeg70w9aNnFEH^&?aJ)ckW#1n}Wy zU%kU_B7$;NITFft&&SW7m$M3Bp)KC3-6E2dq&WWD5f!g0|ddPPl}Jrmq;1- zc@lE+q$=)6u$W8a#KsXGd89ln5!(_KO&oW$B5@kgrN_$j*<^xHZG%*DaJz_E4=`VC zMd+CE+X~r%C<9u;i-1s(j^+EE42>=_+uyk5PXRX%X|sR>goXOl0bt$K7|}EiQ6@Mq zf`uTvtu93(i#aYQW0c0%L9$p`}c<4f5NubQHrb$t14>JBdMH!`Dq;vG)Q zcYHfkD|x2$jm56F1-=1Dq+V`jRjmVID-N^ES!W##=&|*oNb4ZAA|8v?Z?^$!9lYO& zMVmHI10@pE)K1L6Bk%F`7BN%jJS<0W~;2=`-%lG@WWa<5D2ly_y=F&?$_wpV~{kqtXh-0sGBqJPrES7Z~TN`P(A|u+Rn-gNZr`h zd85RZB3cpdwl#<{@^eO#`%c2N#ZeueSQ51&Yz3AU4*R>`lSqSv8~&`G;P&XBUVdkH z=~;T`^(dv*b>{u)%!z9mkLC~#eZAU}dz9J^!0=lq#_3uR6?Q?Qd6$87iL3*RcG^@g zpa!aUng2qfI*`E)>Rut2ay0wb+*c zJ{b9}3?@|0&W(gCAj=9?a;SiX#5|C+65Qc3=W;A1g4P~N=zo<$x?&Kc-kgN5c}-lY zFXFEv7d{u=dM&nIWN7+*K)wF_bJO*mKg-FW(6DIp624tc-ZNA*B4|h-OKRq@9hY(^ zaJ*migE3c?0w+L`@&HGmSq6Y(5?zOjPBe#PJlYi6L}y7`hvCkZ_g4f33mO#nK%|jLC}AuKPL6A-qRl9+(z8vRsN>UiZgZ5&as_9{n08 z?_c+k|5N$m94Z~I>y?M|KKR&l(syF#+(yE(9O1sS=;5Ao0zZ)kp%$-QBt=w4sXZdd zr!AOcJ;(>~*9eg|Eq5xiP}+(m^%J_jJpJg(rxGc9Lx@o2ZSYLM{)%buo(C_o9rXu1 zh6G&4S^FwNsygD@EJGD(uL!-DEErPf5!kXg(8Ti4Z4sVtv2=)!-@^+*ri6AisaQle za|eDpq6FhktlQm)GF2INkR3g(zjJI^DB2mNA_+)n#~D|Uv8H1K89ntD{6~bM45>1i ziRWG96hUD5@UaisHSv|oD8fUQT?-XVC>TEUe)js+aK6-UD;rvDjOd_J$#8+eX{fzQ zK4zc21Mlk}=td%H5!_G@(H8Tbi8+03f8c7!;L>%sJMAA?5kx!LGIIOXro7bl1G00$ zd4XX*CZe0~>;tk$4+((|UGgW2$aKei%Aeg*{x0PFiAAtFHt>TdFxtcjV@R*bgF`CHiL<XZ3!m#HS|%9{mLJg@5^;A$&h}{}}?R$jvW$hDMPdLGM}%kwC&L zsNg@}6H|Zp!r!bkIEfT<07BbckPrPl8#YGzcS(fUx+jF!*=Iu(1*bIe-Sk_eU-AT5 z*WOtoZX$LO4F2TF1Bo0geU--$;Jq z*$L|_HfYEw2uyq)J&0C0bcw9KS_@2VeUD#uqt=d6ji9Z3B@;TkLOW{TQ=fa1rM6DP zbx#9v+5SRb)z-Z+=@hj9tGr3%LGd3Iafk{J4@C{ak199P@=t8n?6&H|hDhcP08(D1@M347XN&gzDLn+ zh4i=7!$C^)JjAd2*W5MIvYuJP_@$XokZ92PHkq1b;A=X^ZWUl{Y-s7638yiy+Dzg| zstL|%3yM@Qb-27#yjD+0YavcuR!}KFH>L8aWYpI1DuGE?wSzGyPRlLQDyDc=XFM!C zNCzo`vFB+3pow$_k{qtzG2O}mEhoFtZ)X&u4u0_B}I`n7RIg!G{$jzfHCZo|iPrk=hrJqDaN$;`aO{v?#ONSuHZU5Q zLywbzpGzmcWMZy}@bYU8X%R{^3BTNkt@>Z_{uirvL!?_6;fzFd)YR)L|Gv)mFWEn$ zl$Y+|;{It_mbPL3v!Z^>2!2~P_-&v^Vg)&W|i>qyrr!vWn-^SJMO*6oL3$4P(3c0!@J2X#fQ%ke;XF zV(1&;hVmJT0*YtiHW^EG@%+J+lM$P@mE4`KRnmbJ$fU}lQiG&I_$LngCeasxUc(*S55*?yM<2FYEVRxDz*dK5GN{{3f(nU14}Ga?{xOWL$e?zh*7WqvSkz@O}sut zS^WUovM5i(v|flHR*+v!Q}8Cf+uwWE@S4J}!`wrhrsehB=sV?RHxf!uR}QG_fEP9f zxrTm?)v~QWOk~rIMvs1^i~1fxm55ShF$2mm*1Adk%k+>@?%ZjGzSBN@7eP}r_K)Pk z=3j}pQEDTrG!w^DaJ(^XE%;SwA&xJU*r`WVNm+4sS*|r-+Jxru>F?688qBf}h7H<} z>DAs^iqc9(CYsfdOkfa_!Lr2<-1`#ZlRj_p;HNeh9MJ_3sAzRu{j1+aeCynGKIqvm z+v9EBC;%qtier!Cy3fl}=~+uwSl2$8yeQVCi2WIr)DF20fl65%&8XZQ{q-pjxl-dU zuR9}Kry=p zc|qi=iPNzkS9`>oC->xh5sIZJj^u<_pdVUSa=dRme$m!5q%k0F^;&UXAkQ=-)rc^V zZG#JDK39^OyAH%EX_XA=d%G}KNuvj1vu+2Fxe7&q7wVz1`mrQ{&2%)Q%5G$akAm=T9{KF zbxnEG{wdLnr6E2^czIBdr#j|}GHoHw%$`a74q`|?Nl znIO~cSL*aj-)Z8qC%dN++O}>NOhQcYEx2PX3J{C39{9+&1l9Llx#FiW`CK_t(cN$s z9q=8v$I)>RMDJM@S2(DPLfJi+%u9fT{d#6l#aOKjP_tl0tQm4nq37!IMqU(;R&@<( zToMY)e+ZC3KXW8g^tz!Kcy;pqG&G!P69*SBG|w*5`cm@WiBA4gLCK0?%7w^rq&@=M zbo+|rNS`i?R@u3QUwA*Ccwa~T79l%J2%%mDx9!eXH7(aT0(Shg6hah85TD{w!S;=q zEOZqpzid1nLPhSQkzPhmgC8OIIS6DbWOTXE*YP@>n#-PEXqaVxC3DtDo;OOA5o!rL z-Oxb`K2R@5shQW+goCiuSe@a*R?S0>`v54Sxx6ZAP@g(uHb(jn`3Tc z2Tx(a|9Z7cS*+9qlU~53=MLiA(V%^zrV=>5dc#0E1RWi?LvgIc(TVuR<*& zbi%{A{p~5DG;EY235E?tds0)`Rml$3a8)FK5Ov2?x-osw|Em%)>ILiGGe)n156@7_ zTR$WOT0h$10lxH%&|3eBDYYB~>V@F0`Z2XdnGOH?OoTk=e06EGO7&JF{opgQW(F%I zYJydtEhL^lrg%~oFQGHa`a9ngR{HJzF=VBWX3V@^M$O`5e+@`3e{?VYqVw-|0T?bUE+VzdDaiuq z=~31M%9C#QKDjJ=Ee}#E8%g!11-sd~xoEg7KYIzpE?*=aJ+mVgwV6yx#eWjXfPN*G z1tDVkmqJbYmZnbxWjP28h!g1$(e2xy=X7Y@-qo3C`wF%7bTl-q?K)QZcWq*WB+aDy z(LG)7kI#R`E5wq1D<26?pY24wE#4VQ`*_%GJ4Rt{icg%iQs9cxiRlI!96Cm87Y9;t z>*7d<%1LBjeWIsf`-mYapPJ5unLq~lGgR9EG_n;xJ-6g-trW_?mOU1;~@**chj2vIxzGi{nv z-igEXU?=E<0ryzBTy)h}D;C|!J4-XOqYv7N_mwD`4@J@~{W*Dg6*;yx8?wXwOv^KI z-g|RT597D|hqaD6uD5Fnq`E4|TJL+Fs&9n@d%^R+gHz;~<4f5%{m1)%eHsVI@pAEjI=G!9|%@v-Knk*gtdzJAxz z5v6%X5ZdwV0K>HD%+^^)SuZN0M*Bz~n$l?<<9?ynv~1Fh6mFD6mQs~$O+n9mw-y!S zU1r)c6)59`4fg(w)7N23A=J5(%cs$4y#2xrYB*r%bclP_lXCp_&6_u8U!!&=|Xvr6tdsYmUw2&(e;%v#yBUO~-@Jt>gjgsy6hLwnZ{Y{Khj#^*0CP=aMBq+{Cmjbt1Ja^1B?WU7+{GZ?Qfy7b1@4Mk)rrJQOMBO~Ghuzqz7OO8YZ*aMxPhX*30K2$bNn z0#$W4O`)57cwhUav74%SIRmY7X^=v89sD9XwEl|)^Acmi!ahf73q4D^W7J@Zuv)Uv z7Y2^v8LfB&Pqy33>1ET2o$|9&mh{>Eoh-b6mOefDP}^DH)`yPdeaBhY5z6pLqebtn zA+27I^Z2V@0_4kgVlst=(~JQ}5bh?e>7T+fa;04xEq6Y@b2L zwchy4NSXAXClE6c3nzTDnKSNsnLAql+LGCecBBdmaz{oX%&kP4q^vw(c2kDseS1pL zTY0(_x$(O*1>038uUJ}pG*7+3Sl^(;X{!4mzjZKSRc?Dg00Juq!H=!3=F$L8x`h%q`*4u~Y3}k-Mf44WdDYiXR`I`!30qeP1(O17sIXEkMXvaW2k(~mErXE}_ z4W@@d;MLRF%lobpebQ3o8BgEdd||tg_svXikuDS>{bsXB5vg@ERp{OlmdS4L*}nqN ze%#*)e_BG$x+l30ZCADvYJZth!xvC9WU4`;VWf<2DoaVNTMnKJmYAw^qeX9lTU-O% z24-Xz8lqy=taN#_Q!U?QfLG0t(-lfsNB7uH_ux`OtTm=p1eKt!s`w+ANasTQfNrrq zv$e`{6zK8xz}DgU5z;S+Z1+R_s7dSYLdU@MeqQyB6bJkb4OcXZ)6k5;U-H!;<<@5X zCGJ)fV-06AFt-{h%P6YvDbTq4Tz5FNzX2DJBcNhA)8dBngv5hSN@#7$kI*7F{5q5S z#s;!GP=WJBNtXvCjXR8fkfZTXft3m-ERSJuMY)szMM1EAEwp#_6mF!P84`rZL9|gl@&W5#`{hu z#KOL^nY@mBbDeg3|NNtmkL`asZDK@#^f$#CLH9|5ohX8QAL(hoGAhWrlx*u_)>E5x z==9qi{MlD3CIM}9tVBfv7wGMn^zo7lpQCI(8T%GxEn8>6f^lBYDil4*CnxbaTd|a3*0S>TSgEg5 z{Yk&jSjNZb!HFy-+XnMsmAm|+B~gcozB6yi-ZvICKQ*Q;^Q4TiHlpvhC&clQpYBll zHIf_cKl`_wJ%(>wdq_UW!JzNy*|Xawi60tsw<{KgGAV$sV*g9vL%@8%L$OxG8j5|Y znNuKj5T%irZ87cbSH94BL`)s~olPTW44BJt`2n>UnVnz0j<& zHNd1h#@A~07z&YJblP9H!U8I*G7B@TzR+)ZSfli6v8kEO?AZoxta!U1R=s~6Nx=vg znkX7g`1Oz9e@~0V|D;Ox1$+Te(y79Nmx5lUFub1H{41AL9UwZd1=NH-m$_2*r>ExyL5Pv=*w zhZj6Y>Fy6ci@Lrouk2QR-=sl$BFF_ccP-KqjzjR^ADp-~G+fhelDi$l`BJ*Zm0@F63@Xt`0OygI4L!Tt}YpIhw@Y5}zq7zSVpdI}%VI9(w$hW?clVF%|91P~^437K}&!wkS zTcU58OI;faCktQbV$ulU50(i;8xTMCrju)-WG7;NdI=ZniIp7S;XtRZD|OzR;9F19 z)33A706t!vpY>bW%~2)4vMthUa*Ou9n$s6r2CrX)^9vVEO(ht5Gs5X8vm+=(d(v8M z=7q*8E!;#eemtToe%j!m^*u`hUfqn36@4+OKN!O{JzDTM>xzZ-r`WYH4scdhfr^h6 zH!JdB`l4!^S39F7o6Fadzk$94V4?Y1JC^;T=J>M(#S`)(5PR#k)7D^lee3B~Bft7G zWcZhO-&>BW=;GQr*(n3B$o^H0xk?LIG+diZvjr|m5lYkTPyN!9XIfck&eHo9&igQR z*D{zasF&t>SO1a*+4*oxM`*@~de$OcBKu2h0TNOd$bOVWD1j(SYHo?=m4VkGm&fg- zuxXLcYxS+4Kl}S~(@b1I@NLHlym>p5LzXmmRmq1NqTTVv+C%AB5i|Ciw8swY(%u!G zmWkU(x=M4{l!e}uBmkZI;=0Lc;M@H51Hb^R(K2#l*GkQ9wrN(;ez)Iuw_nOdX!QX_>crHKq8}30cDaioG%p8oWM!(c8^S z?vG{V0o>j^dYr9?2KE0@f&YQ)!k)w&_r|mD)42>Ew$ld_WN2ZrY@S8v{SWnS~I9$ARtPSv0JKX~Q%QMjvguW=}whJy!WLxL&&D+15W|8rI2w_&vM!=%V6$ zIeB9D{O8b+*nbbohJk+jm>ry53a$NheZ{wRCV zEpgR}emMi!A7TF8mL_0&G2uhx_FLdaS9;J~sM%8LNlp?NMbbQPH(JaX%5E)P3M$+Yg4rmX91h zBxA9(ttGutUw1utls3H*LyBMdj=9tPMcmlLw_riEtVYYCCc{Vw{TyV3A zy6&=u`B=HANh|J}%4f6K5SQw_=HS?y@o2V#-&t%I_!fI7{Cq(Jt;E!QM+!0!#4f@L z#WG=q%M<}Z#g6K)Wjt;&8Vf@eDvob;txD*jkL#aEv{k;ZG8^BXbgErcy0w0{yGj^W z6MsV?*x#xoc@ti`@$=(w^eK^}n|1s4HQd+4qSJyup@BT2IdeP0!JC2jlJNqt79}{} zUF!H_UyzuBk_!QYXaYe2Xdl5&3#qkuE~!_VWxRjQTJLn{=b9(RDWl zgRA9f%W6N64n^_t6L+j{8bfZHYYF(_^ml3rA>-?UksZOuCP~f&5ID-ZdedC=v7FCk zuhj8-&pLS}sv$@1@+r@(?L60|)$>nlt>(Qz^xG)n6zkEtek8|tVXpJJVb*0~JT&vL zpaq`lWZC`6+CEa;&HCK$rZL>+z7Oq9aH!zn&gyQqhnqZHcgf4D1)lDzBuPmP@#;VX zZ{e82S%(0VqkZdEg~yBp<7J*6F4DI~+cd6mALZ@uz0sb)f%($#rW@=03#pcR&Q@ce zXyhgIP(vDTBh}%DAINJcC;JmQO2aLAafif6Ui$q!>_T;SF-iR1y7ks&4vab;lMn0L z1A;n$TPd(z+ABK)I~U62TxkWXiv2F#HS3B1rw;i~B)A&#QlUWeANTH+6~#80|36^$UtCU9^k(wlr* z_`&5KMH?L2^yHYI>Sw4%Ee?;_5(wUqElGI8omgLi7n zvRABjDIbfPOK)KHu6fsT>pXif zk$rG@;E&AoBi8bKFHI1m)!}rwobqlWhE)_#ldJ|p|4QMJULi$lh zzA>1rS4&>P^Xew+k;1*0QpXPiaB{meUP=^ZI5%DR#qPKspjNTht3j^YiM{H^VS|;3 z8u&ExSTn95B-6?mRjII#cE@r9rFP0b@+nVpwBjMU(2lc6_ZoE_tJ|8R%!V`cRV=r7 znaSB`A%$|5ee56%p|!?7mU?`pv*dluSid6HJz4<7*K*_+~HTp&WRWH$pUf63uBfco1%R_r0zu9qS=Ke8^)b-4>m z8Y-|F6m8=SND#C4!Qlq`* zLy~|+A9v%^V%K|ub+{n#X~kA@;Tx~T&!*Wutygy`?7E)XZgfe}L|W55phxV7{04F4 zw{DNhw|76|xv(#-oJLWxU8u38q~i5UX1a&LMHQLSI?+8v%VkO1BG@WZkALL3EFo zBZLdK5d)>vqcIS)`iEb1y-+qz+a+%)6J{iz#M+-9dP|+dgVqk<@}B<)zk6M z;l=Nl5?|QHHRzmg^9N;9@VIQ)cFz@Jk}zY zp)w{4z6`?lH1Npy^>%}q6;>*m`pDWi)XURavQHiK&7wb-1goM6nx#+Gp0q61e+ z5{07h5ICoLst&vg6?{R5`0tlLQ>gR;1tKIn{8U}qDE#zJ+_ngIU)m6B@p{}8b;<_& zW-7r&L1Kpi6he^6MY8r=N*W@jX+#wE9`fk0(1m}x`#xj!w4@iqWkW{8Ti^G`r-?t* zZ}Kq|L)ysqjWT#Vd<45gBKXSj&qMQL8eQ*9vuc+=Mx)M+imMKLKh$T6b-kadWS}+X ze9PmGK;8Xxt_0HmhDZxc&;MA2_)J$}FAQ2OL49v;Sb-fiej^K+Z}(J()gAFx(BF*4}8{32<^gW!HCUcc389Oa<@Fp7nFs z^#%b9GO(Za_Y48K*y^n;W(R&Fjn@@tYv+(n30oxJNm>Qc1UU8dLF@8T--!sj2@#1I zRi2{nK{?c)e+{bcO59J6ew==@a`R%NO+eCpnOaobx$4W}oU8uMd~PYGS_zf?FYEGK z=Drd#CMKr75(I$0dkqcSsv`GFA|aIxT&zIbLmjYb=)OAXiOEIdeefk^xn|y)Ex`b6 zz^_F`?by8uNL)dXMZ~}>AksCuhVV>o=d;lM1UDvd4m+_B75q61rui7~i<52)4hIRm zC|wjkE>iTph@*B}(o?{0O{Oy*e|R0%aabO2A250PLS0f-KA_S zIH{_w(Hqs>#1s}a-`k20XdrW|x|+7%H|!N~^sPSP#USI0jdfAfE_fy^xDL3y0lUN* zG<#wgjQ@Ejkbs8!{jl!G-a}y}To&~mbA=!8S~q|O0A@CB-=r=MTb5&M9G>Vs1yQ5J|AwaI}ar*W{F>8l_!R#)bGpU1E*FHD-e!H8yGNb5V{y zdip#pmUPcT;ivkd#rM`d-`n~Ri-aAJ<{6XYKfA4rductu)^QW6DNt^7s=KGML^2z$ zZR0079XW_o-RfRa&3c>3b5a)6`PENS7vjvp5o$u3rfI-V?NUoQm80o-YWKM-b@)Lq zM6Wd6CLrM6na?*TZeEFqB(jTN9+DIak2jAg1Df+WvXChoEVIo?%HAn!M7yNsl`0^9msQkE%&=ZLmzGC#O?vk3bFye^{im%-B7PGWcu-47G8wiLQp$zgs1keaL~+d@r=ESOH_k`}YeuI!U%X1n zKc0459!|Ivc2>YZ0rZM0K&->ex-}@2gcsjswru7rD!(&D%z)k|)O?CoO3pGXl-urbwc`!Qq}RyigTQmBJXs7PEOd^CL&&!Jk@|jwU$|DQdW3 z9P@umy{Asv36SAB0Mb@8?roBy4Bn!M$NWp15^ZBkqRb!IBX&fE0&PGII{NBXaq3{ro#8>2=fI<=-H;N3L0JkBjo$ z0|Ch5o05jJ%&$_d7OAe8-4Zt=>!Q#UkoXDn;?U;?OftGOHf~h_)4FsdrEpBvB^mk8 z>xIIz?3QJn_9b5?YwdmVjg$TMISVcsk(ZGF>Vf1v`T+0G_{3=!(Q zRMnjYp|amRaJ?m$5?Z9sl!F!=kTPx45{^s4)j$q9c|MMH9~@}U9Igs2exYlzr4Ui( zmbCao<#uCtHY3Nh^<80mk2I&UzM#+~H>fkpHVv-Y-Ey-dL+7uL@%G{-EFo<`;)?!m zvr(!*oQdwwyLs8gNO~<(!bi$itRv+qZx|(lks76d=ij709z0Lma8GEPRinX=Vg@2E zVp~xkjx2fKg^D`+WKA7FilJDRxUAsTEppg2?U~S&x(Frx=ine7#Z?6`?C_`A zv(?6P)4C%D_218L#V>aLxm&cX+9*hf!AEz~^vrD$eORhY-Pl-ExE2<9;S@ts(4~!G z(QxS;gzJiV+l(Fc$>TIhG~N}`oU#$hSz&Uili_a-kf)o$MQM!M;JD$u8i#Q_z0s(* z&J<7U`X$FMPE17eRL!sFpvuq5An*&CdJQSP!T%O=(68^SN*Fx19pM+^_zswWyS9mD%#N( zU1&6~@7329_uCVVq+92VWnDU`niCJ&N92F+**tgB_Ws~n;(I@Qo>Y1jY$LibEzpVo zmUO1*TUFYK#mej`Wm5(In!54^iMYVSI|yvXWtw_Zkwgb9d82&07G7$00x;ag!(KOS zpuzO();vh&J((LY3psQGe3E+Ha9Xc;e)27K%$6l3d%C0cJ%yMMNIp8-*X+9$%bob^ z6P(4R=RO$2;N1P5O>*xx>r5bH-Rm|vb*#7iKTe65=M1kIZ4>lei`YOx#D%jCY>Yls zNjEP0Q{AL%fIXV41dy2YFmRpt%V?&@7=#+lb%JmI<3DZD`prL9RyaE5Ni|bawg)#9 zk7Z7BEfsaJUpy95Q-xY;R+48sL>0Ttl%EL8Ox=F>_H>KY+0-s-mg{Ur!ET=J56#5Y zz)~0JL~o_F{m$SV!*lR~pbt4>4tP|Vyyj_7VUO-4bVj+PKh-232aoQLYt@FmzVr;D z8h?YjKyiOM&NHx%-=b@ry5L0PL{Yc%$xM|kn&nsh&TW?dJX>CMQ>EqX&JJT#H#JkXGcQV17 zAGEdU;V`LE%~H8~1+t7;dP7Zlio$$OL6RS{j%Sjrj=o!sUnrbYTB;zMyFSEcJ2RxX z#_B^>BBD5jb%87V|OHMGxNx?htR#NYnmKQE%)|1Yh3_$^->q?=;bhW<=k zL3uq8`S&Aay9PQ%P=72pJmmwFzq(8%!@n`JMJ1d>ScSj{ejIXmZ!>mf1)v>HZq>R?&mvdI3 zDmZYO?4udRe~`A=XW&CN@O)6YqT%RudCie+`IWBKj02Z8vEf9339sbsh5)(f*Q$rR zLfb$on_%uLo}a6XuXXzQ^_@#gjBG`i84Y#dnNWg&Rp${M!HUta@A5J4?r2uZX`2K4 z%7<~U??3{~3C+wzZvyD1vqqwJa0RU(3k5icpz2k75q0(K?mx5gBk(%mp9Yxgf(K8Mpj8bP3Qa6FkH~y)1ce~8M{9%Y z;RlZ5oj}yRH?hoGUc@rRVPEYnXA8`#n;Bm}SbE=Jdmo^vFZ1gH)=h3V#$hJaJ>pS@ zz45+OzCWw%S|b+R*AHDI`W0!t+1)c<*^G5XQH$PYujgps!lH*l?wUN#H~SH%3s|>E z=KZrBef8&tQiR95FCMV7TcJ+Vuh0)%&%Pa9*;jwpvj2qb`k{S4j3vFg4BnAJJxce*Mv3D2S=7S+_3?vptYl)_63uM1Wfd|CrUHei~s zA><}-m`&(ZKy#j|Tu+gcQ8B9gYwrJ{>@B0>+M;Y>DBLYbaCZ&v9w0a*xVyW%yM_dJ zf(3VXDcs%N-JMtW`(F2W?~d-g&KUKh4!eqR>g;p&T6@m9)|4a2D_-&pMLsP#Eh)}Z z{%ppg9*jjdb2b0MzWYS>O!>Ye5`df$;ox&;3=E>yLt2$3O>CkV-5pCa9rUyv{RjUb zFDX~QmV;s`FL?g637e4WwZ%fUpfAcfUhLfUQW%aZ^MKNNcY5uMG7y99y*E}CXRbUf ziw~g)4j+SQKHI$4cWYJdtv{N zOZEsQm;GSYtruy=FDm?u>uD|8Gs!f}`uydnidDLS2Kcm;cww%+8vIBSE5AQSnOj%|j0Qb^-2swg1a7$7J^5JzEQ6H;VWQ(Gr6kW*0y*?otw;aR zsrR}f!d@(w36U&$9vg^&mRm?)Pa{59QU-rHt?j%HS;F>9{{WQF-D-DSjcNeakVq(f zXe`S?7GK0I2;+>Tq9+g$Zd^_nI8mf8YQEb1EqZ*e$x&j_9C*4DFOfB~&FmxNRbvo* z*!(PR4F!zL-l*74()j%*61sFXKet|AMwG+iYE#Up$1rg^dE9WZSRjjs2g+nypRSaf z^TeBrR8|)bu@gP@RD-B9N!^ghvLpd2Srg z7}ELc`Y;2+AYy*O^7lp&(vJss5%0MX^~TrYFUuG1+K$n)MjM^O$7~Ih(RfrovZ-#~ zd!dm;*SNg2*1SMJ$z5hbW1A?i$+qkN$%f=*XO-aEbdxPJmPFmf}0ok z9fHQo5>Bz=$4h=&*OcKNq7h#243F;*6VNs`9))mBwLs!Ymjz*OR(2(x$+lL1tT1C)iILkh1o73z zA4J>Wb8jt}R6Te20PSfU_Y((C)bCItae?DcwdTst``k1Fjs5Cx6r| zN|lzfcPd7b*jWAT9`S8DD}^@8O#Ih?C0PMKdv@YUay>N$vplyb1ZMP{;M;?I2Zdd6 zBY7~v8M|=#{d(#sWng=!SYh2xt@vR+z7b z${^XVRHM3b_5xDn$WcATrN?+1%1|`tDoIVckHaMC?L-24|HJq31=3q@5m;H-4zTL2nrwtgS7$+uD5%~%=J01SG z>4WcOi&XX*-!Hc&To^P=D{H94_OeGDvIk~Sa@p*i`L1TEnz6W?G%igY>1sXOV4^-c zov*Q9o|m1|xKwwt(Ag(N{;ElYhm>4^gXH}jHOal0?OINwdHp zYUl?NxV|;5jfXTEC*8W8Fe+(wJ=Ye2fEv635bNKNLFBUBQe0cU4Y<|AWcIok_;kvN&1BUiODk3^T}~Eb&1jm=rClITm*l%Hpee`ICa&H6`?l+nw(e)K zvR8S=F*Urp#Ua2vH}WChgAK|BQ{B8S70OI7bd`U}m0qPP^?l=HZ8aEccNfY7Q7Xl0 zCPVNy9Rk+Zfv_A#tuAEB2Nta+r}JVUea4bVd5b|v>#IjG{dBp|Tm5`4QOQ?sU+<+= zj}L=CvWBB%t?d&4cn{79G8U18cY?1A_!#P?zqI6dEAl}G+1)g>zb%IM)Y3f~2pN%6 z_=;U76EeS2D0j!RMqZUhvdZ^=|FdZ95w6$RJ+1i7g7?h@&*g<;Y+Lp)58geHldCW+ zMie#ow**{eA4xR8Fxot`}=_UqO@?<3DLW_d#5qHRsP%FW-uG0dEgYTKs8N zpO;?TX=DPPkxYhR`$c04U^_;k>Cggu}t??8v|Oe z7N7IcrbJheC}?Rs3>QYdcTBfXWx!EBQR8OmnEl63)e7|>1$P`+p{LvXRUCm=vrMmt za)BL#A0+FHsIMv-h97x)$I}j0>V`nZYug@o4%)`nycB-V`&mz{Hwr9b^f)C&u!10z zw6*B5HL?PRDQ=i4o#egU(IxtPIn|Q$N8l5CLwfAHX^hvy+g4SLSft(I+VJ}Id51c2 ze)IJg+1;90@0c>@!o(-SoB%TA_UENV>vrqyR#Jp0{(NMEwA4K{W!>?MOaqB%v>ppA zO|OD12v|!6;wXKRKae<}A^#!B3r%Ou%-9Z{`H**$kCvA@vDS{0(ow>UrP69$+PYy< zOF4wMkU79WbV0~`_uOp2Az#vG%RZn#X8Yl1R2^5mCz%dZsvP$O4)mbG&!fU>`Io<7 zRZv>`-7F6%QY6`mba63*5avSL=vM@dKGAI1`QTUCwz}APIatlm!2Lqds+JS>DvFCjrm5|5J6&s}vFv`Mh--q4>D0MFlxx zJ63RM>AdYde&d_AJBZscTBt;$bUN^L>cDTXS#2fhEJR#$)N+)#L4< zLu=3Yq_O;OU#D2bp%^$}Wt!%K<-aDIGby*j_uQPQBb z1z88k(pa2ouI!hagW>mF-LNv@BrTseQdJxqVZvwY-T&}{LM(57dh*gXfw-3-yuIJN z@PXNVIPF;12_XB_AC1SvWsu+Ou>Oj&_}p~v^Gg0H^c+Nm8<14AUWIt^99$oD-%2J+ zI4M?Zsmy50R6Y;*=2?~Uj);*A)Ir#mx=4CypI$Y1pFY}sm8MU#sm>w1+yf6j+cKCq7ZF~5wGqkZ`bV7toS(;IsT(ROZ+F_^qwKgSd}3K@x+4HF{L^1 zT+^<+LKlvsoH2aT(XH*=^9ZRQxh?fhZ_TJxxHU zrT2aO^cp0wTS*S4g)NCYbuH&j;&-A#`(fLj&b02M{t9^J1G_TPlYaS-)vCqN@RjewfHvpo_s#Wr`mLf5 zZ!K&Mi|z4jmWoBZoIgtr3Oqo`}iA>`&gzOhG40Oz!2!1Ap= z;ka3hz|X;MCD}IKHnnag9)A1Mn2>5-)w{k$=%{OOZ!sR0+S)0D!dB$F=7IG zt&cHSDVywN@*|Wv@>>j9U?H~v&l@p0w?3HOGfbUOByBVOPbTxwXIO^bI(`rnpE;gXHO;?|m%HqCQ<_Ff6?j+z6v>Vb+uIi)19sULJWb zjf@Yjp4Vxiy2Lx0L3VH>~*AuX^3-uC&Jv0ezfgg(CXDvrRSGy z+T7Kabj6?)RThPtZVePE$qBjtI8)5j!?S>=Ny}-C-BdU*`E+WyJl=QxT4-z^TVi0N z#%}etA$5FC(>5~=P+!+h7Rw_{==)+`0z}xd?RX{RFW7f^=1X@RGp{;E z>DZRcq+{&pbkXmcpGYy)rA7ts18f3O1QC-Q$J%+nzt^pM z9P@J@{-`mYE7cMnmuBjqgu!?E6(Nx*wS|=*KqmSR@YKNp50aCQ#`~*|{7@8RoLLpz z;<#6Zp{Bn1=tWdwUrfxztO@m(;FwPaz8t%2N-Jx~c zh-Uh<$(#ReP4}Yp>?&oD5q)u`YOTOJ=PjzM!&^+i!#0y1(N-9r>}l3Xu+`TQ0}F|W zN4LCD&jeF{qW99+;q7pGcVEibWoM*If<6_jxPUvmBI~VXdtqDd=V-%9)zJ9jlEI?< zpLbjD@?aflF&(nNRdNWASdawuG}*rTE!N{@*JWHq+Ld#jNH30@Fno67 z_+15wg%I2mq*)zPvZ`4x-6Kf5X@5#)U%#K`rI*mSp)wlk}`UW<)Y=IL~9LX@tU2RzWdeCl2rqAMfj ze7UC8q%V)!{znoep7UurW#hz=F>#o&L*@N@d&BGQJBnb`1R40=qG#ADxg1Xyb{*Y* z`49qxJo>yt6NXY2PL z3C@Z>y|H;G6%QooYI4|{_T;@`Xk^yy3;dgNY0yJc(o8=S+TE{B9Dt{s2f5ekS0Gsz zNC02UT5umA4nz34qEP2Updx;>GEOToB&*9yyl4I>w_*OzU>vhGKo$VW0Q; zlTWu8$nmtaiEs^6PiWJm!&2JM>+;o2!}0Z#@o%fT(eeN?{Zw{K3kh+r*HPE0TzAJs z5cMR>tZbO8!GpcuWGTg9n(6-C>uQkLQ_yAo8cf~iao4Khr+SUa;KX?-oXc+Kv;Ej& z;f`!w`B`=KWXSO`3zKT{My~4k8A!h4`H|fs3RJX89(h>CXWR6+)S9&p(x#CMzVm%M zYda@-KGAs}Uxs``rS&Rn;ivC~ufXy`(#k(K-*q_5-(ND_1NjquW9bohSj3!%k2&o$ z)dOjDPaUBqN4ZV2EDZ98E`5zWZ)a8FOQ5yrv2{NQi4%_>%pXJo1Qv?7K+Ljy5Js71 z!*|bj?-It!J;La!eZrR1hh31~tZsZ_xY-eeUHYaTn_4YY63H$EY^#;y+QpwVyl+On zP^;m$+X-3zBMW!G8|1#)-M>B!-UboHG>N(0fRtYnlp}O~uC{2e-{bl3ttr#26`#vt z*=3IcSPKrHcL*Qym5@;l`4y(xtARY;^dohgwc{aoc*H3k4+KH%F|R}cb~)*Zqalar3ezlMRG zwL91I*^T34Dzn911@AUT0>qde+6%TwSM>oWbl9y_R9UkkHi}g+Sldhjo+07V#1Eaw zNZUa77|K!jonBUrnMX6E^tqeZX$>`jlR5j_eAeBq63xT=pvps)-S8K1Yp*dASzF3~ zL}NO>?&a``U-G5rp{KsC&$HxVFJ0>|{QO!u_1?QTXiCfbQ-_v3Ald8}eAwA^hOCZ9 z{a0Mt8ut0g`(xt$rgxIj8#PSKVnn)x>6kQ1kRV<wCkR%q(7*s z)kY`vlYNjPX)Kz+gtoM79q-jRip#)GU78D5UD&)ONfLhw0BbEX>dx60>KYXz(1`r~ zp+-WNEpfx)fCT11ch{C?9A1HY{1t4NFlG(j8YcxU}2VIM4SjnP$Dkru%O0 zUM-sHCfn&9F?9^VdnYByaxP2C%{`>X2o`bJXCmXTUvyu`4uax>d5bX!c<*xg?nj4p z!*isd zE*)!HtaZ0!sd_k5+=keCX0pv^HnGv0FZ%4_&<*!$d_Ka6BW22t2`fzKvBB81mx{N0 z%ehvMt(C@MO?ympKFq|cyXJWx*oUP-yuZcAxm7}k+VPJx_i3?7HFm*mAtt%Y{sZ*} zT>R)^GX`7`?d(qolm!W5bdRIMeWQtNCYf6Bb-4_lp*c zzS_1Ct@_3ILoAlJ)FTQ zvyWCxotP|iyhi(j-B-!|^1kMT0HQj@Wv#1QP8%g+pxK%8oFzFEpSHmk{E3C%l;rah zi~9GT})Uu03eDp1X`aTY|{j3zla z$=Kn3U2Vpvf)_0lUfy&^b2@XJnC$`1r1jxo#PJp2h;*2a5jhpRd z#CzgzK7kXej7g=lR_DYB>%HS~uJshdjN2(+E5Fmj{rW_STQhuEu8UG?hTEFU5q)!^u!zEmK0>-oKcmv-!>*GVunI@aYYF6ng z1EJcXd5aDVqMh+TduC47E@khlxmoNMEduYEO^53;*Dpk`oC9~u*4pz5Pw{^S;-p~p z9{c7tok{wATnT*$2P@cqo=Ql~4gq9;Kvv8VN=zag zJ2SU#DfN6ulo%~NR<=?Vs%`0jV7}^P>UM#`ipf;hfY1h_cwV=d}n5mep7Sf zY%)*tXNO${0^$qQk=ZIzo^YT+mu|~;jY3uc0eycI0ab=`JbvW9uTxhHT;AuHde9{; z(peAK#`zqBpXZyis>D-_lYLbVHoMznkA>kx1!_34f23RBicY`4B-h0U>NG-)gv$|^ z$=|F>7p0!gQe74Kw6ci*^Y|gtZ(GwRm2Gj&(+j%tAhBYD8Uf$BCIg<_re(Le7pkR1 zj|#3eDe~&E3%~zRj+TqkP;m`AN>E8qKAH0k9EkJ zDSX}rHme1Nj{26b&ucU6y4F4qb1&0D!8|~~Ysr(y>(cM_`|nFv@3YU&HN?DMAOet1 zVlF(fUU2$Z2%fC95)T!Eh+1wLlh@@jhHg9!{UeNy-ndKdh2BxXJ6@F-YxaH|--j8z z@)WH@?$KexGNcyy{VF4rO{f4>5?d9>(InM38;Tu^>xEWiQ15ldGopTCut+K6{Vp>} zV0^(HNW9p0VwE$GOy$pu;;>wd@LoM|b)|M0o)2M-~F0o~z z`zqKCmR`#&=W)nM-f2|5U13~y-lHp^3771ugSu9MkDmM@iC7_HVvC8zUGDpzg8F~P z`$Pr6F^ZR(Ybo{jtpeK0i82})GygiDSBPBzrq0)c;UJW!`!Ka_CIwwO+BlHWd+EJr zXbM7Q8`P38l^_1n1-{8$^B`h2StT`+qHu^g9{tDeK%y%%np(b0T!?-jJRrVPI&%RO zxpVY=mzTy`Sh!ccz6@W4vuEkN{&fJ%tj8zAuOy8MX|J&w2dY^`ScB1%Z)yriDElgH z8a_rymrF#~#E7>e7aZ-2Jrt%Msf>ep>``crUGkdHXzW;jL}mVkhWa;SR65_E0NN`i z3~2-yma@#S^~!3C&Np%WaHdg$^pa;dCE>q&XkAMPm4?DhAYahF6`@4$8i{p{cFuN(FGu?Vd|V>VN*5{2(nz{PJBiZRVxbT;%6>>zEEebaUynC0PW~ zN(_sLoytHq$AkE0kU30%rix%(G)EU0A~i=m+uE{JfRkhtL8wGB)H6j%sF3^%(^90O z|7674Rxdnlu99f@y<9vzrS!?Qczl>P`T z3KF(5m_^f*fzR%q5ek&Ag-Fk zJ--4UAd1;2;rZyP9MsTvx*-hk?*j?6ec*iN{IW&btmW+V{`t{#sAiM7O&fiG7XAEZ zUz-amQdF$Hs?V{r-gJw79;G{=CVa1uXDRK}L`Aig=d!wQ^EmT}VqH*Ih0a`k>FT`D zQs{2F{y2S`JZ$KzsZa`W6~?3WRQcVGvVO~r{~NU5V#!Czn}e}^-*vd%CJdCmBR zw4?fQ$)BhqxbTAEXy4ltlgNj$l8A@R6G|iCd69MEgnA}}@i8|;8TE|*&{Fc{{ANQH zQ~KxN@UPLC&z*CptV-bYJ^Krl-%-fm=UyiX=HBau=U%s0wMIy035vkLJizFrbZRf* z@pzLp{@F+hVj%an&>`?aFK!$IV#wvqfC5pW&4<(z6I+UeM9&d{O2V`^1F`s%!O_uF z*Lr$(x}F-gW|%Gsyg^c`KaS7Pgl{*zVPz1+u#p*LMzcE$fc}tbj879d@#ZJ0chK%+nlTjcB3M7| zqM-^mhZv#ZM~6h7`0%S4y!6u3XV|}4eFWarDHZJw#QN9iIXn9!(DE%fHfEER@C(^~ z`0B=SKZ5xC*+|IIPpbRqu`C+wIMS7Dr=3HpCe%DAT(j|!gyU42qzK8dOJZBrPM=19 zIs$71B7QBDx3q}`PNB|IYCDjmE!fSMD_I{lkm9nK*YeLQ%YTi|V%YgZ8iDIG=q7D? zTMHUaUwjqVuzXe|L!EyqBj^K|2V~QPZSRw-=G7a@C`tHGBPq15-yjJ4#@(1>x1wu{ zxX>svAbFVG(|&wj9B3>;>O&9KOmBSR6^oS>qTD1I=q{PV@I94S zUE+x=1oHRmAy1aia(ztGyb(sfac8m2cf09b>5At3tMJ5wUODTj8+Q*|5_;>S9T$2+ zto}aV-gp+vds0O{{5a_+z^VZtpCpvtAWQ+noAS&dhyAD}2EHlu!gSX~HU=>^X>%yb zXOO$PXA20@o2)Wyg=gsYb3q{BSiG>i6t+XTeb`7O=aVemwt1CmL}0N($IZG44VC29 zJ9*F}QSH3vK@ey*u2;iTRVIm@WhIS9J>UK&WVYENvk~)Ms8Z!%njD&#{Ie1s&Y%c? zP#S+gATOmgN^Uflbnuh?Mve&sXA@0E{F9Tmf-w=ic!DmT`z0;Q{YnFlbrpSw&AE)~uF zRtjL5p#pe<+{(I`?jHGjOJ;w-AHkm|kMEr`ery>Z^`7{+hyHScKH!q| zY<8M*ll#C&^yk8#f9)KF+F*r!kXBrpIzr%EB z_sMgH}*F_bRkx_dL&G+$%e~BH6GS!da0P_1{NsGAAeuPJQ*5WMLQYk}o9u(~z zyz&GX5l;sC5?TZjJ{$Z%biI6kG|QYOsz62);IC9BTW- zDgyp8RxKq>%C&yc0Ol$yu>XfL{9kJpJ31(%)^-@5gg?ObswYsr<5yH`lTSRHtcRRC z-CJ-850Zw+{X|R)tz`;^awFCTrbH4dLF#JaByYn}lB&`PynnP%ok0=f7jCsoqUh&e zAbtQnE45}&_T_AoIkVumT$!>;%a=A^(4+&haYFG4^)IoI;&3{zA6KE-(qMq~6e6P1 zUS{K__JdZan0x3}7uAoNr4kZpX>7X5X^Z+%*C;Hl|D(j_Kjvsgj@Sa?rM%>V5fL^O zymZJgeC^!cdQF27s*?SE15$pTR1H;QQ!vu?Fi4YLgsFId^r=}7zz`cM(5ab>3q4C% zw|HR|x*{OjM#&Mi*?yKMdn_8}NtT7cP|5^L&x{Z4=SZFGR~HC(8wWA2*GD*Rz$f5B zjuDvm*o___;$zzrg8dl*W8{HEFk+OVs%4b)Hh`Cuh4Z)yA-A@7KO988(lPyO68?PX zOrCvw9$o-u395ZX1)&lKL`RGYuyk*XP!l@zd!o$#0Uigi3^&_?$|yn|+3)!j4W~Y9 z$2uN;FZ7>T7gkpG@($R?Snu)&>-O3&giHI>U&g$#`KD({bisW59+isKqj6_-q{pV5 z-dMQt^RIRcjF3)~{3R5XsA1UOZ`~ag97$a(J;t6ocv=jI%WpmD3j8X>MK4f~2xDD% z+8>Xf1icIiuEX0Ye}_GRwS?L$0Mj=$n`~5^ELEb2w(KP&b5y%~b48uTAc0b9=ruqi z$)K+3me9wbfRZ%7L9fZE*GvD?_}Md8AVGJ)EFr0Ks3~Lwb5`&=OO)wViE+21x;WDy zU#`FFUj@n~xFBaYO;;3W46snrN`1K$(aJoiIFzejFXrK#emFnVT6N65n@2?xw6tQ>4V0<<*FiJ50^ zuU=j=Qa3_YkS_lk;q-}6&QFEV*w{^s2tC7?4FbZo*1!(ad%Ex33U=Ye_Ob5h!oeSv zv)I-wTmP&!`*&U$=*KYCBM3|KT|u|=-bVKoIO_y%akKlpkOrv^HCI|m`k9Oto^%C` zpW25#-ftL%O_+8htbGp~3Y(VNt_{#Fiq$5uD#8hU+#aZ6Ter**SHi67WI zvrG#rSWx;B2*Z))+c~qVCeggKZu((nD3onEjTQ5GS;3v_bcyrVYFLgjai#j(B)E-j z3j-wXAAB2a2O>DBA4p4t!3674w3!B15DlE<@^XX!?q>5q9iVSp_TX1J!qA)`N*=9) zP!!&1_S;B?3x5KPbY6=$LDMhc-6Bw?!mio#q4*hUeA&i+X&Zm@jTC0J+NXpa9TdO7IM50iRpQ7hM52)WP9 zUDj=rS2B9mg(VTr5k=H(kR(4C>I5A55H5v z)TZ7y&IQWhgfbWKW&vjyA(b@dHh9YCl*kuVBZ<~M^K9UmgMA-u0^fvSK3NClf2y&h zFt9)wKR{vT3|f>nHNPb7d%HNGMlpa2BlJ?}C@xGC8vx4_Z$ZmEL#t?PVFyGIF6Hne z)6A`6E{OctL(VG|j-?*46C|ROqmlXmQSI8eg&Bi<`A`b+w?R`9YnepsV%EnD ze9L#Y*^Vd{BE0_h;{*gdxR;{z_ta4hO2`R~Rx+s%*x6?Qz)WcjjxzQ_I_jPX{I7m9 z0o8e;WM~nlGebDL$?x#A%;k?MtKZc|!tf+ zedT`y%l|!TLZ^^ZP;R=zz~+vM&g~c-EtwTP{sU?LYL<)3ErE+`H}Z)jb8J*X)rTBg zSe8oTBg$W}J{MiX*0A?(DE_O~u(8f%>Z{8Amu-S~`sK8>Le)MDDote!nb~f*2mAGEdfGwHP;l={tLRj^1VE z;O0@<8AJN>KL^KujXG1r(RUv6w9jiZp>n8BK)o#7>1Y;%s6h~zmdmW;0xmd10>+#n zWF`uR3JF<22kU%8sSzZzdV_#Vv@$|=dV|^$Sb#C0gBdlZkWu9f#PtVL}-jp-GsIT@Oo2X$TDT zj+KytzE;;N(odB(u2jBu6oGcK^@kbBE*n*5=sfS#fY59Z@CQc$=v~Bo#W>!@+CG6 za7B|>kE`8ui>x%CKB`gt5uo^2?M_jmkjX3I@J0LBIo(Ck^OP5Dm=IyjqDaS_K`Sq* zs9O$}%GE5@EDEtG4zSxWdwmmI+0@XAaW9t#s!cO%P4>rTPBB4`iC6WuI?R*aOs)t5 zANi+7nmKzQgd1KPNv}!h#6j`hh2Ma|vSs%2R$DYyH$4R5MDu1D6p|;YWxlh_)Kfq# zR4_g)+*!DE5m$QLXX~mA89aLu)e$tM%g=wcL#FeuJSgWZIo$I6imJyVh{mhewI&Yk z@lD>cXXo;eN8m*%S|m!|wb<_fu;~-~s_zsTy#zL#H^%YxLN%0}aJtgo8lH!)Wf>yK z$qh{U5c^mn!0Cy$wlhd^i@!Iu&)Q87TZfqW;m|CTSCS=QwZHQhgXutU3X~|vnpUo1 zYiOfY)~=Y~6r^BHF-=Hci!5y#*$kTLbQm0;Hlcj#zjls)KKxDPhxxPur?sA-IgEo1g=Wd>lQ>c$rDimQH^!8U;bXAnj90_U&V~bW7QZZb)1tClP7>f zNze;Hs~ea`KoB4x!=(z)l#M;RvPkT|N-3NF*@)>zHefzS`E)L+ zC86N@H*yi(!kSTe^AMgCNLBvyimZQQTM@_nx!n^NM`88_8v}%lMV+H;FG0^tBawA0 zgv+NJ8o1uab=oG%g?34XPXI7t6M&*0(bJ*?C3AORy)z-va*8Tu>&X0bIj(ysc0P%s ze+U#6JYmr}o*eCJtjHIcMQ=e;{RKqWEA@4{@fkPs`MEVMQ~Fo?udmWzk!RFu>9KUr zT}IZr*$r<+M3OU5xahYq<+5S^`us#6+1KW8Ns<*_1Dv5cWcUg;d{iP?S@M8-@URy? zBXjUeBpIuQ5|vQ**@72xHRhNM7#h7Wf#4{iQqK@g2}r-NvxEksLj934pqXa$YpH}o zvE*@&_D=Vr_^Y7t_Vj4jRj)=Qe{$^=h>P5$*z&YFrT<#T=;gx+{X1?W6Vl3Gpm%|^ zwW34f)&I80rSk@+oPL7cTN{LxKYe8JKeyOy+8V>$v#5js85UhtKW0wx>0-b_*36ORimmJ>QsH;HiIZn-Wb4}V!yy-S z;M2nCjkb_bsPFvf(-lMOMG&(-X^Mi-FkwqmtM8N84UAq*oJ&W=ctItyYFvEzBv3`y zE?hOr`&W^k0CpkQM=hnHxnD?E@Ayt_@Selw8;9_O&4K~WQJ7s9)ZD8#Ho`QV-s`#p zX~Oa-cmJ|NIi{ZkWik6K15MZL5=SAIw^}X6E3>#@3ryNt>w%V&1VU_WcvmTFu;W+T zUw5_RH6D1IO@To<^x;oI;pRxiZRCuMTYfA6Hki{;rj?a5@I_0xwGHfjd_xB8y(GkR z%?2NxKR@ID8aP!L?Tf7 zNCo1`K=K_8F$*}(4zh*O#-$7O1{tE?0xfpq4>_qf$6D~4IMK-@lqOx9HdV>BxZ9#> zfyQv{dmmUsbL@MhpHFfa1fDvvu8Ikq?*m7-?SKg0b105xJrq@sRtYXHnH;)1F@4`H z$=32R{w}X?M(a%V)N-BYWdpAlu(f<@m&~dYR!5zG%p<@meNNMcf|!KCkh}p)T@Jl$ zSrjc?WcfjL0e{3Tjx>q&k{i@{-Rvk6*k#~b+vmQCjHd%akSz2~!%>a=J;D;)Dpndxr3HZUWRXQl)99WIC z)&35`_ZL$0jJ3Q%CHcyz)+3*IP&a*F3-Y3|7+2Gd)srG#n)vcr5X^DJm_P~-0DcpK ze!O@HsTn1alyZZ!+c2?mLA+F1RlT^qAw`uwlWhG?y`6)F}7cMlxWJ9oLM|hDX zZXjA!^j+aVR}!2>Ztu|u7ViOrp|!sA7;Hqq$)Oh){0rXtSi}2i$n3&>!|+7$IuIUa`U^OJ!8grUu)?_Q1T?D=Kab7#7?W zV}>BrO0k!?1}LlviEXBlQ2StP%gv%17H-b%;pT|{xUB!(<^Dhaj+g;9wr^jV75t&{ zrpCL3xJcqk$IZX#HSjax`n6XU`hf!jQ~9C9(k?1ndiEn>pz@-7H;5L!5o0r{P zcl{zb{#JuZHh#4Iu=c|~Agc~=`ca_ICnq7f@Jqix=*|zwG;}>QOwb>Cn9EaS!iaWf zoLHmO)&{p?aV=CQL;D7+Xa;^gD`gchj6B02%Gkj zICWHu?&p3KiR3B!fkk$>omTsUMCuhk!us#+)vnyw&S?LYN!5R0bol>$%*_MfvXd$P zLHkum)z071SMZ%v)txUE!!ycW2IUzyAMYC)^y@GL0~nSX>u!H$9+@sYc1AWM7+X>1$}5vF z%7Kcc#tqH%*Zf566(GbVI^G$tp7x=?E0%+>|CE>e#F3)EYGJ5^Y$vgQq{bUj3LvQ# z|H1KgK2GnT4}TOowaovSzNUw&s;nux}CYIYbsH&58(w^gMcR|%tP!^ z)0Dt9(+u#r9Q{$A7*?i%1L`@N2K#|(p}bfC##}_~guLess<9#z(&5O?#r#rg4V%2L zbD(~L|7H>cCW|?+-C}+vm-j*mJ~p~8J@nbacr2C0Bn5BhPCqxrI`%i^U#*nNB%OKQ za|jEIys>-M-R`DB_MEqh9b`}RXp;6zmE%$mW`#ICl*drahbhwqb#_!Afu<(wg5c{i zCxfS+mV~7~UFjFIB#056giToAj8G{*V({eyJlHd%%}rBww%OujhMuSrc~abHr@V2+ zuL!3mjhdh?gvM~3wj7fSVz9p{Oa$56PHe&8Nh;1x{r4Vh|HTuarvZ7jk|puNjjO!( z4)z{j8wou0$O(4uge1b*z-YdZRc(rKKib9N*H}WOMX%b+@z%nuh7U4OwW{#Xwde}9 zUC8>fxqXA5h=ng0M=Ib<3KJx(4{e;h5SGGz{Nb4NFG3V4vo(Orcl`Q}%coFyhrwQeEZaL$0~P#Nsc^dlT%6tP4bk zj<~9cfO;4IZ0(?y1y+b!!#%8+l&>WS;2C%DHNT-EwM;5Cl$D}!IPvvn8;tW({q}c* zF(g;`o6F6YJ7#3h!;(JXO;M8Amq-5N#r8jabxvb+e)P^<-)1HpMS1d$vK+D|2{oUp z!T+s;?T2YwDWzU#J2!SYkiw(tzQ|!Yo3%`gR?GCiBBBQcDQ%5*=Q$)!i$Z5uTK8w1-@i$5NnO%coXMr{iT&BXlQSyt_WXr zj_wzJi1W%*&b0|c^vA&u(-pkgKcp51R-NR_E;6_Qjb(aP`1-%S;j>RWz@|3@wM3RV zM$i~Z9AF0Mw2J@s+(%P98Jw6u9)o$zy|}IIws%@)9+O!d0C|oNp|ZBQWq9WiPfLT-@1h{55k3ePgeP$b>r?Y!qX+vFi;0OpjG_^!dsqHrmm&d zqac~FIT!AOppm`!2a#m<8$Oo#UQ7@5m3YUyh5WuQ6x_T=ak~{wclWl;^KwK5q|Y! z$llDisc_FQC5Q^yY~%=f1ubyzDE$Z?s4UUBGWS;z-OpVB!!B5?x$6C289?|Qqk_~sjZIf*WYRNgSePw|X-CRAVd_>OtK5aMeo;F?4)Na3L? zBU?`AsEPauHg&OtgqYYquJ;pmt|nUz?F`Ob-td*f@dG^QgBpR!Hv9rkD{HGqw12gJ zLIQk#jVE|x5hcTkk(`aa_k0`T9cS!fw}euo+6WMiea73@CZ4{3;Cgq>qGu8^4*r-u zOr_o_*q4GaGg?rn5}8FB4zSII7{7BAqS_kB$XRmWyF_M zs=o->v_nP>tmvr2DnrOGL>pN4(gD-{xK55WwShjRigKzsqJ`~*TW`dlu<5Cy6f(@4 zL8fZiTF$e&L!go(js93)hl0fhj{oB>W2N&SygOkoZj+LGke2r zB5iu$tzzRnOU9=B^jijA!4xuyeLWI3JB)4yuq099iAl-q)v)ytc(K%SFt7JdINR$x zT*q%n_MT=AHW_z(nr$3=qlOp%mL*0qtuT+#s`|Jx@||B|xQrr?TgWzQHLLD^{HrK- z{8LpIKyR&}g2$n5v!Js5UgXh}jM`PtDRbwh<9hc&VeYi2V6dv+<$fOs-STB6?(I(f z?B`Z++z@>8TMfF@{!d7Q`p)gzs}FNl#W!cHq@LpxtnTl!$*g+%)+WvHb3B`Led{s5 z%Y&zURZ}?gnVPO&T?F{eui=wTJH{?;ZKX}?TQ>7v3+L}GBv#{V;1Ge+`>O!dbT{08 zJAwCbP~;>o4TASS6ot0yy3oJ80R97)49*c8sI${vzLGB?x!rjdC>Gyx2(EZQoIFn9 z>4jSuCCSoTo>Fc=s*w59K>j^KYBY-Q&MI6otst?($#ML~Y2MlRd4{g76}{={m%bMt zM0l)vjL8jO;d1L5qz0>K6MVDT@hBWO@J=$gOC6G&c2Vu+k?i2QktIw)Z+L3EIkMtT zGsV~axO(nANm6ZDvZ{4(qMH!$MKk;PBQ05E*@KS$9o@cr-6#I=^kE)ziR&K^>tF_# z8>W~CL~H@plB*?)Jn|A7EH)v8>wtElT9H2jDdaDllTECt7nMA$<>({$^-iO&xudYEY~tO0{_>DXosH8RIzx_X5ne+;<; z#fhp;ANpFvF(|pgiZ3Q^(G~8FbmM-Tu+Zd(z1p{ZqZGjx>ebu!5m|XPVe|82I^XQ< z=pwYD$S@nU5Mi_9#2TtBFn*U1Sv~{z zsv`V@i|-5B%xK#>eA;j~DYGfV?L{F>_=S59797YQFO75bGt%9=%1YM(Qv9^hQDs)j z&?*YH0Ukkb>@q0(+;po#l6W6;0(NlI!nS|YZaPad9?;Xjs>^nVrw`Dq_UTeimjf=W&(09T{53;j z{suc>o~)nS+q@S$7f*sB-(xhq*g?oD_YL{I_h+>df~_N=YvHSqfIKFB0cp=5&`ph_7O1c@k>cQq8ZO9(S;NT^2XAu!6+dN&MB6yNgQ z=x6sAEC2LmE{^w3EVr41_9Y6!~{ztPUPPgrg>EfjBh$PhWcJcEkZ z!Kb=xadtU@?9J&~hY$vYv`#`>WoaOGtlmgX|Z!z#pziGl-5JHsg2 zTtlIf0OTp`-G{&<)Y=AyTAo(+u|61QPdz0;$`h!|b<^E*>g`u0ZU?fAs?5C5P_0_j z0lrV>jk$i>&t0lomO>xQB=&_r#4|ah3`O$}#?>}DFDN9Maa7U=Nz_}5ETrC0AmVb* zzs28$TQECC-)OsU$bp|j$=BBpkm_!o4>&B7mCl}6jW}7jpji_HH$|QwBCvf1Or_5j zG1vO-CvAWLgE>IJ)R9$(AgRQ31Rfw$PzSl7Cr;84Hib&2YRq=r$+ejfIj zw!f&Ja~~MZ=Qg5axJ(KW1( zf#9SW$n@;{ee>dTNk;kWuLnDO*}B)xlIAXw@<$`xHdQ_J77NDCO@4kupDUh?D_&r) zTl9wjAL98 z;PcV(wJbYu!<_5t(AxC{fah>nM9a|q(>=Itmh< z#7DX58X%sEwWLq&VKA>PZHB|wx&h}vLu}Kd8&evHtGlFWRMIPrTUHIGK73Yv0(u)o z(DOR?ZcTBw>*mSw=k*I)S8L{&=AvxB3Go5IwX2Qa(jrybT6{O0x5A+Qa%mk6Z`Xfe zOkUo2ptUBwcxBOaJTY6sT7jCis<_&^)CKLlJaL;|1M@9PZUtRMsoHcM z$wGE5UOmAw!6&^}YnmB|o<8>*dGQbB7qF0{gA?3>nv)&gnsy5j#gVDlIFqMBm1*3j z{8?7AfvF#!A&}t=9ojK`4m^~ZtUwqAKXU-o;TSf48-J+sjPv}xS=ahtgkn-KRmQst z9US3H5OrAQ)ZO*clBKcN%=A|?Y^8P?mgXAo$hVNoAAI6h2>elWHGi-@g8)4EH#9?KW- zB0Zq|(A>;3NOJEoH#G(3%WQKvEUk4m`Zj&ci(H@u39sG@A{y@#KH=-No@*3O*L@~e z9?vej9lRDNcx^iEf(e5MqI)nviapWAD;nvVCCf^$ufK6W@bT?n%b0G+Ch2on(E6w2 zagMMxpD|(XR9&sB*QPTri?Rchvpy#l1`5Jk952-`!T{IBTgQOX6Ra%pIRA^LxQT4X5frq` ze~~%t66EnSxQ@288eRgYjtZQJjZD|l*}2&J8JN}9;&_rg4_D#E`MH>85FpIkAr}`R zdNuio;UCy0#%qFwqX?I`)PbB&7aeP+rvuHIBxn3*(b381K=wEqlsg6cB~35SXk7&w z9<39Ita=&8sIg!tX8-`20VBmlIyjt`7>ABDl9kOiVY;ER`W%q;g6Q!Iyiie+u?W*K z?hM>MJqAT-CUopMVPP^Zhr;b6$;ggAR#&97yWQM9pAG-)th7-J4gc_LV4iWx5rwdv zSa3p3-v~`15leL?-nUQq_dS)_;#8(8>AZriV z*KS?J)kXpQteeHIw&TFYVqlC|T|XWSqTgys5;QF{X(CwBJ}i&vvq?D#0Dd<2*YDW? zx^_m$m#NZ+HFcXGI5i!s`N#61UO+ykZCyDi(dr`GH;Q&DZkGua*~`nEgjQdv$-Ru@ zt27UgOoY9}mT3AqhcHZFE9?206)C!m>v#U`j_8=3FmJHq6+Z?&XNJ1hPhZHrh~slb z!G@(=?$5e3(8W<|$Hzt%2_YLtcL~p(q<3mX9Fhqg_nU9cS+$*y^Im`zG7t6y+DchH zkTGRUeNjQz#Rt;}wgnGZ%th_lMsCH{vv-d^WxK9?B2;Z1eXZpqFUdday#o-Rd*MAB z2%tB-4H2C%DC5JHJ9=v|`>O**WyLF@WI;wYHHQ0y(BZUFciigBU-{MQ(95c6E`-nBy0`pkBTVKWzZG16N}fU<)F_Wri4eOe`~V?T&1L=GFtWv~zxpMPRkmWmjo>;wf_gDX=rNTnn*D3w_jWAGe5GAqq@uut zLG@E!5ShgA(PxH!PBa+Q&IV;2kaMdp&@$6eYlHn zH?z%}ez^os2RY%8H7YOtAL$o?b=WO2}%Wd_+W#w$w^74V*p;*0A)%KCI4uUW>9&UX%$faWdzz ze|@sUQf@x3z0^9%O;xNq95q{_K4I#z6UuF}bf59G_9PXH!<$XqrYk;Q9g(BwF-xHr z-j8TiS-pO6*n}NpGYGI@wokt2&I*?INYmO01fG5KTNK#2a?-2+6_{ocM@jg;xpA=D z!Hx}DNK@xp{kFUuyPjSmR@A45h&d0Bf0PS4G*ocZc4V9z$UxbXvmH`LGRE~q^1d}G zL0i68io_+&2>X7HZM-fv0{ghCNfKaqFDVhgd;R8QC;{aVZs2qBzVc89U1mk>sR^e> z_H}5px$Xjk4R!tILJ}jx(D3B#2CDVq#9;Q4yYKCASj5r!NPmd4s+`*$9gZ4=>A}E#vz-S>n#nGim#Y;uF;$J&Z43`589T-_~|z- zb>+TA0K6UjCVP!jshnzb&ko1IYzp}1p7O33*!{kAnB8|+9^3OPY!yT+& zozHlCmcL;ktvgh|E63aa#3=d1ss4#pG9j%_K&bFAOn*=RS4wu;5M^?o{h z#sOo_W`#;-lY4=_{;_-M*tT{7f|^ueLZZH0fvYBy`8qG2(;DV2!Fs&Oq_X$DtvRj zXih3flxQsK$8$r?r0BxNWJ6YNfGm3q%`p=%bUS#BvHrEb?Us=c`$w9zCV)mv(PxTl zV`QTAwc$V4KZ7a+u4BVB=bLVoh}9FBu)Z_-7scx1G8-Fbuo#a8^q5_OLgfc2WI49p zHGVy`9Knn`A)wIr`j%3f?3*sC^?16~m+Q=x&tz{DB!Jj-TEoBC{+vqC2nNfNJRdX5 zU^MAsk{L^AbaTA5!c$n>{74~~v13j=G~*@+a?I0TDK}md<#r5Q&J4>s{Y&r5o$M8J zqY<3P-R*4H_EBr;FbP-y3O_6Dx?<>+IQWw+^bFs4SNj^>;9%^A^=>cO3K-QCUpFUz zsVLI13Y}F0n4k3xm+OFrBc*pMHTgX^_i7UoigYxb7F%`?k`KPIH7whGy=Sg7f4L6< zm#?0*f(ojaLdnMbq`rg4~ zhUV2@c>~HFc7Vs@=K8J%5V2o`$VN`kZHV#(T92NH-S^e6nnj!q+(rydsv3PZJE29d znO8}t^`akLW$IIUtsBWscn8}HN58Ev%PY+{+Ps8z^;Z^pFQ@ly3d{HkwaKWPeH&GSb*_C2H1e|fl;#%7G|YMvwILgf3-RIZcaK>m7v%e%?0btQHn{a2Bo z7Wwr-$tmxV`|>k7qr0U4aI^=z;Vo5xpvxOf0dY7R7;iZjJM?9zVOzqt*TSmV^F?!B z^F)q1p*U}aO4ACv{jt{4T?Y#LAmVm5ZQR-@<+>TKvVNN<<$n zJ9fW;{fS-JJ(`&I;ryEsH#s~SD%A{J)FmuzzV)P@u1pNI-VBqn4b|p+EOGi7!Yb0B zzHodq?1pJ#JW^8S#xm`@_Q}Da$taB16OhYsepEmtOAluR27Tf%Fs_ejyZrfCK3)ED zIW`o=r_ybHwbQx{U3+70-p?(u6gVR;zW2lI>@Ba3OC?!5Ew;0>J?~g!ju6? zWFoyPjBT{dwWdKIT$p;*FdZT#3tOhJQ! z#dr|WwI_Z0iA$Bebk3IV>ys2+(F{0VEKA||O9L!rcCq90d@XH#!QV)1v}S_drS#F; zN!&u%Tk|G7GGieax*7bzR{=5^Nj_nQu9hT=wK;$Rpp5cCLZW|E9{(;hL`vhbPpmQq z#Ri&NXC*W-ur9SIgP94|B?|f;KHC=VKM$#oVttULC@97FjqfjlfKb)mL#c4)ILbWd zun`M2-Y@kbneW9y7frhou3U#z1*npm41d@OUV&{Z@ISq~7NHNFo1= zq>%gXa0qGJlhyGKUa61h;gfSe67iT)q;_Cb(K3`!(6<7(y{vY^Pp z-0{#@*6_}BC{M>)<1ZRr0=IqU-0Y_J3vzkHd(zvno3}!jFZL zUNTd_Z>kLC5%l8XJ(OWT<&3At+Amdy&-BxxtHS9rHMCl;yphvnTEM8uLK*GL@%y6( zDdteEr)my=%=7cxBbfVy1AHx>niuQF%|(ALLCH?cl$plV6 zVTcmGE|FD0yEl+Eh-F>DM7e{dbAre$=Pgp1C99ZEw0J{4}BurJrrTsq~@<1wWu>aK?z2 zh%l`|9i9>qA`K@786GkIa>}9vj}7}2=y+>^`AU4vg+H}lwXrC0i>n9j0;@~h$O);U z=O5Z1Dtd(13h!93wgWZ%Ox2XIH@Af1ij4B2WD~j>`o=;FMSF>g$3!S#8aE$((YG69)_9X%qkk6 zIaZ}dpV(+U#Y~s3wYPu5 zj=k@D?<*K{;p^qL*LJf1#DT#K)fO5W?YF+WqV!W9bB1_fzV|XmW(bI#LMRoVc2iO(KWcPh-%{{YA=pdH6(Ov6zO*JnwD~=EE((^VL4hx!~ zI{L;v$j7)N>(65tr87a&L9tGb4;pT@yzM}pQBcw-aQWSS)6h&;BNC1evZyN4?z|3N zLG!)o~Q8!k|oIXIYSK5(nET4i4%?`sUwU7*8bw94R|73SN{set)~%RWH2a? z2_VeHen`c43vL^*!u8OD*({$&6^$#TdJGuj*DPjF9vXl)^X(bj$!$l?>#;jC6nb@HZ89PFT`?U=B``^w8b zE<2*m#?x(#vB9%wM9a14xDr`w;twos_x{{{KtQ)Q0p#Iuo()MJsGWgbkIzE{tSV+e z<+FeB^8b?d#G2byhr!QAuh@oo4_a}`o;8(K2XVymR6oWM5D}BPZC5HxzphS@ zUcA!rR~c8dEO7Xo5ZN6Bbddh=$!l{*837fpXrh*g5vGX}b8<|wde?Vjj?gKONO$Ut zF-~sRq+_bvYKSFaNw!b`k>InRbthIkLb2;9^*UpVZ0mY#3&44D+#F^!|D8g7;l+#^ z>0|`sWzThJrBj99P{}r}D)V#@D(rAe_u=!jt6x?AQXS{?OEbS7)@tAUz)O@Vmi;WR z3zIkBiQp(hX2$EAvYH@5RiD{r*dRgZ37LKe7sQ@PxK$ z0_}S>XJ3?SxcAmMadM2Kmm`Y(D?&#tw;zveDu0Vjl_3g%p8ihHIp=xk(ly}NXQr>>tTgC-ooI>k zi1peIH~3frv60!%K-NgvJMzRZv81hJ|1N-mvTLllRC4K){OWsxE?%7GbKDF+Q5@yLhzvaCr7&Z}F~g(Gj&8yZ92>64-G03r7^I zo|D2xe~|MVA`UZ)!J%d{Mh zaeA3gp-mflC&tmmfAyUt->eHJU+Q{i?^;{nav!lRL(~r-qV8h_-I2$f_GvbKF#97U z9un-~_H?HeU9Gnz71s{WqUKzxdO%ye7}rJE;x*Bve$0my?%Zr` zv^*;5yycz8up}I7K>2oH>mPRqU^8)E&}}l7se%O@K)rMPIW9fLm}Q7|XDi%M!+7dK zLbfWt3?jWp1awh^ zY_-npa;6%RmQ)*&C&0bNRk5`(T^QVH<>_HVo7HIb`Rj`NPX*3mA8wZxkX|dH4hAs& zi=3$_{ZQ^4SI?^}rTTT|iUu_$7qj;3ggr~6_Vc=$0X^`wgWtCC!k0eLMc3}3wNNs! z5o|C5QUH-@tktRvo;O}R=-t9^Ds5kHtR8M`NLx!|F}}90koZ+!ZAicGgMe>sAwD}* zc1qc-`n0uOZieQ5NBmO#1Zo1yuO`IPBj}Afpu280vbQcS2*D9Ck;>szK|qg0H$%HQ zV>nlqs9o%dwVwtXq2g&p=?w1ddk>X#UPddOOy&*CB zW&AD3DffmpuGItH@&~Z?Q}J=Zfg2Q#etN zL|P*WoZ^NS2MoqL4?p_Pr+}ygev&YX;3VUYg|5Kk<=IhEzoS;prPP6vuvYV^l)BwD*&Mh{EJ6;v`=|pU+bv{w7t>9^!$+pIz2-)$K92OUy zh4$sZw*>d-r}#x=AD=em_B zW7%ZU0oO59RF166pWN?yZ<`b8#ktJy7?86rW-UTEL6X5``fVYdu`klhFgv7Fpv}AKkw+m09=ML5eZ`eo6_s zF8q#+=2F})&;_62oRRXra=NgoAQ`tiuK*!Il&X5Iw~!eub0}s5phtA%rGe{Dm;4QJ=;;!6`V#ZUJ!OU ze$O*XO{@XpG|YHfjlr_DR_4QyXVjp|3?U1pvuQ-o*E1?aTi((rY*~1+j}2ttH(p{k z4SwSBTMEzMAdwLcx_oiyKRvL{2LiwL;Z>UF+g&F5{625x%PNG2h}HL%-)4Rk8Pqv) zvWj9t`x1ow7KP@^aXc~0YTdx+^Y78^U9zjJ??xLlOxa~&^+Wi5Zh$emlDlr+cXg;$ zP}RbTezK7L{1;yzFuc2A7G1yF>{6%nhOqSZ8Oxe9`bT}|jMR4PM`ZH=8b2+~*g3O$ zq1j;)^b(~3$ZGdl#XZ-haXhU*hT~pm|yq9Zy7D<6j!IN^=YiYiv zE1XlF(M6Z7Jo6Zbr@)PrMdJ=rG^dcwE+gqgQWPXWSFX3t`FpQ@u9Sskq1*u~Xh){e zfht|`yK;%>Wv}n|E@5;J`fMYxrL+y5HPDKcp@Au6d=l~)y!{n()BYj}a%~~p_OafJ zYM2*VAHHplnF)o>ILvmD3BIVWRg=W5Y;5eut$6eI@%)fDA+k$%TV2S$gZ9-Uxt>AA zS7bZ7`Ny&O(-wJz_UYyZ&5*3s>Our7jQl=Aef+!W3<3fgAZg~;2Wr30;jk{TVLML; zoGMTgwx>F?OgXpiOZTI5SlY@=zZ?8cW@fhtP@bf7L}jpr#_Gdo(y3OEvw*WT)s5M} z`3v7Y`7+HVAfQ>I()?8?;f-Q}rXRP~@(?@5?Pm#s>B3gMN2P*wW4!PP`Ez!s{YSOe z6q3vA^gZoYvwxu<#gl=LOzFc~SLmJ|{fNPsg}5MBXYF!z9z%B9z}tJVY zo$uGsU!5DVR_6N8HktU3)hw0|2b-yakDRGPuyf+5KiAgO(6Pya7mEeiP*<*e~ZOe zezFSL*A31~pY2CFV&whx4-YZf$LmRvm5SY>*>+cW?snVU;)eVWV(ty9@uBNxi(ENa z$CM&n!<(qGfa(%ZgJlwH?W|1J^2&Q=MV1h5Ggo}1oCw_vc{@K z(AgdsAlR_zW|#TM?TzeTzMn#2M%fFI7}L2kL<<~-xdIw`XI35O%qky;u{t-ci3Q=# zVfMc&9}Bnn`?elAH7x3&7;OXmB#DmBj02US#m_$IoPD4ZnfTKaBpuIMT7LZY-FQYnRdRX?vM42nBNPI5fkRSaZ zRR2L`)hR9Ky%BLxtX-fwUVw zPNzn51yiH@OnqgEd-)zk`*_DAYto&j;IuNI@h}H^96Ux#q+cYaPw-;p&K22$#i!nD zx_Rh6W;M1ER<_%q&kwhmtmd{>u=Ot%59S>EX_=Piw7V50-;MZ?9ideeOSu99YNxKKQ0PMtml3SH0GyBedk4w4()*k z%k@JyCXkPW+#f2%ZM-%DZPu!p*A+kMC@msEr9Je<;kg{eRN9>>lfMu-QNOtc?yi^l z$&6l+G+`^;If5=N%emzf(^6f~Y4QKZCw&&YvFEn5tBTM5UN(M1VvET4Jwn(21?}ls zyPjrV0FK?2A$QWV1D-|xcOpR#!rKx?^(&x;MfkLVV?EeY#ob2o!2~9faeO!L^f_G- z*sPOZYp+{$?pURlE8$1bLbF*cceg)L@zRTQFtU$$#NS2Y<3B<}4bI;)!UgJeHfKW9 z^*wJ_-FiJpQvZr_urC_7ZL3FN4D~70i#VCtT2GR8>>pqL@8U#87B{;=JnBFu$gWe> zgBIacfrFyCDyPK7#Zq3%XJ_Ct^5P9l&WF+Nd{|W9cwc`Hnb_vkTR%~%!8j(%s&c=p zV71M!_fBly6~}CD-LV|7wbbfIg_1~k5*|4xaR{BPKa=sM7s;Tf8&T%Hcuni>>1raY zBN`%U5L>K(tvSd{nn<=yZ=saTx-Fe^<457LT6{(h-#tRg{}B}Z2S)lok6K#6+@}&> z#PtN-QC(z!!^_2q*1r7!4+WR*QW{`Fs9%SaOd;$3e9cLQT?up$ERB}JYq?WYXb|c> zSfd|5HSJC=vQCTsS*Y7{eGo&hH$AT~%`2wuxy;g)hH_IA3KpW-b5 z&W?@U{&G))kNNZcy19krIay&mqe9cSmu1xiga~rNCHtCxufxCl?*H*C`CA2#Qx`5j zRw@T5rYP9%)C_k7UK50E)U<*5Ss_j!+hWY8;-sL0W{xVBE{>qfXKSAgjSYxZTS{UDKmZbWM`>N z7Yd!K$lI?LJSd(RXk3n|GirD{ZFPjlaXb~jnH9K(BU_s33?X+H{m(6e5ig{s9sTk1 zTa4mM!hb$2*ip$1jM|lPJqbH0C1JFvrsh0vyhvRR2qN94cGZ9=2eKpks@f(gj_7KH zjpgBe{*R_+M)+G#?nIhI(@hX4(7?HrofG)T?glVnv4|#HapB;Q$g3H@wEEt%1cmyA z&A!@Y95>B~RfDzc>D8`djp`ilhyJc=>!P`_iWR$WGJ8f?d&M@HcMp{*w1&Iy$P>?M zb1l{84$^gw(7&=aJvu7+zpk0d;Nt}bqH}}xb@F>eaCm6`bLjssvIrNE@o_Y`6 zZ8AOhjO5^q5;?MX^dn2;)6BizwVYDhF^b9zQugr2Bn9QF#9sf^dQrZ8^BCVyW4R7D zNFlfSXhrQL=^Qdi=Gh$752$CQn-R{&UdB0} zb)7Sg!zoscJ1KKeul^ERBJ-ojL;vtOe&Y5Sc#KzJQ}tH43MLx&u+qv|3~}m7%doku z>tzxHCteQX1H*-*LReN+x#PQ3eGpAV^>ylbvkzsOg~gEaa#55)U0<%gyk!}zDrte* z5C=9p-YS3?6!?D$cc-)`R(+5)N8bp^kT%Z(QgV{-DC1-(mH%;E=zpIPAvS_b9QL9s zQ~qE;hwfvokteb&6Nli2eV|!%vX%T7A91S&9lXwdQu$|6nJ{W zg}A)fukBqN0?h(&%1mNz*M9UWzZrUg>G0vIz(pPsGAe)_$YA8wQa0im5xijO@k4A)uj(Av?BFVrak?LS9MJA zCMeH*GCwizG%v0W>Sg}@zjHHqN3epL_Y_*m1h-j6BBGOkQ$IcUH>R`x0(Bs2E_*-d zg^iY~1v4>ozN7ZoC!q-gOg#r!>2I{2KjK*Jq~yO~9fk6awXw;JL#W&MjF zax8M>sr0MQ{}tdMk5G_JJvjuY3HiDy$YM790_n-a5i%bTc)^?YG@r-ihL2|*DScNp^6?^BK%*9!Zz*qR$X<-M9;MaaMR7ia9fHGHYfX_ z@3siE!rf;BdR6F@x1RS#+uH6=J9fDB&yR3@!jbI##=ZDs{dJ;Y;U39|=fmY*Ga*P~(Rw=S*z$|o~bJ{)CMiJ~X7xGtm1jJEcRr)+uLf8LMyUr|QK zBjVG1X|lU{db|uPLULsI{u6U-alDqYJ1wDPlTSP*2pfxeHI|xSQ5qmx{ITXx^$=TG z%J0d?Bc06t7ux(ATnFok{w7ld9$>F%3T?4u5TeNFMTp;ULMJhRi}jgMlmMt)5m@H2 z`S_;J!n74Bhh8^s{>MQ}t6?uBzMEr0wNUSz{51jDkH{wR#Q?6pKp_8@PaprFu74|4 zf0y)s{R$)|SW#GjtnC<49nXtxlSy>Ht4lre3z8jy9AXN&I@79e;G~Uvy~{{iuCY6f z?o?2smCPo4+Xp<=rX>`95u2I10j%EP-jF%-}uC9xfe*oah2cP z!2gf;=OOUzpz0~a$%DH-g5djSFRr!%q{>P$83QBzxDd2osY{`di;2kH^-nqe=JxBJFy=!do$qHOl`kD>X+r zp2(JF@YkdC?xL>`h#O-hJbQqQeuw6XWclJ5h|7<{R1Y$o(8M49yN$|};F50vF}K~+ z>i4QIATKOupom=U*iR$(AwiGCn%H*Y$*MZm06|Ay;fm{78nq|dAf9T+f|wT@@HY5K zI^;x>l%^T0VP5DLwcJM9H>r&YaSKvV6%RZ zYgeE!Hz)u1Y%fHBcMT-a9~A!U?xn^e zFX4f@+++d#_V8KRHBKGgdY4nHb8xecTCghn{z*0_3wOSy4KhEGqk2%8f0&^!;?wIe zM&%lRjz9V}TL{R=E2plH3coy6i96E#DC8`TbcY!Ap>XaY^3f)cdn(7Rt+($4PO!_p z|HxiwfY1UrrKrQ4HNa_VFIy`SDuasfPdS|;E0@ftZ$#rgDeAm9&d9@*wqVeyCsVgiPObx62h_MtjR( z|NJQL5^2*nXZNX$cLPQb)di7DgXAa;%EHxQS>pbGCLaDS6=?u)r9lu~U)GVsLD&TI z7sJ*`0@MfS#yN4vJ%KMx?Xt{xeW&{mD52X{({yDGqQ1e=fq|(i#6nbro}M>|t|7WS z8ZjAq&rEei+IV>LSTy{%7`nKvr(DuZgeWAev~{aFdH=`Qla@`>bsAc|4`vhGk23u&h#!4d6OSgI(COt>Upuj!xog6QA z=MAu?5l`-UTF^ZEvpHqYY#K48q-QF{Ax#ST6&Hf#hhgT`Va3DU5mNuvG!$_s)#1r( zi+c_402dILK;@RXmlAn7VlC z>Kp#hj{=h-Nk32VS?6xoIB(OO%Q&38q#2M3FN8>#a=AKhYkzGfywO0mVIN29n2nZ0 zhkq}BD@=2m(1SE4+PNX)LDg}ZgTJ2kb#0yGZi*Ylf4iJVX(~m0Sbts^!b&cv!NvgK zFaCl`mfW%5ugo4*aP7Lp_O>ha7Goz7myTMJ+BG{sF+lc(VIGcsxVVVXC_86EaDsd? zKHAADQ1O9VXXz>8>PUy4^l08!)xC|R*`c_Ib=aL8bT`A}6%}8sDa}5Ov$vP8%wokFj;;b?eui~bZ9VnvL`*B0F!H&~{s%7RO z55c&bmv##3#U@VderJDBXVo<8Nk_2x|HWARhamEAk0JTgOJ^{^T}!G38>nI^D}^x4xT3Rjj+LAH_J;M^giLsP6$4dG84gZs<;=8D~&B> z_HHV^@gR#Q@MWTopdaMH^QiJ6*D-#f=rJJWaJzE9nS@0_{MZ2qzeBQp>*cu;;)dFU zQjOHgTy}FdWihs`xIPO&aa6X6c|FIgypB0XI^ll@5`O@sLM0r#6SrarwC~dGQVvMo z_8ECCK>?!2&2W-!g9xW9XM7%ukZ$~>R3RVyKt;BWc%82L#n3xk;w?roQ_o@Kts$CC z_S?(Q#}=aE!yQ}@BO+tPZz`?E5s4x)jsfKJV{Yc<5Ix7d(e4`>TV#4rF&ntG*4;Om zw`9k=85{#yG8t?&I?liLr^&Msqyu-WYa_E;YPJU_p_hvv4mMY523A+O)3~`b9?)=0 zre{LJz4?9@YNJ}fv3_cs!Odiw#A&s+=?LM^gJRqLKYbqJ8*D;dZ=BxaA^f|f5Mrka zYz)vkEWO=tKw!p)XR3p{O?K{z1EFdzzK5zZbz_z75hzGXNMh~2Z>vM!{0)v?V(Q0GK{!KKzCNG5`YY59gaSG-pj4 zozK_(rul3-{T{=tNd-K$P6IA0l;r-lEH@*^6FlCtHzT)=y^n`r!j%s%lE$iiKcY}_ zKuw(Vt73NL8jBbl$8L5u(g&|zrysptPtql7Bk>qE!b{1wNmem+u-<9jZhAS>c&N_R z3QAOmf2K^zzVBy`@81Ae3!S=2F5;o$$b8h8DfH#}a3+D3^8NTZ@P;7k4_$%0-lCTp ziC7~OKF7wil#b9Y5{Z*9ZSM*6WxnE3l)R!-f7{r~+v>`jZd)zKGCWBHxH50rzTWqW zJ8Tb_csQA%V}qW4oM!m=Sg+}i1H-rRM!8U9U%uL0rli2ZrBf>$EqzMVymE1Z5}-`P zZk6qiLQogeSwq3x->#Fw^p2-zpm#s#OO8~5k(|N!{?fL#OgJeuH77Dbh;C5!w6P9u zPm;yW*M{C5hnNwIPSpvzj-mt|6Jdj=K88d%Y_IAMz30x(ASkZ=9X=$ zTWQx}Uh7nW8P+u!^R+B%2d+E&`f-NVRa1C1>GzO={Ko`w%jdHb?f)~uX0PxXE4r@e zc56ml7b7kzn96=aT_0a0@BsccJ#4(|c)A99x8c8dz>O!!jLX`zQ6+sYag7LQv}V8x z;`1+}1}EF(a8`%s>RdG?W4TRUcNKck;q3OME2W5%U~y3xJ9pD?2YbwW?E@*|Lx=6F zZK~TP5%lH2ua8Xzzsc~N+p^9Mex}s_@GwfQf>OzLw&K|k!v|v9hgh4cU{*EmoxG2H ztX&~gL$nU<&JP>w0OYMyb@6+;<&(=otV>t3XU#VQ&g3yBBIttBsO1U;<6Hj%n;B1t zm*jZk_+2p(7nMvOe~t4@lZWbW$H@@d5q~K=L{QN7e~r8&JKrNJkrv92+i#~5x!$s7Rm%N z44ZuTK@;F)#cd{G!9upCF(dv%B#|@9NTPGlu?>v1wvWuVkVsr1AxrdflsJ}pa<`|_ zObGW$gtBBQ59|Im2^2|}2TLGKtW_hLEl1n=TP`}?Y7q@}YOzRuYbry3J%- z&*}FPcS5`3FyVpYu_0bR8~(~D8e$}4@NLlItniDZeiZ4@Z7v{pIi)+d&~-SRu}1P=^DHO%<^QbVKmUm24q@5>y<2`_*zzuuWC`n-w)f4hEhKke znn^x0$}AgWOvNPk>Qh!AyfK4;^>ET7P(^gxa|F(hi{N&^DSh8@)Qawu(MF<+0UfLk zrREA+Om{5eZ|2CZW>FqHQ8#_aR=r!!eN|wY>T_$OW{&pbTQ6K?TOLE_jN?aJ*WZ;#8e&d;1#2@L28%7~MV!=r z6Fs($cz&3-Csu;C^_j}+N0#gFr~YOpu>p)yqUqmLIgozCAl1GS)8WdsWOpzs(G5Ar z-OS&;eUTRPbeU6Yf3_-jQyEs?m-+ut_MTBqZEfE#9h5Fg?8c2>(Qphl@f(C4Af0Auf!iEaL~Gw+s459p`Gk z+@*#vN+_}&WYbXqv1q^UWD6X_G;reqD>Lx+rC=6)5n?Fo`Z;FQUOi;i`NjDk5O2cprIm}9NLW+C zsSQoyXn10{#lH_Nw^HhGw=n$Jxo@(5^6@57M^XSs_c9e17Z7|3rLZX=YtN7AsJ$Vz zzB-t|&l~nswU0vSAWeZx#I@v%_ocL$ZH7sjY`OIfAMK*7shFp;E;<@z!W_5?!abaM zEZYK4)tn=N2?>AWhm-947WB+~ydH)8)S5#9G$s5&y1qtfEN4Pn;s<4h?P_0!)lhAd z(UAh;{ITXJ1!ngo`J{y8w>*KZtPh*L5nWr#B9s3eX_)y6VainY-XZ80xzQDgw2i#4 zipilMLj^Hf11(kgYmNK?P6eUfV`O3$W2CAdUj>8(i^ol?hd__p*j1b!2ImXzRu$b) zH4a2YACbzqlRu7--gKCINt!U~eJg>`?NMH|MU>zw`|`;3N3YGv-~1bKKlJSOglAi;WG zwK(yWRLTZwN_bx?9WZ@TQKij&xye*tPVg;{wj0%HPrFDA*fJgKtS1S6&QRK<9-0l6 zZ#7-JzX0&xEEe5-qKvtNk#{KguSwjJk9fm!<@%z^kSp8z*Z%JNy-Cht>e@!#RDSc? zM)CGCnW-wd#P$YqgjMXLx+kF>B;xws_`C#Ph?vMmAy#9<7{zHRDj-TWlfa{1VJiMv`jASxESHNd+ms{60_?P zvNC^@cy!Lgaln-04t#7grIeencl!t7vl4BRAF4lJdsya1w2re9FHi*AbVZ6S*=Vyl z487f)%Dr}ZzLwG}jQS?YjH*p0LxP~@mxsAKBAe3e-~Ou_lNT$IoDYVTh!b&s3Y{ut z%$R`$5)baquC0>DO@&@%O2Oxaz>LY;i@3r(Vo9bfy5R~I#vwakqw>a4zMO$ICy%Nt%rSaJCp(&6npOwNW5L<3H{Gw@c*a{{CT;6 zE^Qh<*-5s$twq{XE)`A)BJq9-JAn4P`XlVOj5$&G++_~}V;zDCp5;@Otx;Q)vOURM z%lD2R(Bb$Y6{`o?(Dx1R==;-KPZ$XOCN%E)CLFp3S|levS|*K|v9qHe8tujsF~dE# zSefbtH2B?6X;k-O)u;^5OW_aW)p|=cRhP)Vr6~ra*z-7h4>^0ih1{<>b0e%h7zHW}E9h3As%TQuk@0v7#(jChbqwu?&(u9@p z8yuGXyPOfybYs%^DlkMtN*Wz?ffSU%mBN)n-ZwFd0M+@cGx?VeXb~V6UK6#K6RQBqNH{!=H)$H2UwT z@3xOxbr)Q_5>>E^ST59oYpyfu;8cucf?O&Sd$RD2Hp5=Ug zp?GpP`R*Y#uKmLecOgl&+ML^Nju#f%2hkmz{M+RGJ)>+ZzFEPck<{EW&k`bza)Uig zw7Xs9GCrb4Z!q?f*j&CuRZmm4(Lq~3)*aEhc`DG&`u&$Yblsa? z%^gR3@68AY`xpzBC;BKhGtX(|n%e}Wi}v>jZKzN?g}8bsCKk5e8=kw;N@T&n_v;bw z!v;&6M3)Q)g{l0bn47xCtK5*KQ^Ek%!Q@o<)k!oJD z2PL}WW_LjfNHam%SQ1A6DP*H=D!%r$JCZ+rd5*S86`o{TrddHt+Fs$B%={%;>&RLn zp`BBrw^rYl*gv`E9WE*5dR#@uIg7sNapO6VAnHjl3WbMAUxd(M>JNODK?X%5M!EZ%ol zznGAG&AydEblW(VH;b3?W5(5Mk6UR=xu0IWR(2!v*5!}XUl~3g@(afX#1cGcZkj+s z2J1?0T=)LLSHy!E?B7P=vs#iB&r=x`X6uC+Ba7|?>8t;p1pYZ&|KnouIelwg18urD z&ROD+!)$;o^o_ZUE6x;lz7*$2A+P?!9onzo86f=j^daP9#U#(619cccAPl&SPgJ>E zrSUDx=9QO^eg)NuTQEx+i_3kMHAb-xKH2E;SRo;P^ro1yj?n~RsQ;Q1?8rsl;T822 z`t13)OKo;GuWynScBeCijr_dBOjNbBcRe;aIERNu7iIs8j*0RX`kI9HX-~A2t6TT z<(>5aMu=!{#3rkj!X(SRmEhWM!=vfj^pv+*pRCszd_(Et@6&e$>rOa#Rs0~5PKr2X zA@-!>m9d#L@0OWYCoTIgABV1Wx)G)n=zK;wwGw@{u9DwG>hh2&4Fx{t72{7L@xsAU zg-dIgAjFIIg=o{=kjo`q5c2jY-W_g=OBap!R%|wCed=alY5q+UPWl}$@d6$3AL-w>pQj{VB&LHNA3yNvyCi*8!b z@(SHADc9!lA)5rx?-ZqD|0~1(*R=Z|KTLQ<=BMAeHJZcPD4JIwz0-DTP2)*- zlAn}@+b@$~_(M5Fd)~=_;(AvaLG^r@n)%#1sw!X2eKDBIQW;X5Dy)s*ZPuLi)qS^8 zfC&iRafwjgDzx5KdiEl|z^D-XSK;d)f9ZdGtiT`iyNo0%1+Wgk9hUo=GPIqEAU6Ix z!=8b2=tg{oJU;Y>A)iYIf{aM+H2;FUdUZzV0;_UHYiDB*Qw5h?yKE}%iMAVzBF4Nv zM(PYr>kW<3(<+n&4Bs6NS)``t{5JoL@RGq0T(nh`lMef86v@yqlzdCu0%{gtr!TvZ z5x_1!$51_Ixdb&b^Q7soE~6RkMhb6&juQBE`tE4`w~wL`vPP12K{PD%cygLKpaSni z%`kT-;;xtE!WwpA(jjcOn@I9Q$Yq7Qe58}(O=q%A6uYi|GB0bxwfyGqD>P6jC|-Vp zC;C;@rV)Ns!bnE0HjSE=U@7t{Pvs?$S7y(l=Fix+&rEcC?EE=JC41(j`O_D!RYGiK z53ZHndcD#EbCH=TV=b7?)7gZ#GYeoSeEt(A@LxA1;R+G*>XPlg+&n5#*@qZy)Uu2P zSw(y}z{};M_FA@B0^L#$8$RPQ?cndk9WpFv)vtb3Mn4Uep5Ico7V|LhynIspDYwxO zuf~{yEaQrMAU8X1MSn}k+9^EuqvsnbQ>)M26K$Cfdwi>ZvGj#^cC#;`m$0AbrtVU_ z$x5()6w{W%y|@$S^v1sStJEZa7L}yBg>$%(dNI$xwL1Qsv;SNSQ3j&m@owAJIY#af z0YuAKxLVi*R8yeA>1nS~$9eT9n>gM8_j68SWddU!_-V_QD~KzSIK`ak4P(53=BKjlg5T8fG%X2L&?KS1wntu-BW z=%3+?I_AhbsoW=q#3bt^nLj_j+S+?{3I*K_bd;oHA_f=jdYq|u*Yao{sJ;TjM#^A- z@2+R1WqxyDcV8mA&DEyN4rhs zOGQgeU7;$J-A6j_c`xQCN~j;kR~Qg!h2^h|Ag^4vs1-V*|G>dJpQYXvXm8duPc>u6 zdQ5khK<8g{-ap^Jf2^qk-J7S1W(#2)I}JEa;gRY|A4Z-bkV8#X>ZZG@gCEfrj_B8v z{vy9vj_e%psuhw2P}dXNnLj-jJ-ak?Zz!QIxJJF!@$S*}C74bFId80vAOHOwv}J&f zo{A?DDt0}I@3F4btBhI~7^RhjA>?WD#!h^{^z|{w;>*_sA!JmIL}8gMgGT8K|YEZCDaUMPU+LO#CJ7R@dStTZCy%7x|hxf zl4t^sSs9T$1YpDLIA%^J+H*Ur$2`!7wKVBQl36URx7Eu*G1T@E+5_#D8uz_sRFxDG zikdwAt|orkc)ZZxx!e{_Oy zS?AeIwy=S4(J0aMIgI3L$xB?e<_Rg2QAUdUF=mVMpyqH$r(p46IAlFO>g(z21;sMm znzns#Hi9VU&%cpbjEI3>d$HvnV81q$i6tLg`Mh+n;taJ%P*l0L*EA!SM$?_#T=$%L z$AZKi^bd1tQid`VUXOIfb;dVMAB!bDR8vGn^B7}`;z@ycIcRl9 zqonI^D!Et&Nt)j=)OrBpU}WOIabs;7+M*j5q;kGNI52Ix`y^Xbn0&_eUIg@Fx%?gC z^;X$=TDpkc^)1kDo!gHa3;G%n`t`m5{6r|Z5v-20EN++|Lxblwma&agrgIl)CRDn# zwD}6(zn}cd6xu$%Ml5b4!8uC1`n1NhY9QXPp;a)c`E`tA?{@XZPR;VIzkEUu6_Yc`11z30^zHcL^!Aki)xe z#g|GhIpvcdJuzZx#;gyw&=r`4u8N6xSyQRe(%S6sxQ$LAso5V@xeA_Nh@8p{n zZl<|7031-^H|=^Ym>{>G5ApySKvPqSZ}02Xu#T2z9;5C6tUzluTAkK5rfbd}VeF4d zPX7Xgf)Ih-S|-yW6*lfIJBtelkvqnz2;3$-@o9 zIYqf#KD| z#HzRWTGiQ&kv^Br31@R=*P|o1Om6~j9*FP+E$wv2n#7?0#O7SlKrH}$BxAt6pFhlm z7}E$BXi}K-wk)n&D_Rq6+_k7%9&9+RN9(?f1=v$jVEg0=c$@NWt9sQBq94U&@Ezs- zo@~iOarYzMsy`9spNoW53aYyOTmk#?gb6_|#o|~9*YoVIN;mdrIJs#6%Q?gCP_6F$ z5KYGkwm#w{h)-;%+0wCh#~=w*ex_TY@Mr=THuhcjuZ;c!OUvwWu9<5`w z5^+=v_E&=m4SL-NqbRnwzW0vGkg||4MhB-%GH&`f=1wHIlI&XVeu19fWbj`Pn)Q$} zP_0FAauvd;PUm+-L_}xj`N=Gd-k7ea9Q0RE`E@Rt7U?k3E%xmb)6Ui80!$@;y~$CC zYa3~c_5C^VWypeJrVQ{arn16gjlnpvBRky5fU~BXGMzJ%(fVYVO-u)^VkKYKjD1T( zQN={Vt%i$Z#ohtgg^|qk&jYV*v0*l~xmzlwIwd0ipKp1QM5EhsrFz=OeXTvUxO>iR zHUO16LBi%x`lxQHzGZyUvBt<4hpSPE<%7vp3YD+7uSO|u--hhCo2e0ZS4KR^7RfoU z-zMsQ zF_VI5aoyS=wv3^5-=w%}KWf#TVt&;=ba-1yjU5xJ*xQzT?xq-71`{1>tEPdI6{FLlJ0eB|F})ou;V63_$3CtqLZ2L=|uyH0NbxF*v?aWs8 zgBli|@GUP7azalx7u*dW!vX5rGfa#j_c0f4*EVUZ3|{;jWwSYM{aYhd$zA$0BuEz9 z8lww(jyuLc#o;`ra`|&!qr$$iv-!jEu{9-!6NCfGO+jD}k1t(JhLyfpORg$7q{yTi zKUD0%ERUKy@U|@}7{Hu=%HB8fzr0mc*i03SRzY`Qy>EFxWZz$#v7J1ZKOHQg+X~h2mQD37v&%wglT6Z8U)o)c2dOdcw(j z#IkByg?}v&uVZ&eUeqSvgVf%PALHCOB9|kppTkJ6`+qXZ zw0rpNV?(TWxs=_km(DHWI}`HXj^r5g3tBWH1Cq!-wx*+xe=t`}o8utJCL7J9S*LTD zvc|Fy@(J&?c;mI>x^zxSR(2ex=}JlU%xzK_&1=|!|5+b^*^(Vo;MY#jFRsmc4gBs$ zeP_R*riQyhZV^Y5rVW|^R2|2ERNFyD=FfJeCL#^FtP4G}r>?{K*pEvyo(%ML(BjFg z4al7WFWz)xpe~Hb_G`(`$npbCFnZKO?6(G%`-cXOZN0~YFI%KBDJ-scGk62IcT5=&Y*)4ZjZBC6PzBX2T37lOnIh8CLg;YaT$y zYWuogHv34mnBfoejzv^Jo9vwXDrZy6qfJR=mg)K6aW8nU^JW-6VfB2XrbTPomInJw ze($SZ-C(_9M4s!xdiEfZdHn*(bukFKU)%EEi+bgIHL8)a_tcY z{?nG|HAdkPXti>`HHdcF*|PY>TAF?Fy9UDyGQ0{emi9Y7FnuAoWlu8=!2W3ZNL5uf z#q9NC8-|ND?f=?>Ko-r6b4&GVj-&)k>9;>++tEe2_lk-zU(YvLj`iIJVN)aO2CZ5~5q;IKOZF@^#eo zcO_8Gah$Yy_hQ7ipS<6wC@DXCmj;V3c@s+OH{H^m0kmWS&G@&f83r+nmnvj%Ly~-m zFc4&>%5){9SSevCbytOc!s0PXU%9Jg8*n!1`|9 z9o{ma^eF&98w6_9hP_s&R!tO`Gf3arXzys9|&w81|v2N9Zx}Pt*P9|!(4hLZg}>D zNna$RX!8kg$?IZyRLUFw7Oo9g@~qG101Gjgb=LPlrxzG{{UWVvq%f^PDaFc#JuQh9 zEWv7OQp?V{xXWKeaD5qAz#!f7{kBu)YKK^v00YE?ee40^rQVz)F?BmY0n|L*gW*bg zA%=6{g^Sgi7LMO)1Lrnmdn}kf8JNKE1Z^TGM@l(#?2l(8dYcVgpM z_y7hIRDV=I=W@DW)L{dm9ESg-78oA8KvNNrQ-?S~%-#InYi zD9nPIsiG8LJ)U@z<-*3=o*X)O)uLzu&jU0iJ6%^8LYOUtdN%u;clOh13+bHsN}s9x zM=-Oz9p0~RzprUJNo}pbL&=<4@hW=+2ro&dD9MynjMdRc2wclzso%G?K zBC(hmiN-9CG6+)CJo9Ze(%GnS4IttQ7Y!c(9V;~L>X0a>kxJgPpvj(}YvMI!Bj85M zoPuv&{lYb08g`oFVaVCHF_CW~zSsD0u?f4tY3EKYJ4dvh8$$vSR&digZn`Pb0i-5Dh_1@u?y-&2z{Kl>Cf^qnZ zow|3dEeG>>K?u4EYB0fS#V@<-ToFWryOJy%C-v)pG0q?H7IG(a^*@r=mx;BxB zZLgY*T(+47SXXb*@vWu>oKvjyD{Kll>o-cTS5u{2eYVQ?*xl47=664aF9YzScIb1s3p;yty$U{0wXiyNinXNVLzC+x* zfb)5fIKa6y!YNrl;pz1KkFflc>D@J}XYd-$$}xh3hBo1cpHAp!<}$nGD6<{~o~*7I z?vz9_`u*4lW0t2gw2ZsHI8Rb51Rh3$Kyn4U zw?YA6(Uqjk6fhgKB}SIrJ*+=J=I0TKX9v8QoEiNTf?HF)W9C_hNW7NUGN6A41tx5z zZL=E7mMDy2D84j##~EB+)!ll<>*uAGWYY5f+4`W4$tY0sVg`rlL^EpMzC5h4kkFsa zvHkrA>-EQYuEoRrQe(L96Ziq}+R=mqVHY>9K6N*sQGN#8c7M8Z&@$aFNw$3W=ZkY; zMJ0X`*mL={%~0`s=T1zPhE#dd(6gJc(>2E=)4>YGh{ePO!J<;5)3N3T2*&{;U1ZhO zKEMFkT)XX@;=YaOb4Mt{)8|*5Y*VGVk-ufa!qNRdx?4<)WZ#L}(6P!u^PMAlkH@ak z3m_Jr)>&17i$^k{!VbInQTD}kX*td3^Y+@$fADFV+--@J(XUzFwzU6#$favh`H`{l|4x)&S*b!6{T|S3SX9Ce6>zZ>hZk>sbCFL#%ylC!q^3XPFF_j z;HkH0l+4npWmCDSjkY2MRN90Qb*iDfDfAVurZ1IObD=k`GI9p1g? zE#aMk2(0 z7T$JHjX3+^eRY{}(eEO}`t0afGLZ!;Th2M~M|(+zv=V!QiIkd&(&uYtdbz?sB`)m8 zUF&soHi?@BssfMpGLlWJ5#M!{kKXz%CE;)w=-#$jy7I~6iEzay=-Li)6OXNv8rmdj zvFZ=-5Gy)gjo-<1Er)z>viQ?@$?dnFU`V-j$@Fcz^80N4Y>u@i({6o(8u8V*uRFda z8R9H3_vxKcNcD4%NR1^R!(oACCx70n3&QLGWu^2FF!^JWkSUM&RD~p=8CO?$WlcAS zvHCHd##IDk-xzmP6(7B;>mOir}^A(BdB~r;-V)?=O*^DG6!t^+-E35lrR~ zXQ7g0!bUEKy?cs~|D0QNTRlp7ah23Uhi!18mELnJT7bxX1a{ufh`R(YD|9 zQqV5WapoK6Cas@K184cw#qBH1wZ!v}?cZTeH2TgB z-(^)T=V$dTBcBU212xNUKAmAXy`|6v4#XHF~TwnmBQ5xZbE$* zrz$NO0fv~eL4}=6F3y5@OPleeQ|W)XN6;ET$GilNv_eCc#d$_Q=W}FpKweq&f}`o} z9xXJLVmT2j*hh$?`Id#glJjq1smoT&BsDhgS?GCCGcq1B@)Ob;(XVrIki@Obfpeh} z=#E6aBE8VYFqmJlpVJvrh+06~G;)10D+;VIB9bK0?-KSr$&Fc(jPcV|t*B#AF^zX^ zgmPZkivd2f8Mie33a_L}bKcMh>sOftM9*bZ0>%>PiQZ7j1uk{iiUL-Sv@K|M+epTR zvW18a3u>*{U#;DOMB2bwQbq z*Va67U2Z%jZO8eGc&+?TOT*9A&{`@=+leZ!g)OE~&*!hNFK|O^5woWcD7F2NkK4mF z$TtUW`vSICmFkILi>=vQWV5Oj+gahlPy5>WcH@jJK1f(3=JY;NbTD;c3M=3^orDG_qTP)UKZ4S>bgKh1k$D>!;`Ly{*qUe0Zzjpx$h?>S>jgT7>H(M}m?x-XD2~CgJ>v2OZ6w`9 zGOzZ1rq&2b$8Tt+gE>$M^4Z!SUYMrqxNyDknvyCl2!b}JCLk~#0m`PJNH z_^$k@>G@2&;+5=;r42g~eJ_IT#UUq`lU33d;o64oZ-vE1p68t+93D#I$3N;3Ht%mI z(1d%AcDlmTI~(r**15evU38580&w8`c22ltt`fs;s*K(=;slzWm;DdQl=o?_$!WJ1 zmWcZt-oWbIUC&!_Vq~!eYHB^Nr2c%JR7!-toQ+%6crp4U65Jbb$hzYqJ&WB+=dw7N zWp)>2;#CE9ojmXO#hKKPUHy+wj)9(f!**jHx(Y#f(arW6_HqMh=Q?SO8L|Cv136V9 z8XGQ(JahaKcQlWg>w_Aqjrluh^nJBF?e2mg6Tfz}$^d;#u%@M}Ar!XSw}*gUD8^q5 zdfj~pVK2plti|p9nUAywR zueS+!FNf#!Uj-BYsQC_sSpQBptL-%0!Rb2d(?fATzG&(&tw~5>y<;ExAjlGi(VZ z$Mrw z>kE+SPv~_i|In4=_{}k$w`5i#xpmT!tL7aILa8mKW74Ia>(=m(Pp^_+)6p2IPhTFA z7pXZ~VT8$6?rmxb}mCeCGJi>NlN)05K$SW9M7V+73)^!O zGc8=xG)O62Nta9kIIPOc7%bKxqb|DXm7P$&&o|@R0FM;yk}_^z>|WVwQ98Cry=A}G zxysfCbCF`t9CVLH3bI&3u@~%&aUCDWkxJ6A#Qj>9rCxFe>b$XiBIjDa>@@`cVgZCI zrp?Ybxn=`<+E>Y(O@m!qhsYu`I?y@sCbuUSTo|k!&uOx!QvACUjWWHhx2lli$q!1( zH!i^0lh?0&{A>J@ij@eExJLG;n3j^l&1Oa>V_yS#Y^gfL*JiU1S0#dvM6s z8$NBMOkV{+*`{v8!JeAoSSGgx`o_fOVequd%3eYY?arZ^%mMbm^d*yTH9lV2Y4Kot z8ij3)s9QaDL&~e%0u&|0qZ2i}le)k4PO;b6<4D>DN{te?bXql50M+fNtsag(x}EG) zPVZ-9^S#PW`0rft&jgd14@1}v1M~6e-Y93&?^ADvPq00MXXv1)Nk&UQ5^1y~`z)Uv zYsO*?31b{b8SarSE-l`D|+g4t-s`Pig-lc zqcXWmCdLw1;2|kx_dfa^K}Xi8ME1Rai5Go=e1K-C5sEj(z2tALs0B}Z!#RK8d{!3< z9U2^KiZ_vrDhdY<{`5%-*lOeotME{1>A*yCd^-N;o%$`nMv)W|vkfYz!RF3tuocf5 z8)HtMp8c-oV)T7o&K+;g+LiU*b{4JuBIR#Lv%G1lQnV7kbajd?>3(rkQ0UQwVcu^8 z@Pc3B3jj@C`Ir8L(~eS|Mz~|mbe8Xd;liqWk?VKBjl7Gq%(Zaa!EV~Ap&7~_Z|Z7Y zC+#okvEX;SPM@dJc8F^jHWk_Uvkx|)zy;0hE+7jiFLF+IKVyZ#I1E8e3#h5Nj~)9} z$O;?N+=^HwwkIy+!G0>!c+@xDogH6|$okIh`rU$F^SafzWd#-I7xzTN8@8MCmMO_`J3X1@I0%hY@A1j!f2cwaTiK3eEoPsd7Ts;Xn} zy{G^8L^AN%w2ocT&-JM3CFe|@xfN-usG;a-nK>?`nsE^>ra${YS<^6T8S<8Hk>;vW zFTBi;x!&066$)?DF?#VP+#QNpP8FgXA+v5i#PB~;T5a#-Usji47CWOeb3C89(I&m0 zTt*uCtoqQty;(R&(TU2uOxbc}VDnuXXTi?nudb04me;!-_zs(obnbjj;uRdBx?<;9 z%gtp?MdC+X+{9no4~yM+FTW2dj-p-?lOn!*MThvI*};J9>i2h_RyOjwzc86NY-**>R@5<3e{O*Xu4i{|{TDD3%&h0w^XCB)}F9U^lyEdyPO>~DnXPw6PlARnIUK{W1 zX3~z)!IZG~jZr^u+Tx2E9ZV@K(Uq2#$!8nlEqjsSfJeMHt$HLd2BdUqb&!9BVy`8S zYl^9t+3xA-;_i0|!dvg_Fg`51emSi5 zee}74gQNQFF%`TTs-PBUKgIp{#N5E6GKiau;cm|aYvi@vj;gom^zX#go&ESC11>}Q zSQM_JmtKWDOJENP3u~);RX=!W5-GAV23%# zilU@nKy3|N@8KQmOz}2W^7E`DX;7T^TEj-JxHX;_gs=_FE?ey2!Yu}j2j&JZb%aXd zK525m8~heoR!+*9T2{T=Kit%->B*v;Tu5OHv-o`Ud(?}Z{UrFz`bg3fvcBBn{j`bl zNA9tqU${`YOUaGjIo7J_%TvooyQDHs)7UrNz)Q0C<_!QA`9Ggy>li(={0JNWL|Fsh zAsAj9(L69==;FP11NzgpG8Xae0GNHS_5QVycUs#(ExUd`_{RHU)}iS}yjNq-R?Whv zpXF_5o3X)+KExO}C)nZ(*t8XeJ%GsYf1N+}tdRkx3Pgovk#hW9%4^Q-?spuoY-gt2 zX)|&kH1NdbFC1+HlDfO$@!{G>IKlQI;F2Dt=$8dJ5&7pSOer5vEw9GvwV2W8X;7)X?xsj^3om^MF zHLd2FI9%!nBN2j2n#Xp=i?E1D!eR3$C-R5OC`IS5H?yOCB(YUj#k7r!yy#8dvxIPZ z3M`}9_}f3Ha#ilFII_6ES7|W*)?{qenWy9~X0TTAjWt^%jD%m8KrO~6gP0_eMRQTm z6nDpwm09}ibNRNF*)rZ-kmpELQuu(q8S}5at{xgPWYkgG;Jh z4g3bEdu@w0NOYL&%H?*@T(Q$O$&MMlw@v_VGzdz!yx@wOw=Q(_6xwtI8e!9=zIbw# zOkW_q5?sKo4f{>FoNd@XtvRs>kK0li!WfI5QJH=GJwn*Rn)Bx-Qi2T8iIB<&r)yx@ z_=}z7EHlGU4$kRg1k^!n8E+hH z+C;7x4w{tv>D-sGxaZfi2^z$kQwE_gnb8tibH)d@;Z%azMl(!Div5>t0sfrz*-7zxxy-FY)K~@8C8WZA6xd z)^XM9c*JA~-DUE1YD67q6Q1{_#P=xQEl+ur6{g$P>X@`pw*PRolOalAnodIXh8Vi} zeA{F#2@>@#Ek8Jg1xurWK8u_NxSr@lg-d8Z=hcV8r7qI$0 zCbPwQ6E#2&j`F?f!|AO$XeMBEW`+g;YE{0@%Z#We4Q%s3 z!uXQ^QHnmzS-<~kTPWvkCZpZt>hnSqgd}2aHDa{IK9VOi&c37}vk^SH1xz^$8)!_~ z9x8qpklP6e-2`n!5LEj>}y%Wtbhy=QAUD#*qxUT{B#&1K&txFC)cnz_W? zF|fPo-ST}eo&pks0zCF0*5N!c7UXPHJrbc>jiCfKV+L}`qbYZ$4DhYj1@pt}!{|sg z?Edy#h3Odwilf-%rgK$cak%!{gDE>&aW; zYp&MR=aH?AUHh?}kWIsvLf{4Oj@X3b*Fg>UjNJB0`bOipO!=3?7s18V57Q&5n@DH2 z7#glN=34)rz7qCY+FkBWb`k*w;_n*#NHdR2e+gYaUr-6h&vwQmybDn{^!cbxNekP> zYV@POE>)PV(f7bZiW&wXz3(W6#JYkV9AUI-*ED;ap{5*1Rig2~M|^!Z4HtxKrfqkUotuNr_of|p znm{JNSi-`7za-)?`OTN-ND~pxi$b@#y_>K2dR84C5As|4#woktb>o1nWtNpaYF&0P z_Vy>|!yd}s2Mh95Ms6GFeZ;g%`r9>3WSmcGen4b}&e0Xgex6WUShOO#)Y!n{Ll-)V zF^^H|*vMmCdYlYACpVN-4|bR*C4MNygx_bfjh95bZvn|@1kCIQyp($Z7?6F@yjw>+ zU1S{8WuY-Squg@*=d}KN@q0XZv(a#+uvc2Rx#aez2wQ$a_DKjs$Ms~_+dIU5*QPSs zc&$^msNInzJm+La>mZjSV!Vxwq8eEiVe@&pK0Wuc*>R_d)-hLY*=vbt`STGr0sR;V z@2!@X>eo*sO)&2=q^6^-0qcMo-wXz8kvtgFeMMNHH6w?8f@P_Edo06u`gZs3aSiK& zlIp`OzLzmY2kqfH!H5|CM`6LFAK&rcqv@^;x6XZFV|(_%vrxaq>i(8=8|ndriA~Cf zWmBo-_`a|4rnlA6H6@&9GvrD*p=1A!)Mc-Gg(50=Ay4c2l(svIOQBo>Y)*|HZ3o3F z7X?jyD3uz#nShSRUkXk8rkFk`oH|ay=8X0(>8>Q(_GNKk3*zbd;(jjg=aTgS(xA}30~6^>P)qb+}Z<&Ka{;?Sd?qK zKRiQsh;*kQ-O>$;lyrA@igbt4N_Tg6w{+J~5|YvqGxWSXd;g!c*0cB8>(%4n!^O<~ z;X3C&<9GH~#fQ~V*_Q3~6T=v!l=@LRvmvUglX9n-t*w#R3#JKf_YdjgASN@AyuK7R zhff98;zrwEVva;;Vvfs%(cYz=*`i}w#YJw}sBawc-Yp$*paL3Nn&GIJ4^mEJk`J>< zrR}sMvDYAL51T^5)EqG#J*UjQSPTGWG18GQ^${+~{ZvXc3CO*v88ZJ)yR`?7?+OO)@(Zfd|n>D*6RQJ)#Os_#)mx~|yt1io(OTSxyo=-d$D83B*2 zW)JC7p&L{CnK*nEA@}Z6kSb6>rhWNop;w;(88!#)<25hCiFX)iE|O5|aBl9!-_5#9 zW(sJEvLs?Ie`oxf=dIjA4g1i=@=GzfD6P+;LY+-dzYvOmKg7u8z#}}%`3^OZ(^Hs? z=I*5>v7d`!813G|jmX0|j#%ECfVasDoxzS}CuE#`^N%6bll$dGcs3IxYX-3bF_C)G z#Kuv06++gz?^JhwP96EfkcO^oFV85S@HB6<$J){w)rAn&D2?i5l^EMBn;W{D^C^%@ zQDLGBQNo9d;l2$?OG1T{_vO(_4!$Wt&PrBN4E-@@`IN|JqlI&Pd#K@}bI95P#2At&fQZa&Ys$M>q@9uDv|v) z@fd=ri>2VP`lD6jMu}fMi`4LUUu=yTb&h%+p8H2d%3r#|{-S&wODseVWcgxWfn9~ zqtBso!v{c^2WIO2M$#eDeNpR2*=sB=B1(PHza+9@er%k(k?7~bZL4ay7eH%f+Lae# zSNq}lKs;X9sOV+~Ml}3s#{0D~!0a2G2jkV52n%Mq;wW?^9;aO7-cQ3;J8$GMa7WRf zmfpw&bkBL;J6AV~yiY@2l;iT~wboKf0weKFr+=3Tv?Tg_;{G@FXSZ~0AV-JT#mB3t zr(q}Xa7R-@(dSmWG51T9MpPsdeH6Q%kBT-9xW#n!b+ZrZP|^9F8$UW!VtbuK+iub8 zXzn{0!(*WJB+Oy4*ruADr%s)3a(}lOPZVWYe#-XkC1`!6& zVkCBh6R9&oa2>J7#1y;VC<|-+WBV&OF#n<1Ua#u0HWHh!r@p})yugS~bg|Um;q*T- z&mTd}|2||Jz{uG!zSNU||mGm=zEj^V7_~rVi59=OuckY1vOdlBT$O-S> z*Xjg$3>jNKAw25@G}#IoB5UCQN#TS!5)T)<00Q>JdK&t#CyMcHvMK^#zAlpiIb181 z!-C}iFK*k+5(fU1zjNY^B*?JT#9lY@&nZCI18hO~xJch-dn!MG^ z?0|V%w9Z>j>~7%U;Ey2D-OOJxk zI5vQYCywPfz*49!fwU=UMr0(-&J!E?(MzAhcHfAu`fD`)Mo6!~_7r#DCKtypdxOly z>v{#LtlhZ_DJC;yv3;2&RgZzFBQW?G#1YERO}Y}pxLp4l1ICTe|?xf44U@sDc4 ztoKA53-2r(jg=Sif6IT1Ki0aV=X0;j5qQdxduNdaSKCub`qh*vH!erP%QZX!hSXq9 zEYNWA?kxD21sma0DB?&TkKLl+J6P9SFT>NzY~o`QnOjbg199MPG}59IkJr!zM|Gjz zV)H;6hnysNdr^{38ls=`59GJ#zxOJh70Vnq4sE%=+Pq(fF3#Zb)I$9Q1d1Roej=k` z=-aVQ{bYw2exODoPQmxfrf@O41LOSs7^@*81DNVhy-J?4w#Sd^thX=D4ECq34Wsb% zIe4yM#$gVljqY9sRg%JolKHbRm8OX}r9`%P{R|_6iedUKQxmZQ)N;wHkWYQzF*tRs zY`|cDwX-wIyAyV`!{ME4`<+)I>IdhzkSPSzT!|BmS>Hk>n`J>O zl-ce&g!`+<86vqTT{8)@Q;W#PC=&p zM?VeP%vV-OnGH>*4Q-@XO~ACQ{7IGDUPbA?XdCv85a@R*YLcz~RAlPsbkFgB^x-c| z3yR5T)+jT1tMWAh4D&jTj95jxtIhNc2pYilxxY6n;t{#us-4ittj`O_JIchfJQoPq zyEHO$K4o<5+eOPd$7*fh6>TmaR=4z zodNDlcpiO&^8Kyak2Rrm#$VwrY=^X<{q^YhztI!^WFQ}&ZCDB3A{c&s1d3!#KEjUV zpmdO*dSwA538rdryVdo4V~}(TdrI6ZUze?)ST%qov`N!UYPT2=(waMwvT9z678cedWaew}iRqKHZ3W;J6!WV|0_PbQf6PJa z<$En+vLn9OFYx`s@_L%AgRG=HzCV%E*w776go@Yxrc(8P80x?LTNn(O{5H;}c18Bx%w#>9mK-dGz?r9g2q{ zc-5Y>mE5|`hWu-UTrqB6qbme8J6uF*F3OYR6}SDUO)3)UJ+=Nm_it_1k_#0jX>j?z z)V|a-vHq}17IW3j*Fk)jZc|!(6&+H|-OvP^jSSd(tVSi@ueL+agw77-wxtl}Oj6#$ zE2S|c6MJH6Qs;{>&t#dO$lMV%waen0#jEfLuCp6bA@`Z&>(dMi1cGBz4i1 z9P+?!l;%tPT1>d2~i| zQrcc(Rx4$M{*{r^4GO96W2gb3|Fi+K9ZoY7Vd=CYH{Bm zi(n$Zp%Fbc-$Z}*G<+nOM-$1m=CY+E#Mtkx9_wSt2;T!Ij`@K3t+e(|N@Ie;+uwqL zoyZ^D#as|hePF5`ZZWIN&{4SLNtY34ntl%J2Nn8tKM3JdwTXD)k9Eb#knvz}@mW6( zeT}T{$z;{MHdHvMH6Nl@PqcPfSV+K6m#TZkqrfF4z6X_hmX&*EnK*=i`bGPL;-?fT z6Y}@MIdsdKv|Pi1B*pG2N_hC_ZP7-~#mZkG4qVa;mf}QIsSM? zF4RA(b&t?@;*~$d#cS+U?9-g8$UPr`=5C1($=bzHW(Ufvqb4>%C?@oX_$(7}30(9u zPttM$ulX;sV|c<4M7j**L zlo2I=J)`NwguW(m^Qt*R=OaEI?Ehr29 zS3RA}8X6Gstkc1J`gwrfvX=;;71dI266)lA8bxp0n!=K;qhz$T&_Xu;b*RmhLGTOlRG9Vt14mauLG>^D?*=yN+47~UR`Sm+fLzkhlU|_3j@D+bosln zR{M3wgTwZqEt7=u0J7(s9lQXJ5jz7nx~-?0oH4f1+Zv~)a@5_WF3|$~Cr5+5y#r>Z zIrhjpn+(|~E>Ei<`0I4;MW7zJp{)c#bL@hs(M{kQD;$E63}C$VI5Tc_UAK3=&kG+7 ztSGb8u_*8}W;os6EJgvY0&IOz4)aaP;1iPi)v@V*oP| z@qvHI@LA~|)Cx22Jrn@0@1sJ54Nix@=0_D}xu$4;*z@QGnG&Rs-;zC`7M_kcvwQu_ zmPu;<5tY8St${6X(-FoRJpHm&>TGy~#)?-I3G}>PTj?9ODOd1^f z2(-k?$qv`n<*@0%Bt8H^&lzznDo|(V{}71qZi*MNSzYHBi(^c@HbbfA=FB6^|1OLE z&o~L^|C_EpwtqkJ0;Y~1nE7K+>h_&?CR8F^0oK8IqotEDn=cQH-AxsJNeD9t*~f9z zn5Yk_L)_3ct3Sl15Kkd_*}f4m;4e2o=(TTUh-$lnj^D_MtKX0l+!)(4NW{GHeFTh# z`)oPeg(VlsRx4I!51y0ak}Me=#|;s&nc~Z!{A+re2ga=GtJkhq)oer08_i`2*lE5m zww^G!ij5c%*ep!PQJjxa&Fc1roy+QfaO!1pmTE=&Q_Fp@!y1}2xbd(xSI^)!mFKL( z+xdHY8bJ8}Mys2<`tINaXr+m!PYwbFCl8LRJNcl4)80Jlizs_{z+mSiM{h;G1ta1I zSW5)|i8Poo>_f0<9l*36x#OetW4NMUbK`>z{oD>iyLvsbr2fRB43T~jK7d@9A5KV5#!HiY5>d_^XCEM*-J`m$z+MsNc1j?_}|wDbKEm^^1^(`Y~;5q z6Nv}sMs?HxZ14GNf5IR*j;{sAyR&0=Yz70u4Xe^A&1T}w&Vv0VV_WnBdyZ;|`JMn@ zuaBjP(dOjSj%SW-3uGjDvu(&F3ul}Go9$5u@Wqgd(Rq2yPw|jgEpo}aCY$r!uewqY>Q9pEeO%# zRp1al17Z%20c7Y%uiOVyyunCk_vDDz%qdyWHlfMW@uWS7V6!{4-pCIy0hJic^CQ?& zn}lx02w^;?-B+8bz#SRNiNyMg7)$G(yu*~E>KZnT2J)>r*|A*k?da*Ap_36VWoSN6 z|3SziJP%hrwh4b7eRh<4-&)JI|ACK3Vz=>w1&UWtr1L}vZBQT?`x6>BJm_Vn(-#DR z6O}d-Zo}E$%DapS*E793wQVny$s`eZtCz+i{qO9XC>#P~!2J{DM%RKobz#Cd6GvJ8 z=YQ*#k1@dnJ?*zRj1K{fr>$!uow2=qcR(B(e0~g&{C*agV zFQCoeKgF1U1n$g(@zgvns}DiK zOe;bd2O~5q)cS9OiOJY-2!{|Z&hN_!5^(0vfn4kxwrdvY<9B|7oqIPT8cbn>=av{l zNf}VDy5JH@6A{2=<7D5%k-aF~&@5=Tof<)HF%RQF-uSWnqm!Xnz<79!C;@|uj^crJ zv)FRJJMveiehs}fH=r4u)Y;icbY$veImKwi0KY*jJBs@9{g%Zk&p;j%TBR}^!+3S)%+yJy|s_xp(a>Fh6_zp zQiqGUS%fB|&yB^#wJ)~2?fDEgcbn71ltmC6@yl|+SZAnDzRBh$<`P!D(BfDFZ3w1G zilgx^H|^D88oG7Fy{jppzc!sM(#O+eH=8m2TfapaF$*>x!)7!|dQIlnLGg=m{iksi zs${<3rF?Ioz1PTQKY7tu>(CEVzgFoc{n2Jf0RyWDn7r+`qrXtVbI`Sn4xBUyvU?J8 z!@G~gWPh^9pL`JTLw=*-Txk5V)BYU7%+Q2a#N^1Yt-LJgzxNC;Mw1Fb6y12lpF@J7NXxNUq1Oi+m;nU^@ zNgM=8E!5*1b8+b>L2ASl!o}ADqH`5^NM6zbR%c&fRk)W84 zZV3PhTzd}&U^mM~GsPu3$GSDS!0)#8)xRlzq7neL^xOQ3Y_@t)HHUz@-JQXNVDd#u zze^a04*AdSxW78TbtnO#0|-|gil5%#VLAX~rOi9(op<~3 z>;}o2dGOCt%V;Ge;AAH7+AC~M3hAFX$tE;du29&&3O!l+gGm|5IbPpS?}#hoh38J0%tdmFW0YL2p5{ ze^jf7cl$rnbX;3PNhLs--4efTHT0o7iiq6)E4_c5>tF&vGf#xWIOz2qW&k{a{E8b- zGhCa`?$;LtyLsCL(;*0OWZQkj<3vkg-I*bt%MKXrHn5RnpG#_?-Nal|?yzCwH zi^|LC9@vEgyL4bSe<5iD8<6(<#|$& z4`P=J^iQCk?j$HRUfL)I3|+iMrdNR=q?d8W!z+G>5p0S5*LZ#a12x;&$#WjiS&rEW zUs%G;E*Uu0vf9!hMHr{i%JOgF-I+GsnKm?Yw_!}bA;Lck%1g57;LmJt9sujz?r4GP zKo>4?FPJ2)2qb&h+`GPM#uD6t=`#swY!kt}nGQ3ou_DiaH;+z}YWAzEe6uLO;YoD0 zI6JH6?XW_XdBvKINBqGePYO3Rx65EpM)a{mbYQv8W@{n3faTl>x>X$0Zk#UFRUqocS^i>LRsOo?{wYEmx9tR2@b_@PG zXu13Fi@z{Vr?B5itM$J{<3Gb8Pl_R#1#S^-O42w>lw<+3rcL#_JD{s#Hc>}p7*Ys7 z+rzbeCT0)_Az4I-!s)o4eQC_0ebofNy77e+#?6kuc*Tog(9&Z{B<O zWOO+oV$3(|*6ynmtR6dD7YoYBphe`50OM18M>huqXFoh;J109jULkR_I5rFU@E|d0 zwG*MwjZcPFEP7Od;o=I=%{pW zEhZKi{PjZwcdF1~&Ll*$h@q~$F>`&9u(+m<^X!pSR<6 znzc56kTJym9>{Esr!cz8$*4m^1$h3>R-s1G4^IwC&vtCf!;YwD9K@aYj?R5m!kiUD zrO@G1>uKHy-5Vn7zlYEN>u3LOm7FXHBw5XKqEa~YV3~yV{&JxtqVV&gJ5%R+BL+g= z?6D|j4FhInYa3R9FCth|oqnpA%(j3Pb>o>FATwHS)9ym7WLQ}v#lQwAE}UUtx?HyD zeE69GfBTIYE5X^6j->IeB(3jexJ<@UaAIy`hSWx&2eAGE>z!9?n{cInBOWr3CI~e& zk}&&1?JjqgMQ)6zd_}rs?(gbs|4a5#(~=1_GEFTU(;*Jdvy@VJk7f`!%5_e- z-tw92x<)T+iU9@xRpIgLe}##nE{`#N9wPgDR^FXC5Pv=F!a<<#$oR5QwhY*Irkmfa zW+3<-F<>ftGuLrKehh8MtxY3`NAp9H^tL;GRY91*TN$qHvIkW8>zN(54+1a|#%K2K z)#1%rqVmH-&90I%c%bb4_U?46&uMH`x;FRyMvn|OPdb{nL8?!9@YS$a4sAb;gqbBETXl*3)3GjlmSbZQtef!xSMk%jVadO?IEDrQHeZ z?X>Dn+6jZqnz~EAMp_blvw72E5F}%v2zyU0I-wW4oxx-oA6Ju8V-Q;$t28!lQluLiK^B6JQ zuz{S|mRr_028zk;ON7fc(CNb7p-`bi%oPcR;;f#Lkv@AP2TLtIa765>Bv)h}64`*$ z-_NwN+ujDx^mByD8Iy8B*gM2sUzDEhE5~+=&Gw~3KUpQIpqmzfv2x<4)v&VP%)vhs zH4p`(I#%wTH*UmvPc&L(%+@vJG)y+aDI&qc-mKO}P%wK?I~lC#R3|n?Py^|t6=9DE zMLO&X#Y~c{$LcF?DGL~hDeu3J!N4HIEJYqNb7sG_NJFNSe0};7QU_805@Mh<+Of>x zcTI)x@cq0-TF$R8cg0_9QC)t-nMVr7`Xq8wo;IcJ*7~=yK~F+@iL!AoLqkeG>6Y1-Z>|X>mYpz(1ZbXQ6 zvE`HXsuluw`OB$@z+5BbhA`r;F;=JM`dc7P?LU3bf9FE~;gd@liaUf<&g+RxfXG%1 z=e=O^qyUX1tf)|%1yz&V7uWrAih?CUpxx8vWX({c*%tr-za9){F4QTeJtF^^Lhplb z;Vs!bP!>pI!pe#%Y8Qgy2A_5c#c9?I^u9 zSs((#ak%B1i+hnEF1KWwNXji#sxL-SJ%l_{E0Qic-GwHiDXgHS@fRH9R;@$9$8iPS6*t}5}3*1%5hOfpDc7FV@&djj>t`Q~jRlEb_2 z)tNw1E}E8q_)Nbdr%#jSUwxUZ^F3t^cX?PgRl>((aTS7TlXtMVCM0HA>WV$7Z;}VU ztoG{(j+KD`@Z)E@Ea0cO9}w9-X&{V?GVpRsV?uB z;t^aY-v|W9!&4=^Ntzh(CdYnMh`b{W0g(AL&@tw!juOU;=XEfP-M+Q#0roQ#FEI?l zwOWzD4tUB@8z<_fAnMf{ggxyf#KS-*1TmwjBG?P(Eo2q_AZd&tLV@qIlM4h5^y>?Y zHOJ{#`RZA29>DU^q;ilAxLp3h(SgN(S2Y#Q7@y5zYqDbP*A3CrlZD}ciGw`Co;HB? ziw8mg&xf6GSihBX1Z2vSh9UsZzCkr#hvUHM-aXn>xsLO47_2rTR*>(IRGVreOjvY7 zGPZTtr}_TY z*V9MuOx!Mf3Ii!w@IbG_*(I{DsuzBRKmK?onFD5tH`d~I>HX%~6`%_jtq43mqz49a zSv-#4h~(yz;;sEx9;!QC2$s8yx!PP&6dkK)rWk>ZPr3}iA|%S}Z#9P4%EF&bas9My z0|;{=^*IvgwQPhP^!^)&S)|mKJa?d$e>t~!yO=YYn>I z!%PGrgr#!I&it{$_CEu){}ZtM_qS|>FdnySJT~OrO`xYOScuoILq0nHmHR^the^Y5 z$1zr1PhPsjW>{**j$Z1Y?ilXbVh?=M{+ObsHnt^EQeW167A>bwzWWF4H9=gZ%Rf+} zE}TSXR8jU7JEI&i!_#LArONVW(<$*@*<+P60$$#;;1c%wFbOLw?YAJ|+~gQPN-JcQ zN3mc1UiQxe#uvP{$Q^ci%n5Cc_6-o+Iu(RMOdca+dBUUI%zM-MgAe1=jNpp-tg_x= zj|*0ZILJT)A>{cJ4@-6%9cWfIE(^0eM#R8R!>U%n@v&-raNnd4_`lMPm!Y1vpT%<` zR=$AAmS*Bh!@|FY9(7oK(Feutxxb?a^os{>bgJaz$yy&*sF%%KPrAB~U5+uXU_bId z5vamo(;CI>oeCc>;j&i_r+B67e9 zwx*9`uXTg(B|?1PfsxX%$iV~iSYzPRbU6><_?}P7s40y1Jdr+QqmMu@YeX{h0#!7crsE3w<%9&j;tM{fpE9`iVqX&HV~o3 zR~6|p3~nk?_AC0*gw)3!!^!73uy8DJSQskOHhjWzQ zrs&R1`IN?u@IDU8)2> z-Rw0Ok?Va{jWS{$Lux_wloC(3Z_H+SyCmxnh{-YZN$@CLhLHaUm{uyyRU@2-QfGfe zo!<_`TQTs7@{35zc@(+{p_yYA>-O@XrB{`k6B{$ZFS0uj=_tNi_Cc@UmgDFVsCLAx zqSrNXCs(SEna8x=HgY=pU6=p3d}79TEx$^&UNs5Dx&&OKG_hM47y z!AvQ;d^wvWqvb(byR%%&6VB%a8~ToUn=PY-*03cyo3QJ_f;{lD;t*i9e&bdZm|h0$ z-mFOfxz}+*6=thW#B94T5tfKYd&$K}{~;za;p1Ba3x4o8WbL+s^NXtPlFb4E`tzEr zD6P_<%aoNHX{Lsta|%F$?to&%rol>q2boLAFR7V-u{}SW>e5qJV)=Pe_Q9DJG>OUP zzCz#@=1A0{Ap1k#yYe!>?%bKHmWLwa+w`dVk*y<h`12VI<88VC7wr&wwh^kC6nH_a#%5qj^U-n#)BB zBWAnTJWcp-LYXFM);aCQNU5B^QAh0}glJ`omBIFZH}jWM7cQ{4OLmi3yHn4feOz&% zEq^XvbIjjK%4A~p?1w5H|66N@FEO`UdCeY&{RI}oHc4+Qe^~-_ll%`)W)6tjJz;DU zG~CIV?%?u^sC`!P4R_`vT<>N0bLKob=GG5z9H9Zs1*Cb~Ek6T}?eyQz5Q7V5?lNiZ zHI`K4kS{$ZWtj{}b1yzEhklNg*oV% zzfa}2vNa>z{q{j2WlZJ8E|M)8A-6dyv=pyv_pt$?E@Xxw@l~Bpbdp zcr*cv$tl3hv*J5`$Agw3>ZOkXM%x$lud^!e1w!4v4{<}2kK1k$tw(13Z0Fo5SWiT% z^J-C3j_M2y6Tg-!N8%i6=t5Xs!82OEV7auE;O8V0$n|4y>V0p9IFT7!J~LYKa*fI3 z*jyU7%?&@FO*$4>N-eOF#qCo`*J~l+VP9EeGcHJ5SaNO2E{GGoitQ|Caj(QJnoObm z=llODGmC`4gjK!LBu~6;p|(fzQ&2Hau%M0;p+$v3!{Y&92*nQstwYaVjhDZPYw;fI zKuBCXWANj-z16*NVe4P;1h$XkqNw;ihcgTD}m1PS(mSq#Wx37>%q}|3ehg>QTT3QP7BU0 zBW`qDE0bR9?~`}YRmGj>^FSys5eWq?j<-y3vqD}SIcL==(z!agQ)tBX>uTaq~WP=%F-(#>$!nlHqQ;W6vmkmX=1We_6%%eZs2$i=sWSJW(sFL6p6Dhmf3YBg^4E9~P zwQ#vYMT3}u9uQ9mkhCC(uT>6rsvFFf3}TV_Bb02kXf_&z&`RD{Ot&tX#R?(T)^2)> zcnI#r4qKi|iVI|fuAG;rl`PtqBf-Cm-7?zp5tz44+oTxVYj8z`D`_Mj9xXe%8f=-< zo<>_xwi@st$~P@{qpHH46>j-uBA%?>JFlv9uTmCIgj#%xe&tx*RtY}*HTQ?E%T~{- z)UE}FlgAKerRe&@%)k>uq`0s<{9XC-@^8;3mpqh&IhC)l_M5%1otf{V&9<7Gr>R2X zN>A9Ijn>budK_4CJuTl1Oc*^#(&EGG0-&<53Oy zhn+!6KQdwWo(n+OEh`^G(3y`)@2@&Etr34LArI#4p-@w;;iI+DBhjh9@u*e!AZpG}oPh}ooR<#3u#gx;LN*HqYV8-5**{@p+H)PYBj)SZD##nf7&~cqB zIfw;1$YD0$yAc{v39+a*bCDW!xG)le!|m}wYMC(92CbW?E@>!0zP^29_ygx*dfj~1aH*Btxc@jG!0ys8r< ztIbJtqm5nTV6C_qFrHV~rsmy}%d|Twdp;kKi>tvCK5@itY{{2qzQNjDd+IVPBEd$d0M#an#F_7XYoBj$7c zDD!J4+GkGp4fgw~K1QANPvzi5O1u!XpjVtv&W>%sLyie4w_Wa3P=0Ii^NmK0{T&Yo z{Z{bHNjrx$k9xgGMujx!jo(Zsq-3x7$4ky)Zk+$+Jp6@i{^Q6iPN4(a`beIr*RAnQ zq;ZKXcJF}PkyRXi=)ebz_gTGGRcMyJeZTRuntYm$8ugE#;(3V*<-ogz?9dybdqs-vF?rIF3R7+Q3|dD!c$T zRh+;w@CoKn-I}|U!K0l@fOEz~?Z+M>kAu`sp`lWy+x9!O85anND^$#LYz=N{*JJTE z+Y_(1>+zM%9!c4OpCftjM7{eEU#B|p=belqW&1uaf)B55bSrg9i)nHW`ccwt?-YX) z3UQd4-Woi+K{y!m?CcAkEs00;s(tV_#QfY)+=X<3&(OYLbenX7H@wJ>|Nj@U_~T7A zQn9@}e&+)5T++a*Er%8*9-LQn9ihgqx0s6Xaul<6N8$Dl83!^_!rN^nXQWGM7Y&Y?<`QZh6bpNs0w((W)xsorN{sPv3VGM6 zwT@opyrpCRGqvrN%$pU68kiyJJiJ8Bj)PfGXEIZHLw0(IA$`kv zKdHSZJnCPV|ML5&l#m)=cagbju*C$8ClQyoDtxlJ-u!#YcI(R+ug*`> zagVL|KoxC5lp-UqE9amKpbeePpc?U5lIUP-S3D#*Bt zrYAi#H|gIuK+;Nr%tvi>0*33OMb4{qjbCbo)2L_p-=cVLltD7OCK3-_V?7ofmYNLA zn9`z_*kFl+sdm?wN}Mf?s$@QoC{fPJSQV;szj{TvWb>i4fy27R-n#~bPWya^e?42b zarNY7sH?K#3_)!b=eHt=2b;L(DEvRhRR7RW6o3F?s;QmprQ$=V+MPS5zb9;I?|OsJ z+nJYAhYzsxU04sW--szX^vfy?FJTsamdh-RhRXa5FOh?Tc2c&9Iv4m?a7U7ytAvB* z(vEq}x0F~0QP%Q^S!r}Ck6+(bXg0-vWIp2jGV@uG35|0hqdY&tjYr4SB}7a$KC&ye zN&fmvhx7E{iAiEsA7BClQjg*vaU1wBq*d(!6i!% znI|dg5K;=32@@@E%Mo`uaEFR5x4DQ~-458Xj4%8Xvc?~`xpE=*?btAIP z*YJk(i5!iv{sjfuRFsx?>FwMN{QHV&1=L<>?+*5v92T@Ij^tdq;DjgoIe+NBZEvS6 ziz0TV4pEzlu^sTS+N>L64qltBw7wso@{$DiQ^X39TIUT}x2uFqI zNN4tNH7o66Qt?xj#(5rqgG=eo979+__Fs3d2?I)@NzRFDZsRXROx65OMD~S)Gi4xR zpr6MSEG*|Xr3k3=P_-?0a#1iI{q{b&V}En8hiF!UdBA6jEzz6AXwrVEQMvAv_mP$~ z)qZVbkFa~kT=9xr+QryneyeUu!aHm-FRe28-8i3_3T7=X2)kC3oR@hQq#xRQ?-MI_ zIhCfJ7(J}@lXzw9JtRrl9;ul>G9B%0?puw^wl- zdbn-9#D$9HV!L?uDjJXqdGobit&ZnDN({qFR!d?_Anad9;sUg6_!}LcZad7;)qd(h zn`qKlbeA09f3!Ad`5@_QJah>)<7X2AT6sk|67K8XP^G)c{a`*eamY&4a1bqig_u$X z6|*4vJh&``zGj)#YL;oC9`lxt&F=lFSSur}*BH(rJ|IG4fuV+1K+da#9(%o7jf0(8 zV7Q(sZ?WEfJ=Q^zjcX(;N!y^2zENE1Fr*Tww=jI<*Fqv4VRB>s>j45G7%f{3k)HNc zJ6&i@U&3xEn(k$;tt&~& zVv_kOXIgs%){viqEXCI!Ob&$$?-zJ0TNe1i;UTA0+o}9bsv9VOF=79B?7l)a%~+R5 z%Q?ynpzn5v`hU9dNW6MHVU0Ba9jKMNLq$(&u_-X-hq2BRmZS@c8basA>71%ePM*+H z4rj}3x)3r)&pe*h#W3Z&9I^2PY2A;rhEw&weplHckBWM(FF~8|GAgcSj#VYOE zj^_WS^%sDLvj(Z_AgZ<+b6M zrehs(P*)7)uVmU)`FKCqw>Q^95~ued=l^t7@S;U=Pj$5Bf>3N*v{NG1FRZiEQF*la z!WNe0AK>19Mw(Xv0hLe-X5TreT1w2VulluHqMvFxDC-C{yzKC{q)mC~G`EujStRe# z!DpBzG3m@)uSNTkb+I6oEk6}(_0p$}>8|!m(dVK`tn$eE*_21?q0{dl@t)0pOyqwb zNU3K0b8zM}Un=bd?UkvATi~;0iN&I#$b`e-(=!QHpT)M5^3aOeVv+?KTpw3;;b)os z5Aeha);)0l$VGn%r*%hR7w7uS@9LFRDFAMUQT)J!nkqgpEE|LNC$^gCd~I?qSH>j- zcC70s2CoxZ{6xp`7-rQ9m;5Pp+J>&xhmVvEJjUNMfANWN()TjgKa<#Ll;sM#*Vws55u z$5(?CGiuuZogn?cusE+M1^N5zTc3r4`FF8TPN@d4OGvg#r1_y16g4suN zf*<1GBv#b-`v<+h9_d3s-nYVXp$=ML*>5W*Pw*PoYj(Hutq`p`76&~5GsL(lB0EFQ zzC6GlAUSII+dS5uKEm>151FN}tZwc;!tYtEEQ~$1skqjC$(B$ppHuOcT3B?XmJ&dH z8&vF*nSe=4fIylL8mT^Er=<5Jk=^B#`q=QLk!gNLi&U1(9GULwn3`3Y!(f~ft4*G_ zZ|zAy2(K5hRyuk3Eq>WDRJ*{O$SPHJuMR26!)V1fy_ny*`uM5i6WE?=$m4`OJZRb^ zyYbWI(gUo$eQd^&+fyi$duWHmpiw!tb=KwR2z_YEgHACIXyisHa1)Mg{wZUDK^EEq zE|c)asnK|*Kr`9vPGF9}pAK@?B*Qf?AJw1sw!L#M43@^L$j)|-tuv1CDOrSw>qfhL zw)5V-mgPK;f2$`5qH2=R*P;7m>}ntEZ+&-wXqm<`RTjE#gAZkX&HMwDl8WbA;>tW#VDbcKOBWON{2#< zwqu>H#5TOzpY6si*^Heh5%SqKWATUreWheuzbLTBinS)HAv`8%{<%%ooAQReM%IVa z{1;hfWHTXAAgjIKP(5JXHh!lg!H`m_#lspw$Sr3LGAjIGGe9!b1yx}XLNk01zuVgz9H#w&94Sk zoGV}XCy7RobfRUblFZ19lw(>zvzh0lHO2{Sre)YLKdctC{y)mTJFMw-Sy!k0 zKF?ZrpZ_2a@bLR)e&4+F&O0-+u16N)oYCXcjy3~2zxVak_82{KT76!I5pZ2-+;r@C z=0QerY{rwMe?qR+%v9Mx{Ih5VOfCcWT+WVco7{W@1gk$d67f%0?Em|v&lZzG1T1#1 zrCg&141cQpd+}>a+cPyl;Ayx(B<&f`ho=#gs_Cr8DC+bpA$mbp7+6M0rYjxXY}3v9 zuBGX76zA~`)cD*yD){>Ci_O*xQ?4Wkhll(-=9D`OZ49wlqI3=lK@}c`)s{e$V>7MC zglhJ!^y!cS7GT-*vn{ir*M-xc9W%)u&q0Ji4Tz1hvR;oDN@hM7bB><1wfC0kUm5$mp8luz zM?&*1H>4$lVVjUz_V(S&|xxq4X?-pzfQ#Vft)IF~iKwKwui@u9%)os&e7Ipe+ zcxo{-Tb=Qw_FPF-itCre*YQ#_ij<|#^G;_IIxw2)Q(^o=#R^gJv8&+iW0rX?2;nDg z$=#)Aem<~=gx)9^LjU#zmVmOsk%O`h|7>QZh+r|Byy3i7$=nalu`>WO1|A16l|ug5 zcsZ)R-fRm!XocK~pNAO8drm%bYUikHJYqZId4Y+~^2gm3z!ybubb*b;xqoRiZow9L zm@C**Gxim)o8DkAX|HVE`*|8#vHCEf-or6y)vtS(S%eSy?gDzVmaPZ9#kW%CnBR`q z&Rb<2w9#p?(*3e=P3=)z%b{4<`>uf=_{r1BKlZ*`Q@d6*9l|hkJpV8|Hxp$w%Z@_r zqj_IPN@MM2nhd;kQBAKhW9cPpSj(lqR&so=eD-PUNT{W?0ZSE5dJRFGmOtQTvg*V) z2;(+ynr(gsi<#ptm9BqxunCrUD}3humh{2+QUCLlyJf78)w$}wdDP_d3X;OTB!pWd ze=54xn%NB+FRsP|` zXB}5IVC6WJ=_yu(o*0}#BEtEGsh@(ozD(z?tCt)r)0p%!<DHw{^DMeR&NXPaowc7S0-)=>xy|-gja7o5=B;w?m3l@+Gfq6E%?(+`z?VD z88&ORpJiK{HB8nYSg}FrM#(1-xFMGlC^r0MGyOlJpO-k*DYn9^VI)NqhqAl+kB|Rn z2GuAYQGp7kEDhOjuLx@sIy4_oh;(Dw$U8q&NWvy}EHsR|v6NQWI>>rOxXAdVI+k{W zo70Q(-_@ios2QF(R-sijmqS)2PtcWu@`2rQt2VXAzp85xHPy>C`k5E{Yf@S3Cc3YX z8JJ&p(6rLn4HUI1vNznr5}TTtM1HJ>YHrH~$Uh<^ndG6V1k@$Z7mboRgP4mnh5li_|M@xw#i`2N9~`=7_{x;1!ter*ybmo@ zv#qHsxGQ5w44$`XJ+Wi(G%O<44!krZB`n)1n#@D~Xn%+fb&XODLeSYkS5=AB^W-~k zkFcS#TA>}sPvrVW43|DPD<8xaX?^9o*-KJuG&|7(&uH}53lpv`fo%6Bhqo&5%i(r) z9#v-Vbfvtll4dj^*XjX8WlL~@{8**LR-*u*?V!qgBce3~a9nwiwyOURTQp_T;2^)!T}OZ_1gFvg;UiI_&6PZWi*u_mJv!9-BK)CEk8e zU&v*bPO~W;_+ssvo(I=mkgt2jQqG&r+fVK{+*-qgKdmjBsvWyx_bK6z88MWy{lSkp%~ zbb(Bc1z_BjL1VJ)JDADV_*kw4AUD(&;l5-@HZ{|%oDMtrM%xE65nr7g;?7jZs7qtq z7rCxfN}U?S^q@NArr|e3xKsUZ51$vmEw^u&KM3+$m z-O(4UQLK0kV7#{_aJ{(btk>v5@*I`5no{9ZpJ=cgNSa+Vo@=IUbtjJf^?yZk8HorI z7D~d_WXqZQMgG^v|LTRic{EMG7o^T6!$6c3MEKHy1PydLQRgg?zFt|td|>^QJQg}z zRC{-Wmpza^WGCuv{qB*1<3drOLSmr&ZpAS>%hk7v*x@Uv@Ek##$c-;f_L;+}IUMeW zDRB4gLO%ncA{p#HLd3>u?I37j&qxq%lupB!?J;XW9Y>Od42jd4V>5<0V?QP5y&nI=u#e5h{iRS>}$bK z96wZ>wJ=;z`N>y{;dc=sqJ*|$Gxm!^J$oznZ>}o;mjjhDZIDTuWG+JKieBEo8soq3 zZm-l=n}-9JqcAL2#0sCPu<*R7hjrUevt2(dnG8UPcUi=zyAV}yI-j(O7fcwbJ&|>O z?CrEB!&lF`KkPqZyTd{g0Eu|Q?qyKgSrnI}J6HGG4Ml&`W=k;&!7Hfye68+rJ;Rsm zMoGH1_vdu}_^>O~6M9?k8V%pg?HRY>?{czm*<1Luayuxy>$wBd@QeQoVTII{K`H#9 z&3V=nYXYoA?0XjoX#JADRJInA@Z>8|*Sq)ItwTuVfyXaF4ZZZfCQ2>&mCJ3Ns)FK3 zub_8D9tX)bAie@1)8@k?_UCLtHC*7IHOoP-s`qM-^1h(_P7s<5_TQ$@dAzidw=o~& zZ_on*ukdGr=e*vH5C7a3yXwFE#=h0^-VJuEZbpaZ?JqYTAvj;^zqcm`*E+^OY$n-6<78XWo9{<9}(|x3` z7yAo6Z#-0XLJ_Gst(JCFrd;oBb!&icwrLWQJem>B0iLG)774#}8rFuMpN#gVLiZD+ zTcT`U>vGB%YFROeo8-K;S-YEX;>N_A3fedtni-b)NMn_|#gX;z|Kqbvy|n~cE9hB5 zq=lAsK4R<8ikvU{0)g})syIi#AE-{MU}p?3&5OXO-qLZ(@2(k59MZaj+;+xszp?0M z)WEY&8Dxw?s*|!c)K(io!A#rh+2(xK!z-G+z$bpWNSx&L+nTyVE&lnFVWJUs-l394 z8-P_efOxD#<-C_+->{cR<;L^}J8E8TmjCZ5|KkU&@>O3fX+Bc^R%m0J2F^A)0XLZ| zU;N>sJ1c2hMuxYayX`z(ey3!nwes`XhrIKIua4pA=FTRR>%~#h zi8cZ{NNGA3QD8`s)XChxL_VP`P}?q+~_F{jkq(z9ebs)BbL+OP*LC)6H$mOeA>c z5h|`@v(uK_%$rkfWRvwSn|up(ync}P?>mjcU8bTC#tgheQ9DBSE_)%~0`2dw|8d-SXwwsfP9;UYbm2^5d*PXv9HUuJtgHj$OF@ zvT(Lv;&_w%?$k@eV0-f_iA#XG4?ee|r6%$%YKl;NV@R&symuuOqn^sb z3A!Sl#CL~!!LocY`0L<5{Nk@e@P7sd%sW*R)MQiQW;?t&*u6^4lwTZ8il`v#+DPZQ zS$7Zw=*J(=28ZJ>^m^E#)_CHQh;+3nL)CbSC{xQMsRtC8A7TB=$>Cz^z|5d?EW2PV z;w5z`p&Z!&2yV{aHetrHKl-5GJ;dZ|3hMD?_4IZ}YnK>*L!yd6eK{opSJ{Qx%qsr< zE&~b;>r`pIC4`!dJTk8Wh-PdBE_q^JY{Cnf0?Dd*>s5%#6;gyTkdVwRy5!w>D}*=c zETcVJ@VV$4fAVX82F|kPy}SBO(2ht+Wc_e|#wFkB5xv8Wz^o!kJ*1R{(Y_Tvkl_|h zdY0of&2wuWyX9NTV)q0I`fAhKZerv|V~-d7Dvdt&bX3g-@4f|zNyO(B|M>3+`~Nv~ zN`p#3<@_o^^s03SWApHQ?;TEd?c~byUZL+Qe+f>uD7ssqxkr?h*`6QCKd`|^F!*l= zMKlRCa8EI9A#|9xElk6b-3DthzFGvElK4E=(ejTOTjq+oF6*01iBYd{76cEQU82cd zx6s<8DGF(Z;>|*dKXEr zs_R30HlL`uHvm9AQ2*T3=87~}+c5oY_VjpNA*a$C&esLu9dB0UQwCp+Ayb6>xRkE4 ze6bRjGMy4aWThpvs_4L9kN9@J1r_NDHB^1rbRK*B+W6H1FxQ?y+sv+@)8md7{|74g z|C(azQN#nR=Gz4&D&stOeOuEPO67e<*RXKKCR&7hm`Ne+G*F;tTk@@-0FX1oui?gv zKlC;BDWv;U5=+{-cP{T~V z7Vl=%$0r;xC=6A)|1a1~%!gMxhXuEd(lN%#s1zltWV{_>r-*;Z+)G!9?epeomWUA% z#jvj>9(p+a^ytzTH!TO0616AR=8a#X5`&#k{-oF^0k)Tok1(A49Aev?Mn8nYFXF_< zcBE-a?4w25`Tf>X5RRx_eHAuQyt7c|MD#6wyD!xe@%YhI{%--A^h14?CJAfRTNAzqZ-zbYm_JU8U%6~r zH_Y*+#c<~S1qB;ac#-$?E7sHD*}S^Qr*i!{f6Z(BOU32;Fik+&ycAyOkTMSSbmO#L zhrlJiLDlZq&d_Xmsk_;Y;A``D1{G5jhQ}%H31<#27l`{l6~ z=|QcQCJ_1%Eka4r@058Vlnwyru}RVC?a(i|`3xSzVg{uj|LM>XTv ziE;~7VOvMv$97Bqsd(hQa|<%!03)wtlrG5(6H6|L;Et1C7VD z%AEpbxj6+&$I4MTk(x3z=De^AL3NT)PxIE0oB%=+l?Ghmyc9-E?0YD4J?F$uFV6t7 zT*!}uxK@lKc(dA8xqGstX29w)U-%@>XKutWvC(osIt}`R#@$^6vL_nDDz~S8jKyM~ z4tp|-pX`UuDD?RJp|C0wupRg-qut*SY&k7_P|e+3d{R9sy?x_Jb715<{eK^MU_QR; z-|;_Dawkom`!v(eXiWwrRE=p?ssL$g!THJ7hDAy1Po*KR7+Yw320r_V*TL13v|_%|yVzWjQgJ z(6mPUVE74C5F)(KAX%(^dSCX&fw_+4Sn=%FcQq590p<3-IFIrBNZ)#~$ix1}KlPch^Dm2Z)K zl}}m66d7DHbF`sb)b~qznA){zrE=B%KN&1vr@sCWeYnztY~M z-AlS7mC<)KyLKzPw%Aecp>uwh2Z0AJt7FwtwtO|J10)x|ma?ai@eS!oXh^MNsTnwP zY4^Q=c-CB%=|4Xw;(Y1fu4+qN2|&Y)=j07m@gBClRgpWa)p@`RwYh)PL+)&yO)HO3 zDv{@UPa&5E^3Go>BSr3dhaQfRAu+Y(VQhEIFR>n+00 zh$&7nNQq>>^{qFs==pj35_UiP_Z&JijTO$QieViz=@(@)&;fLgkp9!ZB4%bS5 z_*Zgt61;pD8<VU&IJu&;ZQjtmzQ~-467bT0-X1}h;5a+zt^)SD8F%UC5Ur`^aFT125O;Ax|hDrQR0SmD@sGc)pY)L8>O{gL|rIPJf92p=UXYmzD2#$C#) zDS+E_h~)T4Ws6+z1)IC;-USMS*G_6Z^U?m4$90z?fpkoyy`$qf4Lk*0-TzOr8XG)H{WTJ3}7{F90 zv2Ac&+;sWvqysOn)3w;+>^t=@c%LxxC)$Y)nSrwOEm%f#J|BsuI9KKBR&x3W{rr;| z|E~G^d$xCO?l27aQoh<78-UEEMi~u@!NC1Njob?=oO0jDN+;j1{3XlxpFHMo#uU}Y zt4+z!=Vt;t>&`oj?;-_$yCi%!nE4F(qw~%zbc+yl56EepxOn&Io`nd8w?0r{e7E&m zqe!+$1ygi+J56#F-_UZvj>@}+%cximubGkuZVkIu(~ga5g8iB4w8^~2{>U}IPnYRV zw5_FHyhu)#d&SYkzjV6_p-f}@-u&8gneFHb|730XJt1U0hs=COSURDnu}0hi4c2ll$NU5XnQ zlv{6vw%61=;#6$%ZXu3DphpUZLf*i?&KqCmzV-tT*&oA&%^eW&9GRqjcEFqu;%kPi(ClVR)AZvzeQB+UEHeiO^; z-%$+nX~E`oj`K3k)nwc4{oTEVjr?AVD;Baskn6ZgX4*E7b!OEK{xJ(+`qwAtw?$U< zz)J`xu$H>CgI3iw7la|;HA|VLn&1l}YCzr^C$^zTI$osXS(vJO)rLDc=HJ#mV&f&xP5q>{QhrF)1IWqiAQWaS)R7$w z&6+dWMZqU?*@m~|rM6M9;L}Z3E-)N_676w3Tt+8@Q`+B9*DPr#m}Yz1gq*D42B8a0 z_q#9H9ZUn}6+rtA!2ovmI5wo@3e*4fN@XT0x6+U`r1voj8!XlhG4*=Xvba>gTvB5D zW~XB)4qcXjl2AHaQS$me_4DGjzsZimuUwpSX7aTffJYlXA==X4+`RbC=3Ks$gBk)| z$FExEWUH$3LruPU$N6gL?yWegd3FQq^EU%_v_AqFYTZ@$jEea!w7fTjU_R^m(Pp>< z0lw5qeQ{XUY{CaOSIRzOkU<=UE{}e`v35~`zB$(-Pw#3CZr%*~p*FUY|7HH|B70>( zr_7k)*t2uv_t&M}LU-`JHo@#%j@T&1?A18IptaJvVyQXG>aCfVP8LCXpdT;K~e&o#@?( zxW>@MEOJU%+g}w<$@^FUxjby!Bnu+*ivi%UV+0O~Iy)Yjo}qjGeZyKd*N$#9htGjd`+PB`_XvqC8QPKc_c8LPPobOCPX;}s%{6;6DnZWUp z)M*R$6TayPId^fVd20lxayH~*x`Ts|0VQma6 zKpPe|-#zWmTC(h&8+UhJc$`)F;P;5#f8bkgt_W-wtOs^{xR>_IEg87-L*cXUQfdAR zU(AN5vWoA1j_tkuC1L&&R$DMo-v7vYVA5v~)p0P3HrjKHg@(sN;HH1n{!^d)}MTAIpS=(d!^%aM3*VFbYvt zA!)&Koubt9p<^By7v+jY#?664$hdqm$&@rrK7qyq@+n)N-N~f6pG-|se>$BEO@udu z+=Z4A%eggO`eW%JzXKAsH0q$#syDIid(eT0r7Ge~gw@S>V*3s9y<+<@fy{j-=_!~O=>ZSSF;)@o?cbuscniq!cfPs!* z^w~nW;qMF{o{Wn!ts+Z0A3)YLaX}T0^7jW%LQ_n^lP_`#xtudus?NWO^7sB%s2gh$HUl z?2fhP%Y*D%h`l6hfH4`fL0F0V9dbYKQ-NtZhjNqLyf5KLh+5ANv}?F$kT|YBWHruc zJbUkAeC!?(jGd3>CG+lOrR9Pk!rf&Oti>`*?k8a@g;*>Qv%LFFCJPWGk8AhgSwgX> zn4V6L$olSMa6bq5`9WmwZhTY+fD5=XZ01d*{WNfXHLiEj@yz+ua!;b%loq|^3%Az% zeBPOW9d(MwuC52ZgdTbwo8kMosF0>n{YV>w1*wnk7g6+qG|Qk z=WB&NxrnW8Rf;hLiu=!K-|jE|w1*@9Kq}b~B5%tX2Fh?9iNeA>J)!i{COM z4drhSMq|Lo;~B)3H0mXnO;pr8J|7$!cE5uk(ZdKn(rKewlSt{nrZ4BZx}G9nB!qIh zUu6;D?Xlhw0J5}jSXcv5QGsqd%7lLtqcmUsZog(Av9uq^?%|iw2877r3Ne5G_9dS+Ql?|uHUE0qWT?HBmuIn|_ z$%^m-O*xd_cUsff*{jeB9|RTqYa;GN>90T!{VBEd<;!kjbo6}^-*7Xr8G(pLvqs0X zkrNE<)c|fmv_ui&kp%f$KE1?cWOn{{N~jM!?UR7Yjb0$g6jNhc9ptY=-;5Xu+QeM` zP`7uHqEB>=fI?PB(GGj;N0xEiXSg&p629&*kkIA5q~e3x9*+pod6nnpyEzf6qVZcz zF-j4}YO18j1h^<$eLOTPvs}i8{bh7vBC#NN0Ga^ADmFcssVBw=beH$34c+UB=h`oS z#PG}FDsJMkQq7_*HYmnKIX?lfYxx5hX}1 z$@G+9yO1{OC~n4I@R+<)zq4QHaH;Rl zGDl(U%aHW5U#XDOjP;UOU$NTI4bp6h!m`b;mn!O=J`(%#xUNj_z;B zgAmlk&$txce)XM_-6~C&Rd4z~f=xA=86`xQ0gVnlg;#n$~+$j?y^nXYnmHFH{d zk4spPI;{wVmJjacI8u=mG5@9@@M%L8Ca|?k%(~JaI$e{2y)Q_(2CFY}1!P*T3sTen zu#rgfu@19aH4GI1GnQz$pk)GF&{)d%%3sx?#-YRz1O;I)8s>q|B7mz73UK0UomOqwee66oq}$A#T=&z)S*DY!R# z6Qo^X!ewduv(}sFVVh{>g(UD>SjVh|DMHk%)K%hy&dVA9koKnZP7Pi(%4__%2&%vH z8R&{AsehhFe^cTPdZLoP+)5yM*iSaYtQfQ=|5NbfmO8Ta@_L-P`H$Z${h@=0_xV4e zMvxi$8d)lo(C(D-_Bjd$@s_kzTq?P^QGZt@0m)avDCLgB!+A$PRZmW_0{lZZm+?E#)1) zQ$~oMj$wA`IW253NO_xOe;O!(UkG#^DA8_15yFJnER;D>3YJply^U-ScdANq6v?gS zu={S#p;CE+pZ8)C=Ih5Cd8XUhl_b9lY4f%Cn44&L4eX*Ix^LXVkelI50m15H)P=W)fLARh^(n~ zX-_HHQd-!VXd5<9m#9Zy%Pw7?p6*z7JKINMHW;OPIu;WkaiMD<4JsrK?0plwo|e(}W0w=SXB)Kq zAKD~*G8J`g1D}0ZUoC>j@&To6puWNhplo1aZwIO|L_Y7SPvxG0B5_$&@@qwcgXVgP za*lGaC-+tZ4B8H6J}rTFtR>h;9aM&-o?&|i$km=!vXiWu=|UR{>pi4+a} zTshbcAaTF^0KXCh`$1eO47PS^ywPSA$3}hRtI&7BSOL1 z&~-zjp7|aI&$22q=)`Q*@2pY+eERFTuMF5GxU)x`A3^HDWetJYyhy7u5-JTe)UHo-QhA)$D-XQv zw|bYH=rmLUq+Rl;B;^;8+nnEggJNoJ?Kq;jZ+^A^ptv+hq)sa)+?QYdSfn!8={3G{ z?}Mq(#^D{4cg2@ZhP*y}+Zn#9Y4n{|M5{Ty#H=U3ZEu1DD7V`y$DHnb&v=~^ma3_& z|Fp$!MA{-SUOM5z`t$4wI$qI!2;mTE*w}rn#UvZLIoEqIi39+!IblC+5j+@;@Jc{# zKUG5>L$&fw6H!(1#NMHW3ARVJy0OCe>$E01;Y8~CvSrx(#(fmbe^X7eAm@DvwbeVg z2JCBr5ki<#5_cNq9@n|oA6pp(&ikbW(Ap?@>`@df(U(UYI?Ep43Ps0Uwf(>kngjE( z8zA7p?oi~^+0JBR4{}8f#JOS%FdJzKF(f~%j33{Vni#<^1wo}p-DPnTY2d5muhB2% z{qNff`$={n4^V4?ap){)QnLl6@xZ{mquWtIsqc^&bTp??o}+-T%C@fRn3ZK%Y(6L} zF%8cNU!Utw5er&g50nW%e){K#A#4nVAsnQ44AYp@kIH*qlX5w>NbF?CG*WOaZbl4L z^EXqiA~=~0_FN3TO+mWzROUIza&^B+A{EOor@(v$j1cFWgdG(v#(9;IyjJc{+;?hl z*;~ynKW=YNzcY!z=#GRE+_mB6rm@z1lO=AL0h>Y!+sTCW@~a* zN4DKQSiZ0SW|`-YWjEuO8gMeHNv%h)tcEuqUEh?w9s|@;(p$<6E)T7VZ>fd9uuYFY zw6|eEODJEzsGpk$A&@DYTySa~?I_l!?S=;WM4KMC%uY^FA^Y3_+vYsbu)|Z{vBduz(d|IWUD)p^AagBl>(WtD#U$U>+z5^*~5yr>irawjgqX8zy~gn zEL`2O;Vq#GY;5s4`c<$18#4p<%m*q`0eX}=VGTydJrcJ8+|*P7I*n~9R3YbTZ^DgS z>a^7Wta~uq*_BXB#pcy{HvtP%v~%1c5-4(5b$DpADT>rY*gURPw6rZhDe39!HOkNZ zFz!pH08);xt$PP8?8;BoME)Ejaeo)l*KD|-MBM;(LeeYD|5WX09ksvhPiOq(Z_>kR z_KPndwjV0^HnXVbxf7EgAlB8{Yc=h_YHvh8v&aQFY_k<@rdSND+nY@JD*GkYKke>S z{8R6vw4H^xY-m6@EXj6nQ62T~jr3dln z^ACXT7xJm`C%cyOWN0tgu>qm%RU)Y&=+ec{tDU1BY4~yAC5ySJjGzhHL5fn@f4%Np zB?s(Gld&bFBPIOM@_1``FB(f}S@Qeibh-`-2pf9MCXV|RVY*~|_w?*|9ja%0jJq)I zq8tiuLF?6-UL$jN5NFYqAylurDHM5(X)#CUi&v-*C7ih9$CCCr@=C1jmL1CLD$ZMD z32US+TkwRQ1S|mqBXpwl!UAKuM~}IHxW&Tpq!7@++ETp;ER^&n+o7Q!`&{Y7-hY(i zTiODt3mFnx^^_4LDP0)q+FIj{I#a669d5BgSt@W6Q)$sEx1pCqcS*TK7Q%e64e@=_ z{Bh_!J-0%8Fpgp~W2zDsXq9~U#`n!dmez5X2i>qF?-NMI;YDtxOf^7L(}LM1Zak;T zrBm*2_#_NhMDvaO`mdOaW@5eTnV&bq;Wq%;A0PB^gpKl2iqxym%|dPs4}gpE?>PAb z)Ot3|J*hII!{{U{*s}x1!+7G5?pHb6-PBv8hZdr&EI9z*N+Zp+Y2frM)9-lr(}*K* z_Tkxb$DjHRy+1>xjRg9vw&wD3Lhd=*oiMV-%Q@Cu$vl|wXm)JgBbt{+vib6904FTI z);vlb6Fq47qoa?8!~BNJ&IhE*90Z$$PpbjDlh|!RgMgPK-W{8dmcztE3){cM_k46x%duQ$3Fx=y!S12he=+hK^8T0V{nAYV! zLB`6LD@R=!`d)$=yA89_pkmVmEBBn)H7kJkhUv0Zsi~jG>iU_~aKl)}Ao;R)aMOJi zzmNyTn|WOGi(6EPxewc3XKg!C2}w+pEai`$i^CHsVUC|l=&ZfZG9YJ8Z9y-+s^;+Z zJ;6A(LBKrS|7Y$`q^9YD1oh(kbT{{nZkV#} zs+Y%}8s_Y09;Lqxlc9HoT{{wG9K!han#)i|g*Ja8Mbg9ec?rz5)OV47g`?u3z26rp zsrmjhi{;D3^z%L+MU`o%Y26Y>nje%kTLr7Xl??OT`r0e_DXJ1k5#ntJ&4u*ZZ+mhy z393hdyr^F`Cch7mG#PJfcf74Me6vpawv3awQ@G?6j+l}QI9USM`(K`|%HF^5Uu|yh zqXBaY#6uYsW#TlqiUsOm{0l$hT*dMbvrFzwdobrrL!TOy&YY#(3ju64-j}zrWhN31 zi{Q#l+n(q&u~|x_!_m-I|g4bQ}pFD1PO(`i3`516rOGYR5UK(tHdAOerQc1ziX zx|}Ezzx)$*j7Pdp?nb2TUW5J+km(-MQ-#{~dhfg(OSzz2T3~t=w?#Mn09+W<8ba9e zUBh+&Llx2(pOB8q4vv5!dn>OFRmHm84R28h`9{F1yA?w>Gsn@6^;u_~)?<1G?{4N7 z4eXi>E`@K0ZDUF*Jfv)Z2e=TWUX%5(iH`1=6qk~1u6%O;7B>bTMXIDUy2>1WyG8W= zN&UzRw;ou|5!BgZ0#2e#gVO#z^5djlJxsLs@J~+2VZ3v%C6S$zpM~7O70Yk?chgyZ ztKX>>h;b4H-#D_a;wE1DdegY3(Mf#h6c$F;7Bk={YWJZ!u(B++>vpeZZLqg0#)KlT zD1_3Aa%K;`yb2WaTPH=d745Rnf&6+Onu^9!+i6{=28lcOIhP@FSNtm9%$pfHhlgJrpzy!`c8S}OheyW~GyS#SaXEtI8 z-Pg0@mke(Yv6nv?J_1}y99uoMk%M(@-K;uHeRbcbIFH3A#1OYrci5b->a#btik?7k z=ZjZ+;lX%L{I(}oLKSyf352vsppPWdGs%Vv#KyQR6I{x%O3h)X6gDwq3Fy?iH`S?G zsLh)Xz-^&Anu}(j`Lh-a{QyPq;DGMllN40ju}N%CMSk3R9?U}dM$pT>Ou)Q5phVyH zBlvK3ONG<9yu{-_vYV-Ud`%JGx%nb^C(nwqRY3Q%FG4S=LC?vtKzCY3Ydl0|P4yCG zHZOqwCYfz|Ol6$XXq>+2P-fpIJ%2HYNR^&Ouww}us86Vipp0S}%U#`Xo^t+Z#|d8Z zubl6>L)_%AZqBBjK#lCE``0v79gds6bW&xpRy>-@16mnpsME= zJ9aavi-`o8GbtjJe2l?a-AE$LmV2+fXiH!0fwzeh^T}9vNk(JH=gwGYn-Wn4LcriK z{yoI7sD|;gqcXbjUjQnUws61Iam))@OO;ve#k0u% zLklprLl|b8N@(oBzs?sJJ#`B^MsmX>l?d6(g-M^`=?4+S?C~D%fu}Kl7QIgQ;I=W? zqO%^IgK=2MBnq#aeR!yjpI1Kg_9y>FXYhmI_!0aXgfQ$~5?r-+nv4L!>hf-ks;IZ% zxrvxnZF=p2f~Xr(@f$Ate*(SGmBastE#=qMDV;o+kKc1gWk;90O!bfakn2TQr$KAR zH|l?5_K!48viX*#->kksmrFh4X4;=ve^0plN;1~H_jw5)qD&1u*;`>}Z2f`^_cwQh zz3yVLSZEt|rV~}SII4XK6h8T85_+LI$^L3d;ivk>hd4eIuA9I11^(%M1U-v9o>xYv zs$HtHB`_Lg7H};9uu-C^;M1dyUG3MdkLM6!XrIvF9lrR*;iZa3rT&rWi#qn<3O0av zqM?(mvghZ(@ELvoO`ZHb!#h5IkQdN!^6?(pa&*Lpl5nur!44u>iSJ*>xeAPINm54V zTFz&%F_8{6#ZC&5igR30*^qTyD8Yjmy#oWC9xtCK-UNesE}J5i;>G| z4CE6mr1|ra7C74r5*19P~Fs~vBKsfGS z=gtBXe#W3fBq4Ky%PX_%C6Kd>^~Pt0^yjx+$jgx9!7ov7vOPETE_hcPPAN&x=O{=q#QxmkrO8k z0R>5*v;K9imX1-i<$9UnXZ&2Utbpc^?9wbf4rLG^P~iSwcQ>EAsC<#CYRDz0iVOhq z4e~d+_;#FLeu3mxzj-#LyW%8rw86Tgt0~U;c04_f^wwvabYAdHN8lHBh(*a@(IX80 ziH#ptQNnfS(Dgl!?dFsf*IDDUaQA(zLe2%_CEq)l$)g7QmE+bt?-Aloyt@2Mb*sL8 zeCv^^jmX5FTgu;(n5SP>>T~B&(*aUAN@&& zX?C2xjV=Z#`37@8f@odrAgyYaP*^VbF_%H%yN(B8obT9zNf_Y-J$54Fh_qbUwPh&m z#8<{s%NT`pOE>iIA{r{5VLM2_zCa=ImE@bP_^ARk3UrXN+{dy$Z0pChk1ylLW_IkK zP&dYOwAvFDH*7kNr%zr=+JEk*bacxG_@Hoo$2OBL{|^&JnNE_R=+pBJN*a<6Jeo(# zjGhbORVT9(b6u<35Q%V!MN9RX8!3M$TjjnU@xZkCmF*+-wMyFKM-`vdCQDP|Xu&zw z+n=0vj7pa!;VDk!*KH;Jl!?C-CRQAC#kQoGk)U7TZ#=fGx~0JY`nH}xYP2oZK{^=+Fpe9>Jd|M}-jn&TjS_|p zne7CQX>wA?eD^*H_kvDoTlMNrdp4N0!o3`7_b;Z z;D4}T*jP?qo?XNHyD1?>NJ?dDzR`z|B(v#F+U6&Ej|JhsbjSRu8t|>StTXK)g?lg9 z4%X7+V59i&!m(m?+Gg|vg8H#{4I`(}`M;9nM`TBRN1ch0-6v3ZeFDQT<{11=t~4XZ z$Eqi{-LO%c=A(8@;*68UFX|etzJ~66hCLYNukHcVnYGuqX9KOt@P&&~7gr2aB7n3v z)T^X=@^@UWjNbC%E#-GAeOi243wJ6B92AB<@s70Hd5gQp#ruJ8_M2S@x-)Gj!Jxl5 zRx#}dG2$PeRfY} z`OGCXXf7U~Q$3fN=kP%ev9ONd^}Z(XHSzdps19jy(B6?ME+or8oQA9^Q*}y+iARLi zX=q=Qf$k+#a^BSoj0fFT_+Zo6Q!T0b$glhcSeoVKq~ZIt*~xoP%pke;u5>oAHy3fi zW%sw;+3Uri$J@8Rj;v=8M}1
T}GPABif@bgIevv8Zq)3x^~Vyd_EiDG_+JV?FU zbQLmR$x~`e?pDDF6Cu~gaMkb(Po9UI zWX6+NK8%tl@#JA?@);w9AmMqlT%F}qnr?OJuSGEDA|Owwwub;ZaIPkE+r+DdQ z#F1lL>@f9lYzmatlApJEz*_U8V)38Ee7jE9Mr1b6&}Uhd%H$(BWOq02W?FDsdz2_{ z=*DUIR(8H}Q?YluL4|TZk1f~V0Fz@)zQmyL>tAJ1a4p5DPfy#OEFL(}n>pV9&GzOU z7`F05l$dKfRqf~c?y8>buiF|^ciSBA-tnf(Io(&$PlidRboTNgN{soR=)-GbN@($S zUcU)j8{;(a>0-w`;be}EA#gNQ=Q*L;m(lmU1#5%PZSyC7+HlC168v;r2^Z-BZM&G0 zpOsGl$^$?`c=NuHf0Ds=yr5#sIfjxqTKS{FO1~K|OG*g8S(soCG45zD zk*ZPqOD!#>{oiA}gGls8abDm3{f7G7XG7>h9hHAh-|I{|S0p)0ccbkULIU<_nzDiW zfhP%f%FN@f&BcFCS79I7Q7;7?QA7KcU6kwV(bf<$f6eFjicc$2 zx`j^Re76noww&tG5fYI$xYl7>H4}ff!aWVL&42Av8hU6ywq^JLjg$1&Kd3smR{c*N zcPxJ8ELP>j1wipin7`WAtN^Kpj3$TO`Y78EpK@(dQ^tGO8a(S-`={UeR|!A_#F0vY zZiGadEQiq>mYRzxsIWmpFeuCIbLhjyx7d?Qcyf=g%cXDV!SDBse)AcKfOY`OoYQ4a ze67&Z4*6iH{8!Ttn+v_)sZAvba#Py3*MGM=0@GDtM=QsYSthq(LtnL134cV+BUk2U z1f#gSjOOG7VE(RRMQ<#E(jFH5dZ>K8dpPoDk6A;Z&&YfarZ>#-pEd;@`_Y`CAq47! zEv3AC(qul7n*TJLoAe9zbcKAZLWY$BKebzp`QYuL9sug3(%X#OjwNrPv5?cc z5(ohc-o=qgtyq;l66vgun;Z{m@3roxh-?1!EdEQQ-w{sbi9$&fnNpTsp&Gp*r{r-8 zc+ud7GkYYK7eUX*HS9YGL;5I{=NUrg(DIdE{k9Ki9UvL2?f-|e_Y8-#-NJ^|2!ce7 z-l7B{N_2*ZlAs;$xYn|5}o?U6s4W!Y}(>s~5Ttt~(FaKAz)YNl?UR*Qx_`#Ey zidi6KdD`ktYtBCn)OBSUYQZ%3+aUyQW6}7$Zv%O<r`wvKgkjn zja>y`^D%D8sWA7K|8{jbby!LLKQk`=(nPyBM3<$()_e8-^h=dtx1*0)wO$rn z=~J?+5bzxdzr=UXpn`pzlN^oqYEkhTZ*;1RaN46i+m1_8)T_e8y)^DS4!@!VhSRMf zBiHAJq*G}hBGbhRg!)W(#Bq_jLJ31{vsf#&E79t_OG378vq>U|7-i6HCmn>)w%WGtgg&;ot3n+kDMH%;0NEEJQTNgN(3c_Y5p zowHVGx0v15TeO6e9q$jWd^6l<9@4L3ZobcC*XJCB2Hzkw(Ul{yZ*NDj5o#>uG)7+I zFGRg)Xre^0UUg$fQu}s#|H;Juv=RT0pC?fiGV@6HM@~8WV^+vFQ86~piW(!4(UfLy zk4c$9>%3t#MNKcR;X?2tRd$9#^dIi(<26)oTa55i2>5!yOHUvF7!TJnms$4fq3Vw@(ga(uYo!Yh)i?g^R9o4DHj6=vG9iR7WKz6qcT34MD06$Rz3x6g z z8RAbz2$yQ(2jl{n>}Eve`X%dA>`{4%=aE+iZc}e&Uur(fT&7tae%mJdlIoT7$c++J zy}h=^5j{m>`n@?rrROT!9aB>_1N6Ubm6qpC#FmWbk%3_zkmfjun>F8|q-7qXmIn+P zomM1=@dAmdfxXH(Fiq60ITBqxE4`xLd_*}ng@&7fHDBEPvB%n@L&lyAEd7(3&Iz`Ki?_I%^f+x*0< zUb_w9Fc=BEIoU<|N7(oOaCv_|E?wocchrbeM99KKJIJ&Rf1y1ZVoH{Id&)lMuz4#k zMKBykvfmwlo5SXzz-{gSO#0=+q7$f_=l2{=Wt?pKTykTa!bUq$>-j!qLRMg|^YK?OK93&rP>L zNsQXF?L@IKGGC2}Q zvgY+?kUYIzoN+UHgF@j#`qo+fH2jcE1xe2ybOQREx<8EnW)Xt|`ZAYWJO~AEY%S}e z+4m%A*TOXnBW@Z!6}~lUTO&eqqv)&-@LJyt*7%Ir+PENHWyI^j<&Cmd+U}pT;VXWR z_&y~-7#JqVS)bAT_JNVPF5rX9r!ata?zz8M?&c8ad*8OFMxP!76bb?nNk&{@R9Yy? za8;#IiV^&EN+i{1Yq5k^jiN~X4ix24b9=^}<61+$o6eH6^@pXg5^g>SD(*PfE12)S zU(d;Ahcer~nLS!G52=0ad_3kUb|2kQH);jI)PKErdts?__sTsP0r#CL2X}z5E$P<% zzXO+hxKa$iP9tom4%cptD+Yn*Fq8VB!%Vhnm~Z8~K03AgyJzk zS7{0>3GpU~sd}0X-o`AAanz$b_8MoFI4rK}d-lr>!C%$bClAuLsSRV%LxhPb_*1CSe|emTI2z#^_SA!M(F>#w#7BchS>x`G=_5@~*Om z%Qxax#Ir`ErS+!Pc?fNKYMRf=opu4_M`z1ir$wTdZmZ}?InQhSDfRi+nf|kN{_zwk z@^dtle`jk9XBuwV-w4f7A!`BBljDtNikOZ|+BQ@CdivWk<b<4I zHvEo)E&RD8tMf2}dk|mI#YoI%<{Z`X#U2=Zko3v2f2|`Gaqg#R&`++KUsDW!S;J3F zitV=c#ZCgQX=xIE%64Lg&PG{RgzWO;NYi<-6hUqRiCnI7m#yGua$wX$gYbRtc-h8V z-!0hDLsFN3ti*r>S=DR()0CWa?TR)%fo!S{IGZUquOkM9rzM5Poq<0%vlDKe7B5^nYtIzhzl0}k#gJZC=mC&vHfto$c$ z@>7E1VRw5Lz!0-HUI4YiAzYg4sTFIcx7Me7KI;KT=9+(0YeEXJ(EZIzd4K}hni!!n z(Zp#$TOX^aGv#!%ZQq`z!CgoNXGfX0WOzgft1hZOE8r>G>HS2jul11+YXo+ROUv+n z;G)=5yQVX1s{cPXxf#f}n3k%%Oem`7d&SyJui)WaO&u0uOfFJyD5*D@{9Yu}^2#*)1{5OV0gsk7Zqx=1r5uGs}2?u|Rh0Cf_` z{CYG0aQI!8Sz07qIZ5Mqvhwx7ACLdAgMWq(_^-4J?&PfNL!5WYtrxe0DvCFWd#gln z{*>Tj3Z>q3uP8^&(rKg$nQN{=y|K}jYpJPx1#yVgMYGV~3>saXaDX(33;OPNM$$In zj{E2r<8g?s`DsJ8>Eq)o%DRdVPTl;w#cMbG*H$B7^O1B1PlNX{ch~LFUk3K@61H-K zp)#{rFUe5Yf}1Kr-bUM`U`oOnH?cu!1Hl}nMi=uFH{JPXhFci_=xjQ9$g&9p9zl9L z=O*v*{_*%PhC&u6V^p{seoFP)$qg>IBN1{r=P|cN(sU1Z0MF$ij$eDS zzQlL1S_b>#y@TGSZs)jmeqT9AlX%R=Tb(9-voXW$#MK2WL{|Db_?hYZfn+47}nGsl0+t? zV!3eb<|GH`)@rECyA7(6S1E4PMHyG?DZU5$7M3H{vpC~sY-Qza9!<~Q{~Y>3Ad#o* znmAe%`U#I(J-uBzvQMjV-Qr$rP_^_2RqkG43;*;`1oQo;4O(J+S#3QwoiKWI7M9ZBu-#+bzBNtr-y5!waoxlX{C<5r%j1j5c)y6f#%^=fUf@|rt3q8;8KK4q>u{I&8A)uDIr1YBm^hnGYKRf74FB9h2SEz1x>2Ct z)^{Lq--q4d9farBFIlvhA5;q@OEaH|ifQ@CM(h<-+Gn1UI+MY>1F9jyJEJ-{oLq)f zJ^6mpUWPnXZDQqdV(wcNcgD~CCDk{j*zgvRQl@)vkqZ7B?xjp2DXaC;Z~E!k8vUhe zohpJ*jK<>nls6%YnIFqc4G8O+xPf-dg;{9ik+TyToDe)ET8i&&(^?gcc6}wTCta@a z-Sx^uJLHfbi(2#}&5a|0XztDr#8eUqD-&~40^=R|Q+o3g#WD)C+=5iAy1XOpjh!y_ z*SLOCNZSGgD5(>GyMYaN@^PN~rNgk!&V)V>_RCT+dAc>--@Jh^w;bL+GOelHQ`uU{ zDvFW7ad)~ORrT8RNvTQ6>K8UD=kzBqlx*c7d^q}0@419c-bf6hW1R0r8LCRP#Y1;s zm$^ZAhnZ1cW_LFW{0;fiSm5#-defZmBFFdl?8&W5AMPx9x)i^?B`>36`3~80tAELw zTSg32`6A=Qa{0TZ<*9+{8-LU3l;u& z@ejB$hLPGq1rBUN`q3HGI_%Zg6Mm`1@N>{e3mnp%9onW99R?^q5hu7G?Gai$A>hc} zD^QGYQ8bRw8%hzhdA+vEib8+HAig<=^Q{#*wZA5HQVO)PTDALCDDh-1Pu^W1`~wH` zR~5GTp6}q=(goJAGc1RBanDuS--0W=UZIwzIOf2VLqzQj$H)t_TS6@5CUn|v=#@{Y zkxqI|IL^Ei1C9=DgLBk%S@tM#chpW9#i55?E0mvjo1{siy(j^)O8(mn}t z0`@Z!UUoMIoXmqX3A;={>|rQ?I6H0(WPb^f6KE0tr;VRKQ90X@?MH{(makh z^yB8GtB(7DHQ#<2BA%>Y8ZC&jTwFQab{_}3pXuqNqA`pwB2cQX2%Gz1^_9DMhqNl!f{ z+L(Har9hbG*av2GWoE0VisR@>GSYBhc>ka5{J%!&Cqh(mWa;TthU{gAAS<%nqe=FM zQ^w7(=y0Vy;XnYesn|~qPFb$>hxABlxs>x{tGE;KcIitW<2>YCUAar)>>Fe@k7C!C z=~K!d^)!+3F4lo_O=s`5hMX@}g?$!WulC-DJ=Q+G7@YUd<=bE5&Oh8%7+c)o;k9Rl zV)B%nY%OS#Jiu|@6Y4&xCw+7@bywA9IpN`PBwyD{;W?G~k+X={*m{xoKCHGGWcez6 z%FkU+BPgGvfeC$f=hc-ui4if^SDG3c?f0n%K^O8Rr0O$oynA)zD-sTn5SMl>vNPIubYZ`%Kt0iwVq* zfIY@8zJt}f_^i4wYggjOhm4syFLiC998gqsmCuD8o*r#dsR6Ify~w!V$>MBk5vsfJ zIcfh>1q;>A7XFsC!!FxZcxpib_&fEXSO$GD>~{CIDt|bgG%NY&lKZ4uh^8MGTXEpj z8tu=>r6bGmW6O5~#lbu2->z+m=;GZodR2XP73MBfK+yLplf1si{XQ>a$?}K<^T8it zG;TQ}^CqX!_^v)xz|ZpwDL|UO^IB&p<(M4pR$6}eEr#IdNf6wr<2@v4FbT|KCF9Rr zI>_J(cxfw4wGZ`$u{Z!CT;T35v*5@98P)GMyD`VkRYk`_!JD)1yh~%FMGyPv#7%e= z_9X6ThV(6=-%QmF!d%sWuP;Y4Op^w@<6bwzyPqm)$yBed2k-il&-{ME&3TIEu#w0O zs)uj+I$UbAX~`JGJ?xi>_aPKps#=eR+?+xA4sUJsCqJKURr&V*``tH${=?Wamt0KS z3taP~;ml65ev|IFjjZ-F3I{HuMPf|K$>B0%!7N-|s-FsN?|gKx2GASOdX-O7S1;`` zr#wD*lJz13vKIN7N8+^;dV0ONVlB11Bk;lVSA*$;1l5lldTrS?e=33hHSzg(zVei> z*&~EzM|3zwm(<&T33pP%9V1GEf%y3z7@0=TDT{qm{&`wS86UZ)pujqSZs40?+qS#fXwl0NDE*K;d}piL7=59_~3PKf0bhZe_TGx zJW+VFyU5H|B;#vUTaBw7+=M&3?-6ul2h1isCHQphO8B{wq~rIZo#C+f#csr}^RvG! z=){|1eABNN9C%hPgao9@rW_5gh#q<{;ni4W~Ly5s3@yBbsL{*%AvwX=GT< z;B&UcZ1>D0=s7(XF%*+Pm&u#F1a3b>8WnG{@+$2M0KiE3x^|l3^tU(Z>Y5P|xV_37 z`!&% z5#T$m@*^XEs&@tLgkJp&4!^byl3y6bP|k-FmoX1SwZE&16*dvol!zkj{eC#-b~!`k zzB&|>DoBNVQc;E9jm<*QXgV+}Kl08*I*$8_Z3d-l?Dff;TToGSu#d8TsQH5Ci}JBc zN$SM!rE3GLGFCqBtIjT#_)C46KAN9I?QD{~LT}Yi)^^xgcbgX^{JH4=-$CFM%*IHN zBYZFBaAmO=RM43$HNmyZ8Q$`7j8H9L9!As}Ar@-_V_q(}S(1Q52ScL!2bHYpsdn^B z81g}fKIQ;njUmo5eBZT>{fZ(v^SYjcyoy&x!Zh;+*8(!R?5q&6&&tiaSZ?Ho=UuXq zRI>C{I+(54{376a&VC>dSnNsLN5^bXK-lb@yItItdt2_mwMzZF9orjsMWf|uY8Wtz z>y!C@8N??%*%3#@fh1UD{;||)A>(EJu8R$>Vt<-UOF@n9s=qq70Gjt@n(L~AT&Dbi zb3LZ%WsBsPdI)G*T@K9=n5Rt#1L&~ayG4}SShT>^9`sUPoRiSWZ?hK7FOYrspjhdf zIG#OLGiy)U^clG8Vq1@uh(C7ry->c=m-W3dBdn;?@B18cspfU zi`_M2WXx&tuQN0@=up1lor%g$G=E8gLhWuy`A^?+@J=nH+`#A6&Me;D{#~8C*3}Cx zfwu!T1bDFbPAs3dJQ}=LG?Exx2_Gxo)HHdbEob>|J4#UoeCOtvD6e*N@q{tR1u#&Y zp&J+hVLUdg98>D6P_+pa>I0l39~KyEh&M{2uEEvS)~D+>{qPuNHdj zQz&Dcrih}LmWq8XY08kH14uVmK5LKERHJhYKf`;leva>)M}CNL@Z1#O=(b#{8&eSI zT1Lu($g82Yw;CEdqXL{YeX|&|V{gQ!2W<(@^|9DF`0Tg4^F7(_rIPg5%^K1Bd*G1F zY3Gqo@+;IikN3;)dQXKQC zeLHpD-=Q6T=2N{B{EOUTlAqwMH@(wzR5W8M7i>_AzWF?sk=@gQ0t?44#-ti6Dy*z~ zQyzb5jW_$@Y#%)KF|K`S=x^XG7sYrG8n4yqf1NL%%^)d84K0j_iuG+@B6 z!Rl@B88S^wW0lTQM&!-lSI2k3bPeyr_Z*L{-*2B!7;3jP*us9>+uE{{m1{{$ut-Mi z&3J#5v|{lVj%Y=i+aPjk;Oz?Mne8H{ix!9rS4>kyP-EE3m-8Q%&xo@(;(7SKR*}>H zkq`X4J^rVosTN!&l8*O$04dnQtqMjHdVw`1b-2zrRt zBekaJ0GfQSjA*#1Tg>NuJ=LASWMAr+3gOk}u_Jmi2e}YCRZaqZh;i{; z_VR;;i#!vhX4Yn5NC9?=I0ZGSQBqw-zt4B$J@8@WHa~td91t|?_e2WS^l|Yuz&&#f zlW3P86NE}(m#~1oUfi`82>`SCWO_ABYl^l8y_~#e3kECpo0*31u3gD47>KHRx5o4$ z_g&u0EGGD5lH^G+tk~^$Q>fT3Nm>t0EnZROd>rz?%kMz08o@(@{h?I zM@qg{US%NTsrOcW^gTR2($4*qH8NW|XJQ-TydECEY1CxzNUbrVWIb`?W#kOPXwxOm zWiaQ?`W1tKUG7_!Q=R*)MW@5oh7V?##(i0)8Xqcpk{To zD?`8EZ#2zpLV^X7k4Hj@+xzZ{TFCKQ=$^v1dx0am_AOfRD6l|64|tsKP)5qzsg4kt z!fU&#dI7U5wLWd+$u)5O+E8_anrP7g}(d z3Cwh-23FZUqL76u9}wm-VLZO%6KO2(O-WknL&h8)0brW4{cTy1hH3_d^@rB)vw+@; zP%L6==Hu}|L!z;hnQT=|LEtK%$l!bGwe@211n?fB0a^^^1B+xBqS4~i0ydm|Q`l>5 z-rV5~5gq5`H0lCAw*thf7W6|G9Ju&~7jsXgN&ahU{V!t#=`X({0iKl_1ERwle~$O? ze-vX6*!GTFnIk>O(H_fm_kv}?EWRs}G$6;8Wy9B!Tu}#QU9ZQ|$*m>;Q?#ICj&XPVjz6K#S2xuI=)0PvKg-(xD%)8-{vfzhxOHX29S~z_rE^%|8X^O(<}!1n!MPK@i#CT{kMAH_q;rtIcJE9 zhsYS=SHmMrK{Z8z^kY_F;(>Qx6>U!Q5VJ;1)7=wc%h+& z5%_zz+2@~lznD|K;ZEgN2@04X4T*^#PDS^>LaM?ZhQ_w24;GpVq!jO5wg>Q;q?tg? z#9Irh=KR`Loue6iY5DW)zoi)$C}TCMzobYOOH-5X ze(uAE)ld}R<4fn24e&nS83CuTNo>h!%|OH63T0h8J{kW()Zy?cKrE)U-H*%c|ebWNTKHLYP z%{IoJUuhpMM|L?Oq||mJ31{f99afXc&|EIL+ZW@l39p#z6NrGa5A6%CZQ?y9-FH)m za&Nn%8o!T~PQOA}=__G;td|r2d0o?HpQ{CSdO>B61OQ;gy|k%jRQJr`0B zH5IYrQqI;H9R@dHemvrQtzx zxAZ92F?9Hw&v$(vsH#nDyV#aG&!4ST|D1Y1muladbZMSW&w(XV?4#zJVO&LhI%EWs z^!5QQ65hDO`!V=P)8th>aes~Bx8ImUXp}s5w|732>xei;c?|*IclL&~j*H+U^<#p&Vg%Anf$}u+Vw?od-1U!38-#FvPaQ0$8;h-nN}0$91fmMZeyMr zn$A~ULA+5EN+B~V15<2qW_QzFEpl!O*qNHb`6uE^p)%^z2Kx<2tJXZn4jXSTQ3C|ueRxbO`S!^hwbO-XjF6MjFKy6qf^9tq2ab)uQ+?D%5F@7Tcm3) z8$GbhL9D?b=XN7KGatbmlxEK6&Xlr02xwl>g!7gCabo|Y``|BryXArhf6V;BSPKbh z7;&PQ-PB>hB(-3DsOpyxgnVxUUR^*B)Q10q4R>&O525?M^s3Fl|B?m6-Ff{Fs=#gh z7ulhn$L#KO&g#apeBm<&be+^5xC0egeSg?s|9%hp!9}M&o<}2>t1pe3=M0PsaF1qL zJv}}^W<-Ol?oWCd66ZVy)(#-^wa@?8oBk7FmIKe`eS9%f77b%34%)}u883%GnG~KV zyzwh{z=a%pA*I;13!|ade!D=pLq5T^T0ij2tj37U9RZ9tHec5uc1UJu2`Ej1-yf{K z;J$d4Nw>Pw&1+ZpvINrJ#4Pzo@&RN0RPD_Y#`_Zv_Xc?ch?V=_tnGwtFWIChyiiWf zr_@guwzHE8`~8+yO^Q+xpke`ofiVC@^AHZd%_=&BcpsPqwAkI@1kIRvSj}U4ANiQ& zx}@ACyjY)ly98CK8={?QJX7o?(wI^rPdz58?Z)MDba)u$#hh|s&ceH2kzR$A*lTOEUban zE;@@qy6}+~awU8|wBX$$E@ack8K^QFv})&0IFpPDiln$Pj)@ZvS!QU(^?01kZ_F|# zh@db9s0T9ivzNx}Ilvp^w-vVu2ylJ>&szwc1>;fT0MpY<*TtZ*EdCw5qaTt<8yK zR!Y#D?(WZ#Rl7Pk2ki}&dUDSbcP>X7hVAMuIR_T800t!>^i=R3bUy^dvu{b&?;H#R zVV>R%CV6{d4&`rgT!TLeXz;pvol*atPC;&aMrhh~YmN_Lk`r@DmZI(K!S52PgN!2L zC2VBgI<4eJ6QakW5tXK${X$Jg{Ib7pM)>PWs)f_0I(#O30H^(XZ-#cGk9OX7%=UUN zWqSJHh|=?fRs8jHl{r+ZlimL4OW7L~CDZt>V#6p^(E0YB%J(I+?#s@{C^3uET=sQE zR+Cx8te@_cwvc<_fNB=yqP80VBIEdSpeBo0t|leN72V6#(R6Q3j>w zGk0Em2R`&8NWbOy?QptU_|Xn*P@)2zGNb9p}42FFF!S4v(v^OzD5Gmq9+;7;lxEfFloKJ4Q^KbyvDuT465 znR;mi(!Oj@cW*r-88uV3??K(V(;ij))cn|Cx?h?yIw!WCmgqcW*;KLmL7NdJ; z1-`|HtJ;Yp8XhV4P)rd8J_55*CG}DE);?yKw_zS%6sOa4=s9copYA@=L9jUn=T3Zf zV7*s-@(ep4G(|StP>C=g!*y>1oYO{iTe|RF68xN;cYM0qMn^+I^;Fuzk7J)=eXFDlT|K@Pi21ijLe&>nQ+i7`q-4PB z)*6J-TCnO!;G0acC7{z3vS`$Oy>tm!NADRRe^N(Q~XQ=f+y z23k;$S(cU131y#QEgG~RQLRo)GQF?S`c1+{H^ueQu@d)S)mi6~0GAHGO3niDgmb0_ z*fPl*F!$ivi=@ly$C2b2>6gOul7HVmkz%73xadh@EdjJT7v$0<8rjkw^g%$*s{1Z7 z%4nK&h(&4uch!_0ZE(EuM%JhM$_?KLi*l6Tq_{k+r=K;Oc;ZD|wtA?d7;B~qm)}~2 zB>FYg(X;PVNp7_mg~D0f6|3&l@(cGtG1Gv#RgaG@)GmZFq+E9u2w51w+5kNpY#F(@ zQ(o}<=80x8QF9=KR_-lU4-PD3XZaR1!52GWIty1+P?T>BGXQ~PVhvDk339f;7*+2d zDsk78QS>+6a8a0V7cbd4b-d+&Wc5-|c$mG+SGNFk`=bMI9lGhN?tt>wv(sFqdF{q- z`j3`(Ic+!XWJO$_F-?q%FU(RgI$}p5`6{$H(&%V%4nyG?WRI-3m#5z) zrKa=Iv_hH8lrLC__3vjr+JQD(h(9}58h^7Yb$y_Ns0!F=jIlUe=&}~sF%2JiCDy+h zZnWyo!&u;jlbVd#X1P7PCI-i;y*Yw)u@9`C80UYy#yp!JVYi|8h+ND%{%?@i=2Q#* zpsac1!OVVK$V&8tdVG)?;1L$he6!Q|IG-coYUv4*s_UdLK&YK0)2;&2y5dNk6Zo^@ z@yP0yuFNo7vdi$x`#@#Z zhi}v`Hb6oevlJpL_bWorTwbY<{CW{Y7&KvLgPkqa%#xL1$!R>_Xf4I``(>NXvvEH2 zNou75H%bq;!XWr#G<3<&9%8h(b|^{%vvdNYLO$Nyhj< zV#8@0YGaCet$fl|wz8Oc5q-GWvE}m{WdY7>HZ52xRMTX|!2#{FM%phlWMfnYwQF)5 zH+JdndeOafSUDET>|bi;ov(Kg7-(8ssko;z_K6N^C%pXojxq9V7>~9OX3q2e1N8RS zc3pt`u1g>ygu|*N!eI$i3yT4YF*3WU^9o(ao49tTf!*=PHK0IaQ1;_A+gB%%311>G zg9c5ULp9Mi0>UCJY-xRz<1Z#ZDi}BxNNg^CJIQ%v(6y)?=?bb38LK7@yw6b2GVqud zQX^$&`89E*KPvtv#-T~PR}E%3+Md0}?-^hn+CTIA;TDF9&yBVT4x^1fM2^oR@5B~` zD>{CC$e%Q@Q^`(>nf)?Ta9^>&a(ICRLZ$O}KZfpyE{%w)kMN5pAaay6FHh9vUwhP@ zBl{K=NS|0+KJ(+rl{QK`zFRZ3v`Du5$89A`66(qnl65Oq(ArkMEh!M$K4<@0lFt;L z`evP@+y2P=0e>TDt+Cm%C2$^t9V8DiDPE;ODQu~M`0d>1bbJ#1;K}ZCsSm{WbPz!j z*nXJ)u~jBDpUgxOcvQ>x-kSL4BZ=P&oDW~e$M=$LxVE3Wx@)_&Vw=04*|<7gj7H=P`O`|N&mRge-S(IMsazlzkd@y1kVZ^`_uaC` z%ymHYxeCE4rGA(CtaN`L+rv%YZp+{=w*;ae%nU@CsKXCJlA2jl76|0u3WkaT)0-AYv>*HIm}?|_7-AJ zuHpwF{c=~>Ey&S4tnT~P$4bj=5fWif_HPgq@Czm&m|gVIdZ-L;h|(hqY{6jOCrSVs zlg&sAc{P;+F+4P!AE7d-?Ve0;nn^ONwPuFSx#6)x{AO;Hsr<>Gzop>)V;kC)yykgIN=bXEI!{>Gs6h?8hUhkM{5xkwRW3+Ah8iAy8YwqbT;6dzyoU;lmk-JvbvfT0=hCF3e@pVIUIWdg7?-A@f`eT_w+ zdtd~wwZX*Gy1~aks{NQ5)l_+g_Lwu%1>3<>Qqzr9utluc%qmOvoxRrZ;CY+%amCQh zkIkB`SdkP9`%G7d!LXa9{E^0;dyP|?WX}H>OwhP|X(8Smv6*$p>HfyG-8QR#bfpQWcnz&2i2V;-fmZnCS?tAeoos6$EFP<$et!|3( zmRI&~Bq^mA%}*re-D+Jg#>9OyuGn}DkCqW*vYoNM#qAQKO{?uk4H$Y1~&WmDM6R@lY#$i1B+h;+eyD->|+Swm3c2@z67G>zu zDY{kLu47!N=dS8N)r!2GrcMrizwUjFs_8M{!}eOa7yzg_$4Qw#Sq>mX>L%OiQ>)%h(EX)GP9Ddhke&eS)%<$dvh>BP824eW*O?2I! zRW0DOXQ)Lk8Q<3M%@9Vf@K~3Nalz-(9wHb1picduXSV4>1MAzlPLm4%$`K z-j@~X8O zXA9?)Y2H|pVoQ1bH`@Kqk2b{eUt5${xT>!NulI&KR7TMEjA)Q*_q)0kcg9JUY7U+I zr{Ju9B%b9$$P15?*G~&4>ow`D4Q7l~)3P6U2la{RYBehlcK%SgT{CPyywnevm&I&u zrN|r`J!bX0q8#V+PMj(AxwP5a7_$<-NqNAlVI)fVW^jRFRY6^EmjR)oBbQcopiy(k9Y_-b^w5JUTN3C zz}ey3&}$aU&g;FW%6(g;Udv~V^%?Lpb>pnD{7`xqKUhJg4PXG!s>UIxWOZAtl@IBj znX;2^q&MbGfNI*XqdJu0nZ;|tQGNDuNvY_!h^41DTZ5B*GFlV9i*3wI=-+Le24QZ1 z&Sn{}Woi1eeCg%^hO>X6s#mX@$~-E7McDs#4@1ZE*oZxB2?^QMk&A9_jpMzej3Pfc zUOPX~X+hJ;zXc*%=1R zYB*Tj4fRA-ESh1|)AcLL?(NyH`(0PT?T3fxn}E_!<;LHnta?Q5vO&5<-$qRt@Avd- zWdgrWXm0K4usvRTVv+V?XvtsSf;1JWHK$`VS7Ge>`*rpx>A2(@C7~d}_(S~q+UG=1 zd}%dAhhEcGa1v^qd^A1`=8F&4Hi}PO z@RSc2L{t&tXWH^scg0=XUVij}?f?rVU+y+wCL?1G#zT#PxYcH30CvBs{w#$pW{DIef(k@Pl~AIUXN;`MtE9|N(fP~ubTNB zGgYK<6c_}ll+gW$Xbs>#x=&spEt`5iMc-7cW>=_fSSISVwOoblh2E~Cr~$kd3TK~D zj2@5GJRK_@T%ZK~b8vX34yTLo%3|)6kgs@oSlMv5zPfO$Dcnb_KE2zP^Kfl8Zayy~4N&KvJ##?Vw>1OIl0k&h`8c0*64~-J&U(ns{GtY+%t-K;y z{=n>TR-FtYNr$%P3>E~LIpD4rzXljHGn)GHbZG161Ll)0=#mD3V0@6G$knn9ZwBrR zkNb^4Xn$kt!x-Yu3EBpd9qgxlIXs%oCG`bT3E%t*kelxd;M;N+|LU+@__EV_$`=6| z=^U1-2Ok#KdmcpGcY>c)&$t=^l}}D7Piu85D6N$@P7A`U&``e&qLCeW5|`%_UbLwW zQM~~b&(V6?a?#m9FmNv@v9dHL)UVpFLY!x7X?Xcb%t-7L`UFUoX)8YZ{5dtcfMdQ7 zr-TP_vI}ObU_{ZASn}zz_jar;1U$|XH3h)=} zuh&7t4QJ~>sfV@cb-Lnthp&93EQ|794GXVtGmPV|D4$WXpLvJl8|xCx^rM1KC?1>aMy z)c~lO9}1;)Vf_(+it5@7jd6TVJtcuUJHG|wHKj*mnvK$_CnI5W{@EK;Uebr z2EPw6xLo|hSSFlb-n{m563Zxrp0{aK$z~JA@Ec)&6kl8r%FnM63B`AXjbL)F%@84n z1(c(0Si@ID(m>^%WcjPLD9QrUpM_e4-rf&rnW#RO*iR^}o(?t1N0nI+gqewuCwF3Z zMC)GQ!A2`33;fm2A=!gFB5&@1PLo7fVleW81a#2>u6|&7HQ$A2>%!EC7b7{Bn$CT0 zWF{;94{c1rlhx-}gZ#-}~4bvz4=KPK)Sd@s+PnH$^#KF@10W{<8D1C%1#$ zvl$*A8|HfbV}#UG?W5XM=nJx!;jMz^UNJezu=sDE>||prE4TQe8$YW(S&%($_RgZg zy?yy>U2-S7S2co<@!jq~5enotDn#tuzg1KkK0eM`Z!pK9Vu$J<{o@O^Q>LeCMIe@3 zLABFWkVd5l>2?F!kIxbo_MnXpF6jTS|`N&e^+ODx=NeJL@9{?7$Kabr{{#Na38Ct#p+Yr zNzS{T)+SbEso)v<>twnOr5VJ~wOYibD^83d!>=2!lZYb|Zo<+)kf3 zb0mBQhl)NX??y*HKL1Ztfp#FXtpYRW%5&6Qi5%bGqYI_^5PNpslWCZnEE1*|bH6f+ zT|1JbC9(9y@0}oJx6iA&-%`!%$K~|zcZ%lx^o9K+qn#(8-Zxp02stfgzFW@zusXzt z(6pJkQa&z%d?bJBv&6?mtWW*;_Vt?htV}KQq0i+dmxU3?xwA^-pU*igdd=*E4Mc!B zHIQc<0_&tD;)i&j7uFpvf5^&yysqCY5s7sd@e4KMhygA~atr>^Op6!lzr5 zDtu)c@)aocgAE3D+ijzsO|4DppA^|Wre{VquQ%bVQtg*BemCn#5^8Gd4rGm11>NY) zvg9HxHIy$BrGu@unou-$A#T7hG(2^RxD&N<(kaR1E@Q|0_DoaLsfN z@CaC?_1E+F|ELrk7T&ls=zo7@{H=*Q2#?+cRG-(=zU4c?J7KS=SoWRtu*XBQT>48M zFyC1|H~w1xp(c)1gI>ocoWYGarjzQ|AFH}zC4JF&?M(v2wLtoHo^YiQQyEZS8U1Qn z7f_#|8z?fn`txm5fah;xrX@wvLN$<+Mlgy}ulPgTZg`?L)il@h=5wyxN~0{uuK z^8LPLM!C$_(WiU;o}65h0%qQxI#a);-1E6VOh01UDx*NfYu1LT+Qs^m4`j^$fxdpn z-<#`biC%!#eY!W$VAwvxTxnC9DSbc!vA5>O^pZ!Ge9I|{r@Z#Bu+zssriGrGpiGv&fpK$);J3Kt)!e^6B zn@{RgIYT;G%F2vfwT|xK=DpQV^>7$p*eLRq%GM(HHAC8qi`@%6lR7+~YV)l^y@>xp zfL-SqJAOfwX&yADMFV|4%iX#M&s0p!Ku5|OQ z5F*e+z527dkKocO=#h{m^}Rv(LE6_|8OH`sP(5-YE*|%0Du2klCxGbbN4YWnA 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 z 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�si?I)w$9u(%3C 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

eTMNhD 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 Date: Thu, 13 Oct 2022 13:57:28 +0100 Subject: [PATCH 8/8] docs(redis): remove "fake" redis connection strings --- .../04_populate_rq_task_queue/README.md | 4 ++-- .../05_rq_background_worker/README.md | 10 +++------- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/README.md b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/README.md index 861e7975..f0204210 100644 --- a/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/README.md +++ b/docs/docs/12_task_queues_emails/04_populate_rq_task_queue/README.md @@ -76,10 +76,10 @@ def send_user_registration_email(email, username): Remember to change "Your Name" in `from` to whatever name you want your emails to come from! ::: -Next up, let's get our Redis connection string and add it to the `.env` file: +Next up, add the Redis connection string that we got in the [previous section](../what_is_task_queue) to the `.env` file: ```text title=".env" -REDIS_URL="rediss://red-ct8aen0hkl10:MnLs0mmrX7MBXWRkdrh49@frankfurt-redis.render.com:6379" +REDIS_URL="" ``` And then let's go to our User resource and add a couple of imports: diff --git a/docs/docs/12_task_queues_emails/05_rq_background_worker/README.md b/docs/docs/12_task_queues_emails/05_rq_background_worker/README.md index 6670fdfa..52ecb807 100644 --- a/docs/docs/12_task_queues_emails/05_rq_background_worker/README.md +++ b/docs/docs/12_task_queues_emails/05_rq_background_worker/README.md @@ -8,7 +8,7 @@ To do this, we'll run a background worker whose job it is to pop items off the q If you are using MacOS or Linux, you can run the background worker for testing using this command (make sure your virtual environment is active): ```bash -rq worker -u rediss://red-ccu1t8a0hklj2a10:MnLsMDwImrX7Rkdrhwrp@frankfurt-redis.render.com:6379 emails +rq worker -u emails ``` The `rq` executable is available after installing the `rq` library with `pip`. The `-u` flag gives it the Redis URL to connect to. The `emails` at the end is the name of the queue that it should consume from. Make sure it matches the name of the queue you defined in `resources/user.py`. @@ -42,13 +42,9 @@ docker build -t rest-apis-flask-smorest-rq . Then run a container, but instead of running the default entrypoint (defined by the `CMD` line in the `Dockerfile`), we'll tell it to run the `rq` program: ```bash -docker run -w /app rest-apis-flask-smorest-rq sh -c "rq worker -u rediss://red-caenka10:MnLsmrX7Mrh9sp@frankfurt-redis.render.com:6379 emails" +docker run -w /app rest-apis-flask-smorest-rq sh -c "rq worker -u emails" ``` -:::info -Make sure to enter your own Redis connection string in that command! -::: - This ensures one of the [considerations](https://python-rq.org/docs/#considerations-for-jobs) that the `rq` documentation suggests: that the worker and the work generator (our API) share _exactly_ the same source code. Run another Docker container for your API, and try to register! @@ -68,7 +64,7 @@ docker run -p 5000:5000 rest-apis-flask-smorest-rq sh -c "flask run --host 0.0.0 ```bash -docker run -w /app rest-apis-flask-smorest-rq sh -c "rq worker -u rediss://red-caenka10:MnLsmrX7Mrh9sp@frankfurt-redis.render.com:6379 emails" +docker run -w /app rest-apis-flask-smorest-rq sh -c "rq worker -u emails" ``` :::info