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 hashes)

Uploaded Source

Built Distribution

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

Uploaded 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