Integration of shell and basic GNU core unilities for better coding.
Project description
niceshell - Python 3 module for better shell coding
Requirements
- Python 3.6+ (tested on 3.6.0)
Installation
Automatic installation
python3 -m pip install niceshell
Manual installation
cd /tmp/
version=1.2.0 # Choose desired version
wget -c "https://github.com/Andrew15-5/niceshell/releases/download/v${version}/niceshell-${version}-py3-none-any.whl"
python3 -m pip -U --user install niceshell-${version}-py3-none-any.whl
Usage
from niceshell import *
ext = "py"
process1 = ls(f"*.{ext}", batch=True)
if process1.exit_code():
print("No Python scripts here. :(")
print("stderr:", process1.error_output(), end='')
exit(1)
process2 = ls(f"*.{ext}", True).shell("head -n 5")
print("stdout:", process2.output(), end='')
files = process2.get_lines()
ln(files, "/tmp/").wait()
Important note
Due to different preferences among coders some things like:
- raised error instead of silencly returned error code or None
- type of raised error and its message;
- behavior of edge cases (the way parameter's data is handled);
- parameter names and their ordinal position
- behavior of command with provided input text (with sudo)
can be inconvenient to some extent for someone and be perfect for others. Therefore, I encourage everyone to test result of each function, method, variable, constant, etc. to be 100% sure of how your script/program/app will handle every situation.
There are some tests in "tests" directory (./niceshell/tests/) to get you started. And of course you can see implementation of whatever the module provides for better understanding of what you are looking for.
Complete list of modules and their functions/classes
Note: list can be exteneded in future updates.
- __init__
- GID ($USER's group ID)
- GROUP ($USER's group name)
- HOME ($USERS's home dir aka '~')
- UID ($USER's ID)
- USER ($USER)
- core
- expose_tilde()
- normalize_short_and_long_args()
- quotes_wrapper()
- shell()
- Shell
- ShortArgsOption
- extra
- force_sudo_password_promt()
- get_root_privileges()
- get_root_privileges_or_exit()
- has_root_privileges()
- list_dirs()
- list_files()
- gnu_coreutils
- cd()
- cp()
- ln()
- ls()
- mv()
- rm()
TODO list
- Add functions to get dirs and files from path
- Add ability to install module via pip
- Add ability to get command's output and pipe it to another command
- Add function that check if sudo can be used without password
- Add ability to provide input to command in core.Shell
- Add cd
- Add mv
- Add rm
- Add cp
- Add shell() function for chain to start from small 's'
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file niceshell-1.2.0.tar.gz
.
File metadata
- Download URL: niceshell-1.2.0.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e770f1a9e39d1981792be30b64b0e62607a4a379378d0dc2fd8e2c642299c359 |
|
MD5 | 27524dbd764486aa11f8f6ce9fef3223 |
|
BLAKE2b-256 | c0f085ba9a4ec18304909669c898716f280e88c146ce52ba34fdfbbda7c3774d |
File details
Details for the file niceshell-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: niceshell-1.2.0-py3-none-any.whl
- Upload date:
- Size: 17.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.8.2 pkginfo/1.8.2 requests/2.22.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.8.10
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f786e5214e0902f11d061f1639c6c3af376fc20314ad42af5ef47de97fd7d3a |
|
MD5 | 82baa57109716d1d953486ae421808c6 |
|
BLAKE2b-256 | d0e885e061e03fc88fc2e238083588d83289a6423c727b5c8c6dba58ce9dc83b |