Python wrapper based on the qsv CLI tool
Project description
qsv-duct
Python wrapper you may use to call qsv commands using duct.py for composability.
This library is compatible with qsv v0.128.0. Not all commands are available (see src/qsv/__init__.py
for available commands).
Make sure you have qsv installed on your system first and can access it anywhere as a PATH
command.
To install this library run:
pip install qsv-duct
Basic example
We have a file fruits.csv
with the following contents:
fruit,price
apple,2.50
banana,3.00
strawberry,1.50
Let's count the total number of non-header rows in fruits.csv
using qsv.count
:
import qsv
qsv.count("fruits.csv", run=True)
The following output gets printed to stdout:
3
Reading output to a variable
You may want to save the output value to a variable and use it in your code. Use the read
parameter instead of run
. For example:
non_header_row_count = qsv.count("fruits.csv", read=True)
print(non_header_row_count)
Piping commands
Since this library uses duct.py, you may access the command as an Expression
type by not passing read
and run
.
For example, let's say we want to get the first two rows of fruits.csv
with qsv.slice
. Normally we would use run
to run the command:
qsv.slice("fruits.csv", length=2, run=True)
fruit,price
apple,2.50
banana,3.00
If we want to display this output in a pretty format, we can pipe qsv.slice
into qsv.table
:
qsv.slice("fruits.csv", length=2).pipe(qsv.table()).run()
fruit price
apple 2.50
banana 3.00
If you use the duct.py
library you can also pipe qsv commands with other bash-related commands using the duct
library's cmd
function. For example:
import qsv
from duct import cmd
cmd("cat", "fruits.csv").pipe(qsv.table()).run()
fruit price
apple 2.50
banana 3.00
strawberry 1.50
Testing
You can run the tests with the pytest package:
pytest
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 qsv_duct-0.0.2.tar.gz
.
File metadata
- Download URL: qsv_duct-0.0.2.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b92c46c637164e8c65fe2c6900414b494f8a648429d249951bde42e4bf339967 |
|
MD5 | 34bc8c1de3e7fc2f8c8854f98683ad39 |
|
BLAKE2b-256 | 56108a6d585228045a067245978fee72a6e127602103e40942fba3c4ff3cc3f4 |
File details
Details for the file qsv_duct-0.0.2-py2.py3-none-any.whl
.
File metadata
- Download URL: qsv_duct-0.0.2-py2.py3-none-any.whl
- Upload date:
- Size: 8.2 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d482715e099ac2b32041a72c19974f792c58cbb90eeafc8c853a6fd41ea08285 |
|
MD5 | eb9ecf40327e8b0b2ea67fcaed817fc6 |
|
BLAKE2b-256 | b65d92534603eb69c6fb6e1c409730e72f0f59fce7b1e1a44345f77d0b3e64d1 |