Gen docs is done, promise
This commit is contained in:
		
							parent
							
								
									925d4eb91b
								
							
						
					
					
						commit
						72028f3772
					
				
							
								
								
									
										76
									
								
								gen_docs.py
								
								
								
								
							
							
						
						
									
										76
									
								
								gen_docs.py
								
								
								
								
							| 
						 | 
				
			
			@ -1,7 +1,12 @@
 | 
			
		|||
import sys
 | 
			
		||||
import scrython
 | 
			
		||||
import re
 | 
			
		||||
from scrython import *
 | 
			
		||||
from scrython.bulk_data import *
 | 
			
		||||
from scrython.cards import *
 | 
			
		||||
from scrython.catalog import *
 | 
			
		||||
from scrython.rulings import *
 | 
			
		||||
from scrython.sets import *
 | 
			
		||||
from scrython.symbology import *
 | 
			
		||||
from types import FunctionType
 | 
			
		||||
 | 
			
		||||
def format_args(string, f):
 | 
			
		||||
| 
						 | 
				
			
			@ -56,44 +61,53 @@ def format_functions(_class, function_list, f):
 | 
			
		|||
 | 
			
		||||
        f.write('\n```\n{}\n```'.format(function_docstring))
 | 
			
		||||
 | 
			
		||||
for _class in scrython.__all__:
 | 
			
		||||
def main(subpackage):
 | 
			
		||||
    for _class in subpackage.__all__:
 | 
			
		||||
 | 
			
		||||
    intro = """
 | 
			
		||||
These docs will likely not be as detailed as the official Scryfall Documentation, and you should reference that for more information.
 | 
			
		||||
        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__)
 | 
			
		||||
    >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__)
 | 
			
		||||
 | 
			
		||||
    class_docstring = repr(re.sub(r'\n+', '', eval(_class).__doc__)) # removes newlines
 | 
			
		||||
        class_docstring = repr(re.sub(r'\n+', '', eval(_class).__doc__)) # removes newlines
 | 
			
		||||
 | 
			
		||||
    remove_extra_spaces = re.sub(' +', ' ', class_docstring)
 | 
			
		||||
        remove_extra_spaces = re.sub(' +', ' ', class_docstring)
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        args = re.findall(r'(?<=Args:)(.*)(?=Returns:)', remove_extra_spaces)[0]
 | 
			
		||||
        try:
 | 
			
		||||
            args = re.findall(r'(?<=Args:)(.*)(?=Returns:)', remove_extra_spaces)[0]
 | 
			
		||||
 | 
			
		||||
        returns = re.findall(r'(?<=Returns:)(.*)(?=Raises:)', remove_extra_spaces)[0]
 | 
			
		||||
            returns = re.findall(r'(?<=Returns:)(.*)(?=Raises:)', remove_extra_spaces)[0]
 | 
			
		||||
 | 
			
		||||
        raises = re.findall(r'(?<=Raises:)(.*)(?=Examples:)', remove_extra_spaces)[0]
 | 
			
		||||
            raises = re.findall(r'(?<=Raises:)(.*)(?=Examples:)', remove_extra_spaces)[0]
 | 
			
		||||
 | 
			
		||||
        examples = re.findall(r'(?<=Examples:)(.*)', remove_extra_spaces)[0]
 | 
			
		||||
            examples = re.findall(r'(?<=Examples:)(.*)', remove_extra_spaces)[0]
 | 
			
		||||
 | 
			
		||||
        functions = [x for x in dir(eval(_class)) if not x.startswith('_')]
 | 
			
		||||
            functions = [x for x in dir(eval(_class)) if not x.startswith('_')]
 | 
			
		||||
 | 
			
		||||
        with open('./docs/{}.md'.format(_class), 'w') as f:
 | 
			
		||||
            f.write('# **class** `{}()`\n'.format(_class))
 | 
			
		||||
            f.write(intro)
 | 
			
		||||
            format_args(args, f)
 | 
			
		||||
            format_returns(returns, f)
 | 
			
		||||
            format_raises(raises, f)
 | 
			
		||||
            format_examples(examples, f)
 | 
			
		||||
            format_functions(_class, functions, f)
 | 
			
		||||
            with open('./docs/{}/{}.md'.format(subpackage.__name__, _class), 'w') as f:
 | 
			
		||||
                f.write('# **class** `{}.{}()`\n'.format(subpackage.__name__, _class))
 | 
			
		||||
                f.write(intro)
 | 
			
		||||
                format_args(args, f)
 | 
			
		||||
                format_returns(returns, f)
 | 
			
		||||
                format_raises(raises, f)
 | 
			
		||||
                format_examples(examples, f)
 | 
			
		||||
                format_functions(_class, functions, f)
 | 
			
		||||
 | 
			
		||||
    except Exception as e:
 | 
			
		||||
        print(_class.upper())
 | 
			
		||||
        print(repr(eval(_class).__doc__))
 | 
			
		||||
        print('Args: ', re.findall(r'(?<=Args:)(.*)(?=Returns:)', remove_extra_spaces))
 | 
			
		||||
        print('Returns: ', re.findall(r'(?<=Returns:)(.*)(?=Raises:)', remove_extra_spaces))
 | 
			
		||||
        print('Raises: ', re.findall(r'(?<=Raises:)(.*)(?=Examples:)', remove_extra_spaces))
 | 
			
		||||
        print('Examples: ', re.findall(r'(?<=Examples:)(.*)', remove_extra_spaces))
 | 
			
		||||
        print(e)
 | 
			
		||||
        print('~~~~~~~~~~~~~~~~~~~~~~~~~~')
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            print(_class.upper())
 | 
			
		||||
            print(repr(eval(_class).__doc__))
 | 
			
		||||
            print('Args: ', re.findall(r'(?<=Args:)(.*)(?=Returns:)', remove_extra_spaces))
 | 
			
		||||
            print('Returns: ', re.findall(r'(?<=Returns:)(.*)(?=Raises:)', remove_extra_spaces))
 | 
			
		||||
            print('Raises: ', re.findall(r'(?<=Raises:)(.*)(?=Examples:)', remove_extra_spaces))
 | 
			
		||||
            print('Examples: ', re.findall(r'(?<=Examples:)(.*)', remove_extra_spaces))
 | 
			
		||||
            print(e)
 | 
			
		||||
            print('~~~~~~~~~~~~~~~~~~~~~~~~~~')
 | 
			
		||||
 | 
			
		||||
if __name__ == '__main__':
 | 
			
		||||
    main(scrython.bulk_data)
 | 
			
		||||
    main(scrython.cards)
 | 
			
		||||
    main(scrython.catalog)
 | 
			
		||||
    main(scrython.rulings)
 | 
			
		||||
    main(scrython.sets)
 | 
			
		||||
    main(scrython.symbology)
 | 
			
		||||
		Loading…
	
		Reference in New Issue