shshsh 🐍❤️🐚
Shshsh is a bridge connects python and shell.
- A simple way to write shell in python.
- Flexable.
- Support directly chain a python function in pipe.
Installation
To install shshsh with pip, run: pip install shshsh
To install shshsh with conda, run: conda install shshsh -c conda-forge
To install shshsh from source, clone the repository and run: pip install poetry;poetry install
Basic Usage
You can use I >> "[command]" or Sh("[command]")in any Python object.
Here's an example of get all file which name contains "test":
from shshsh import I
for filename in I >> "ls" | "grep test":
print(filename)
Also, you can safely pass parameter without command injection, shshsh will help you escape all bash control character:
from shshsh import I
from sys import stdout
(I >> "echo #{}") % "dangerous; cat /etc/passwd" | stdout
# dangerous; cat /etc/passwd
Python function or iterable can be part of chain, you no longer have to search Google (or chatgpt) repeatedly to write sed or awk😇:
from shshsh import I
from sys import stdout
# as map function
def add_suffix(line: str) -> str:
return line + ".py"
I >> "ls -alh" | add_suffix | "grep test" | stdout
# as data source
def data_source():
for i in range(10):
yield f"test{i}"
I >> data_source() | "grep test1" | stdout
Metadata
Release files for shshsh 1.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| shshsh-1.0.0.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| shshsh-1.0.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.3 kB
Release files / shshsh-1.0.0.tar.gz
| Download URL | shshsh-1.0.0.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7670c0b77b2c9f41791ea5c45b664fb2583dc7bb4ef3f192c68eb1e9b442dab3
|
|
BLAKE2b-256 checksum How to use checksums |
79a0897ef78eaec55d8cc2b8f0b9a66e05721d3032dbb693a540780a3e9621c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.5.1 CPython/3.9.13 Linux/6.4.6-arch1-1
|
Release files / shshsh-1.0.0-py3-none-any.whl
| Download URL | shshsh-1.0.0-py3-none-any.whl |
|---|---|
| Size | 8.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ba0de0778a536162b557c6e9edf8cadc23bab820130d70e7a8fb48b6a4a6e34d
|
|
BLAKE2b-256 checksum How to use checksums |
1991e2c4bf7add6baf2d6601723124566b6f20135acd8eae879f279c5cbff789
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.5.1 CPython/3.9.13 Linux/6.4.6-arch1-1
|