A lightweight CLI tool for text analysis: word counts, readability, top keywords. Built with a full CI/CD pipeline. This page explains the design, automation, and stack behind it before linking to the repo.
A practical project to showcase continuous integration & delivery on a Python CLI tool, covering code quality checks, testing, packaging, publishing, and automation.
Core Functionality: Text analysis CLI (word count, unique words, top terms, readability scores).
Testing: Pytest unit tests, CLI integration tests, coverage reports.
Code Quality: Pre-commit hooks, Black, Flake8, isort, mypy.
CI/CD: GitHub Actions workflow for lint, test, build, publish.
Packaging: PyPI-ready setup with Poetry; versioning & changelogs.
Docs & Badges: README with usage, shields, and workflow status.
Flow: Code → Pre-commit → Tests → Build → Publish (PyPI) → Usage.
Tools chosen for reliability, reproducibility, and smooth hand‑off from experimentation to production.
Running the tool with sample text, showing top terms & readability.
GitHub Actions running tests, lint, and build.
Published package with version and install instructions.
Prereqs: Docker, Make, Python 3.10+
git clone https://github.com/airdmhund1/cicd-textstats
cd cicd-textstats
poetry install # install deps
pytest # run tests
textstats --text "Hello world" --top 5
Environment variables and config files are documented in the repo’s README.