def parse_config(self, config):
prefix = self.argument_prefix<EOL>self.sources = config.get_sources(prefix)<EOL>self.smart_sources = [<EOL>self._get_smart_filename(s) for s in self.sources]<EOL>self.index = config.get_index(prefix)<EOL>self.source_roots = OrderedSet(<EOL>config.get_paths('<STR_LIT>' % prefix))<EOL>for arg, dest in list(self.paths_arguments.items()):<EOL><INDENT>val = config.get_paths(arg)<EOL>setattr(self, dest, val)<EOL><DEDENT>for arg, dest in list(self.path_arguments.items()):<EOL><INDENT>val = config.get_path(arg)<EOL>setattr(self, dest, val)<EOL><DEDENT>self.formatter.parse_config(config)<EOL>
Override this, making sure to chain up first, if your extension adds
its own custom command line arguments, or you want to do any further
processing on the automatically added arguments.

The default implementation will set attributes on the extension:
- 'sources': a set of absolute paths to source files for this extension
- 'index': absolute path to the index for this extension

Additionally, it will set an attribute for each argument added with
`Extension.add_path_argument` or `Extension.add_paths_argument`, with
the extension's `Extension.argument_prefix` stripped, and dashes
changed to underscores.

Args:
    config: a `config.Config` instance