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.16.tar.gz (11.3 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.16-py3-none-any.whl (3.8 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for mswappinit-2025.4.16.tar.gz
Algorithm Hash digest
SHA256 892eed34c819e330635f94a125c226061422300e321949c2c8a9bfef1dbafb65
MD5 4bebce380b5ca0ce69f4f182130d89ea
BLAKE2b-256 cc629ebe91b2b0c55f33b4f701588967fbcfc6c1e87d7885bf4574bc5e9d6426

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mswappinit-2025.4.16-py3-none-any.whl
Algorithm Hash digest
SHA256 2e0513e2b07cee3e324a1f60bd5fc724753b654a9326065721e744e69c14d0ab
MD5 cbedf20174d50b402a3f9108de6f7937
BLAKE2b-256 2642eb981a244b7184f9c4a6d8a9b5efd23851305b2cb37ee4e8fa3d37ad0ffb

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