Skip to main content

Pretty-print IPy's IPSets

Project description

Pretty-print IPy’s IPSets in a human-readable fashion.

https://coveralls.io/repos/djmitche/prettyip/badge.svg?branch=master https://travis-ci.org/djmitche/prettyip.svg?branch=master

Compatibility

Everywhere IPy runs, so does this – CPython-2.6 through 3.4.

Usage

Explicitly:

from IPy import IPSet, IP
import prettyip

my_ipset = IPSet([IP('10.0.0.0/8')]) - IPSet([IP('10.0.1.2')])
print prettyip.pretty_ipset(my_ipset)

Or, monkey-patch IPy:

import prettyip

prettyip.patch_ipy()

my_ipset = IPSet([IP('10.0.0.0/8')]) - IPSet([IP('10.0.1.2')])
print my_ipset

Results

Simple IPs:

 >>> prettyip.pretty_ipset(IPSet([IP('10.0.0.0/8')]))
'10.0.0.0/8'

Ranges:

>>> IPSet([IP('10.120.13.11'), IP('10.120.13.12/30'), IP('10.120.13.16')])
IPSet([IP('10.120.13.11'), IP('10.120.13.12/30'), IP('10.120.13.16')])
>>> prettyip.pretty_ipset(_)
'10.120.13.1{1-6}'

Big netblocks with smaller pieces missing:

 >>> IPSet([IP('1.0.0.0/8')]) - IPSet([IP('1.0.1.0/24')]) - IPSet([IP('1.0.9.0/24')])
 IPSet([IP('1.0.0.0/24'), IP('1.0.2.0/23'), IP('1.0.4.0/22'),
    IP('1.0.8.0/24'), IP('1.0.10.0/23'), IP('1.0.12.0/22'), IP('1.0.16.0/20'),
    IP('1.0.32.0/19'), IP('1.0.64.0/18'), IP('1.0.128.0/17'),
    IP('1.1.0.0/16'), IP('1.2.0.0/15'), IP('1.4.0.0/14'), IP('1.8.0.0/13'),
    IP('1.16.0.0/12'), IP('1.32.0.0/11'), IP('1.64.0.0/10'),
    IP('1.128.0.0/9')])
 >>> prettyip.pretty_ipset(_)
'1.0.0.0/8 except 1.0.1.0/24, 1.0.9.0/24'

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

prettyip-1.1.4.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

prettyip-1.1.4-py2.py3-none-any.whl (6.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file prettyip-1.1.4.tar.gz.

File metadata

  • Download URL: prettyip-1.1.4.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for prettyip-1.1.4.tar.gz
Algorithm Hash digest
SHA256 6c6ff54f387de3fbf6acbf1d8cef28369bf19019012ef0de5466627c2ed3b913
MD5 66d8c4e78ce4f7d29a76d77ca5700394
BLAKE2b-256 5f6ee995158243b22ed39cdcddaac26073815373698b9944aeb60eb0b379ff5f

See more details on using hashes here.

File details

Details for the file prettyip-1.1.4-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for prettyip-1.1.4-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 54a3a323e1922fef9f48ad3f9e2f61f705ae14295ffa7cb5fb5c0186a688e66b
MD5 233d2911c379828945c48da0ac336651
BLAKE2b-256 a971cb1b615ddfb12051a1a1a2593cc78f925db1268cca4f8e27b5b75c607958

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