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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
|