Skip to main content

Helpers to bild a CLI program

Project description

cli-base-utilities

tests codecov cli-base-utilities @ PyPi Python Versions License GPL-3.0-or-later

Helpers to build a CLI program

start development

~$ git clone https://github.com/jedie/cli-base-utilities.git
~$ cd cli-base-utilities
~/cli-base-utilities$ ./dev-cli.py --help

dev CLI

Usage: ./dev-cli.py [OPTIONS] COMMAND [ARGS]...

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --help      Show this message and exit.                                                          │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────╮
│ check-code-style            Check code style by calling darker + flake8                          │
│ coverage                    Run tests and show coverage report.                                  │
│ fix-code-style              Fix code style of all cli_base source code files via darker          │
│ install                     Run pip-sync and install 'cli_base' via pip as editable.             │
│ mypy                        Run Mypy (configured in pyproject.toml)                              │
│ publish                     Build and upload this project to PyPi                                │
│ safety                      Run safety check against current requirements files                  │
│ test                        Run unittests                                                        │
│ tox                         Run tox                                                              │
│ update                      Update "requirements*.txt" dependencies files                        │
│ update-test-snapshot-files  Update all test snapshot files (by remove and recreate all snapshot  │
│                             files)                                                               │
│ version                     Print version and exit                                               │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯

DEMO app CLI

Usage: ./cli.py [OPTIONS] COMMAND [ARGS]...

╭─ Options ────────────────────────────────────────────────────────────────────────────────────────╮
│ --help      Show this message and exit.                                                          │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────╮
│ demo-endless-loop                Just a useless example command, used in systemd DEMO: It just   │
│                                  print some information in a endless loop.                       │
│ demo-verbose-check-output-error  DEMO for a error calling                                        │
│                                  cli_base.cli_tools.subprocess_utils.verbose_check_output()      │
│ edit-settings                    Edit the settings file. On first call: Create the default one.  │
│ print-settings                   Display (anonymized) MQTT server username and password          │
│ systemd-debug                    Print Systemd service template + context + rendered file        │
│                                  content.                                                        │
│ systemd-remove                   Write Systemd service file, enable it and (re-)start the        │
│                                  service. (May need sudo)                                        │
│ systemd-setup                    Write Systemd service file, enable it and (re-)start the        │
│                                  service. (May need sudo)                                        │
│ systemd-status                   Display status of systemd service. (May need sudo)              │
│ systemd-stop                     Stops the systemd service. (May need sudo)                      │
│ version                          Print version and exit                                          │
╰──────────────────────────────────────────────────────────────────────────────────────────────────╯

Generate project history base on git commits/tags

Add a test case similar to cli_base/tests/test_readme_history.py into your project. Add the needed start/end comments into your README.

To make a new release, do this:

  • Increase your project version number
  • Run tests to update the README
  • commit the changes
  • Create release

history

  • v0.6.0
    • 2023-12-02 - NEW: Code style tools
  • v0.5.0
    • 2023-12-01 - fix flake8
    • 2023-12-01 - NEW: test utils: AssertLogs() context manager
    • 2023-12-01 - Bugfix expand_user() if SUDO_USER is the same as current user
    • 2023-12-01 - Add "run_coverage()" to "dev_tools" and polish tox, unittest, too.
    • 2023-12-01 - add tests for EraseCoverageData()
    • 2023-12-01 - Apply manageprojects updates
  • v0.4.5
    • 2023-11-30 - Configure unittests via "load_tests Protocol" hook
    • 2023-11-30 - Update requirements and add "flake8-bugbear"
    • 2023-11-30 - Remove function calls in function agruments
  • v0.4.4
    • 2023-11-01 - Bugfix "AssertionError: Expected only one line" in Git.first_commit_info()
Expand older history entries ...
  • v0.4.3
    • 2023-11-01 - Git history renderer: Collapse older entries
  • v0.4.2
    • 2023-11-01 - Remove duplicate git commits and keep only test last one, e.g.: "update requirements"
    • 2023-11-01 - Bugfix git history: Add commits before the first tag
  • v0.4.1
    • 2023-10-08 - Remove commit URLs from history and handle release a new version
    • 2023-10-08 - NEW: Generate a project history base on git commits/tags.
    • 2023-10-08 - Update requirements
    • 2023-09-26 - Update README.md
  • v0.4.0
    • 2023-09-24 - fix tests
    • 2023-09-24 - Add UpdateTestSnapshotFiles() Context Manager
    • 2023-09-24 - coverage: Refactor setup and add helpers
    • 2023-09-24 - Update requirements
  • v0.3.0
    • 2023-08-17 - Bugfix tests run in terminal
    • 2023-08-17 - update requirements
    • 2023-08-17 - NEW: cli_base.cli_tools.git and cli_base.cli_tools.version_info
  • v0.2.0
    • 2023-08-09 - Project setup updates
    • 2023-05-22 - Update README.md
    • 2023-05-22 - Rename project "cli-base" to "cli-base-utilities"
    • 2023-05-22 - Add github CI config
    • 2023-05-22 - Add subprocess_utils from manageprojects
    • 2023-05-21 - init

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

cli-base-utilities-0.6.0.tar.gz (81.2 kB view details)

Uploaded Source

Built Distribution

cli_base_utilities-0.6.0-py3-none-any.whl (71.4 kB view details)

Uploaded Python 3

File details

Details for the file cli-base-utilities-0.6.0.tar.gz.

File metadata

  • Download URL: cli-base-utilities-0.6.0.tar.gz
  • Upload date:
  • Size: 81.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for cli-base-utilities-0.6.0.tar.gz
Algorithm Hash digest
SHA256 e403c6e584508aa69cc093b7a325127f6ef9835624e4fde7f104e941314645a9
MD5 7ded0b0694fdc9178c81eae22dc99556
BLAKE2b-256 a6420542eadd79d44c84865cc5221d614ca5eee3469b7917f72488ef49d7172d

See more details on using hashes here.

Provenance

File details

Details for the file cli_base_utilities-0.6.0-py3-none-any.whl.

File metadata

File hashes

Hashes for cli_base_utilities-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c3e0efafca519f7f79a1aff67d099987d849f1c3d795c4e605b6b9be49537712
MD5 933e26e612742a013d70f1cdae097cef
BLAKE2b-256 3a6e79d3b6307a0132ee8f36809e9f37673495c0ef5f4f2e721aabcf124379fe

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page