docs: def create(obj: PersistedObject, obj_type: Type[T], extensions_supported: Iterable[str]):
          """
          Helper method provided because we actually can't put that in the constructor, it creates a bug in Nose tests
          https://github.com/nose-devs/nose/issues/725
  
          :param obj:
          :param obj_type:
          :param extensions_supported:
          :return:
          """
  
          # base message
          msg = "{obj} cannot be parsed as a {typ} because no parser supporting that extension ({ext}) is able to " \
                "create this type of object." \
                "".format(obj=obj, typ=get_pretty_type_str(obj_type), ext=obj.get_pretty_file_ext())
  
          # add details
          if extensions_supported is not None and len(extensions_supported) > 0:
              msg += " If you wish to parse this fileobject to that precise type, you may wish to either " \
                     "(1) replace the file with any of the following extensions currently supported : {exts} " \
                     "(see get_capabilities_for_type({typ}, strict_type_matching=False) for details)." \
                     " Or (2) register a new parser." \
                     "".format(exts=extensions_supported, typ=get_pretty_type_str(obj_type))
          else:
              raise ValueError('extensions_supported should be provided to create a NoParserFoundForObjectExt. If no '
                               'extension is supported, use NoParserFoundForObjectType.create instead')
  
          e = NoParserFoundForObjectExt(msg)
  
          # save the extensions supported
          e.extensions_supported = extensions_supported
  
          return e