def get_markers(text): """ Extract all the paragraph markers from text. Do some checks on the collapsed markers.""" markers = tree_utils.get_paragraph_markers(text) collapsed_markers = tree_utils.get_collapsed_markers(text) # Check that the collapsed markers make sense (i.e. are at least one # level below the initial marker) if markers and collapsed_markers: initial_marker_levels = p_level_of(markers[-1]) final_collapsed_markers = [] for collapsed_marker in collapsed_markers: collapsed_marker_levels = p_level_of(collapsed_marker) if any(c > f for f in initial_marker_levels for c in collapsed_marker_levels): final_collapsed_markers.append(collapsed_marker) collapsed_markers = final_collapsed_markers markers_list = [m for m in markers] + [m for m in collapsed_markers] return markers_list
def get_markers(text): """ Extract all the paragraph markers from text. Do some checks on the collapsed markers.""" markers = tree_utils.get_paragraph_markers(text) collapsed_markers = tree_utils.get_collapsed_markers(text) # Check that the collapsed markers make sense (i.e. are at least one # level below the initial marker) if markers and collapsed_markers: initial_marker_levels = p_level_of(markers[-1]) final_collapsed_markers = [] for collapsed_marker in collapsed_markers: collapsed_marker_levels = p_level_of(collapsed_marker) if any(c > f for f in initial_marker_levels for c in collapsed_marker_levels): final_collapsed_markers.append(collapsed_marker) collapsed_markers = final_collapsed_markers markers_list = [m for m in markers] + [m for m in collapsed_markers] return markers_list
def get_markers(text, next_marker=None): """ Extract all the paragraph markers from text. Do some checks on the collapsed markers.""" initial = tree_utils.get_paragraph_markers(text) if next_marker is None: collapsed = [] else: collapsed = tree_utils.get_collapsed_markers(text) # Check that the collapsed markers make sense: # * at least one level below the initial marker # * followed by a marker in sequence if initial and collapsed: collapsed = [c for c in collapsed if _deeper_level(initial[-1], c)] for marker in reversed(collapsed): if _continues_collapsed(marker, next_marker): break else: collapsed.pop() return initial + collapsed
def test_get_collapsed_markers(self): text = u'(a) <E T="03">Transfer </E>—(1) <E T="03">Notice.</E> follow' markers = tree_utils.get_collapsed_markers(text) self.assertEqual(markers, [u'1']) text = '(1) See paragraph (a) for more' self.assertEqual([], tree_utils.get_collapsed_markers(text)) text = '(a) (1) More content' self.assertEqual([], tree_utils.get_collapsed_markers(text)) text = u'(a) <E T="03">Transfer—</E>(1) <E T="03">Notice.</E> follow' self.assertEqual([u'1'], tree_utils.get_collapsed_markers(text)) text = u'(a) <E T="03">Keyterm</E>—(1)(i) Content' self.assertEqual(['1', 'i'], tree_utils.get_collapsed_markers(text)) text = "(C) The information required by paragraphs (a)(2), " text += "(a)(4)(iii), (a)(5), (b) through (d), (i), (l) through (p)" self.assertEqual([], tree_utils.get_collapsed_markers(text))
def test_get_collapsed_markers(self): text = u'(a) <E T="03">Transfer </E>—(1) <E T="03">Notice.</E> follow' markers = tree_utils.get_collapsed_markers(text) self.assertEqual(markers, [u'1']) text = '(1) See paragraph (a) for more' self.assertEqual([], tree_utils.get_collapsed_markers(text)) text = '(a) (1) More content' self.assertEqual([], tree_utils.get_collapsed_markers(text)) text = u'(a) <E T="03">Transfer—</E>(1) <E T="03">Notice.</E> follow' self.assertEqual([u'1'], tree_utils.get_collapsed_markers(text)) text = u'(a) <E T="03">Keyterm</E>—(1)(i) Content' self.assertEqual(['1', 'i'], tree_utils.get_collapsed_markers(text)) text = "(C) The information required by paragraphs (a)(2), " text += "(a)(4)(iii), (a)(5), (b) through (d), (i), (l) through (p)" self.assertEqual([], tree_utils.get_collapsed_markers(text))