def __init__(self, term, value, term_args=False,<EOL>row=None, col=None, file_name=None, file_type=None,<EOL>parent=None, doc=None, section=None):
def strip_if_str(v):<EOL><INDENT>try:<EOL><INDENT>return v.strip()<EOL><DEDENT>except AttributeError:<EOL><INDENT>return v<EOL><DEDENT><DEDENT>self.parent = parent  <EOL>self._term = None<EOL>self.term = term  <EOL>self._orig_term = term<EOL>self.value = strip_if_str(value) if value else None<EOL>self.args = [strip_if_str(x) for x in (term_args or [])]<EOL>self._section = None<EOL>self.section = section<EOL>self.doc = doc<EOL>if file_name:<EOL><INDENT>self.file_name = slugify(basename(file_name))<EOL><DEDENT>else:<EOL><INDENT>self.file_name = '<STR_LIT>'<EOL><DEDENT>self.file_type = file_type<EOL>self.row = row<EOL>self.col = col<EOL>if self.parent:<EOL><INDENT>assert self.parent.record_term_lc == self.parent_term_lc, (<EOL>term, self.parent.record_term_lc, self.parent_term_lc)<EOL><DEDENT>self.term_value_name = '<STR_LIT>'  <EOL>self.child_property_type = '<STR_LIT>'<EOL>self.valid = None<EOL>self.options =[] <EOL>self.children = []  <EOL>assert self.file_name is None or isinstance(self.file_name, str), self.file_name<EOL>self.__initialised = True<EOL>
:param term: Simple or compoint term name
:param value: Term value, from second column of spreadsheet
:param term_args: Colums 2+ from term row, which become properties
:param row: Row number in the file where the term appears. Starts at 0
:param col: Column number, for arg children ( properties )
:param file_name: The name or url of the file where the term appears.
:param file_type: Usually None, but may be 'declare' for terms that appear in declare docs.
:param parent: If set, the term is an arg child, and the term_parent is the parent term.
:param doc: a MetatabDoc object, for the document the term is being parsed into.