<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def load_and_parse(self, package_name, root_dir, relative_dirs, tags=None):
 """Load and parse seed files in a list of directories. Returns a dict that maps unique ids onto ParsedNodes"""


        extension = "[!.#~]*.csv"
        if dbt.flags.STRICT_MODE:
            dbt.contracts.project.ProjectList(**self.all_projects)

        file_matches = dbt.clients.system.find_matching(
            root_dir,
            relative_dirs,
            extension)

        # we only want to parse seeds if we're inside 'dbt seed'
        should_parse = self.root_project_config.args.which == 'seed'

        result = {}
        for file_match in file_matches:
            node, agate_table = self.parse_seed_file(file_match, root_dir,
                                                     package_name,
                                                     should_parse)
            node_path = self.get_path(NodeType.Seed, package_name, node.name)
            parsed = self.parse_node(node, node_path,
                                     self.all_projects.get(package_name),
                                     tags=tags, agate_table=agate_table)
            result[node_path] = parsed

        return result