37 lines
1.5 KiB
Python
37 lines
1.5 KiB
Python
import sys
|
|
import scrython
|
|
from scrython import *
|
|
import re
|
|
|
|
intro = """These docs will likely not be as detailed as the official Scryfall Documentation, and you should reference that for more information.
|
|
|
|
>In the event that a key isn't found or has been changed, you can access the full JSON output with the `scryfallJson` variable (`{Class_name}().scryfallJson`)."""
|
|
|
|
for _class in scrython.__all__:
|
|
|
|
match = list(filter(None, (token.strip() for token in re.findall(r'[^\n]*', eval(_class).__doc__))))
|
|
|
|
with open('{}.md'.format(eval(_class).__name__), 'w') as f:
|
|
f.write('# **class** `{}()`\n'.format(eval(_class).__name__))
|
|
f.write(intro)
|
|
for token in match:
|
|
# Match section header
|
|
if re.findall(r'[A-Z][a-z].*:', token) and ':' in re.findall(r':.*', token):
|
|
f.write('\n\n## {}\n\n'.format(token.replace(':', '')))
|
|
if 'Example' in token:
|
|
f.write()
|
|
else:
|
|
f.write('| arg | description |\n|:---:|:---:|')
|
|
|
|
# Match args description
|
|
elif re.findall(r'[\w]+\s\(.+\):', token):
|
|
if 'Defaults' in token:
|
|
f.write(token)
|
|
else:
|
|
f.write('\n|{}'.format(token))
|
|
else:
|
|
f.write('\n|{}|'.format(token))
|
|
# r'[\w]+\s\(.+\):' Matches anything that's a described parameter
|
|
# r'[A-Z][a-z](.*)' Matches section titles
|
|
break
|