Skip to main content

a personal, opinionated python app initializer

Project description

mswappinit

This package is expected to only be used by @mwartell for personal development projects. I've published it only after copying it into my third new project and figured an import would be easier. Others are certainly welcome to use it, but I'd be surprised.

This library provides three application bootstrap utilities

  1. project - a configuration dotenv loader that makes nice parameter accessors
  2. log - a logger that is pleasing to the author
  3. quick_db - a pickledb instance for quick and dirty persistence

project

dotenv is used to load environment variables from a file named .env these could be something like: AWS_PROFILE=cluster and these will all be loaded into the environment as expected.

this module provides convenience attribute access to project specific log variables that are loaded from the dotenv file. A PROJECT_NAME must be defined and then all other variables of the form {PROJECT_NAME}_{VAR} can be accessed as attributes of the project object.

For example, if the PROJECT_NAME is "rag" and the dotenv file contains RAG_DATA=/path/to/data then the value of project.data will be the Path object /path/to/data.

For convenience, the values are upcast to the most likely type. For example, if the value is "true" or "false" it will be converted to a boolean. If the value is a number it will be converted to an int or float. If the value is a

log

Using from mswappinit import log creates a development simple logger with log.debug, log.info and so on. Logs only go to stderr.

quick_db

If quick_db is imported, a [pickleDB][https://patx.github.io/pickledb/] instance will be created in project.data. This is a json backed key-value store. Writes should use the context manager:

from mswappinit.quick_db import quick_db
with quick_db:
    db.set("Cyclopedidae", ["Palaeomyrmidon", "Cyclopes didactylus"])

which ensures a quick_db.save() when the context exits.

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

mswappinit-2025.4.22.tar.gz (11.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mswappinit-2025.4.22-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

Details for the file mswappinit-2025.4.22.tar.gz.

File metadata

  • Download URL: mswappinit-2025.4.22.tar.gz
  • Upload date:
  • Size: 11.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.8

File hashes

Hashes for mswappinit-2025.4.22.tar.gz
Algorithm Hash digest
SHA256 776f4e340b45b45e3c87630c7db7dc71e34b10cafbb479504bb3ecf5198465ba
MD5 b3851db3e838b69bf58b4fbe0a5a93d0
BLAKE2b-256 4b462c6af9c9fe08e8876d11288420317f26bf0245a22c19d237bca883b51445

See more details on using hashes here.

File details

Details for the file mswappinit-2025.4.22-py3-none-any.whl.

File metadata

File hashes

Hashes for mswappinit-2025.4.22-py3-none-any.whl
Algorithm Hash digest
SHA256 b8c9c30ba4d6fb5ce691935f98acecf52a88452016aae75c12c6ef4d267ab850
MD5 5ac1ab299943a9145971c6b83d280eb3
BLAKE2b-256 e311bba0a2bb2ab0f9d66e613ac8824f81ed350cb36d6f71e90844f4f1d2b23e

See more details on using hashes here.

Supported by

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