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.5.0
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
In version 0.4.3 the --filter option was added to filter out some values from the run. The option requires an expression similar to --def that evaluates to a boolean value. Any iteration that evaluates to False will be omitted from the run.
$ run 100 --filter "{}%3==0 and {}%5==0"
15
30
45
60
75
90
Examples
Generating a CSV file with a lists of decimal, binary and hexadecimal numbers:
$ echo "dec,bin,oct,hex" > hostnames.csv
$ run 0 255 -f "{0:2},{0:08b},{0:02o},{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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file drang_run-0.5.0.tar.gz.
File metadata
- Download URL: drang_run-0.5.0.tar.gz
- Upload date:
- Size: 18.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.19 {"installer":{"name":"uv","version":"0.11.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d3ec2a7cddc8f724b35ebe3f4ae4f7c8dcf79099e25b66b663c91651fc82cc0
|
|
| MD5 |
6ca35a6c3b8c1cdd78396779a9eeacec
|
|
| BLAKE2b-256 |
ebb61caaba7a4d502b65139ed10c65dd565140160022bcd3df2484214deda188
|