def insert_filename(self, dirname, filename, ext='.py'):
        full_filename = os.path.join(dirname, filename)
        if not self.exists(nodify(full_filename)):
            # If self.root is defined, we're only displaying files under that root.
            # If the normalized version of the filename is the same as the
            # filename, then the file *isn't* under the root. Don't bother trying
            # to add the file.
            # Alternatively, if self.root is *not* defined, *only* add the file if
            # if isn't under the project root.
            if full_filename == self.normalizer(full_filename):
                if self.root:
                    return
                self.insert_dirname(dirname)
            else:
                if self.root is None:
                    return

            # Establish the index at which to insert this child.
            # Do this by getting a list of children, sorting the list by name
            # and then finding how many would sort less than the label for
            # this node.
            files = sorted(self.get_children(nodify(dirname)), reverse=False)
            index = len([item for item in files if item < nodify(full_filename)])
            # Now insert a new node at the index that was found.
            self.insert(
                nodify(dirname), index, nodify(os.path.join(dirname, filename)),
                text=filename,
                open=True,
                tags=['file'] + ['code'] if ext == '.py' else ['non_code']
            )
The set action reports a failure with usage information if invoked with
dataset/ETHPy150Open pybee/duvet/duvet/widgets.py/FileView.insert_filename--crossover with--dataset/ETHPy150Open twisted/imaginary/imaginary/test/test_set.py/SetTests.test_unrecognizedGender