Skip to main content

Experiment with cookiecutter and docker to create a toyapp

Project description

toyapp

https://img.shields.io/pypi/v/toyapp.svg Docker Image Size (tag)

Abstract

Experiment with cookiecutter and docker to create a robust python tool that can be run directly in a container.

This toy project introduces the following concepts:

  • Creating python packages from a cookiecutter template

  • Basic elements of simple python package, including setuptools, entry points, and testing

  • Adding a simple command line interface thanks to click

  • Using docker to containerize the application

The toy application takes two numbers and a mathemtical operation and returns the result

Quickstart

Install the package with pip.

$ mkdir demo
$ cd demo
$ git clone https://github.com/ian1roberts/toyapp.git
$ cd toyapp
$ pip install .

Try out the command line interface

$ toyapp 1 2 "+"

Note that the operators must be quoted to avoid shell expansion.

Check out the help

$ toyapp --help

Usage: toyapp [OPTIONS] NUM1 NUM2 [OPERATION]

Perform simple arithmetic operations given two numbers and an operator.

If operator is ommited, the default is addition. To prevent * being
interpreted as a wildcard, use quotes around the operator.

--quiet, -q: Don't print the leading message, just return the result.
num1: float - The first number
num2: float - The second number
operation: str -The operation to perform on the two numbers

Evaluates the expression num1 operation num2 and prints the result.

Options:
    -q, --quiet  Don't print the result
    --help       Show this message and exit.

Features

The repository includes a Makefiile and Dockerfile to build and run the application in a container.

To build the container, run make build.

You can also pull the image from dockerhub with docker pull ian1roberts/toyapp:latest

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Appendix

History

0.1.0 (2024-02-23)

  • First release on PyPI.

0.1.2 (2024-02-25)

  • Configure with PyPI

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

toyapp-0.1.2.tar.gz (11.2 kB view hashes)

Uploaded Source

Built Distribution

toyapp-0.1.2-py2.py3-none-any.whl (5.0 kB view hashes)

Uploaded Python 2 Python 3

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