Skip to content

denisecase/datafun-toolkit

Repository files navigation

Data Analytics Fundamentals: Toolkit

PyPI version Latest Release Docs License: MIT CI Deploy-Docs Check Links Dependabot

Privacy-safe diagnostics, paths, and logging helpers for analytics projects.

What This Provides

  • get_logger() for consistent console and file logging
  • log_header() for a standardized run header
  • log_path() for privacy-safe path logging
  • environment helpers: detect_shell(), detect_os(), detect_python()

This toolkit is designed for reuse. It works the same locally and in GitHub Actions.

Install (Choose One)

uv add datafun-toolkit
pip install datafun-toolkit

Example

import logging
from pathlib import Path
from datafun_toolkit.logger import get_logger, log_header, log_path

LOG: logging.Logger = get_logger("P01", level="DEBUG")

ROOT_PATH: Path = Path.cwd()
DATA_PATH: Path = ROOT_PATH / "data"

def main() -> None:
    """Start the main logic."""
    log_header(LOG, "P01 Pipeline")

    LOG.info("START main()")
    log_path(LOG, "ROOT_PATH", ROOT_PATH)
    log_path(LOG, "DATA_PATH", DATA_PATH)
    LOG.info("Working....")
    LOG.info("END main()")

if __name__ == "__main__":
    main()

Developer Setup

Install tools:

  • git
  • uv
  • VS Code

One-time setup:

uv self update
uv python pin 3.14
uv sync --extra dev --extra docs --upgrade

uvx pre-commit install
git add -A
uvx pre-commit run --all-files

Before starting work:

git pull

After working, run checks:

uv run ruff format .
uv run ruff check . --fix
uv run pytest --cov=src --cov-report=term-missing

uv run deptry .
uv run bandit -c pyproject.toml -r src
uv run validate-pyproject pyproject.toml

Build and serve docs:

uv run zensical build
uv run zensical serve

Hit CTRL+c in the VS Code terminal to quit serving.

Save progress frequently (some tools may make changes; you may need to re-run git add and commit to ensure everything gets committed before pushing):

git add -A
git commit -m "update"
git push -u origin main

Annotations

ANNOTATIONS.md

Citation

CITATION.cff

License

MIT

SE Manifest

SE_MANIFEST.md