1# -----------------------------------------------------------------------------
2# Copyright (c) 2008 by David P. D. Moss. All rights reserved.
3#
4# Released under the BSD license. See the LICENSE file for details.
5# -----------------------------------------------------------------------------
6"""A Python library for manipulating IP and EUI network addresses."""
7
8#: Version info (major, minor, maintenance, status)
9__version__ = '1.3.0'
10VERSION = tuple(int(part) for part in __version__.split('.'))
11STATUS = ''
12
13import sys as _sys
14
15if _sys.version_info[0:2] < (3, 7):
16 raise RuntimeError('Python 3.7.0 or higher is required!')
17
18__all__ = [
19 'AddrConversionError',
20 'AddrFormatError',
21 'NotRegisteredError',
22 'ZEROFILL',
23 'INET_ATON',
24 'INET_PTON',
25 'NOHOST',
26 'IPAddress',
27 'IPNetwork',
28 'IPRange',
29 'all_matching_cidrs',
30 'cidr_abbrev_to_verbose',
31 'cidr_exclude',
32 'cidr_merge',
33 'expand_partial_ipv4_address',
34 'iprange_to_cidrs',
35 'iter_iprange',
36 'iter_unique_ips',
37 'largest_matching_cidr',
38 'smallest_matching_cidr',
39 'spanning_cidr',
40 'IPSet',
41 'IPGlob',
42 'cidr_to_glob',
43 'glob_to_cidrs',
44 'glob_to_iprange',
45 'glob_to_iptuple',
46 'iprange_to_globs',
47 'valid_glob',
48 'valid_nmap_range',
49 'iter_nmap_range',
50 'base85_to_ipv6',
51 'ipv6_to_base85',
52 'EUI',
53 'IAB',
54 'OUI',
55 'valid_ipv4',
56 'valid_ipv6',
57 'ipv6_compact',
58 'ipv6_full',
59 'ipv6_verbose',
60 'mac_eui48',
61 'mac_unix',
62 'mac_unix_expanded',
63 'mac_cisco',
64 'mac_bare',
65 'mac_pgsql',
66 'valid_mac',
67 'eui64_base',
68 'eui64_unix',
69 'eui64_unix_expanded',
70 'eui64_cisco',
71 'eui64_bare',
72 'valid_eui64',
73 'SubnetSplitter',
74]
75
76from netaddr.core import (
77 AddrConversionError,
78 AddrFormatError,
79 NotRegisteredError,
80 ZEROFILL,
81 INET_ATON,
82 INET_PTON,
83 NOHOST,
84)
85
86from netaddr.ip import (
87 IPAddress,
88 IPNetwork,
89 IPRange,
90 all_matching_cidrs,
91 cidr_abbrev_to_verbose,
92 cidr_exclude,
93 cidr_merge,
94 iprange_to_cidrs,
95 iter_iprange,
96 iter_unique_ips,
97 largest_matching_cidr,
98 smallest_matching_cidr,
99 spanning_cidr,
100)
101
102from netaddr.ip.sets import IPSet
103
104from netaddr.ip.glob import (
105 IPGlob,
106 cidr_to_glob,
107 glob_to_cidrs,
108 glob_to_iprange,
109 glob_to_iptuple,
110 iprange_to_globs,
111 valid_glob,
112)
113
114from netaddr.ip.nmap import valid_nmap_range, iter_nmap_range
115
116from netaddr.ip.rfc1924 import base85_to_ipv6, ipv6_to_base85
117
118from netaddr.eui import EUI, IAB, OUI
119
120from netaddr.strategy.ipv4 import (
121 expand_partial_address as expand_partial_ipv4_address,
122 valid_str as valid_ipv4,
123)
124
125from netaddr.strategy.ipv6 import valid_str as valid_ipv6, ipv6_compact, ipv6_full, ipv6_verbose
126
127from netaddr.strategy.eui48 import (
128 mac_eui48,
129 mac_unix,
130 mac_unix_expanded,
131 mac_cisco,
132 mac_bare,
133 mac_pgsql,
134 valid_str as valid_mac,
135)
136
137from netaddr.strategy.eui64 import (
138 eui64_base,
139 eui64_unix,
140 eui64_unix_expanded,
141 eui64_cisco,
142 eui64_bare,
143 valid_str as valid_eui64,
144)
145
146from netaddr.contrib.subnet_splitter import SubnetSplitter