From 01c31e9263ac04f449db22ef455114e72fd4f07b Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Thu, 5 May 2016 11:34:27 +0200 Subject: [PATCH] Implement proper clear_doc method for IPDomain This commit replaces the dummy clear_doc method in jandd.sphinxext.ip.IPDomain with a proper implementation that clears document related items from the domain data dictionary. --- README.rst | 1 + jandd/sphinxext/ip.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/README.rst b/README.rst index 563d9f7..04f5977 100644 --- a/README.rst +++ b/README.rst @@ -32,6 +32,7 @@ Changes ---------------------- * fix handling of invalid IP address/range values +* implement a proper clear_doc method for the ip domain 0.2.0 - 2016-05-04 ------------------ diff --git a/jandd/sphinxext/ip.py b/jandd/sphinxext/ip.py index 7582159..fe25208 100644 --- a/jandd/sphinxext/ip.py +++ b/jandd/sphinxext/ip.py @@ -191,7 +191,22 @@ class IPDomain(Domain): } 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, contnode):