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.17.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.17-py3-none-any.whl (3.9 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for mswappinit-2025.4.17.tar.gz
Algorithm Hash digest
SHA256 a84f342242e2c1fc2e337195f56b83e8c86a049732c8c1cf335a86323f40511d
MD5 6063a21964273ac8a89a1ac6d57889dc
BLAKE2b-256 61f21c855c1363d3dea2331a00845fca04975ebd7117a8b6b10f61f65415d688

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for mswappinit-2025.4.17-py3-none-any.whl
Algorithm Hash digest
SHA256 2be5378cfd09627ac4493f8a30b7fd184c384b8a44b2657f7a3979fcfb049485
MD5 ffb3b3df7d27daf3e91126bb70248976
BLAKE2b-256 1937130933c4d4aeea8d68889c08a589a142d4a7645c273037edec68b4170e80

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