Merge branch 'release/0.2.1'
* release/0.2.1: Set release date in change log Implement proper clear_doc method for IPDomain Make sure that values are IP addresses/ranges Add test data that breaks IP address parsing Bump version
This commit is contained in:
commit
639571f8ea
5 changed files with 39 additions and 3 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -8,3 +8,4 @@ dist/
|
||||||
.coverage
|
.coverage
|
||||||
htmlcov/
|
htmlcov/
|
||||||
build/
|
build/
|
||||||
|
_build/
|
||||||
|
|
|
@ -28,6 +28,12 @@ Contributors
|
||||||
Changes
|
Changes
|
||||||
=======
|
=======
|
||||||
|
|
||||||
|
0.2.1 - 2016-05-05
|
||||||
|
------------------
|
||||||
|
|
||||||
|
* fix handling of invalid IP address/range values
|
||||||
|
* implement a proper clear_doc method for the ip domain
|
||||||
|
|
||||||
0.2.0 - 2016-05-04
|
0.2.0 - 2016-05-04
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ from sphinx.locale import l_
|
||||||
from sphinx.roles import XRefRole
|
from sphinx.roles import XRefRole
|
||||||
from sphinx.util.nodes import make_refnode
|
from sphinx.util.nodes import make_refnode
|
||||||
|
|
||||||
__version__ = '0.2.0'
|
__version__ = '0.2.1'
|
||||||
|
|
||||||
|
|
||||||
def ip_object_anchor(typ, path):
|
def ip_object_anchor(typ, path):
|
||||||
|
@ -52,6 +52,17 @@ class IPXRefRole(XRefRole):
|
||||||
super(IPXRefRole, self).__init__(
|
super(IPXRefRole, self).__init__(
|
||||||
innernodeclass=innernodeclass, **kwargs)
|
innernodeclass=innernodeclass, **kwargs)
|
||||||
|
|
||||||
|
def __call__(self, typ, rawtext, text, lineno, inliner,
|
||||||
|
options={}, content=[]):
|
||||||
|
try:
|
||||||
|
Network(text)
|
||||||
|
except ValueError as e:
|
||||||
|
env = inliner.document.settings.env
|
||||||
|
env.warn(env.docname, "invalid ip address/range %s" % text, lineno)
|
||||||
|
return [nodes.literal(text, text), []]
|
||||||
|
return super(IPXRefRole, self).__call__(
|
||||||
|
typ, rawtext, text, lineno, inliner, options, content)
|
||||||
|
|
||||||
def process_link(self, env, refnode, has_explicit_title, title, target):
|
def process_link(self, env, refnode, has_explicit_title, title, target):
|
||||||
domaindata = env.domaindata['ip']
|
domaindata = env.domaindata['ip']
|
||||||
domaindata[self.method][target] = (target, refnode)
|
domaindata[self.method][target] = (target, refnode)
|
||||||
|
@ -180,7 +191,22 @@ class IPDomain(Domain):
|
||||||
}
|
}
|
||||||
|
|
||||||
def clear_doc(self, docname):
|
def clear_doc(self, docname):
|
||||||
pass
|
to_remove = []
|
||||||
|
for key, value in self.data['v4range'].items():
|
||||||
|
if docname == value[0]:
|
||||||
|
to_remove.append(key)
|
||||||
|
for key in to_remove:
|
||||||
|
del self.data['v4range'][key]
|
||||||
|
|
||||||
|
to_remove = []
|
||||||
|
for key, value in self.data['v6range'].items():
|
||||||
|
if docname == value[0]:
|
||||||
|
to_remove.append(key)
|
||||||
|
for key in to_remove:
|
||||||
|
del self.data['v6range'][key]
|
||||||
|
self.data['ips'] = [
|
||||||
|
item for item in self.data['ips'] if item['docname'] != docname
|
||||||
|
]
|
||||||
|
|
||||||
def resolve_xref(self, env, fromdocname, builder, typ, target, node,
|
def resolve_xref(self, env, fromdocname, builder, typ, target, node,
|
||||||
contnode):
|
contnode):
|
||||||
|
|
2
setup.py
2
setup.py
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
|
|
||||||
version = '0.2.0'
|
version = '0.2.1'
|
||||||
|
|
||||||
with open('README.rst') as readme:
|
with open('README.rst') as readme:
|
||||||
description = readme.read() + "\n\n"
|
description = readme.read() + "\n\n"
|
||||||
|
|
|
@ -6,3 +6,6 @@ This page contains IP addresses :ip:v4:`127.0.0.1`, :ip:v4:`192.168.0.1` and
|
||||||
|
|
||||||
There is also :ip:v6range:`2001:dada:b001::/64` and
|
There is also :ip:v6range:`2001:dada:b001::/64` and
|
||||||
:ip:v4range:`172.16.0.0/24`.
|
:ip:v4range:`172.16.0.0/24`.
|
||||||
|
|
||||||
|
The extension should also handle malformed things like :ip:v4:`<IP>`,
|
||||||
|
:ip:v6:`<IP6>`, :ip:v4range:`<IPR>` and :ip:v6range:`<IPR6>` properly.
|
||||||
|
|
Loading…
Reference in a new issue