Skip to content

Commit cf3454f

Browse files
committed
Preprocess: change has_class to take star args
This changes the has_class function to take the list of classes as a variadic argument list, since it is always used with literal arguments.
1 parent dec28ed commit cf3454f

File tree

2 files changed

+37
-38
lines changed

2 files changed

+37
-38
lines changed

commands/preprocess.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ def transform_link(rename_map, target, file, root):
235235

236236
return trasform_relative_link(rename_map, target)
237237

238-
def has_class(el, classes_to_check):
238+
def has_class(el, *classes_to_check):
239239
value = el.get('class')
240240
if value is None:
241241
return False
@@ -246,24 +246,23 @@ def has_class(el, classes_to_check):
246246
return False
247247

248248
def preprocess_html_file(root, fn, rename_map):
249-
250249
parser = etree.HTMLParser()
251250
html = etree.parse(fn, parser)
252251

253252
# remove non-printable elements
254253
for el in html.xpath('//*'):
255-
if has_class(el, ['noprint', 'editsection']):
254+
if has_class(el, 'noprint', 'editsection'):
256255
el.getparent().remove(el)
257-
if el.get('id') in ['toc', 'catlinks']:
256+
elif el.get('id') in ['toc', 'catlinks']:
258257
el.getparent().remove(el)
259258

260259
# remove see also links between C and C++ documentations
261260
for el in html.xpath('//tr[@class]'):
262-
if not has_class(el, ['t-dcl-list-item']):
261+
if not has_class(el, 't-dcl-list-item'):
263262
continue
264263

265264
child_tds = el.xpath('.//td/div[@class]')
266-
if not any(has_class(td, ['t-dcl-list-see']) for td in child_tds):
265+
if not any(has_class(td, 't-dcl-list-see') for td in child_tds):
267266
continue
268267

269268
# remove preceding separator, if any

tests/test_preprocess.py

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -45,46 +45,46 @@ def test_convert_loader_name(self):
4545
class TestHasClass(unittest.TestCase):
4646
def test_has_class(self):
4747
el = etree.Element('tag')
48-
self.assertEqual(False, has_class(el, []))
49-
self.assertEqual(False, has_class(el, ['']))
50-
self.assertEqual(False, has_class(el, ['a']))
51-
self.assertEqual(False, has_class(el, ['tag']))
48+
self.assertEqual(False, has_class(el))
49+
self.assertEqual(False, has_class(el, ''))
50+
self.assertEqual(False, has_class(el, 'a'))
51+
self.assertEqual(False, has_class(el, 'tag'))
5252

5353
el.set('class', '')
54-
self.assertEqual(False, has_class(el, []))
55-
self.assertEqual(False, has_class(el, ['']))
56-
self.assertEqual(False, has_class(el, ['a']))
57-
self.assertEqual(False, has_class(el, ['tag']))
54+
self.assertEqual(False, has_class(el, ))
55+
self.assertEqual(False, has_class(el, ''))
56+
self.assertEqual(False, has_class(el, 'a'))
57+
self.assertEqual(False, has_class(el, 'tag'))
5858

5959
el.set('class', 'a')
60-
self.assertEqual(False, has_class(el, []))
61-
self.assertEqual(False, has_class(el, ['']))
62-
self.assertEqual(True, has_class(el, ['a']))
63-
self.assertEqual(False, has_class(el, ['b']))
64-
self.assertEqual(False, has_class(el, ['tag']))
65-
self.assertEqual(True, has_class(el, ['a', 'b']))
66-
self.assertEqual(True, has_class(el, ['b', 'a']))
67-
self.assertEqual(False, has_class(el, ['b', 'c']))
60+
self.assertEqual(False, has_class(el, ))
61+
self.assertEqual(False, has_class(el, ''))
62+
self.assertEqual(True, has_class(el, 'a'))
63+
self.assertEqual(False, has_class(el, 'b'))
64+
self.assertEqual(False, has_class(el, 'tag'))
65+
self.assertEqual(True, has_class(el, 'a', 'b'))
66+
self.assertEqual(True, has_class(el, 'b', 'a'))
67+
self.assertEqual(False, has_class(el, 'b', 'c'))
6868

6969
el.set('class', 'a b')
70-
self.assertEqual(False, has_class(el, []))
71-
self.assertEqual(False, has_class(el, ['']))
72-
self.assertEqual(True, has_class(el, ['a']))
73-
self.assertEqual(True, has_class(el, ['b']))
74-
self.assertEqual(False, has_class(el, ['tag']))
75-
self.assertEqual(True, has_class(el, ['a', 'b']))
76-
self.assertEqual(True, has_class(el, ['b', 'a']))
77-
self.assertEqual(True, has_class(el, ['b', 'c']))
70+
self.assertEqual(False, has_class(el, ))
71+
self.assertEqual(False, has_class(el, ''))
72+
self.assertEqual(True, has_class(el, 'a'))
73+
self.assertEqual(True, has_class(el, 'b'))
74+
self.assertEqual(False, has_class(el, 'tag'))
75+
self.assertEqual(True, has_class(el, 'a', 'b'))
76+
self.assertEqual(True, has_class(el, 'b', 'a'))
77+
self.assertEqual(True, has_class(el, 'b', 'c'))
7878

7979
el.set('class', 'a b')
80-
self.assertEqual(False, has_class(el, []))
81-
self.assertEqual(False, has_class(el, ['']))
82-
self.assertEqual(True, has_class(el, ['a']))
83-
self.assertEqual(True, has_class(el, ['b']))
84-
self.assertEqual(False, has_class(el, ['tag']))
85-
self.assertEqual(True, has_class(el, ['a', 'b']))
86-
self.assertEqual(True, has_class(el, ['b', 'a']))
87-
self.assertEqual(True, has_class(el, ['b', 'c']))
80+
self.assertEqual(False, has_class(el, ))
81+
self.assertEqual(False, has_class(el, ''))
82+
self.assertEqual(True, has_class(el, 'a'))
83+
self.assertEqual(True, has_class(el, 'b'))
84+
self.assertEqual(False, has_class(el, 'tag'))
85+
self.assertEqual(True, has_class(el, 'a', 'b'))
86+
self.assertEqual(True, has_class(el, 'b', 'a'))
87+
self.assertEqual(True, has_class(el, 'b', 'c'))
8888

8989
class TestIsExternalLink(unittest.TestCase):
9090
def test_is_external_link(self):

0 commit comments

Comments
 (0)