Make http requests based on a CSV input file
Project description
csv2http
CLI tool and library for making a series of HTTP requests based on a CSV file input.
Quick start
Install
pip install csv2http
Check CLI usage
❯ csv2http --help
usage: csv2http [-h] [-c CONCURRENCY] [--method {POST,PATCH,PUT}] file url
HTTP request for every row of a CSV file
positional arguments:
file payload csv file
url URL destination - called with `http` if scheme is absent
options:
-h, --help show this help message and exit
-c CONCURRENCY, --concurrency CONCURRENCY
Maximum number of concurrent requests (default: 25)
--method {POST,PATCH,PUT}
HTTP method/verb (default: POST)
Mockbin Example
Make POST calls to http://mockbin.org from a local csv file.
First setup a new bin
, using httpie, curl or the web ui and get a bin id.
❯ http POST mockbin.com/bin/create status:=201 statusText=Created httpVersion=HTTP/1.1 headers:='[]' cookies:='[]' 'content[mimeType]'=application/json --body
"9e95289e-d048-4515-9a61-07f2c74810f5"
Create your my_file.csv
and pass it to csv2http
.
Use the returned bin id from before.
❯ csv2http my_file.csv mockbin.org/bin/9e95289e-d048-4515-9a61-07f2c74810f5 --concurrency 3
POST http://mockbin.org/bin/mockbin.org/bin/9e95289e-d048-4515-9a61-07f2c74810f5
status codes - {200: 3}
status codes - {200: 3}
status codes - {200: 3}
status codes - {200: 1}
Check the bin log from. https://mockbin.org/bin/9e95289e-d048-4515-9a61-07f2c74810f5/log
Roadmap
- As Library - Alpha
- parse csv as dictionary/json - Alpha
- accept mutator function - Alpha
- HTTP POST request with json from csv - Alpha
- limit concurrency - Alpha
- non-blocking file IO - ???
- hooks for response results - Beta
- mkdoc docs - Beta
- As CLI - Beta
- argparse - Alpha
- progress bar - ???
- use dedicated CLI library (typer, rich etc.) - Beta
- Nested fields - V1
- Complete Docs - V1
-
create_mockbin.csv
andexample.csv
to use in quickstart - Beta - examples for using as library
-
- GH Actions CI (lint, test, etc.)
- GH Actions CD (publish to pypi)
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
csv2http-0.0.1a0.tar.gz
(13.1 kB
view details)
Built Distribution
File details
Details for the file csv2http-0.0.1a0.tar.gz
.
File metadata
- Download URL: csv2http-0.0.1a0.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.4 Darwin/21.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 79eeede7907af139cb813f13dd13194282f956c9e9e950e3fe516fc01b28af93 |
|
MD5 | 2940ccd04c18b1fa4bcf76c7ec5a1b68 |
|
BLAKE2b-256 | f23d005feb8243c4b2c0366e4cada964866d8af2040e29ce93f95cfdae269c7b |
File details
Details for the file csv2http-0.0.1a0-py3-none-any.whl
.
File metadata
- Download URL: csv2http-0.0.1a0-py3-none-any.whl
- Upload date:
- Size: 6.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.13 CPython/3.10.4 Darwin/21.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8244fda5b64f14b948be81ea031dcd1beee957501701daf5057107f27793f25 |
|
MD5 | 8196f56c137e9ec8ac3e949525335832 |
|
BLAKE2b-256 | ea3f1edd74ca43b731c419382f96c05286b034cad4e3cc38aa153f82f812be5e |