Getting closer with this
This commit is contained in:
		
							parent
							
								
									d99a786642
								
							
						
					
					
						commit
						ff51762b8a
					
				
							
								
								
									
										58
									
								
								gen_docs.py
								
								
								
								
							
							
						
						
									
										58
									
								
								gen_docs.py
								
								
								
								
							| 
						 | 
				
			
			@ -3,36 +3,48 @@ import scrython
 | 
			
		|||
from scrython import *
 | 
			
		||||
import re
 | 
			
		||||
 | 
			
		||||
for _class in scrython.__all__:
 | 
			
		||||
def format_args(string):
 | 
			
		||||
    start = '|arg|type|description|\n|:---:|:---:|:---:|'
 | 
			
		||||
 | 
			
		||||
    names = re.findall(r'(\w*\s\([\w,\s]*\):)', string)
 | 
			
		||||
 | 
			
		||||
for _class in scrython.__all__:
 | 
			
		||||
 | 
			
		||||
    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 (`{}().scryfallJson`).
 | 
			
		||||
    """.format(eval(_class).__name__)
 | 
			
		||||
 | 
			
		||||
    match = list(filter(None, (token.strip() for token in re.findall(r'[^\n]*', eval(_class).__doc__))))
 | 
			
		||||
    class_docstring = repr(re.sub(r'\n+', '', eval(_class).__doc__)) # removes newlines
 | 
			
		||||
 | 
			
		||||
    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|:---:|:---:|')
 | 
			
		||||
    remove_extra_spaces = re.sub(' +', ' ', class_docstring)
 | 
			
		||||
 | 
			
		||||
            # 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
 | 
			
		||||
    args = re.findall(r'(?<=Args:)(.*)(?=Returns:)', remove_extra_spaces)[0]
 | 
			
		||||
    format_args(args)
 | 
			
		||||
 | 
			
		||||
    returns = re.findall(r'(?<=Returns:)(.*)(?=Raises:)', remove_extra_spaces)[0]
 | 
			
		||||
 | 
			
		||||
    raises = re.findall(r'(?<=Raises:)(.*)(?=Examples:)', remove_extra_spaces)[0]
 | 
			
		||||
 | 
			
		||||
    examples = re.findall(r'(?<=Examples:)(.*)', remove_extra_spaces)[0]
 | 
			
		||||
 | 
			
		||||
    # 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:
 | 
			
		||||
    #         if re.findall(r'[A-Z][a-z].*:', token) and ':' in re.findall(r':.*', token): # Match section header
 | 
			
		||||
    #             f.write('\n\n## {}\n\n'.format(token.replace(':', '')))
 | 
			
		||||
    #             if 'Example' in token:
 | 
			
		||||
    #                 f.write(token)
 | 
			
		||||
    #             else:
 | 
			
		||||
    #                 f.write('| arg | description |\n|:---:|:---:|')
 | 
			
		||||
    #         elif re.findall(r'[\w]+\s\(.+\):', token): # Match args description
 | 
			
		||||
    #             if 'Defaults' in token:
 | 
			
		||||
    #                 f.write(token)
 | 
			
		||||
    #             else:
 | 
			
		||||
    #                 f.write('\n|{}|'.format(token))
 | 
			
		||||
    #         else:
 | 
			
		||||
    #             f.write('\n|{}|'.format(token))
 | 
			
		||||
    break
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue