""" Format the readme.md file into the sphinx index.rst file. """ import os import inspect import re import pypandoc from astropy.time import Time def write_index_rst(readme_file=None, write_file=None): t = Time.now() t.out_subfmt = 'date' out = ('.. pyuvdata documentation master file, created by\n' ' make_index.py on {date}\n\n').format(date=t.iso) if readme_file is None: main_path = os.path.dirname(os.path.dirname(os.path.abspath(inspect.stack()[0][1]))) readme_file = os.path.join(main_path, 'README.md') readme_md = pypandoc.convert_file(readme_file, 'md') travis_str = 'https://travis-ci.org/HERA-Team/pyuvdata.svg' regex_travis = re.compile(travis_str) loc_travis_start = re.search(regex_travis, readme_md).start() loc_travis_end = re.search(regex_travis, readme_md).end() end_branch_str = r'\)\]' regex_end = re.compile(end_branch_str) loc_branch_end = re.search(regex_end, readme_md).start() branch_str = readme_md[loc_travis_end:loc_branch_end] cover_str = 'https://coveralls.io/repos/github/HERA-Team/pyuvdata/badge.svg' regex_cover = re.compile(cover_str) loc_cover_start = re.search(regex_cover, readme_md).start() loc_cover_end = re.search(regex_cover, readme_md).end() readme_text = pypandoc.convert_file(readme_file, 'rst') rst_status_badge = '.. image:: ' + travis_str + branch_str + '\n :target: https://travis-ci.org/HERA-Team/pyuvdata' status_badge_text = '|Build Status|' readme_text = readme_text.replace(status_badge_text, rst_status_badge + '\n\n') rst_status_badge = '.. image:: ' + cover_str + branch_str + '\n :target: https://coveralls.io/github/HERA-Team/pyuvdata' + branch_str status_badge_text = '|Coverage Status|' readme_text = readme_text.replace(status_badge_text, rst_status_badge) readme_text = readme_text.replace(' ' + rst_status_badge, rst_status_badge) end_text = 'parameters descriptions' regex = re.compile(end_text.replace(' ', r'\s+')) loc = re.search(regex, readme_text).start() out += readme_text[0:loc] + end_text + '.' out += ('\n\nFurther Documentation\n====================================\n' '.. toctree::\n' ' :maxdepth: 1\n\n' ' tutorial\n' ' uvdata_parameters\n' ' uvdata\n' ' uvcal_parameters\n' ' uvcal\n' ' uvbeam_parameters\n' ' uvbeam\n' ' developer_docs\n') out.replace(u"\u2018", "'").replace(u"\u2019", "'").replace(u"\xa0", " ") if write_file is None: write_path = os.path.dirname(os.path.abspath(inspect.stack()[0][1])) write_file = os.path.join(write_path, 'index.rst') F = open(write_file, 'w') F.write(out) print("wrote " + write_file)