PLUS1_STITCHES = ('yo')
MINUS1_STITCHES = ('k2t', 'p2t', 'ssk', 'ssp')
MINUS2_STITCHES = ('ssk2t', 'ssp2t', 'ccd')

def get_tags(file_out):
    '''str -> str
    Assumes that file_out is the string representation of a .knf file,
    Return a string that contains the subset of the file that contains the tags.'''
    
    pass

def get_chart(file_out):
    '''str -> str
    Assumes that file_out is string representation of a .knf file,
    Return a string that contains the subset of the file that contains the chart.'''
    
    pass

def get_formatted_stitch(i, j, stitches):
    '''(int, int, list of list of str) -> str
    Return the instruction j of row i of the chart formatted according to the
    assignment specification. Counts from 1 rather than 0.
    '''
    
    pass

def format_stitch(stitch):
    '''str->str
    Take one instruction from the knitting chart and return a string describing
    it according to the assignment specification.
    '''
    
    pass

def format_tag(tag):
    '''str -> str
    Takes a one line str tag that contains one line of a .knf file that contains
    a tag, and returns a string formatted according to the assignment specification.'''

    pass

def find_tag(desired_tag, file_out):
    '''(str, str) -> str
    Desired_tag contains the tag time that we want information about, file_out
    contains the string 
    Returns a string that slightly more nicely formats the information.'''
    
    pass
    

def create_chart(file_out):
    '''str -> list of list of str
    Return a list of lists that represents the knitting chart portion of the 
    file. Each list is one row, each element is one instruction.'''
    
    pass

def sanity_check(file_out):
    '''str -> (bool, (int, int), list of int)
    This determines whether the chart in file_out is a legal chart.
    It returns True iff it can't prove that the chart is illegal.
    The tuple of ints contain two -1s if the chart is not provably illegal, and
    the first instance of two lines where the number of stitches fail to match
    up if the chart is provably illegal.
    The list of integers contains all the lines where there is unexpected input.
    this is interpreted as a set of lines in which the program is uncertain if
    the chart is legal.'''
    
    pass

def minus_stitches(stitch):
    '''str -> int
    Returns the number of excess stitches needed by this stitch.'''
    
    pass

def plus_stitches(stitch):
    '''str -> int
    Returns the number of additional stitches generated by this stitch.'''
    
    pass

def regular_stitch(stitch):
    '''str -> bool
    Return True iff the stitch is an expected type of stitch.'''
    
    pass
