Skip to main content

A set of utilities for placing a message onto a queue for an emailer listener to receive

Project description

mq_email_notifier

Introduction

A set of utilities that provides standard methods to place messages that on a queue that have data to be emailed.

Technology Stack

Language

Python

Development Operations

Docker Compose

Configuration

This package reads configuration values from environment variables.

Installation

$ pip install -i https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple/lts-mqemailnotifier
$ python
>>> from mqresources import mqutils
>>> mqutils.notify_email_message("My Subject", "My Text Body", email@domain.com)

Local Development Environment Setup Instructions

1: Clone the repository to a local directory

git clone git@github.huit.harvard.edu:harvard-lts/mq_email_notifier.git

2: Create app config

Create config file for environment variables
  • Make a copy of the config example file ./env-example.txt
  • Rename the file to .env
  • Replace placeholder values as necessary

Note: The config file .env is specifically excluded in .gitignore and .dockerignore, since it contains credentials it should NOT ever be committed to any repository.

3: Start

START

To build the image without the cache, run the build command with the --no-cache option. The no cache option is required when updating any dependencies.

docker-compose -f docker-compose-local.yml up -d --build --force-recreate

4: Open a shell in the container

Run docker exec to execute a shell in the container by name

Open a shell using the exec command to access the 'email_notifier container.

docker exec -it email_notifier bash

5: Run tests

pytest

6: Install dependencies

This step is only required if additional python dependencies must be installed. Update the requirements.txt inside the container to install new python packages in the project. If the dependencies are required for the package to run, they also must be included in the install_requires section of setup.py.

Install a new pip package

Once inside the mps-mqutils container, run the pip install command to install a new package and update the requirements text file.

pip install packagename && pip freeze > requirements.txt
Add dependencies to setup

Add the names of the dependencies to the install_requires section of setup.py. Read more about adding dependencies in this article Specifying dependencies.

7: Build and publish the package

Step 7A: Prepare the distribution

  • Update the version number in setup.py
  • To publish a pre-release version, add a letter and a number after the version number e.g. 0.0.1a1
  • Remove the old dist/ directory from the previous build if necessary

Step 7B: Build the distribution

Once inside the container, build the distribution.

python3 setup.py sdist bdist_wheel

A new directory dist will be created in the container.

Step 7C: Register for an account

Register for an account on the test python package repository. Enable two-factor authentication for logins. Create a token.

Step 7D: Upload package to the test repository

Publish the package to the test repository testpypi before publishing it to the production repository.

python3 -m twine upload --repository testpypi dist/*

Step 7E: Test the package

Open the package in the repository and view the version history.

https://test.pypi.org/project/lts-mqemailnotifier/1.0.0/

Read Installation in this document for instructions on how to install and test the package in another project or environment.

8: Stop

STOP AND REMOVE

This command stops and removes all containers specified in the docker-compose-local.yml configuration. This command can be used in place of the 'stop' and 'rm' commands.

docker-compose -f docker-compose-local.yml down

More information

Read the documenation for more information on building and publishing the distribution.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lts-mqemailnotifier-0.0.2.tar.gz (4.4 kB view details)

Uploaded Source

Built Distribution

lts_mqemailnotifier-0.0.2-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file lts-mqemailnotifier-0.0.2.tar.gz.

File metadata

  • Download URL: lts-mqemailnotifier-0.0.2.tar.gz
  • Upload date:
  • Size: 4.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.10

File hashes

Hashes for lts-mqemailnotifier-0.0.2.tar.gz
Algorithm Hash digest
SHA256 59a379b16ee004dca9247b48401eb3d0e3198f3335aac5e42b873144ada21ebe
MD5 83101f155e31f46d4d82889d3c8136f6
BLAKE2b-256 c284dd8822bb0049522cfb5cb71f3ed592761b28535d2089e409135c3fef24b1

See more details on using hashes here.

File details

Details for the file lts_mqemailnotifier-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for lts_mqemailnotifier-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 67a43d74439b85a97addd306521b4b1ed8d2d67a776275c0003c3d7c45ea4a0b
MD5 f5c63c9886abfd270417ceaef2470a4d
BLAKE2b-256 6e053b4877f92c85a21224d9f67679d08c4d99598ab3cd3282c8b4359e56c5b9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page