code: def parse_script_name(self, script_name):
          '''
          Parse a script name and return a dictionary with fields
          fname, name, version and ext (or None if the name does not match).
  
          :param name: name of the script
          '''
          match = re.match(self.pattern, script_name)
          if not match:
              return
          version, flag, name, ext = match.groups()
          return dict(fname=script_name, version=version, name=name,
                      flag=flag, ext=ext, url=self.upgrades_url + script_namef parse_script_name(self, script_name):
          '''
          Parse a script name and return a dictionary with fields
          fname, name, version and ext (or None if the name does not match).
  
          :param name: name of the script
          '''
          match = re.match(self.pattern, script_name)
          if not match:
              return
          version, flag, name, ext = match.groups()
          return dict(fname=script_name, version=version, name=name,
                      flag=flag, ext=ext, url=self.upgrades_url + script_name)
docs: Parse a script name and return a dictionary with fields
          fname, name, version and ext (or None if the name does not match).
  
          :param name: name of the script