Shuffled is a library for iterating randomly and without repetition over integer ranges. It doesn’t store all the integers in memory so that you can work with ranges of up to 2128 elements, even with your standard RAM available.
pip install shuffledExample: Generating a permutation of integers.
>>> from shuffled import Shuffled
>>> shuffled_range = Shuffled(10)
>>> list(shuffled_range)
[4, 1, 2, 9, 8, 5, 3, 0, 6, 7]
>>> same_shuffled_range = Shuffled(10, seed=shuffled_range.seed)
>>> list(same_shuffled_range)
[4, 1, 2, 9, 8, 5, 3, 0, 6, 7]Example: Listing all IP addresses in a subnet in random order.
>>> import ipaddress
>>> from shuffled import Shuffled
>>> network = ipaddress.IPv4Network('10.0.0.0/8')
>>> shuffled_range = Shuffled(network.num_addresses)
>>> for index in shuffled_range:
... print(network[index])
...
10.24.41.126
10.67.199.15
10.240.82.199
10.79.219.74
10.166.105.25
10.19.5.91
# Continues for all 16M addresses in the subnet- Update the changelog.
- Bump the version identified in
pyproject.toml. - After those changes are merged into
main, tag the commit onmainand push it.- The CI/CD process will publish the new package version on PyPI.