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
- project - a configuration dotenv loader that makes nice parameter accessors
- log - a logger that is pleasing to the author
- 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
776f4e340b45b45e3c87630c7db7dc71e34b10cafbb479504bb3ecf5198465ba
|
|
| MD5 |
b3851db3e838b69bf58b4fbe0a5a93d0
|
|
| BLAKE2b-256 |
4b462c6af9c9fe08e8876d11288420317f26bf0245a22c19d237bca883b51445
|
File details
Details for the file mswappinit-2025.4.22-py3-none-any.whl.
File metadata
- Download URL: mswappinit-2025.4.22-py3-none-any.whl
- Upload date:
- Size: 3.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.6.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b8c9c30ba4d6fb5ce691935f98acecf52a88452016aae75c12c6ef4d267ab850
|
|
| MD5 |
5ac1ab299943a9145971c6b83d280eb3
|
|
| BLAKE2b-256 |
e311bba0a2bb2ab0f9d66e613ac8824f81ed350cb36d6f71e90844f4f1d2b23e
|