{
    "mode": "pydoc",
    "parameter": "pkg_resources",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/pydoc/pkg_resources/json",
    "generated": "2026-06-02T15:51:10Z",
    "sections": {
        "NAME": {
            "content": "pkgresources\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "Package resource API\n--------------------\n\nA resource is a logical file contained within a package, or a logical\nsubdirectory thereof.  The package resource API expects resource names\nto have their path parts separated with ``/``, *not* whatever the local\npath separator is.  Do not use os.path operations to manipulate resource\nnames being passed into the API.\n\nThe package resource API is designed to work with normal filesystem packages,\n.egg files, and unpacked .egg files.  It can also work in a limited way with\n.zip files and with custom PEP 302 loaders that support the ``getdata()``\nmethod.\n",
            "subsections": []
        },
        "PACKAGE CONTENTS": {
            "content": "vendor (package)\nextern (package)\n",
            "subsections": []
        },
        "SUBMODULES": {
            "content": "appdirs\npackaging\n",
            "subsections": []
        },
        "CLASSES": {
            "content": "builtins.Exception(builtins.BaseException)\nResolutionError\nDistributionNotFound\nUnknownExtra\nVersionConflict\nbuiltins.RuntimeError(builtins.Exception)\nExtractionError\nbuiltins.RuntimeWarning(builtins.Warning)\nPEP440Warning\nbuiltins.Warning(builtins.Exception)\nPkgResourcesDeprecationWarning\nbuiltins.object\nDistribution\nEntryPoint\nEnvironment\nIMetadataProvider\nIResourceProvider\nNullProvider\nEggProvider\nDefaultProvider\nPathMetadata\nZipProvider\nEggMetadata\nEmptyProvider\nFileMetadata\nResourceManager\nWorkingSet\npkgresources.extern.packaging.requirements.Requirement(builtins.object)\nRequirement\n\nAvailableDistributions = class Environment(builtins.object)\n|  AvailableDistributions(searchpath=None, platform='linux-x8664', python='3.10')\n|\n|  Searchable snapshot of distributions on a search path\n|\n|  Methods defined here:\n|\n|  add(self, other)\n|      Add an environment or distribution to an environment\n|\n|  getitem(self, projectname)\n|      Return a newest-to-oldest list of distributions for `projectname`\n|\n|      Uses case-insensitive `projectname` comparison, assuming all the\n|      project's distributions use their project's name converted to all\n|      lowercase as their key.\n|\n|  iadd(self, other)\n|      In-place addition of a distribution or environment\n|\n|  init(self, searchpath=None, platform='linux-x8664', python='3.10')\n|      Snapshot distributions available on a search path\n|\n|      Any distributions found on `searchpath` are added to the environment.\n|      `searchpath` should be a sequence of ``sys.path`` items.  If not\n|      supplied, ``sys.path`` is used.\n|\n|      `platform` is an optional string specifying the name of the platform\n|      that platform-specific distributions must be compatible with.  If\n|      unspecified, it defaults to the current platform.  `python` is an\n|      optional string naming the desired version of Python (e.g. ``'3.6'``);\n|      it defaults to the current version.\n|\n|      You may explicitly set `platform` (and/or `python`) to ``None`` if you\n|      wish to map *all* distributions, not just those compatible with the\n|      running platform or Python version.\n|\n|  iter(self)\n|      Yield the unique project names of the available distributions\n|\n|  add(self, dist)\n|      Add `dist` if we ``canadd()`` it and it has not already been added\n|\n|  bestmatch(self, req, workingset, installer=None, replaceconflicting=False)\n|      Find distribution best matching `req` and usable on `workingset`\n|\n|      This calls the ``find(req)`` method of the `workingset` to see if a\n|      suitable distribution is already active.  (This may raise\n|      ``VersionConflict`` if an unsuitable version of the project is already\n|      active in the specified `workingset`.)  If a suitable distribution\n|      isn't active, this method returns the newest distribution in the\n|      environment that meets the ``Requirement`` in `req`.  If no suitable\n|      distribution is found, and `installer` is supplied, then the result of\n|      calling the environment's ``obtain(req, installer)`` method will be\n|      returned.\n|\n|  canadd(self, dist)\n|      Is distribution `dist` acceptable for this environment?\n|\n|      The distribution must match the platform and python version\n|      requirements specified when this environment was created, or False\n|      is returned.\n|\n|  obtain(self, requirement, installer=None)\n|      Obtain a distribution matching `requirement` (e.g. via download)\n|\n|      Obtain a distro that matches requirement (e.g. via download).  In the\n|      base ``Environment`` class, this routine just returns\n|      ``installer(requirement)``, unless `installer` is None, in which case\n|      None is returned instead.  This method is a hook that allows subclasses\n|      to attempt other ways of obtaining a distribution before falling back\n|      to the `installer` argument.\n|\n|  remove(self, dist)\n|      Remove `dist` from the environment\n|\n|  scan(self, searchpath=None)\n|      Scan `searchpath` for distributions usable in this environment\n|\n|      Any distributions found are added to the environment.\n|      `searchpath` should be a sequence of ``sys.path`` items.  If not\n|      supplied, ``sys.path`` is used.  Only distributions conforming to\n|      the platform/python version defined at initialization are added.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors defined here:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n",
            "subsections": [
                {
                    "name": "class DefaultProvider",
                    "content": "|  DefaultProvider(module)\n|\n|  Provides access to package resources in the filesystem\n|\n|  Method resolution order:\n|      DefaultProvider\n|      EggProvider\n|      NullProvider\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  getresourcestream(self, manager, resourcename)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from EggProvider:\n|\n|  init(self, module)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from NullProvider:\n|\n|  getmetadata(self, name)\n|\n|  getmetadatalines(self, name)\n|\n|  getresourcefilename(self, manager, resourcename)\n|\n|  getresourcestring(self, manager, resourcename)\n|\n|  hasmetadata(self, name)\n|\n|  hasresource(self, resourcename)\n|\n|  metadataisdir(self, name)\n|\n|  metadatalistdir(self, name)\n|\n|  resourceisdir(self, resourcename)\n|\n|  resourcelistdir(self, resourcename)\n|\n|  runscript(self, scriptname, namespace)\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from NullProvider:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes inherited from NullProvider:\n|\n|  egginfo = None\n|\n|  eggname = None\n|\n|  loader = None\n"
                },
                {
                    "name": "class Distribution",
                    "content": "|  Distribution(location=None, metadata=None, projectname=None, version=None, pyversion='3.10', platform=None, precedence=3)\n|\n|  Wrap an actual or potential sys.path entry w/metadata\n|\n|  Methods defined here:\n|\n|  dir(self)\n|      Default dir() implementation.\n|\n|  eq(self, other)\n|      Return self==value.\n|\n|  ge(self, other)\n|      Return self>=value.\n|\n|  getattr(self, attr)\n|      Delegate all unrecognized public attributes to .metadata provider\n|\n|  gt(self, other)\n|      Return self>value.\n|\n|  hash(self)\n|      Return hash(self).\n|\n|  init(self, location=None, metadata=None, projectname=None, version=None, pyversion='3.10', platform=None, precedence=3)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  le(self, other)\n|      Return self<=value.\n|\n|  lt(self, other)\n|      Return self<value.\n|\n|  ne(self, other)\n|      Return self!=value.\n|\n|  repr(self)\n|      Return repr(self).\n|\n|  str(self)\n|      Return str(self).\n|\n|  activate(self, path=None, replace=False)\n|      Ensure distribution is importable on `path` (default=sys.path)\n|\n|  asrequirement(self)\n|      Return a ``Requirement`` that matches this distribution exactly\n|\n|  checkversionconflict(self)\n|\n|  clone(self, kw)\n|      Copy this distribution, substituting in any changed keyword args\n|\n|  eggname(self)\n|      Return what this distribution's standard .egg filename should be\n|\n|  getentryinfo(self, group, name)\n|      Return the EntryPoint object for `group`+`name`, or ``None``\n|\n|  getentrymap(self, group=None)\n|      Return the entry point map for `group`, or the full entry map\n|\n|  hasversion(self)\n|\n|  inserton(self, path, loc=None, replace=False)\n|      Ensure self.location is on path\n|\n|      If replace=False (default):\n|          - If location is already in path anywhere, do nothing.\n|          - Else:\n|            - If it's an egg and its parent directory is on path,\n|              insert just ahead of the parent.\n|            - Else: add to the end of path.\n|      If replace=True:\n|          - If location is already on path anywhere (not eggs)\n|            or higher priority than its parent (eggs)\n|            do nothing.\n|          - Else:\n|            - If it's an egg and its parent directory is on path,\n|              insert just ahead of the parent,\n|              removing any lower-priority entries.\n|            - Else: add it to the front of path.\n|\n|  loadentrypoint(self, group, name)\n|      Return the `name` entry point of `group` or raise ImportError\n|\n|  requires(self, extras=())\n|      List of Requirements needed for this distro if `extras` are used\n|\n|  ----------------------------------------------------------------------\n|  Class methods defined here:\n|\n|  fromfilename(filename, metadata=None, kw) from builtins.type\n|\n|  fromlocation(location, basename, metadata=None, kw) from builtins.type\n|\n|  ----------------------------------------------------------------------\n|  Readonly properties defined here:\n|\n|  extras\n|\n|  hashcmp\n|\n|  key\n|\n|  parsedversion\n|\n|  version\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors defined here:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes defined here:\n|\n|  PKGINFO = 'PKG-INFO'\n"
                },
                {
                    "name": "class DistributionNotFound",
                    "content": "|  A requested distribution was not found\n|\n|  Method resolution order:\n|      DistributionNotFound\n|      ResolutionError\n|      builtins.Exception\n|      builtins.BaseException\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  str(self)\n|      Return str(self).\n|\n|  report(self)\n|\n|  ----------------------------------------------------------------------\n|  Readonly properties defined here:\n|\n|  req\n|\n|  requirers\n|\n|  requirersstr\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from ResolutionError:\n|\n|  repr(self)\n|      Return repr(self).\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from ResolutionError:\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.Exception:\n|\n|  init(self, /, *args, kwargs)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Static methods inherited from builtins.Exception:\n|\n|  new(*args, kwargs) from builtins.type\n|      Create and return a new object.  See help(type) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.BaseException:\n|\n|  delattr(self, name, /)\n|      Implement delattr(self, name).\n|\n|  getattribute(self, name, /)\n|      Return getattr(self, name).\n|\n|  reduce(...)\n|      Helper for pickle.\n|\n|  setattr(self, name, value, /)\n|      Implement setattr(self, name, value).\n|\n|  setstate(...)\n|\n|  withtraceback(...)\n|      Exception.withtraceback(tb) --\n|      set self.traceback to tb and return self.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from builtins.BaseException:\n|\n|  cause\n|      exception cause\n|\n|  context\n|      exception context\n|\n|  dict\n|\n|  suppresscontext\n|\n|  traceback\n|\n|  args\n"
                },
                {
                    "name": "class EggMetadata",
                    "content": "|  EggMetadata(importer)\n|\n|  Metadata provider for .egg files\n|\n|  Method resolution order:\n|      EggMetadata\n|      ZipProvider\n|      EggProvider\n|      NullProvider\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  init(self, importer)\n|      Create a metadata provider from a zipimporter\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from ZipProvider:\n|\n|  getresourcefilename(self, manager, resourcename)\n|\n|  ----------------------------------------------------------------------\n|  Readonly properties inherited from ZipProvider:\n|\n|  zipinfo\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes inherited from ZipProvider:\n|\n|  eagers = None\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from NullProvider:\n|\n|  getmetadata(self, name)\n|\n|  getmetadatalines(self, name)\n|\n|  getresourcestream(self, manager, resourcename)\n|\n|  getresourcestring(self, manager, resourcename)\n|\n|  hasmetadata(self, name)\n|\n|  hasresource(self, resourcename)\n|\n|  metadataisdir(self, name)\n|\n|  metadatalistdir(self, name)\n|\n|  resourceisdir(self, resourcename)\n|\n|  resourcelistdir(self, resourcename)\n|\n|  runscript(self, scriptname, namespace)\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from NullProvider:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes inherited from NullProvider:\n|\n|  egginfo = None\n|\n|  eggname = None\n|\n|  loader = None\n"
                },
                {
                    "name": "class EggProvider",
                    "content": "|  EggProvider(module)\n|\n|  Provider based on a virtual filesystem\n|\n|  Method resolution order:\n|      EggProvider\n|      NullProvider\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  init(self, module)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from NullProvider:\n|\n|  getmetadata(self, name)\n|\n|  getmetadatalines(self, name)\n|\n|  getresourcefilename(self, manager, resourcename)\n|\n|  getresourcestream(self, manager, resourcename)\n|\n|  getresourcestring(self, manager, resourcename)\n|\n|  hasmetadata(self, name)\n|\n|  hasresource(self, resourcename)\n|\n|  metadataisdir(self, name)\n|\n|  metadatalistdir(self, name)\n|\n|  resourceisdir(self, resourcename)\n|\n|  resourcelistdir(self, resourcename)\n|\n|  runscript(self, scriptname, namespace)\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from NullProvider:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes inherited from NullProvider:\n|\n|  egginfo = None\n|\n|  eggname = None\n|\n|  loader = None\n"
                },
                {
                    "name": "class EmptyProvider",
                    "content": "|  Provider that returns nothing for all requests\n|\n|  Method resolution order:\n|      EmptyProvider\n|      NullProvider\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  init(self)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes defined here:\n|\n|  modulepath = None\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from NullProvider:\n|\n|  getmetadata(self, name)\n|\n|  getmetadatalines(self, name)\n|\n|  getresourcefilename(self, manager, resourcename)\n|\n|  getresourcestream(self, manager, resourcename)\n|\n|  getresourcestring(self, manager, resourcename)\n|\n|  hasmetadata(self, name)\n|\n|  hasresource(self, resourcename)\n|\n|  metadataisdir(self, name)\n|\n|  metadatalistdir(self, name)\n|\n|  resourceisdir(self, resourcename)\n|\n|  resourcelistdir(self, resourcename)\n|\n|  runscript(self, scriptname, namespace)\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from NullProvider:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes inherited from NullProvider:\n|\n|  egginfo = None\n|\n|  eggname = None\n|\n|  loader = None\n"
                },
                {
                    "name": "class EntryPoint",
                    "content": "|  EntryPoint(name, modulename, attrs=(), extras=(), dist=None)\n|\n|  Object representing an advertised importable object\n|\n|  Methods defined here:\n|\n|  init(self, name, modulename, attrs=(), extras=(), dist=None)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  repr(self)\n|      Return repr(self).\n|\n|  str(self)\n|      Return str(self).\n|\n|  load(self, require=True, *args, kwargs)\n|      Require packages for this EntryPoint, then resolve it.\n|\n|  require(self, env=None, installer=None)\n|\n|  resolve(self)\n|      Resolve the entry point from its module and attrs.\n|\n|  ----------------------------------------------------------------------\n|  Class methods defined here:\n|\n|  parse(src, dist=None) from builtins.type\n|      Parse a single entry point from string `src`\n|\n|      Entry point syntax follows the form::\n|\n|          name = some.module:some.attr [extra1, extra2]\n|\n|      The entry name and module name are required, but the ``:attrs`` and\n|      ``[extras]`` parts are optional\n|\n|  parsegroup(group, lines, dist=None) from builtins.type\n|      Parse an entry point group\n|\n|  parsemap(data, dist=None) from builtins.type\n|      Parse a map of entry point groups\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors defined here:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes defined here:\n|\n|  pattern = re.compile('\\\\s*(?P<name>.+?)\\\\s*=\\\\s*(?P<module...P<attr>[\\...\n"
                },
                {
                    "name": "class Environment",
                    "content": "|  Environment(searchpath=None, platform='linux-x8664', python='3.10')\n|\n|  Searchable snapshot of distributions on a search path\n|\n|  Methods defined here:\n|\n|  add(self, other)\n|      Add an environment or distribution to an environment\n|\n|  getitem(self, projectname)\n|      Return a newest-to-oldest list of distributions for `projectname`\n|\n|      Uses case-insensitive `projectname` comparison, assuming all the\n|      project's distributions use their project's name converted to all\n|      lowercase as their key.\n|\n|  iadd(self, other)\n|      In-place addition of a distribution or environment\n|\n|  init(self, searchpath=None, platform='linux-x8664', python='3.10')\n|      Snapshot distributions available on a search path\n|\n|      Any distributions found on `searchpath` are added to the environment.\n|      `searchpath` should be a sequence of ``sys.path`` items.  If not\n|      supplied, ``sys.path`` is used.\n|\n|      `platform` is an optional string specifying the name of the platform\n|      that platform-specific distributions must be compatible with.  If\n|      unspecified, it defaults to the current platform.  `python` is an\n|      optional string naming the desired version of Python (e.g. ``'3.6'``);\n|      it defaults to the current version.\n|\n|      You may explicitly set `platform` (and/or `python`) to ``None`` if you\n|      wish to map *all* distributions, not just those compatible with the\n|      running platform or Python version.\n|\n|  iter(self)\n|      Yield the unique project names of the available distributions\n|\n|  add(self, dist)\n|      Add `dist` if we ``canadd()`` it and it has not already been added\n|\n|  bestmatch(self, req, workingset, installer=None, replaceconflicting=False)\n|      Find distribution best matching `req` and usable on `workingset`\n|\n|      This calls the ``find(req)`` method of the `workingset` to see if a\n|      suitable distribution is already active.  (This may raise\n|      ``VersionConflict`` if an unsuitable version of the project is already\n|      active in the specified `workingset`.)  If a suitable distribution\n|      isn't active, this method returns the newest distribution in the\n|      environment that meets the ``Requirement`` in `req`.  If no suitable\n|      distribution is found, and `installer` is supplied, then the result of\n|      calling the environment's ``obtain(req, installer)`` method will be\n|      returned.\n|\n|  canadd(self, dist)\n|      Is distribution `dist` acceptable for this environment?\n|\n|      The distribution must match the platform and python version\n|      requirements specified when this environment was created, or False\n|      is returned.\n|\n|  obtain(self, requirement, installer=None)\n|      Obtain a distribution matching `requirement` (e.g. via download)\n|\n|      Obtain a distro that matches requirement (e.g. via download).  In the\n|      base ``Environment`` class, this routine just returns\n|      ``installer(requirement)``, unless `installer` is None, in which case\n|      None is returned instead.  This method is a hook that allows subclasses\n|      to attempt other ways of obtaining a distribution before falling back\n|      to the `installer` argument.\n|\n|  remove(self, dist)\n|      Remove `dist` from the environment\n|\n|  scan(self, searchpath=None)\n|      Scan `searchpath` for distributions usable in this environment\n|\n|      Any distributions found are added to the environment.\n|      `searchpath` should be a sequence of ``sys.path`` items.  If not\n|      supplied, ``sys.path`` is used.  Only distributions conforming to\n|      the platform/python version defined at initialization are added.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors defined here:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n"
                },
                {
                    "name": "class ExtractionError",
                    "content": "|  An error occurred extracting a resource\n|\n|  The following attributes are available from instances of this exception:\n|\n|  manager\n|      The resource manager that raised this exception\n|\n|  cachepath\n|      The base directory for resource extraction\n|\n|  originalerror\n|      The exception instance that caused extraction to fail\n|\n|  Method resolution order:\n|      ExtractionError\n|      builtins.RuntimeError\n|      builtins.Exception\n|      builtins.BaseException\n|      builtins.object\n|\n|  Data descriptors defined here:\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.RuntimeError:\n|\n|  init(self, /, *args, kwargs)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Static methods inherited from builtins.RuntimeError:\n|\n|  new(*args, kwargs) from builtins.type\n|      Create and return a new object.  See help(type) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.BaseException:\n|\n|  delattr(self, name, /)\n|      Implement delattr(self, name).\n|\n|  getattribute(self, name, /)\n|      Return getattr(self, name).\n|\n|  reduce(...)\n|      Helper for pickle.\n|\n|  repr(self, /)\n|      Return repr(self).\n|\n|  setattr(self, name, value, /)\n|      Implement setattr(self, name, value).\n|\n|  setstate(...)\n|\n|  str(self, /)\n|      Return str(self).\n|\n|  withtraceback(...)\n|      Exception.withtraceback(tb) --\n|      set self.traceback to tb and return self.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from builtins.BaseException:\n|\n|  cause\n|      exception cause\n|\n|  context\n|      exception context\n|\n|  dict\n|\n|  suppresscontext\n|\n|  traceback\n|\n|  args\n"
                },
                {
                    "name": "class FileMetadata",
                    "content": "|  FileMetadata(path)\n|\n|  Metadata handler for standalone PKG-INFO files\n|\n|  Usage::\n|\n|      metadata = FileMetadata(\"/path/to/PKG-INFO\")\n|\n|  This provider rejects all data and metadata requests except for PKG-INFO,\n|  which is treated as existing, and will be the contents of the file at\n|  the provided location.\n|\n|  Method resolution order:\n|      FileMetadata\n|      EmptyProvider\n|      NullProvider\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  init(self, path)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  getmetadata(self, name)\n|\n|  getmetadatalines(self, name)\n|\n|  hasmetadata(self, name)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes inherited from EmptyProvider:\n|\n|  modulepath = None\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from NullProvider:\n|\n|  getresourcefilename(self, manager, resourcename)\n|\n|  getresourcestream(self, manager, resourcename)\n|\n|  getresourcestring(self, manager, resourcename)\n|\n|  hasresource(self, resourcename)\n|\n|  metadataisdir(self, name)\n|\n|  metadatalistdir(self, name)\n|\n|  resourceisdir(self, resourcename)\n|\n|  resourcelistdir(self, resourcename)\n|\n|  runscript(self, scriptname, namespace)\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from NullProvider:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes inherited from NullProvider:\n|\n|  egginfo = None\n|\n|  eggname = None\n|\n|  loader = None\n"
                },
                {
                    "name": "class IMetadataProvider",
                    "content": "|  Methods defined here:\n|\n|  getmetadata(name)\n|      The named metadata resource as a string\n|\n|  getmetadatalines(name)\n|      Yield named metadata resource as list of non-blank non-comment lines\n|\n|      Leading and trailing whitespace is stripped from each line, and lines\n|      with ``#`` as the first non-blank character are omitted.\n|\n|  hasmetadata(name)\n|      Does the package's distribution contain the named metadata?\n|\n|  metadataisdir(name)\n|      Is the named metadata a directory?  (like ``os.path.isdir()``)\n|\n|  metadatalistdir(name)\n|      List of metadata names in the directory (like ``os.listdir()``)\n|\n|  runscript(scriptname, namespace)\n|      Execute the named script in the supplied namespace dictionary\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors defined here:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n"
                },
                {
                    "name": "class IResourceProvider",
                    "content": "|  An object that provides access to package resources\n|\n|  Method resolution order:\n|      IResourceProvider\n|      IMetadataProvider\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  getresourcefilename(manager, resourcename)\n|      Return a true filesystem path for `resourcename`\n|\n|      `manager` must be an ``IResourceManager``\n|\n|  getresourcestream(manager, resourcename)\n|      Return a readable file-like object for `resourcename`\n|\n|      `manager` must be an ``IResourceManager``\n|\n|  getresourcestring(manager, resourcename)\n|      Return a string containing the contents of `resourcename`\n|\n|      `manager` must be an ``IResourceManager``\n|\n|  hasresource(resourcename)\n|      Does the package contain the named resource?\n|\n|  resourceisdir(resourcename)\n|      Is the named resource a directory?  (like ``os.path.isdir()``)\n|\n|  resourcelistdir(resourcename)\n|      List of resource names in the directory (like ``os.listdir()``)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from IMetadataProvider:\n|\n|  getmetadata(name)\n|      The named metadata resource as a string\n|\n|  getmetadatalines(name)\n|      Yield named metadata resource as list of non-blank non-comment lines\n|\n|      Leading and trailing whitespace is stripped from each line, and lines\n|      with ``#`` as the first non-blank character are omitted.\n|\n|  hasmetadata(name)\n|      Does the package's distribution contain the named metadata?\n|\n|  metadataisdir(name)\n|      Is the named metadata a directory?  (like ``os.path.isdir()``)\n|\n|  metadatalistdir(name)\n|      List of metadata names in the directory (like ``os.listdir()``)\n|\n|  runscript(scriptname, namespace)\n|      Execute the named script in the supplied namespace dictionary\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from IMetadataProvider:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n"
                },
                {
                    "name": "class NullProvider",
                    "content": "|  NullProvider(module)\n|\n|  Try to implement resources and metadata for arbitrary PEP 302 loaders\n|\n|  Methods defined here:\n|\n|  init(self, module)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  getmetadata(self, name)\n|\n|  getmetadatalines(self, name)\n|\n|  getresourcefilename(self, manager, resourcename)\n|\n|  getresourcestream(self, manager, resourcename)\n|\n|  getresourcestring(self, manager, resourcename)\n|\n|  hasmetadata(self, name)\n|\n|  hasresource(self, resourcename)\n|\n|  metadataisdir(self, name)\n|\n|  metadatalistdir(self, name)\n|\n|  resourceisdir(self, resourcename)\n|\n|  resourcelistdir(self, resourcename)\n|\n|  runscript(self, scriptname, namespace)\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors defined here:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes defined here:\n|\n|  egginfo = None\n|\n|  eggname = None\n|\n|  loader = None\n"
                },
                {
                    "name": "class PEP440Warning",
                    "content": "|  Used when there is an issue with a version or specifier not complying with\n|  PEP 440.\n|\n|  Method resolution order:\n|      PEP440Warning\n|      builtins.RuntimeWarning\n|      builtins.Warning\n|      builtins.Exception\n|      builtins.BaseException\n|      builtins.object\n|\n|  Data descriptors defined here:\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.RuntimeWarning:\n|\n|  init(self, /, *args, kwargs)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Static methods inherited from builtins.RuntimeWarning:\n|\n|  new(*args, kwargs) from builtins.type\n|      Create and return a new object.  See help(type) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.BaseException:\n|\n|  delattr(self, name, /)\n|      Implement delattr(self, name).\n|\n|  getattribute(self, name, /)\n|      Return getattr(self, name).\n|\n|  reduce(...)\n|      Helper for pickle.\n|\n|  repr(self, /)\n|      Return repr(self).\n|\n|  setattr(self, name, value, /)\n|      Implement setattr(self, name, value).\n|\n|  setstate(...)\n|\n|  str(self, /)\n|      Return str(self).\n|\n|  withtraceback(...)\n|      Exception.withtraceback(tb) --\n|      set self.traceback to tb and return self.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from builtins.BaseException:\n|\n|  cause\n|      exception cause\n|\n|  context\n|      exception context\n|\n|  dict\n|\n|  suppresscontext\n|\n|  traceback\n|\n|  args\n"
                },
                {
                    "name": "class PathMetadata",
                    "content": "|  PathMetadata(path, egginfo)\n|\n|  Metadata provider for egg directories\n|\n|  Usage::\n|\n|      # Development eggs:\n|\n|      egginfo = \"/path/to/PackageName.egg-info\"\n|      basedir = os.path.dirname(egginfo)\n|      metadata = PathMetadata(basedir, egginfo)\n|      distname = os.path.splitext(os.path.basename(egginfo))[0]\n|      dist = Distribution(basedir, projectname=distname, metadata=metadata)\n|\n|      # Unpacked egg directories:\n|\n|      eggpath = \"/path/to/PackageName-ver-pyver-etc.egg\"\n|      metadata = PathMetadata(eggpath, os.path.join(eggpath,'EGG-INFO'))\n|      dist = Distribution.fromfilename(eggpath, metadata=metadata)\n|\n|  Method resolution order:\n|      PathMetadata\n|      DefaultProvider\n|      EggProvider\n|      NullProvider\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  init(self, path, egginfo)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from DefaultProvider:\n|\n|  getresourcestream(self, manager, resourcename)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from NullProvider:\n|\n|  getmetadata(self, name)\n|\n|  getmetadatalines(self, name)\n|\n|  getresourcefilename(self, manager, resourcename)\n|\n|  getresourcestring(self, manager, resourcename)\n|\n|  hasmetadata(self, name)\n|\n|  hasresource(self, resourcename)\n|\n|  metadataisdir(self, name)\n|\n|  metadatalistdir(self, name)\n|\n|  resourceisdir(self, resourcename)\n|\n|  resourcelistdir(self, resourcename)\n|\n|  runscript(self, scriptname, namespace)\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from NullProvider:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes inherited from NullProvider:\n|\n|  egginfo = None\n|\n|  eggname = None\n|\n|  loader = None\n"
                },
                {
                    "name": "class PkgResourcesDeprecationWarning",
                    "content": "|  Base class for warning about deprecations in ``pkgresources``\n|\n|  This class is not derived from ``DeprecationWarning``, and as such is\n|  visible by default.\n|\n|  Method resolution order:\n|      PkgResourcesDeprecationWarning\n|      builtins.Warning\n|      builtins.Exception\n|      builtins.BaseException\n|      builtins.object\n|\n|  Data descriptors defined here:\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.Warning:\n|\n|  init(self, /, *args, kwargs)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Static methods inherited from builtins.Warning:\n|\n|  new(*args, kwargs) from builtins.type\n|      Create and return a new object.  See help(type) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.BaseException:\n|\n|  delattr(self, name, /)\n|      Implement delattr(self, name).\n|\n|  getattribute(self, name, /)\n|      Return getattr(self, name).\n|\n|  reduce(...)\n|      Helper for pickle.\n|\n|  repr(self, /)\n|      Return repr(self).\n|\n|  setattr(self, name, value, /)\n|      Implement setattr(self, name, value).\n|\n|  setstate(...)\n|\n|  str(self, /)\n|      Return str(self).\n|\n|  withtraceback(...)\n|      Exception.withtraceback(tb) --\n|      set self.traceback to tb and return self.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from builtins.BaseException:\n|\n|  cause\n|      exception cause\n|\n|  context\n|      exception context\n|\n|  dict\n|\n|  suppresscontext\n|\n|  traceback\n|\n|  args\n"
                },
                {
                    "name": "class Requirement",
                    "content": "|  Requirement(requirementstring)\n|\n|  Method resolution order:\n|      Requirement\n|      pkgresources.extern.packaging.requirements.Requirement\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  contains(self, item)\n|\n|  eq(self, other)\n|      Return self==value.\n|\n|  hash(self)\n|      Return hash(self).\n|\n|  init(self, requirementstring)\n|      DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!\n|\n|  ne(self, other)\n|      Return self!=value.\n|\n|  repr(self)\n|      Return repr(self).\n|\n|  ----------------------------------------------------------------------\n|  Static methods defined here:\n|\n|  parse(s)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from pkgresources.extern.packaging.requirements.Requirement:\n|\n|  str(self) -> str\n|      Return str(self).\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from pkgresources.extern.packaging.requirements.Requirement:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n"
                },
                {
                    "name": "class ResolutionError",
                    "content": "|  Abstract base for dependency resolution errors\n|\n|  Method resolution order:\n|      ResolutionError\n|      builtins.Exception\n|      builtins.BaseException\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  repr(self)\n|      Return repr(self).\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors defined here:\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.Exception:\n|\n|  init(self, /, *args, kwargs)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Static methods inherited from builtins.Exception:\n|\n|  new(*args, kwargs) from builtins.type\n|      Create and return a new object.  See help(type) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.BaseException:\n|\n|  delattr(self, name, /)\n|      Implement delattr(self, name).\n|\n|  getattribute(self, name, /)\n|      Return getattr(self, name).\n|\n|  reduce(...)\n|      Helper for pickle.\n|\n|  setattr(self, name, value, /)\n|      Implement setattr(self, name, value).\n|\n|  setstate(...)\n|\n|  str(self, /)\n|      Return str(self).\n|\n|  withtraceback(...)\n|      Exception.withtraceback(tb) --\n|      set self.traceback to tb and return self.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from builtins.BaseException:\n|\n|  cause\n|      exception cause\n|\n|  context\n|      exception context\n|\n|  dict\n|\n|  suppresscontext\n|\n|  traceback\n|\n|  args\n"
                },
                {
                    "name": "class ResourceManager",
                    "content": "|  Manage resource extraction and packages\n|\n|  Methods defined here:\n|\n|  init(self)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  cleanupresources(self, force=False)\n|      Delete all extracted resource files and directories, returning a list\n|      of the file and directory names that could not be successfully removed.\n|      This function does not have any concurrency protection, so it should\n|      generally only be called when the extraction path is a temporary\n|      directory exclusive to a single process.  This method is not\n|      automatically called; you must call it explicitly or register it as an\n|      ``atexit`` function if you wish to ensure cleanup of a temporary\n|      directory used for extractions.\n|\n|  extractionerror(self)\n|      Give an error message for problems extracting file(s)\n|\n|  getcachepath(self, archivename, names=())\n|      Return absolute location in cache for `archivename` and `names`\n|\n|      The parent directory of the resulting path will be created if it does\n|      not already exist.  `archivename` should be the base filename of the\n|      enclosing egg (which may not be the name of the enclosing zipfile!),\n|      including its \".egg\" extension.  `names`, if provided, should be a\n|      sequence of path name parts \"under\" the egg's extraction location.\n|\n|      This method should only be called by resource providers that need to\n|      obtain an extraction location, and only for names they intend to\n|      extract, as it tracks the generated names for possible cleanup later.\n|\n|  postprocess(self, tempname, filename)\n|      Perform any platform-specific postprocessing of `tempname`\n|\n|      This is where Mac header rewrites should be done; other platforms don't\n|      have anything special they should do.\n|\n|      Resource providers should call this method ONLY after successfully\n|      extracting a compressed resource.  They must NOT call it on resources\n|      that are already in the filesystem.\n|\n|      `tempname` is the current (temporary) name of the file, and `filename`\n|      is the name it will be renamed to by the caller after this routine\n|      returns.\n|\n|  resourceexists(self, packageorrequirement, resourcename)\n|      Does the named resource exist?\n|\n|  resourcefilename(self, packageorrequirement, resourcename)\n|      Return a true filesystem path for specified resource\n|\n|  resourceisdir(self, packageorrequirement, resourcename)\n|      Is the named resource an existing directory?\n|\n|  resourcelistdir(self, packageorrequirement, resourcename)\n|      List the contents of the named resource directory\n|\n|  resourcestream(self, packageorrequirement, resourcename)\n|      Return a readable file-like object for specified resource\n|\n|  resourcestring(self, packageorrequirement, resourcename)\n|      Return specified resource as a string\n|\n|  setextractionpath(self, path)\n|      Set the base path where resources will be extracted to, if needed.\n|\n|      If you do not call this routine before any extractions take place, the\n|      path defaults to the return value of ``getdefaultcache()``.  (Which\n|      is based on the ``PYTHONEGGCACHE`` environment variable, with various\n|      platform-specific fallbacks.  See that routine's documentation for more\n|      details.)\n|\n|      Resources are extracted to subdirectories of this path based upon\n|      information given by the ``IResourceProvider``.  You may set this to a\n|      temporary directory, but then you must call ``cleanupresources()`` to\n|      delete the extracted files when done.  There is no guarantee that\n|      ``cleanupresources()`` will be able to remove all extracted files.\n|\n|      (Note: you may not change the extraction path for a given resource\n|      manager once resources have been extracted, unless you first call\n|      ``cleanupresources()``.)\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors defined here:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes defined here:\n|\n|  extractionpath = None\n"
                },
                {
                    "name": "class UnknownExtra",
                    "content": "|  Distribution doesn't have an \"extra feature\" of the given name\n|\n|  Method resolution order:\n|      UnknownExtra\n|      ResolutionError\n|      builtins.Exception\n|      builtins.BaseException\n|      builtins.object\n|\n|  Methods inherited from ResolutionError:\n|\n|  repr(self)\n|      Return repr(self).\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from ResolutionError:\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.Exception:\n|\n|  init(self, /, *args, kwargs)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Static methods inherited from builtins.Exception:\n|\n|  new(*args, kwargs) from builtins.type\n|      Create and return a new object.  See help(type) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.BaseException:\n|\n|  delattr(self, name, /)\n|      Implement delattr(self, name).\n|\n|  getattribute(self, name, /)\n|      Return getattr(self, name).\n|\n|  reduce(...)\n|      Helper for pickle.\n|\n|  setattr(self, name, value, /)\n|      Implement setattr(self, name, value).\n|\n|  setstate(...)\n|\n|  str(self, /)\n|      Return str(self).\n|\n|  withtraceback(...)\n|      Exception.withtraceback(tb) --\n|      set self.traceback to tb and return self.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from builtins.BaseException:\n|\n|  cause\n|      exception cause\n|\n|  context\n|      exception context\n|\n|  dict\n|\n|  suppresscontext\n|\n|  traceback\n|\n|  args\n"
                },
                {
                    "name": "class VersionConflict",
                    "content": "|  An already-installed version conflicts with the requested version.\n|\n|  Should be initialized with the installed Distribution and the requested\n|  Requirement.\n|\n|  Method resolution order:\n|      VersionConflict\n|      ResolutionError\n|      builtins.Exception\n|      builtins.BaseException\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  report(self)\n|\n|  withcontext(self, requiredby)\n|      If requiredby is non-empty, return a version of self that is a\n|      ContextualVersionConflict.\n|\n|  ----------------------------------------------------------------------\n|  Readonly properties defined here:\n|\n|  dist\n|\n|  req\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from ResolutionError:\n|\n|  repr(self)\n|      Return repr(self).\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from ResolutionError:\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.Exception:\n|\n|  init(self, /, *args, kwargs)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Static methods inherited from builtins.Exception:\n|\n|  new(*args, kwargs) from builtins.type\n|      Create and return a new object.  See help(type) for accurate signature.\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from builtins.BaseException:\n|\n|  delattr(self, name, /)\n|      Implement delattr(self, name).\n|\n|  getattribute(self, name, /)\n|      Return getattr(self, name).\n|\n|  reduce(...)\n|      Helper for pickle.\n|\n|  setattr(self, name, value, /)\n|      Implement setattr(self, name, value).\n|\n|  setstate(...)\n|\n|  str(self, /)\n|      Return str(self).\n|\n|  withtraceback(...)\n|      Exception.withtraceback(tb) --\n|      set self.traceback to tb and return self.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from builtins.BaseException:\n|\n|  cause\n|      exception cause\n|\n|  context\n|      exception context\n|\n|  dict\n|\n|  suppresscontext\n|\n|  traceback\n|\n|  args\n"
                },
                {
                    "name": "class WorkingSet",
                    "content": "|  WorkingSet(entries=None)\n|\n|  A collection of active distributions on sys.path (or a similar list)\n|\n|  Methods defined here:\n|\n|  contains(self, dist)\n|      True if `dist` is the active distribution for its project\n|\n|  getstate(self)\n|\n|  init(self, entries=None)\n|      Create working set from list of path entries (default=sys.path)\n|\n|  iter(self)\n|      Yield distributions for non-duplicate projects in the working set\n|\n|      The yield order is the order in which the items' path entries were\n|      added to the working set.\n|\n|  setstate(self, ekbc)\n|\n|  add(self, dist, entry=None, insert=True, replace=False)\n|      Add `dist` to working set, associated with `entry`\n|\n|      If `entry` is unspecified, it defaults to the ``.location`` of `dist`.\n|      On exit from this routine, `entry` is added to the end of the working\n|      set's ``.entries`` (if it wasn't already present).\n|\n|      `dist` is only added to the working set if it's for a project that\n|      doesn't already have a distribution in the set, unless `replace=True`.\n|      If it's added, any callbacks registered with the ``subscribe()`` method\n|      will be called.\n|\n|  addentry(self, entry)\n|      Add a path item to ``.entries``, finding any distributions on it\n|\n|      ``finddistributions(entry, True)`` is used to find distributions\n|      corresponding to the path entry, and they are added.  `entry` is\n|      always appended to ``.entries``, even if it is already present.\n|      (This is because ``sys.path`` can contain the same value more than\n|      once, and the ``.entries`` of the ``sys.path`` WorkingSet should always\n|      equal ``sys.path``.)\n|\n|  find(self, req)\n|      Find a distribution matching requirement `req`\n|\n|      If there is an active distribution for the requested project, this\n|      returns it as long as it meets the version requirement specified by\n|      `req`.  But, if there is an active distribution for the project and it\n|      does *not* meet the `req` requirement, ``VersionConflict`` is raised.\n|      If there is no active distribution for the requested project, ``None``\n|      is returned.\n|\n|  findplugins(self, pluginenv, fullenv=None, installer=None, fallback=True)\n|      Find all activatable distributions in `pluginenv`\n|\n|      Example usage::\n|\n|          distributions, errors = workingset.findplugins(\n|              Environment(plugindirlist)\n|          )\n|          # add plugins+libs to sys.path\n|          map(workingset.add, distributions)\n|          # display errors\n|          print('Could not load', errors)\n|\n|      The `pluginenv` should be an ``Environment`` instance that contains\n|      only distributions that are in the project's \"plugin directory\" or\n|      directories. The `fullenv`, if supplied, should be an ``Environment``\n|      contains all currently-available distributions.  If `fullenv` is not\n|      supplied, one is created automatically from the ``WorkingSet`` this\n|      method is called on, which will typically mean that every directory on\n|      ``sys.path`` will be scanned for distributions.\n|\n|      `installer` is a standard installer callback as used by the\n|      ``resolve()`` method. The `fallback` flag indicates whether we should\n|      attempt to resolve older versions of a plugin if the newest version\n|      cannot be resolved.\n|\n|      This method returns a 2-tuple: (`distributions`, `errorinfo`), where\n|      `distributions` is a list of the distributions found in `pluginenv`\n|      that were loadable, along with any other distributions that are needed\n|      to resolve their dependencies.  `errorinfo` is a dictionary mapping\n|      unloadable plugin distributions to an exception instance describing the\n|      error that occurred. Usually this will be a ``DistributionNotFound`` or\n|      ``VersionConflict`` instance.\n|\n|  iterentrypoints(self, group, name=None)\n|      Yield entry point objects from `group` matching `name`\n|\n|      If `name` is None, yields all entry points in `group` from all\n|      distributions in the working set, otherwise only ones matching\n|      both `group` and `name` are yielded (in distribution order).\n|\n|  require(self, *requirements)\n|      Ensure that distributions matching `requirements` are activated\n|\n|      `requirements` must be a string or a (possibly-nested) sequence\n|      thereof, specifying the distributions and versions required.  The\n|      return value is a sequence of the distributions that needed to be\n|      activated to fulfill the requirements; all relevant distributions are\n|      included, even if they were already activated in this working set.\n|\n|  resolve(self, requirements, env=None, installer=None, replaceconflicting=False, extras=None)\n|      List all distributions needed to (recursively) meet `requirements`\n|\n|      `requirements` must be a sequence of ``Requirement`` objects.  `env`,\n|      if supplied, should be an ``Environment`` instance.  If\n|      not supplied, it defaults to all distributions available within any\n|      entry or distribution in the working set.  `installer`, if supplied,\n|      will be invoked with each requirement that cannot be met by an\n|      already-installed distribution; it should return a ``Distribution`` or\n|      ``None``.\n|\n|      Unless `replaceconflicting=True`, raises a VersionConflict exception\n|      if\n|      any requirements are found on the path that have the correct name but\n|      the wrong version.  Otherwise, if an `installer` is supplied it will be\n|      invoked to obtain the correct version of the requirement and activate\n|      it.\n|\n|      `extras` is a list of the extras to be used with these requirements.\n|      This is important because extra requirements may look like `myreq;\n|      extra = \"myextra\"`, which would otherwise be interpreted as a purely\n|      optional requirement.  Instead, we want to be able to assert that these\n|      requirements are truly required.\n|\n|  runscript(self, requires, scriptname)\n|      Locate distribution for `requires` and run `scriptname` script\n|\n|  subscribe(self, callback, existing=True)\n|      Invoke `callback` for all distributions\n|\n|      If `existing=True` (default),\n|      call on all existing ones, as well.\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors defined here:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n"
                },
                {
                    "name": "class ZipProvider",
                    "content": "|  ZipProvider(module)\n|\n|  Resource support for zips and eggs\n|\n|  Method resolution order:\n|      ZipProvider\n|      EggProvider\n|      NullProvider\n|      builtins.object\n|\n|  Methods defined here:\n|\n|  init(self, module)\n|      Initialize self.  See help(type(self)) for accurate signature.\n|\n|  getresourcefilename(self, manager, resourcename)\n|\n|  ----------------------------------------------------------------------\n|  Readonly properties defined here:\n|\n|  zipinfo\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes defined here:\n|\n|  eagers = None\n|\n|  ----------------------------------------------------------------------\n|  Methods inherited from NullProvider:\n|\n|  getmetadata(self, name)\n|\n|  getmetadatalines(self, name)\n|\n|  getresourcestream(self, manager, resourcename)\n|\n|  getresourcestring(self, manager, resourcename)\n|\n|  hasmetadata(self, name)\n|\n|  hasresource(self, resourcename)\n|\n|  metadataisdir(self, name)\n|\n|  metadatalistdir(self, name)\n|\n|  resourceisdir(self, resourcename)\n|\n|  resourcelistdir(self, resourcename)\n|\n|  runscript(self, scriptname, namespace)\n|\n|  ----------------------------------------------------------------------\n|  Data descriptors inherited from NullProvider:\n|\n|  dict\n|      dictionary for instance variables (if defined)\n|\n|  weakref\n|      list of weak references to the object (if defined)\n|\n|  ----------------------------------------------------------------------\n|  Data and other attributes inherited from NullProvider:\n|\n|  egginfo = None\n|\n|  eggname = None\n|\n|  loader = None\n"
                }
            ]
        },
        "FUNCTIONS": {
            "content": "getstate()\n\nsetstate(state)\n\naddactivationlistener = subscribe(callback, existing=True) method of WorkingSet instance\nInvoke `callback` for all distributions\n\nIf `existing=True` (default),\ncall on all existing ones, as well.\n",
            "subsections": [
                {
                    "name": "cleanup_resources",
                    "content": "Delete all extracted resource files and directories, returning a list\nof the file and directory names that could not be successfully removed.\nThis function does not have any concurrency protection, so it should\ngenerally only be called when the extraction path is a temporary\ndirectory exclusive to a single process.  This method is not\nautomatically called; you must call it explicitly or register it as an\n``atexit`` function if you wish to ensure cleanup of a temporary\ndirectory used for extractions.\n"
                },
                {
                    "name": "compatible_platforms",
                    "content": "Can code for the `provided` platform run on the `required` platform?\n\nReturns true if either platform is ``None``, or the platforms are equal.\n\nXXX Needs compatibility checks for Linux and other unixy OSes.\n"
                },
                {
                    "name": "declare_namespace",
                    "content": "Declare that package 'packageName' is a namespace package\n"
                },
                {
                    "name": "ensure_directory",
                    "content": "Ensure that the parent directory of `path` exists\n"
                },
                {
                    "name": "evaluate_marker",
                    "content": "Evaluate a PEP 508 environment marker.\nReturn a boolean indicating the marker result in this environment.\nRaise SyntaxError if marker is invalid.\n\nThis implementation uses the 'pyparsing' module.\n"
                },
                {
                    "name": "find_distributions",
                    "content": "Yield distributions accessible via `pathitem`\n"
                },
                {
                    "name": "fixup_namespace_packages",
                    "content": "Ensure that previously-declared namespace packages include pathitem\n"
                },
                {
                    "name": "get_default_cache",
                    "content": "Return the ``PYTHONEGGCACHE`` environment variable\nor a platform-relevant user cache dir for an app\nnamed \"Python-Eggs\".\n"
                },
                {
                    "name": "get_distribution",
                    "content": "Return a current distribution object for a Requirement or string\n"
                },
                {
                    "name": "get_entry_info",
                    "content": "Return the EntryPoint object for `group`+`name`, or ``None``\n"
                },
                {
                    "name": "get_entry_map",
                    "content": "Return the entry point map for `group`, or the full entry map\n"
                },
                {
                    "name": "get_importer",
                    "content": "Retrieve a finder for the given path item\n\nThe returned finder is cached in sys.pathimportercache\nif it was newly created by a path hook.\n\nThe cache (or part of it) can be cleared manually if a\nrescan of sys.pathhooks is necessary.\n\ngetplatform = getbuildplatform()\nReturn this platform's string for platform-specific distributions\n\nXXX Currently this is the same as ``distutils.util.getplatform()``, but it\nneeds some hacks for Linux and macOS.\n"
                },
                {
                    "name": "get_provider",
                    "content": "Return an IResourceProvider for the named module or requirement\n"
                },
                {
                    "name": "invalid_marker",
                    "content": "Validate text as a PEP 508 environment marker; return an exception\nif invalid or False otherwise.\n"
                },
                {
                    "name": "iter_entry_points",
                    "content": "Yield entry point objects from `group` matching `name`\n\nIf `name` is None, yields all entry points in `group` from all\ndistributions in the working set, otherwise only ones matching\nboth `group` and `name` are yielded (in distribution order).\n"
                },
                {
                    "name": "load_entry_point",
                    "content": "Return `name` entry point of `group` for `dist` or raise ImportError\n"
                },
                {
                    "name": "normalize_path",
                    "content": "Normalize a file/dir name for comparison purposes\n"
                },
                {
                    "name": "parse_requirements",
                    "content": "Yield ``Requirement`` objects for each specification in `strs`\n\n`strs` must be a string, or a (possibly-nested) iterable thereof.\n"
                },
                {
                    "name": "parse_version",
                    "content": ""
                },
                {
                    "name": "register_finder",
                    "content": "Register `distributionfinder` to find distributions in sys.path items\n\n`importertype` is the type or class of a PEP 302 \"Importer\" (sys.path item\nhandler), and `distributionfinder` is a callable that, passed a path\nitem and the importer instance, yields ``Distribution`` instances found on\nthat path item.  See ``pkgresources.findonpath`` for an example.\n"
                },
                {
                    "name": "register_loader_type",
                    "content": "Register `providerfactory` to make providers for `loadertype`\n\n`loadertype` is the type or class of a PEP 302 ``module.loader``,\nand `providerfactory` is a function that, passed a *module* object,\nreturns an ``IResourceProvider`` for that module.\n"
                },
                {
                    "name": "register_namespace_handler",
                    "content": "Register `namespacehandler` to declare namespace packages\n\n`importertype` is the type or class of a PEP 302 \"Importer\" (sys.path item\nhandler), and `namespacehandler` is a callable like this::\n\ndef namespacehandler(importer, pathentry, moduleName, module):\n# return a pathentry to use for child packages\n\nNamespace handlers are only called if the importer object has already\nagreed that it can handle the relevant path item, and they should only\nreturn a subpath if the module path does not already contain an\nequivalent subpath.  For an example namespace handler, see\n``pkgresources.filenshandler``.\n"
                },
                {
                    "name": "require",
                    "content": "Ensure that distributions matching `requirements` are activated\n\n`requirements` must be a string or a (possibly-nested) sequence\nthereof, specifying the distributions and versions required.  The\nreturn value is a sequence of the distributions that needed to be\nactivated to fulfill the requirements; all relevant distributions are\nincluded, even if they were already activated in this working set.\n"
                },
                {
                    "name": "resource_exists",
                    "content": "Does the named resource exist?\n"
                },
                {
                    "name": "resource_filename",
                    "content": "Return a true filesystem path for specified resource\n"
                },
                {
                    "name": "resource_isdir",
                    "content": "Is the named resource an existing directory?\n"
                },
                {
                    "name": "resource_listdir",
                    "content": "List the contents of the named resource directory\n"
                },
                {
                    "name": "resource_stream",
                    "content": "Return a readable file-like object for specified resource\n"
                },
                {
                    "name": "resource_string",
                    "content": "Return specified resource as a string\n\nrunmain = runscript(requires, scriptname) method of WorkingSet instance\nLocate distribution for `requires` and run `scriptname` script\n"
                },
                {
                    "name": "run_script",
                    "content": "Locate distribution for `requires` and run `scriptname` script\n"
                },
                {
                    "name": "safe_extra",
                    "content": "Convert an arbitrary string to a standard 'extra' name\n\nAny runs of non-alphanumeric characters are replaced with a single '',\nand the result is always lowercased.\n"
                },
                {
                    "name": "safe_name",
                    "content": "Convert an arbitrary string to a standard distribution name\n\nAny runs of non-alphanumeric/. characters are replaced with a single '-'.\n"
                },
                {
                    "name": "safe_version",
                    "content": "Convert an arbitrary string to a standard version string\n"
                },
                {
                    "name": "set_extraction_path",
                    "content": "Set the base path where resources will be extracted to, if needed.\n\nIf you do not call this routine before any extractions take place, the\npath defaults to the return value of ``getdefaultcache()``.  (Which\nis based on the ``PYTHONEGGCACHE`` environment variable, with various\nplatform-specific fallbacks.  See that routine's documentation for more\ndetails.)\n\nResources are extracted to subdirectories of this path based upon\ninformation given by the ``IResourceProvider``.  You may set this to a\ntemporary directory, but then you must call ``cleanupresources()`` to\ndelete the extracted files when done.  There is no guarantee that\n``cleanupresources()`` will be able to remove all extracted files.\n\n(Note: you may not change the extraction path for a given resource\nmanager once resources have been extracted, unless you first call\n``cleanupresources()``.)\n"
                },
                {
                    "name": "split_sections",
                    "content": "Split a string or iterable thereof into (section, content) pairs\n\nEach ``section`` is a stripped version of the section header (\"[section]\")\nand each ``content`` is a list of stripped lines excluding blank lines and\ncomment-only lines.  If there are any such lines before the first section\nheader, they're returned in a first ``section`` of ``None``.\n"
                },
                {
                    "name": "to_filename",
                    "content": "Convert a project or version name to its filename-escaped form\n\nAny '-' characters are currently replaced with ''.\n"
                },
                {
                    "name": "yield_lines",
                    "content": "Yield valid lines of a string or iterable\n"
                }
            ]
        },
        "DATA": {
            "content": "BINARYDIST = 2\nCHECKOUTDIST = 0\nDEVELOPDIST = -1\nEGGDIST = 3\nSOURCEDIST = 1\nall = ['require', 'runscript', 'getprovider', 'getdistribution'...\nemptyprovider = <pkgresources.EmptyProvider object>\nworkingset = <pkgresources.WorkingSet object>\n",
            "subsections": []
        },
        "FILE": {
            "content": "/usr/lib/python3/dist-packages/pkgresources/init.py\n\n",
            "subsections": []
        }
    },
    "summary": "pkgresources",
    "flags": [],
    "examples": [],
    "see_also": []
}