Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
b19e75d0
Commit
b19e75d0
authored
May 24, 2014
by
Antoine Pitrou
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor precomputed constants in the ipaddress module (suggested by Charles-François)
parent
f573ce91
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
67 additions
and
58 deletions
+67
-58
Lib/ipaddress.py
Lib/ipaddress.py
+67
-58
No files found.
Lib/ipaddress.py
View file @
b19e75d0
...
@@ -1325,7 +1325,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
...
@@ -1325,7 +1325,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
reserved IPv4 Network range.
reserved IPv4 Network range.
"""
"""
return
self
in
self
.
_reserved_network
return
self
in
self
.
_
constants
.
_
reserved_network
@
property
@
property
@
functools
.
lru_cache
()
@
functools
.
lru_cache
()
...
@@ -1337,7 +1337,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
...
@@ -1337,7 +1337,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
iana-ipv4-special-registry.
iana-ipv4-special-registry.
"""
"""
return
any
(
self
in
net
for
net
in
self
.
_private_networks
)
return
any
(
self
in
net
for
net
in
self
.
_
constants
.
_
private_networks
)
@
property
@
property
def
is_multicast
(
self
):
def
is_multicast
(
self
):
...
@@ -1348,7 +1348,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
...
@@ -1348,7 +1348,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
See RFC 3171 for details.
See RFC 3171 for details.
"""
"""
return
self
in
self
.
_multicast_network
return
self
in
self
.
_
constants
.
_
multicast_network
@
property
@
property
def
is_unspecified
(
self
):
def
is_unspecified
(
self
):
...
@@ -1359,7 +1359,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
...
@@ -1359,7 +1359,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
RFC 5735 3.
RFC 5735 3.
"""
"""
return
self
==
self
.
_unspecified_address
return
self
==
self
.
_
constants
.
_
unspecified_address
@
property
@
property
def
is_loopback
(
self
):
def
is_loopback
(
self
):
...
@@ -1369,7 +1369,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
...
@@ -1369,7 +1369,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
A boolean, True if the address is a loopback per RFC 3330.
A boolean, True if the address is a loopback per RFC 3330.
"""
"""
return
self
in
self
.
_loopback_network
return
self
in
self
.
_
constants
.
_
loopback_network
@
property
@
property
def
is_link_local
(
self
):
def
is_link_local
(
self
):
...
@@ -1379,7 +1379,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
...
@@ -1379,7 +1379,7 @@ class IPv4Address(_BaseV4, _BaseAddress):
A boolean, True if the address is link-local per RFC 3927.
A boolean, True if the address is link-local per RFC 3927.
"""
"""
return
self
in
self
.
_linklocal_network
return
self
in
self
.
_
constants
.
_
linklocal_network
class
IPv4Interface
(
IPv4Address
):
class
IPv4Interface
(
IPv4Address
):
...
@@ -1578,32 +1578,36 @@ class IPv4Network(_BaseV4, _BaseNetwork):
...
@@ -1578,32 +1578,36 @@ class IPv4Network(_BaseV4, _BaseNetwork):
not
self
.
is_private
)
not
self
.
is_private
)
IPv4Address
.
_linklocal_network
=
IPv4Network
(
'169.254.0.0/16'
)
class
_IPv4Constants
:
_linklocal_network
=
IPv4Network
(
'169.254.0.0/16'
)
IPv4Address
.
_loopback_network
=
IPv4Network
(
'127.0.0.0/8'
)
_loopback_network
=
IPv4Network
(
'127.0.0.0/8'
)
IPv4Address
.
_multicast_network
=
IPv4Network
(
'224.0.0.0/4'
)
_multicast_network
=
IPv4Network
(
'224.0.0.0/4'
)
IPv4Address
.
_private_networks
=
[
_private_networks
=
[
IPv4Network
(
'0.0.0.0/8'
),
IPv4Network
(
'0.0.0.0/8'
),
IPv4Network
(
'10.0.0.0/8'
),
IPv4Network
(
'10.0.0.0/8'
),
IPv4Network
(
'127.0.0.0/8'
),
IPv4Network
(
'127.0.0.0/8'
),
IPv4Network
(
'169.254.0.0/16'
),
IPv4Network
(
'169.254.0.0/16'
),
IPv4Network
(
'172.16.0.0/12'
),
IPv4Network
(
'172.16.0.0/12'
),
IPv4Network
(
'192.0.0.0/29'
),
IPv4Network
(
'192.0.0.0/29'
),
IPv4Network
(
'192.0.0.170/31'
),
IPv4Network
(
'192.0.0.170/31'
),
IPv4Network
(
'192.0.2.0/24'
),
IPv4Network
(
'192.0.2.0/24'
),
IPv4Network
(
'192.168.0.0/16'
),
IPv4Network
(
'192.168.0.0/16'
),
IPv4Network
(
'198.18.0.0/15'
),
IPv4Network
(
'198.18.0.0/15'
),
IPv4Network
(
'198.51.100.0/24'
),
IPv4Network
(
'198.51.100.0/24'
),
IPv4Network
(
'203.0.113.0/24'
),
IPv4Network
(
'203.0.113.0/24'
),
IPv4Network
(
'240.0.0.0/4'
),
IPv4Network
(
'240.0.0.0/4'
),
IPv4Network
(
'255.255.255.255/32'
),
IPv4Network
(
'255.255.255.255/32'
),
]
]
_reserved_network
=
IPv4Network
(
'240.0.0.0/4'
)
IPv4Address
.
_reserved_network
=
IPv4Network
(
'240.0.0.0/4
'
)
_unspecified_address
=
IPv4Address
(
'0.0.0.0
'
)
IPv4Address
.
_unspecified_address
=
IPv4Address
(
'0.0.0.0'
)
IPv4Address
.
_constants
=
_IPv4Constants
class
_BaseV6
:
class
_BaseV6
:
...
@@ -1946,7 +1950,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
...
@@ -1946,7 +1950,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
See RFC 2373 2.7 for details.
See RFC 2373 2.7 for details.
"""
"""
return
self
in
self
.
_multicast_network
return
self
in
self
.
_
constants
.
_
multicast_network
@
property
@
property
def
is_reserved
(
self
):
def
is_reserved
(
self
):
...
@@ -1957,7 +1961,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
...
@@ -1957,7 +1961,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
reserved IPv6 Network ranges.
reserved IPv6 Network ranges.
"""
"""
return
any
(
self
in
x
for
x
in
self
.
_reserved_networks
)
return
any
(
self
in
x
for
x
in
self
.
_
constants
.
_
reserved_networks
)
@
property
@
property
def
is_link_local
(
self
):
def
is_link_local
(
self
):
...
@@ -1967,7 +1971,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
...
@@ -1967,7 +1971,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
A boolean, True if the address is reserved per RFC 4291.
A boolean, True if the address is reserved per RFC 4291.
"""
"""
return
self
in
self
.
_linklocal_network
return
self
in
self
.
_
constants
.
_
linklocal_network
@
property
@
property
def
is_site_local
(
self
):
def
is_site_local
(
self
):
...
@@ -1981,7 +1985,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
...
@@ -1981,7 +1985,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
A boolean, True if the address is reserved per RFC 3513 2.5.6.
A boolean, True if the address is reserved per RFC 3513 2.5.6.
"""
"""
return
self
in
self
.
_sitelocal_network
return
self
in
self
.
_
constants
.
_
sitelocal_network
@
property
@
property
@
functools
.
lru_cache
()
@
functools
.
lru_cache
()
...
@@ -1993,7 +1997,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
...
@@ -1993,7 +1997,7 @@ class IPv6Address(_BaseV6, _BaseAddress):
iana-ipv6-special-registry.
iana-ipv6-special-registry.
"""
"""
return
any
(
self
in
net
for
net
in
self
.
_private_networks
)
return
any
(
self
in
net
for
net
in
self
.
_
constants
.
_
private_networks
)
@
property
@
property
def
is_global
(
self
):
def
is_global
(
self
):
...
@@ -2277,32 +2281,37 @@ class IPv6Network(_BaseV6, _BaseNetwork):
...
@@ -2277,32 +2281,37 @@ class IPv6Network(_BaseV6, _BaseNetwork):
self
.
broadcast_address
.
is_site_local
)
self
.
broadcast_address
.
is_site_local
)
IPv6Address
.
_linklocal_network
=
IPv6Network
(
'fe80::/10'
)
class
_IPv6Constants
:
IPv6Address
.
_multicast_network
=
IPv6Network
(
'ff00::/8'
)
_linklocal_network
=
IPv6Network
(
'fe80::/10'
)
IPv6Address
.
_private_networks
=
[
_multicast_network
=
IPv6Network
(
'ff00::/8'
)
IPv6Network
(
'::1/128'
),
IPv6Network
(
'::/128'
),
_private_networks
=
[
IPv6Network
(
'::ffff:0:0/96'
),
IPv6Network
(
'::1/128'
),
IPv6Network
(
'100::/64'
),
IPv6Network
(
'::/128'
),
IPv6Network
(
'2001::/23'
),
IPv6Network
(
'::ffff:0:0/96'
),
IPv6Network
(
'2001:2::/48'
),
IPv6Network
(
'100::/64'
),
IPv6Network
(
'2001:db8::/32'
),
IPv6Network
(
'2001::/23'
),
IPv6Network
(
'2001:10::/28'
),
IPv6Network
(
'2001:2::/48'
),
IPv6Network
(
'fc00::/7'
),
IPv6Network
(
'2001:db8::/32'
),
IPv6Network
(
'fe80::/10'
),
IPv6Network
(
'2001:10::/28'
),
IPv6Network
(
'fc00::/7'
),
IPv6Network
(
'fe80::/10'
),
]
_reserved_networks
=
[
IPv6Network
(
'::/8'
),
IPv6Network
(
'100::/8'
),
IPv6Network
(
'200::/7'
),
IPv6Network
(
'400::/6'
),
IPv6Network
(
'800::/5'
),
IPv6Network
(
'1000::/4'
),
IPv6Network
(
'4000::/3'
),
IPv6Network
(
'6000::/3'
),
IPv6Network
(
'8000::/3'
),
IPv6Network
(
'A000::/3'
),
IPv6Network
(
'C000::/3'
),
IPv6Network
(
'E000::/4'
),
IPv6Network
(
'F000::/5'
),
IPv6Network
(
'F800::/6'
),
IPv6Network
(
'FE00::/9'
),
]
]
IPv6Address
.
_reserved_networks
=
[
_sitelocal_network
=
IPv6Network
(
'fec0::/10'
)
IPv6Network
(
'::/8'
),
IPv6Network
(
'100::/8'
),
IPv6Network
(
'200::/7'
),
IPv6Network
(
'400::/6'
),
IPv6Network
(
'800::/5'
),
IPv6Network
(
'1000::/4'
),
IPv6Network
(
'4000::/3'
),
IPv6Network
(
'6000::/3'
),
IPv6Network
(
'8000::/3'
),
IPv6Network
(
'A000::/3'
),
IPv6Network
(
'C000::/3'
),
IPv6Network
(
'E000::/4'
),
IPv6Network
(
'F000::/5'
),
IPv6Network
(
'F800::/6'
),
IPv6Network
(
'FE00::/9'
),
]
IPv6Address
.
_
sitelocal_network
=
IPv6Network
(
'fec0::/10'
)
IPv6Address
.
_
constants
=
_IPv6Constants
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment