mirror of https://github.com/mahmoud/boltons.git
55 lines
1.3 KiB
Python
55 lines
1.3 KiB
Python
import re
|
|
import sys
|
|
|
|
BASE_RTD_URL = 'http://boltons.readthedocs.org/en/latest/'
|
|
BASE_ISSUES_URL = 'https://github.com/mahmoud/boltons/issues/'
|
|
|
|
_issues_re = re.compile(r'#(\d+)')
|
|
_member_re = re.compile(r'((\w+utils)\.[a-zA-Z0-9_.]+)')
|
|
|
|
URL_MAP = {}
|
|
|
|
def sub_member_match(match):
|
|
full_name = match.group(1)
|
|
mod_name = match.group(2)
|
|
url = BASE_RTD_URL + mod_name + '.html#boltons.' + full_name
|
|
ret = f'[{full_name}][{full_name}]'
|
|
URL_MAP[full_name] = url
|
|
# print ret
|
|
return ret
|
|
|
|
|
|
def sub_issue_match(match):
|
|
link_text = match.group(0)
|
|
issue_num = match.group(1)
|
|
link_target = 'i%s' % issue_num
|
|
link_url = BASE_ISSUES_URL + issue_num
|
|
ret = f'[{link_text}][{link_target}]'
|
|
URL_MAP[link_target] = link_url
|
|
# print ret
|
|
return ret
|
|
|
|
|
|
def main():
|
|
try:
|
|
cl_filename = sys.argv[1]
|
|
except IndexError:
|
|
cl_filename = 'CHANGELOG.md'
|
|
cl_text = open(cl_filename).read().decode('utf-8')
|
|
ret = _member_re.sub(sub_member_match, cl_text)
|
|
ret = _issues_re.sub(sub_issue_match, ret)
|
|
|
|
link_map_lines = []
|
|
for (name, url) in sorted(URL_MAP.items()):
|
|
link_map_lines.append(f'[{name}]: {url}')
|
|
|
|
print(ret)
|
|
print()
|
|
print()
|
|
print('\n'.join(link_map_lines))
|
|
print()
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|