Generate a run of integers or characters. Similar to jot and seq.
Project description
A simple command line tool to print sequences of numbers.
drang-run is comparable to jot or seq, but with a more intuitive interface. It was inspired (and named after) a post by Dr. Drang.
Installation
Just install like any other package:
$ pip3 install drang-run
This will install the run command.
$ run --version
run, version 0.4.2
Usage
Basic usage includes up to three arguments:
run [START] STOP [STEP]
[START] and [STEP] are optional and default to 1.
$ run 4
1
2
3
4
$ run 5 8
5
6
7
8
$ run 0 10 3
0
3
6
9
Reverse the sequence with -r:
$ run 4 -r
4
3
2
1
Or switch the arguments:
$ run 4 1 -1
4
3
2
1
Format the output with --format. The option accepts any kind of Python format string.
$ run 998 1002 --format "{: >4}."
998.
999.
1000.
1001.
1002.
You can use decimals for [START], STOP and [STEP]:
$ run 1.1 1.5 .15
1.1
1.25
1.4
Using letters for [START] and STOP will generate character sequences:
$ run d g
d
e
f
g
By default, the items are separated by a newline character \n, but you can change this with -s:
$ run d g -s "\t"
d e f g
Run additional sequences with --also START STOP STEP:
$ run 1 2 --also 3 4 1
1-3
1-4
2-3
2-4
Of course, this can be used with characters and be formatted:
$ run 1 2 --also b c 1 --format "{0:02}. {1}_{1}"
01. a_a
01. b_b
02. a_a
02. b_b
Since version 0.4.0 you can define variables with the --def option. A variable can be set to a simple arithmetic expression that is evaluated with the current counter values. Similar to the format string (-f) the counters can be referenced with {0}, {1} and so on. All defined variables are initialized with 0 and can be used in other expressions, even in the definition of themselves.
$ run 4 --also 1 3 1 --def sum "{0}+{1}" --def akk "{akk}+{sum}" --format "{0} + {1} = {sum} ({akk})"
1 + 1 = 2 (2)
1 + 2 = 3 (5)
1 + 3 = 4 (9)
2 + 1 = 3 (12)
2 + 2 = 4 (16)
2 + 3 = 5 (21)
3 + 1 = 4 (25)
3 + 2 = 5 (30)
3 + 3 = 6 (36)
4 + 1 = 5 (41)
4 + 2 = 6 (47)
4 + 3 = 7 (54)
The expressions allow for some additional functions to be used. Notably the randint(max) and rand() functions for genrating random numbers:
$ run 10 --def r "randint(100)" --format "{r}" -s ,
51,0,55,50,56,43,20,5,51,90
Examples
Generating a CSV file with a lists of decimal, binary and hexadecimal numbers:
$ echo "dec,bin,hex" > hostnames.csv
$ run 0 255 -f "{0:2},{0:08b},{0:02X}" >> numbers.csv
Generating a list of computers in a network with hostnames and IP.
$ echo "room,hostname,ip" > hostnames.csv
$ run 4 --also 1 24 1 --also 1 16 1 -f "{0}{1:02},r{0}{1:02}-{2:02},18.45.{1}{0}.{2}" >> hostnames.csv
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
Built Distribution
File details
Details for the file drang-run-0.4.2.tar.gz
.
File metadata
- Download URL: drang-run-0.4.2.tar.gz
- Upload date:
- Size: 15.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.9.7 Darwin/21.1.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8412ada662b5f189312d44f8840c2a1ed7b8c4d8d4584d402d0bdf4dd75eec03 |
|
MD5 | 997f26e1463006f5a49a205d984647ba |
|
BLAKE2b-256 | d919eea226b47b78b326df6a564c99cb1494cd70c42a7bca68b333e0c45bd1d8 |
File details
Details for the file drang_run-0.4.2-py3-none-any.whl
.
File metadata
- Download URL: drang_run-0.4.2-py3-none-any.whl
- Upload date:
- Size: 13.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.1.11 CPython/3.9.7 Darwin/21.1.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2f21c1ebde12571ad4ae16f65a1228a3eaeb54042725e25de13cee9e610c196 |
|
MD5 | 2e9096d1c5ab867717340b519d944aeb |
|
BLAKE2b-256 | fb3d8fc5ac72cc1e322b6c309efb2cee81c337f501082a9a15cea7d05a4c72ee |