Skip to main content

Swiss-army knife for Python scripts. Includes logging, HTTP status codes, and more.

Project description

Dagwood

PyPI version License: MIT

Dagwood Bumstead

Dagwood is a Swiss Army knife for Python, a collection of small utilities that I find myself using over and over again. It's named after Dagwood Bumstead, the sandwich-loving husband of Blondie in the eponymous comic strip.

Why "Dagwood"? Because a.) I like sandwiches, and b.) the name was available on PyPI.

To install Dagwood, run:

pip install dagwood

Available Utilities

Logging

To quickly set up a logger:

import dagwood
logger = dagwood.assemble()

This will create a logger with default settings: log level set to INFO and log messages formatted as '%(asctime)s - %(levelname)s - %(message)s'. Logs will be written to a folder named logs.

You can customize the log folder, log file name, log level, and log format by passing optional parameters to assemble.

  • folder_name: The name of the folder to store log files (default: 'logs')
  • file_name: The name of the log file (default: None, which generates a log file with a timestamp)
  • level: The log level (default: logging.INFO)
  • format: The log format (default: '%(asctime)s - %(levelname)s - %(message)s')
logger = dagwood.assemble(folder_name='my_logs', file_name='app.log', level=logging.DEBUG, format='%(levelname)s - %(message)s')

HTTP Codes

An easy way to check the meaning of an HTTP status code:

from dagwood import http_codes

# Example of interpreting an HTTP code
CODE = 500
response = http_codes.interpret(CODE)

print(response.message)  # 'Internal Server Error'
print(response.explanation)  # 'The server has encountered a situation it does not know how to handle.'

# Checking the type of the response
types = http_codes.get_enums()
if response.type == types.SERVER_ERROR:
    # Handle server error
    pass

You can also retrieve the different types of HTTP responses:

types = http_codes.get_enums()
print(types)  # ['Informational', 'Success', 'Redirection', 'Client Error', 'Server Error']

Contributing

Feel free to open an issue or submit a pull request.

To publish a new version to PyPI:

pip install twine # if you don't have it already
python setup.py sdist bdist_wheel # build the package
twine upload dist/* # upload to PyPI

Development

Running Tests

The test suite can be run using Python's built-in unittest framework.

Navigate to the tests directory and run:

python -m unittest test_dagwood.py

Or, if you're in the root directory:

python -m unittest tests/test_dagwood.py

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

dagwood-2.0.0.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

dagwood-2.0.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file dagwood-2.0.0.tar.gz.

File metadata

  • Download URL: dagwood-2.0.0.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for dagwood-2.0.0.tar.gz
Algorithm Hash digest
SHA256 a07f7c2141a6724c65d800e08064e6bb3259bcea20737eaf29426e219bdf85d4
MD5 b64c4d44b30756e3abae758dcd175950
BLAKE2b-256 04486d32612436a356abb6d59a36dbfda8e9a0cce88388784898fb0c868e7d11

See more details on using hashes here.

File details

Details for the file dagwood-2.0.0-py3-none-any.whl.

File metadata

  • Download URL: dagwood-2.0.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.12

File hashes

Hashes for dagwood-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aa110b036f9dfe28bcf9e5e7519a8e0662437369d1c7f02a3b44e6c912251084
MD5 e45db5d65f0ef80bd27e4d45e6147855
BLAKE2b-256 c89b846b3da0210389e4771fa92171038d03bb78a6607fb3c4722af84e1607e0

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