@@ -90,11 +90,11 @@ class JSONSchemaDirective(Directive):
9090 def run (self ):
9191 include = self .options .get ('include' )
9292 if include :
93- self .include = include .split (',' )
93+ self .include = [ path . split ( '/' ) for path in include .split (',' )]
9494 self .include_used = set ()
9595 collapse = self .options .get ('collapse' )
9696 if collapse :
97- self .collapse = collapse .split (',' )
97+ self .collapse = [ path . split ( '/' ) for path in collapse .split (',' )]
9898 self .collapse_used = set ()
9999
100100 external_links = self .options .get ('externallinks' )
@@ -137,14 +137,14 @@ def run(self):
137137
138138 def make_nodes (self , schema ):
139139 table = self .table (schema )
140- include_unused = set (self .include ) - self .include_used
141- collapse_unused = set (self .collapse ) - self .collapse_used
140+ include_unused = set (map ( tuple , self .include ) ) - self .include_used
141+ collapse_unused = set (map ( tuple , self .collapse ) ) - self .collapse_used
142142 nodes = [table ]
143143 if collapse_unused :
144- msg = "Collapse values don't exist: {}" .format (collapse_unused )
144+ msg = "Collapse values don't exist: {}" .format ([ '/' . join ( path ) for path in collapse_unused ] )
145145 nodes .insert (0 , self .state .document .reporter .warning (msg ))
146146 if include_unused :
147- msg = "Include values don't exist: {}" .format (include_unused )
147+ msg = "Include values don't exist: {}" .format ([ '/' . join ( path ) for path in include_unused ] )
148148 nodes .insert (0 , self .state .document .reporter .warning (msg ))
149149 return nodes
150150
@@ -162,15 +162,16 @@ def table(self, schema):
162162 tbody = nodes .tbody ()
163163 tgroup += tbody
164164 for prop in schema :
165+ path = prop .name .split ('/' )
165166 if self .include :
166- if prop . name . startswith ( tuple ( self .include )):
167- if prop . name in self .include :
168- self .include_used .add (prop . name )
167+ if any ( map ( lambda x : x == path [: len ( x )], self .include )):
168+ if path in self .include :
169+ self .include_used .add (tuple ( path ) )
169170 else :
170171 continue
171- if prop . name . startswith ( tuple ( self .collapse )):
172- if prop . name in self .collapse :
173- self .collapse_used .add (prop . name )
172+ if any ( map ( lambda x : x == path [: len ( x )], self .collapse )):
173+ if path in self .collapse :
174+ self .collapse_used .add (tuple ( path ) )
174175 else :
175176 continue
176177 if '^' in prop .name :
0 commit comments