class_docstr: Generate a list of all Python packages found within a directory
class_docstr_tok: ["Generate","a","list","of","all","Python","packages","found","within","a","directory"]
docstr: Return a list all Python packages found within directory 'where'
  
  'where' is the root directory which will be searched for packages.  It
  should be supplied as a "cross-platform" (i.e. URL-style) path; it will
  be converted to the appropriate local path syntax.
  
  'exclude' is a sequence of package names to exclude; '*' can be used
  as a wildcard in the names, such that 'foo.*' will exclude all
  subpackages of 'foo' (but not 'foo' itself).
  
  'include' is a sequence of package names to include.  If it's
  specified, only the named packages will be included.  If it's not
  specified, all found packages will be included.  'include' can contain
  shell style wildcard patterns just like 'exclude'.
docstr_tok: ["Return","a","list","all","Python","packages","found","within","directory","'where'","'where","'","is","the","root","directory","which","will","be","searched","for","packages",".","It","should","be","supplied","as","a","``","cross-platform","''","(","i.e",".","URL-style",")","path",";","it","will","be","converted","to","the","appropriate","local","path","syntax",".","'exclude","'","is","a","sequence","of","package","names","to","exclude",";","'","*","'","can","be","used","as","a","wildcard","in","the","names",",","such","that","'foo",".","*","'","will","exclude","all","subpackages","of","'foo","'","(","but","not","'foo","'","itself",")",".","'include","'","is","a","sequence","of","package","names","to","include",".","If","it's","specified",",","only","the","named","packages","will","be","included",".","If","it","'s","not","specified",",","all","found","packages","will","be","included",".","'include","'","can","contain","shell","style","wildcard","patterns","just","like","'exclude","'","."]
code: def find(cls, where=".", exclude=(), include=("*",)):
      """Return a list all Python packages found within directory 'where'
  
      'where' is the root directory which will be searched for packages.  It
      should be supplied as a "cross-platform" (i.e. URL-style) path; it will
      be converted to the appropriate local path syntax.
  
      'exclude' is a sequence of package names to exclude; '*' can be used
      as a wildcard in the names, such that 'foo.*' will exclude all
      subpackages of 'foo' (but not 'foo' itself).
  
      'include' is a sequence of package names to include.  If it's
      specified, only the named packages will be included.  If it's not
      specified, all found packages will be included.  'include' can contain
      shell style wildcard patterns just like 'exclude'.
      """
  
      return list(
          cls._find_packages_iter(
              convert_path(where),
              cls._build_filter("ez_setup", "*__pycache__", *exclude),
              cls._build_filter(*include),
          )
      )
  
imports: import os
  import sys
  import functools
  import distutils.core
  import distutils.filelist
  import re
  from distutils.errors import DistutilsOptionError
  from distutils.util import convert_path
  from fnmatch import fnmatchcase
  from ._deprecation_warning import SetuptoolsDeprecationWarning
  from setuptools.extern.six import PY3, string_types
  from setuptools.extern.six.moves import filter, map
  import setuptools.version
  from setuptools.extension import Extension
  from setuptools.dist import Distribution, Feature
  from setuptools.depends import Require
  from .None import monkey
label_desc: Use image node_id 1 for calling the PackageFinder obj's underlying member method code with example usage: obj.find(cls, where, exclude, include) and returns: list