Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

qsv_duct-0.0.2.tar.gz (5.4 kB view details)

Uploaded Source

Built Distribution

qsv_duct-0.0.2-py2.py3-none-any.whl (8.2 kB view details)

Uploaded Python 2 Python 3

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

Hashes for qsv_duct-0.0.2.tar.gz
Algorithm Hash digest
SHA256 b92c46c637164e8c65fe2c6900414b494f8a648429d249951bde42e4bf339967
MD5 34bc8c1de3e7fc2f8c8854f98683ad39
BLAKE2b-256 56108a6d585228045a067245978fee72a6e127602103e40942fba3c4ff3cc3f4

See more details on using hashes here.

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

Hashes for qsv_duct-0.0.2-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 d482715e099ac2b32041a72c19974f792c58cbb90eeafc8c853a6fd41ea08285
MD5 eb9ecf40327e8b0b2ea67fcaed817fc6
BLAKE2b-256 b65d92534603eb69c6fb6e1c409730e72f0f59fce7b1e1a44345f77d0b3e64d1

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