Skip to main content

A comprehensive Python library of standard CLI utilities for convenient command, I/O, and file handling.

Project description

PyPI GitHub last commit GitHub Release Date

CLIbrary

A comprehensive Python library of standard CLI utilities for convenient command, I/O, and file handling.

CLIbrary is a comprehensive Python library that makes command line usage, input/output, and file handling easier and more efficient. It provides a wide range of tools for interacting with a shell, including essential utilities for command line parsing and I/O, file manipulations, tab completion, and command hinting. With these tools, CLIbrary makes it easy to integrate powerful command-line functionality into any Python project.
Additionally, it now also provides a history feature for tracking and re-executing previous commands.

Make sure to take a look at the documentation, at the contributing guidelines and at the examples.

Installation

Installing CLIbrary

CLIbrary can be installed from PyPI by:

python3 -m pip install --upgrade CLIbrary

Verify installation

The installation of CLIbrary can be verified by:

python3 -m CLIbrary

which would return something similar to[^1]:

 ●  CLIbrary v1.7.2 
A comprehensive Python library of standard CLI utilities for convenient command, I/O, and file handling.
Developed by Andrea Di Antonio, more on https://github.com/diantonioandrea/CLIbrary
Documentation on https://github.com/diantonioandrea/CLIbrary/blob/main/docs.md
Bug tracker on https://github.com/diantonioandrea/CLIbrary/issues

[^1]: Example referring to version 1.7.2

Importing CLIbrary

CLIbrary can be imported by:

import CLIbrary

Examples

These are some examples from existing projects[^2].

Command line interface

An example from openTree

import CLIbrary

...

cmdHandler = {"request": "[" + user.name + "@" + name + "]"}
cmdHandler["style"] = Fore.MAGENTA

cmdHandler["helpPath"] = helpPath

...

cmdHandler["allowedCommands"] = ["set", "password", "delete", "new"]

...

command = CLIbrary.cmdIn(cmdHandler)

cmd = command["command"]
sdOpts = command["sdOpts"]
ddOpts = command["ddOpts"]

[^2]: "..." indicates missing code.

Asking for input

Some examples from openBriefcase

import CLIbrary

...

class account:
	def __init__(self, otherNames: list):
		self.name = CLIbrary.strIn({"request": "Account name", "space": False, "blockedAnswers": otherNames})
		self.start = CLIbrary.numIn({"request": "Starting balance"})

...

class movement:
	def __init__(self, otherCodes: list):
		...

		self.reason = CLIbrary.strIn({"request": "Movement reason", "allowedChars": ["-", "'", ".", ",", ":"]})
		self.amount = CLIbrary.numIn({"request": "Movement amount"})
		self.date = CLIbrary.dateIn({"request": "Movement date"})

		...

		self.confirmation = CLIbrary.boolIn({"request": "Verify \"" + str(self) + "\""})

Loading and dumping a file

An example from openTree

import CLIbrary

...

user = openTree.user()

fileHandler = {"path": dataPath + user.name, "ignoreMissing": True}
userData = CLIbrary.aLoad(fileHandler)

...

fileHandler["data"] = user
CLIbrary.aDump(fileHandler)

Set values for global settings

An example from openTree

import CLIbrary

...

CLIbrary.data.setting_fileExtension = ".ot"

...

if userData.darkTheme:
	CLIbrary.style.setting_darkMode = True

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

clibrary-1.10.0.tar.gz (27.3 kB view details)

Uploaded Source

Built Distribution

clibrary-1.10.0-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file clibrary-1.10.0.tar.gz.

File metadata

  • Download URL: clibrary-1.10.0.tar.gz
  • Upload date:
  • Size: 27.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for clibrary-1.10.0.tar.gz
Algorithm Hash digest
SHA256 c393517b913967f4e370e39f697ffe54d4f5121a1153008a50ec3d893d093fe3
MD5 74e80476eb14975c0e1c1b013ea038cf
BLAKE2b-256 010c75db84a100cc373528642291f01aa0469a38f685aa78cd5600aaf54b674f

See more details on using hashes here.

File details

Details for the file clibrary-1.10.0-py3-none-any.whl.

File metadata

  • Download URL: clibrary-1.10.0-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for clibrary-1.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9d864543ff6df995858322afd0a240277595ee18453441e00724953fd1e906e3
MD5 a39dd7239bcf818a0568c17fd237d072
BLAKE2b-256 6905835907e3d108ff0e7dbc25409308ec0788e48c7507a2739f8e14d027b229

See more details on using hashes here.

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