From 993eba8ce5b385d8c21027e0712ce26164f20db1 Mon Sep 17 00:00:00 2001 From: mozillazg Date: Sun, 12 Nov 2017 12:42:03 +0800 Subject: [PATCH] update generate_pep_pages to support the new PEP 0(rst format) New PEP 0: https://github.com/python/peps/pull/463 --- peps/converters.py | 49 +++++++++------------------------------------- 1 file changed, 9 insertions(+), 40 deletions(-) diff --git a/peps/converters.py b/peps/converters.py index 24877f817..af5970b1f 100644 --- a/peps/converters.py +++ b/peps/converters.py @@ -34,36 +34,8 @@ def convert_pep0(): """ pep0_path = os.path.join(settings.PEP_REPO_PATH, 'pep-0000.html') pep0_content = open(pep0_path).read() - - soup = BeautifulSoup(pep0_content, 'lxml') - - body_children = list(soup.body.children) - - # Grab header and PEP body - header = body_children[3] - pep_content = body_children[7] - - # Fix PEP links - body_links = pep_content.find_all("a") - - pep_href_re = re.compile(r'pep-(\d+)\.html') - - for b in body_links: - m = pep_href_re.search(b.attrs['href']) - - # Skip anything not matching 'pep-XXXX.html' - if not m: - continue - - b.attrs['href'] = '/dev/peps/pep-{}/'.format(m.group(1)) - - # Remove Version from header - header_rows = header.find_all('th') - for t in header_rows: - if 'Version:' in t.text and 'N/A' in t.next_sibling.text: - t.parent.extract() - - return ''.join([str(header), str(pep_content)]) + data = convert_pep_page(0, pep0_content) + return data['content'] def get_pep0_page(commit=True): @@ -180,16 +152,6 @@ def convert_pep_page(pep_number, content): pep_content.body.unwrap() data['content'] = str(pep_content) - - pep_ext = '.txt' - pep_rst_source = os.path.join(settings.PEP_REPO_PATH, - 'pep-{}.rst'.format(pep_number)) - if os.path.exists(pep_rst_source): - pep_ext = '.rst' - - source_link = 'https://github.com/python/peps/blob/master/pep-{}{}'.format( - pep_number, pep_ext) - data['content'] += """Source: {0}""".format(source_link) return data @@ -204,6 +166,13 @@ def get_pep_page(pep_number, commit=True): return pep_content = convert_pep_page(pep_number, open(pep_path).read()) + pep_rst_source = os.path.join( + settings.PEP_REPO_PATH, 'pep-{}.rst'.format(pep_number), + ) + pep_ext = '.rst' if os.path.exists(pep_rst_source) else '.txt' + source_link = 'https://github.com/python/peps/blob/master/pep-{}{}'.format( + pep_number, pep_ext) + pep_content['content'] += """Source: {0}""".format(source_link) pep_page, _ = Page.objects.get_or_create(path=pep_url(pep_number))