code: def parse(cls, src, dist=None):
          
          m = cls.pattern.match(src)
          if not m:
              msg = "EntryPoint must be in 'name=module:attrs [extras]' format"
              raise ValueError(msg, src)
          res = m.groupdict()
          extras = cls._parse_extras(res['extras'])
          attrs = res['attr'].split('.') if res['attr'] else ()
          return cls(res['name'], res['module'], attrs, extras, dist)
docs: Parse a single entry point from string `src`
  
          Entry point syntax follows the form::
  
              name = some.module:some.attr [extra1, extra2]
  
          The entry name and module name are required, but the ``:attrs`` and
          ``[extras]`` parts are optional