Exemplo n.º 1
0
    def apply_layer(self, text_index):
        if text_index in self.layer:
            layer_elements = self.layer[text_index]

            toc_list = []
            for data in layer_elements:
                if 'Subpart' in data['index']:
                    toc_list.append(toc_subpart(data, toc_list, self.layer))
                elif 'Interp' in data['index']:
                    toc_list.append(toc_interp(data, toc_list, self.layer))
                else:
                    toc_list.append(toc_sect_appendix(data, toc_list))

            for el in toc_list:
                el['url'] = self.section_url.fetch(el['index'], self.version,
                                                   self.sectional)
                for sub in el.get('sub_toc', []):
                    sub['url'] = self.section_url.fetch(
                        sub['index'], self.version, self.sectional)
            return ('TOC', toc_list)
Exemplo n.º 2
0
    def apply_layer(self, text_index):
        if text_index in self.layer:
            layer_elements = self.layer[text_index]

            toc_list = []
            for data in layer_elements:
                if 'Subpart' in data['index']:
                    toc_list.append(toc_subpart(data, toc_list, self.layer))
                elif 'Interp' in data['index']:
                    toc_list.append(toc_interp(data, toc_list, self.layer))
                else:
                    toc_list.append(toc_sect_appendix(data, toc_list))

            for el in toc_list:
                el['url'] = self.section_url.fetch(
                    el['index'], self.version, self.sectional)
                for sub in el.get('sub_toc', []):
                    sub['url'] = self.section_url.fetch(
                        sub['index'], self.version, self.sectional)
            return ('TOC', toc_list)
Exemplo n.º 3
0
    def attach_metadata(self, node):
        text_index = node['label_id']
        if text_index in self.layer:
            layer_elements = self.layer[text_index]

            toc_list = []
            for data in layer_elements:
                if 'Subpart' in data['index']:
                    toc_list.append(toc_subpart(data, toc_list, self.layer))
                elif 'Interp' in data['index']:
                    toc_list.append(toc_interp(data, toc_list, self.layer))
                else:
                    toc_list.append(toc_sect_appendix(data, toc_list))

            for el in toc_list:
                el['url'] = self.section_url.fetch(
                    el['index'], self.version, self.sectional)
                for sub in el.get('sub_toc', []):
                    sub['url'] = self.section_url.fetch(
                        sub['index'], self.version, self.sectional)
            node['TOC'] = toc_list
    def test_toc_interp(self):
        so_far = [{
            'index': ['1001', '1']
        }, {
            'index': ['1001', '2']
        }, {
            'index': ['1001', 'A'],
            'is_appendix': True
        }, {
            'index': ['1001', 'B'],
            'is_appendix': True
        }]
        data = {
            'title': 'Supplement II - Official Interps',
            'index': ['1001', 'Interp']
        }
        toc_data = {'1001-Interp': []}
        result = toc.toc_interp(data, so_far, toc_data)
        self.assertEqual('Supplement II', result['label'])
        self.assertEqual('Official Interps', result['sub_label'])
        self.assertTrue(result.get('is_supplement'))
        self.assertEqual(2, len(result['sub_toc']))

        reg, app = result['sub_toc']
        self.assertEqual('Regulation Text', reg['label'])
        self.assertTrue(reg.get('is_subterp'))
        self.assertEqual(['1001', 'Subpart', 'Interp'], reg['index'])
        self.assertEqual('1001-Subpart-Interp', reg['section_id'])

        self.assertEqual('Appendices', app['label'])
        self.assertTrue(app.get('is_subterp'))
        self.assertEqual(['1001', 'Appendices', 'Interp'], app['index'])
        self.assertEqual('1001-Appendices-Interp', app['section_id'])

        so_far = [{
            'index': ['1001', 'Subpart', 'C'],
            'is_subpart':
            True,
            'label':
            'Subpart C',
            'sub_label':
            'Awesome Sauce',
            'sub_toc': [{
                'index': ['1001', '1']
            }, {
                'index': ['1001', '2']
            }]
        }]
        data = {'title': 'Unparsable', 'index': ['1001', 'Interp']}
        result = toc.toc_interp(data, so_far, toc_data)
        self.assertEqual('Supplement I', result['label'])
        self.assertEqual('', result['sub_label'])
        self.assertTrue(result.get('is_supplement'))
        self.assertEqual(1, len(result['sub_toc']))

        subpart = result['sub_toc'][0]
        self.assertEqual('Subpart C', subpart['label'])
        self.assertEqual('Awesome Sauce', subpart['sub_label'])
        self.assertTrue(subpart.get('is_subterp'))
        self.assertEqual(['1001', 'Subpart', 'C', 'Interp'], subpart['index'])
        self.assertEqual('1001-Subpart-C-Interp', subpart['section_id'])

        toc_data = {
            '1001-Interp': [{
                'title': 'Intro',
                'index': ['1001', 'Interp', 'h1']
            }, {
                'title': 'Section 1',
                'index': ['1001', '1', 'Interp']
            }]
        }
        result = toc.toc_interp(data, so_far, toc_data)
        self.assertEqual(2, len(result['sub_toc']))

        h1, subpart = result['sub_toc']
        self.assertEqual('Interpretations', h1['label'])
        self.assertEqual('Intro', h1['sub_label'])
        self.assertFalse(h1.get('is_subterp', False))
        self.assertEqual('1001-Interp-h1', h1['section_id'])
        self.assertEqual(['1001', 'Interp', 'h1'], h1['index'])
        self.assertTrue(subpart.get('is_subterp'))
        self.assertEqual(['1001', 'Subpart', 'C', 'Interp'], subpart['index'])
        self.assertEqual('1001-Subpart-C-Interp', subpart['section_id'])
Exemplo n.º 5
0
    def test_toc_interp(self):
        so_far = [
            {'index': ['1001', '1']},
            {'index': ['1001', '2']},
            {'index': ['1001', 'A'], 'is_appendix': True},
            {'index': ['1001', 'B'], 'is_appendix': True}]
        data = {'title': 'Supplement II - Official Interps',
                'index': ['1001', 'Interp']}
        toc_data = {'1001-Interp': []}
        result = toc.toc_interp(data, so_far, toc_data)
        self.assertEqual('Supplement II', result['label'])
        self.assertEqual('Official Interps', result['sub_label'])
        self.assertTrue(result.get('is_supplement'))
        self.assertEqual(2, len(result['sub_toc']))

        reg, app = result['sub_toc']
        self.assertEqual('Regulation Text', reg['label'])
        self.assertTrue(reg.get('is_subterp'))
        self.assertEqual(['1001', 'Subpart', 'Interp'], reg['index'])
        self.assertEqual('1001-Subpart-Interp', reg['section_id'])

        self.assertEqual('Appendices', app['label'])
        self.assertTrue(app.get('is_subterp'))
        self.assertEqual(['1001', 'Appendices', 'Interp'], app['index'])
        self.assertEqual('1001-Appendices-Interp', app['section_id'])

        so_far = [
            {'index': ['1001', 'Subpart', 'C'], 'is_subpart': True,
             'label': 'Subpart C', 'sub_label': 'Awesome Sauce',
             'sub_toc': [{'index': ['1001', '1']}, {'index': ['1001', '2']}]}]
        data = {'title': 'Unparsable',
                'index': ['1001', 'Interp']}
        result = toc.toc_interp(data, so_far, toc_data)
        self.assertEqual('Supplement I', result['label'])
        self.assertEqual('', result['sub_label'])
        self.assertTrue(result.get('is_supplement'))
        self.assertEqual(1, len(result['sub_toc']))

        subpart = result['sub_toc'][0]
        self.assertEqual('Subpart C', subpart['label'])
        self.assertEqual('Awesome Sauce', subpart['sub_label'])
        self.assertTrue(subpart.get('is_subterp'))
        self.assertEqual(['1001', 'Subpart', 'C', 'Interp'], subpart['index'])
        self.assertEqual('1001-Subpart-C-Interp', subpart['section_id'])

        toc_data = {'1001-Interp': [{'title': 'Intro',
                                     'index': ['1001', 'Interp', 'h1']},
                                    {'title': 'Section 1',
                                     'index': ['1001', '1', 'Interp']}]}
        result = toc.toc_interp(data, so_far, toc_data)
        self.assertEqual(2, len(result['sub_toc']))

        h1, subpart = result['sub_toc']
        self.assertEqual('Interpretations', h1['label'])
        self.assertEqual('Intro', h1['sub_label'])
        self.assertFalse(h1.get('is_subterp', False))
        self.assertEqual('1001-Interp-h1', h1['section_id'])
        self.assertEqual(['1001', 'Interp', 'h1'], h1['index'])
        self.assertTrue(subpart.get('is_subterp'))
        self.assertEqual(['1001', 'Subpart', 'C', 'Interp'], subpart['index'])
        self.assertEqual('1001-Subpart-C-Interp', subpart['section_id'])