Skip to main content

Security-focused modular developer multi-tool CLI.

Project description

Developer Utility Toolkit

CI Security GHCR Coverage

Security-focused, modular, format-aware Python CLI for common developer tasks.

Features

  • Automatic input detection for text, JSON, XML, Base64, URL, and file extension types
  • Direct format conversion using a plugin-based transformer registry
  • JSON and XML formatting, minification, and validation
  • Encoding tools (Base64 and URL encode/decode)
  • Binary/Hex/Text/Base64 conversion utilities
  • Interactive conversion mode (choose format by number/letter and print all direct outputs)
  • Image pixelation utility (optional pillow)
  • Sitemap generator and sitemap fetcher with URL validation and request timeouts
  • Local command history (~/.developer_utility_toolkit/history/history.jsonl)

Architecture

  • src/toolkit/core: abstractions, registry, detector, and safe I/O helpers
  • src/toolkit/transformers: pluggable one-step transformers
  • src/toolkit/formatters: JSON/XML format/minify/validate services
  • src/toolkit/image_tools: image utilities
  • src/toolkit/web_tools: sitemap generation/fetching
  • src/toolkit/history: local history service
  • src/toolkit/cli.py: Typer entrypoint and command wiring

Design choices:

  • No chained transformations by default (one direct transform per request target)
  • Safe XML parsing via defusedxml
  • Controlled output writes via sanitized filename + output directory constraints
  • Clear failure modes with explicit non-zero exit codes

Installation

Install from PyPI:

python -m pip install --upgrade pip
pip install developer-utility-toolkit

Install with all optional features:

pip install "developer-utility-toolkit[all]"

Install isolated with pipx (recommended for CLI tools):

pipx install developer-utility-toolkit

Docker (Alternative Install)

Install via GitHub Packages container (GHCR):

docker pull ghcr.io/artenisalija/developer-utility-kit:latest

Run help:

docker run --rm ghcr.io/artenisalija/developer-utility-kit:latest --help

Run a command with mounted files:

docker run --rm -v "$PWD:/work" -w /work ghcr.io/artenisalija/developer-utility-kit:latest format --kind json --file input.json --output output.json

Install developer tooling:

pip install ".[all,dev]"

Usage

toolkit analyze --text '{"name":"dev"}'
toolkit convert --from text --to base64 --text "hello"
toolkit convert-all --text "hello" --from text
toolkit convert-all --text "hello" --ask
toolkit format --kind json --text '{"b":2,"a":1}'
toolkit validate --kind xml --text '<root><a>1</a></root>'
toolkit minify --kind json --text '{"b":2,"a":1}'
toolkit image pixelate --input-file ./input.png --output-name output.png
toolkit sitemap generate --base-url https://example.com --path / --path /docs
toolkit sitemap fetch --url https://example.com/sitemap.xml
toolkit recent show --limit 10

Security Philosophy

  • Secure defaults and explicit input validation
  • Defused XML parser to prevent XXE/entity expansion attacks
  • No eval/exec usage
  • Timeout-controlled network calls
  • Sanitized output file names with constrained output directories
  • Graceful errors with explicit status codes

Development

Run local quality gates:

ruff check .
black --check .
mypy src tests
pytest
bandit -r src -ll
pip-audit --strict
safety check --full-report

Pre-commit:

pre-commit install
pre-commit run --all-files

CI/CD

  • ci.yml: lint + format + mypy + tests + coverage (>=85%) on Python 3.11/3.12
  • security.yml: Bandit + pip-audit + Safety
  • release.yml: runs on version tags (v*.*.*), builds wheel/sdist, runs tests, publishes to PyPI, creates GitHub release notes
  • ghcr.yml: builds and publishes multi-arch Docker images to GHCR (ghcr.io/artenisalija/developer-utility-kit)
  • Dependabot enabled for Python packages and GitHub Actions

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

developer_utility_toolkit-0.1.2.tar.gz (17.7 kB view details)

Uploaded Source

Built Distribution

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

developer_utility_toolkit-0.1.2-py3-none-any.whl (19.3 kB view details)

Uploaded Python 3

File details

Details for the file developer_utility_toolkit-0.1.2.tar.gz.

File metadata

File hashes

Hashes for developer_utility_toolkit-0.1.2.tar.gz
Algorithm Hash digest
SHA256 eb5f912512cceb774718f849dd8d998ccfda9baa9b857488fde887422a15fb43
MD5 a1e589149b8513367de2407919c31816
BLAKE2b-256 82e98677a7e152272f67cf205f82a36c85897e490286a2b344342aa1c394c44a

See more details on using hashes here.

File details

Details for the file developer_utility_toolkit-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for developer_utility_toolkit-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 739c2f0e16a70de719ab3f0c74bd178922b5cc5f182d7f592724b8015b76aa2f
MD5 b7b256714956851f7653469013b5f230
BLAKE2b-256 ab09836032cc3c324a4bf2b6e1b69ebda4c697d102bf5b964d5064bd66fe8723

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