Skip to main content

pidprobe

CI codecov PyPI Python License: MIT

Structured JSON snapshots of running CPython 3.14+ processes via PEP 768 - no agent, no restart, no gdb

Quickstart

pip install pidprobe
# or
uv add pidprobe
from pidprobe import add

result = add(1, 2)  # 3

Design Philosophy

Every choice in this template has a reason. If you disagree with a decision, you know exactly what to change and why it was there in the first place.

Why src/ layout?

The src/ layout prevents accidental imports of the local package during development and testing. It ensures that tests always run against the installed version, catching packaging errors before they reach users.

Why strict mypy + comprehensive Ruff rules?

Type errors and lint issues are cheapest to fix at write time. Strict settings from day one mean every line of code is held to the same standard — there is never a "legacy" codebase to clean up. LLMs generating code also benefit from strict rules: they produce higher-quality output when constraints are clear.

Why zero runtime dependencies?

A library template should not impose opinions about logging, HTTP clients, or data validation. You add what you need. Starting from zero keeps the dependency tree small and avoids conflicts with downstream users.

Why Just over Make?

Just has cleaner syntax (no mandatory tabs), better cross-platform support, and more readable recipe definitions. It is a task runner, not a build system — which is exactly what a Python project needs.

Why AGENTS.md and .claude/?

AI-assisted development is the norm, not the exception. AGENTS.md gives any coding agent (Claude Code, Codex, Cursor, Gemini CLI, ...) the context it needs to match your project's standards; CLAUDE.md imports it and adds Claude Code specifics. The committed .claude/ directory goes further than prose: path-scoped rules load conventions only when relevant files are touched, hooks deterministically auto-format edited files, block edits to uv.lock/.env* and --no-verify/force-push commands, and run ruff + mypy before the agent ends a turn, while a reviewed permission allowlist covers local build/lint/test commands only — commit, push, and PR creation always stay behind human approval.

Why 80% coverage minimum?

80% is high enough to catch most regressions but low enough to avoid test-for-the-sake-of-testing. Branch coverage is enabled, so conditional logic is meaningfully tested.

Development

See CONTRIBUTING.md for full setup instructions.

uv sync --all-groups
# Optional but recommended when working in a Git checkout
uv run pre-commit install --install-hooks
just check

just install installs pre-commit hooks automatically when the project lives in a Git repository and skips that step for "Use this template" bootstrap copies before Git is initialized.

For packaging verification, run just smoke (or uv build && uv run python scripts/smoke_test.py) to install the freshly built wheel into a temporary virtual environment and confirm the distribution imports from the wheel, not from src/.

Documentation

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pidprobe-0.0.1.tar.gz (86.4 kB view details)

Uploaded Source

Built Distribution

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

pidprobe-0.0.1-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

File details

Details for the file pidprobe-0.0.1.tar.gz.

File metadata

  • Download URL: pidprobe-0.0.1.tar.gz
  • Upload date:
  • Size: 86.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for pidprobe-0.0.1.tar.gz
Algorithm Hash digest
SHA256 d162fa8b24a44b7a16309f6f7cf4956a6735e6a8cc14022bbfa14a599fbe2d97
MD5 8a7a9975965601744b98ff1b55842b0f
BLAKE2b-256 8547e0a39fdf2e1e8242863642d9aa711bd505a22147ae58689f4fffcba3f694

See more details on using hashes here.

File details

Details for the file pidprobe-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: pidprobe-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 4.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.14.6

File hashes

Hashes for pidprobe-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 fa7daa950399fbd1ab602a16ba2dfd90c2afb175e7fd2cd27a8dd04966317a96
MD5 2e49c29637349c7c1e41075bc4bd574d
BLAKE2b-256 923f859c447e31cc8f97975e24d585c42ede25177a660456057bb4c6a0a3424a

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