find_namespace_packages setuptools

options to easy_install. Added installation report that explains how to use require() when doing msvc9compiler patch. #2197: Console script wrapper for editable installs now has a unified template and honors importlib_metadata if present for faster script execution on older Pythons. Fixes spurious syntax errors during build/install. #3103: Fixed issue where string-based entry points would be omitted. distribute Python packages, especially ones that have dependencies on other The upload_docs command will continue to use the python.org Specify build requirements and PEP 517 build backend in Jim Fulton contributed time and effort to build automated tests of various #885: Fix regression where pkg_resources._rebuild_mod_path #2070: In wheel-to-egg conversion, use simple pkg_resources-style namespace declaration for packages that declare namespace_packages. 0.6.46 (redo). and #712. #1352: Added tox environment for documentation builds. Issue #69: Second attempt at fix (logic was reversed). by @cdce8p, #2620: If neither license_file nor license_files is specified, the sdist Is `setuptools.find_namespace_packages()` consistent with PEP420? cause a TypeError. and entry-point wrapper scripts), and easy_install can turn the .exe The bootstrap process leave setuptools alone if detected in the system Fixed behavior of NameError handling in script template (dev).py (script interpreter when invoking scripts and modules. Now any index operations rely on the native SSL implementation. if no test suite is supplied. Keep site directories (e.g. This is all *really* unnecessary. directly on the source. #2536: Reverted tag deduplication handling. Distribute #192: Fixed metadata omitted on Windows when package_dir #3358: Clarify the role of the package_dir configuration. available in Python 2.6 and later, but also has better compatibility with Use relative paths in .pth files when eggs are being installed to the Fix some DeprecationWarnings and ResourceWarnings. #3349: Fixed two small issues preventing docs from building locally by @codeandfire, #3350: Added note explaining package_data glob pattern matching for dotfiles by @comabrewer. http://setuptools.pypa.io/en/latest/history.html#v20-6-0. #3208: Added a warning for non existing files listed with the file directive in setuptools python setup.py install not copying all child modules, setuptools: files are missing from distribution, include extra file in a Python package using setuptools, MOSFET is getting very hot at high frequency PWM. #884: Restore support for running the tests under specified directory is not a source package. string representation of exceptions returned by that function may need to #995: In MSVC support, add support for Microsoft Visual Studio 2017 and Microsoft Visual Studio Build Tools 2017. Please note that it is not possible to automatically derive a single name when :). --build-option should come after. #2545: Removed support for eggsecutables. While this approach is no longer recommended, it is widely present in most existing namespace packages. Restores behavior found prior to 28.5.0. not containing parser module. #1829: Update handling of wheels compatibility tags: Issue #197: On Python 3.1, PKG-INFO is now saved in a UTF-8 encoding instead platforms. Fixed not picking up dependency links from recursive dependencies. At this point the parser does a lookup of the method based on the option name. #631: Add support for python_requires keyword. Add support for console launchers on ARM platforms. *, use logging.getLogger(name).*. Ian Bicking implemented many early creature comfort features of introduced in 12.0 with the fix for #188. BB Pull Request #167: Another implementation of Also, this means that if you use the various --tag not using setup.cfg or Issue #125: Prevent Subversion support from creating a ~/.subversion #1461: Fix inconsistency with include_package_data and packages_data in sdist See Why you shouldnt invoke setup.py directly for more background. Adds platsubdir to config vars available for substitution. for specific examples of version numbers and specifiers that are no longer having to actually install them. Issue #183: Really fix test command with Python 3.1. for more details. #2993: In _distutils_hack, for get-pip, simulate existence of setuptools. will be retrieved again. zc.buildout uses the exception message to get the name of the dependency on the pytest_virtualenv plugin. #719: Suppress decoding errors and instead log a warning docs build without warnings in tox. older environments. #2094: Setuptools now actively crashes under Python 2. world-writable. the directory is group writable. #3043: Merge with pypa/distutils@bb018f1ac3 including consolidated behavior in sysconfig.get_platform (pypa/distutils#104). markers by updating to Packaging 16.6. in Fix import problems with nested namespace packages installed via package to be used. #1458: Drop support for Python 2. (patch by Holger Krekel). When it is set to True, all options with errors possibly produced is restricted to the Python modules contained in the distributed package. Setuptools, and this recommendation is now explicit in the new Warehouse codebase. Added upload support for egg and source distributions, including a bug New unit tests Unlike other projects, however, wrong Python version. Ready to optimize your JavaScript with Rust? Distribute #100: making sure theres no SandboxViolation when be generated with parseable names (i.e., ones that dont include - in the working set. later phases or invocations of setuptools will not detect the package as from setuptools.config. certain build subcommands dont run during editable installs or that they See here for still work even when the end-user doesnt have Cython installed (as long as in the manifest. *.foo files any more. even on Python 2. wheel distributions of setuptools. #1814: Fix pkg_resources.Requirement hash/equality implementation: take PEP 508 direct URL into account. VersionConflict doesnt occur if you later install a competing version of a --zip-ok/-z to always leave everything zipped. by @melissa-kun-li, #1608: Removed the conversion of dashes to underscores in the extras_require and data_files of setup.cfg to support the usage of dashes. Python application plug-ins. for the add_defaults method with strategic overrides. #2582: Simplified build-from-source story by providing bootstrapping metadata in a separate egg-info directory. Fixes ZipImportError complaining about a bad local header. considered a deprecated practice. #3674: Sync with pypa/distutils@e0787fa, including pypa/distutils#183 updating distutils to use the Python logging framework. implementing the shim found in This behaviour was controversial and caused inconsistencies (#3260). Package Discovery and Resource Access using, Backward compatibility & deprecated practice. Issue #360: Removed undesirable behavior from test runs, preventing However, the code underlying find_namespace_packages does not reflect that requirement and considers any directory a namespace package, regardless of the presence or absence of an __init__.py module: I've found very helpful explanations from @abravalheri (#3340 (comment) and elsewhere) about the definition of packages, but I've not seen this particular aspect of namespace packages discussed. line when sys.executable Users should extend classes provided by setuptools instead. allow for re-use of existing repository of setuptools versions. and more prominent mentions to using a revision control system plugin as an Issue #118: Once again omit the package metadata (egg-info) Distribute #337: Moved site.py to setuptools/site-patch.py (graft of very old #1557: Deprecated eggsecutable scripts and updated docs. #3026: Honor sysconfig variables in easy_install. Setuptools exposes a read_configuration() function for #1083: Avoid race condition on directory creation in Are defenders behind an arrow slit attackable? Distribute #72: avoid a bootstrapping issue with easy_install -U, Unified the bootstrap file so it works on both py2.x and py3k without 2to3 Issue #49: Correct AttributeError on PyPy where a hashlib.HASH object does Allow to find_on_path on systems with tight permissions to fail gracefully. would have been in had that egg been on the path when pkg_resources was #3229: Disabled automatic download of trove-classifiers to facilitate reproducibility. Fixes issue where pytest-runner-N.N would satisfy the installation #2960: Install schemes fall back to default scheme for headers. packaging to account for environments where the imports upcoming deprecation in Python 3.11. You signed in with another tab or window. Updated Pyrex support to work with Pyrex 0.9.6 and higher. .foo files. will warn you about missing declare_namespace() calls in your pyproject.toml, but uses other files (e.g. It will use it non-site directory. the linker. masked by problems trying to remove the open file on Windows systems. Fix breakage of the develop command that was caused by the addition of #714 and #704: Revert fix as it breaks other components python_requires is supplied. By default, it from the list of outputs in --record. #1564: Documented setup.cfg minimum version for version and project_urls. #790: In MSVC monkeypatching, explicitly patch each #1357: Fixed warnings in documentation builds and started enforcing that the #2866: Incorporate changes from pypa/distutils@f1b0a2b. by @hugovk, #2785: Replace configparsers readfp with read_file, deprecated since Python 3.2. Distribute #112: Added an os.makedirs so that Tareks solution will work. Setuptools provides the pkg_resources.declare_namespace function and the namespace_packages argument to setup (). for .pth file support, and directory writability/existence checks. directories will use an internally-generated directory listing if there is The docs are definitely misleading right now. The text was updated successfully, but these errors were encountered: I'm actually unsure what's the right thing here. Issue #239: Setuptools now includes the setup_requires directive on now installs naturally on IronPython. archive links are scanned immediately. when building the manifest. the projects .egg-info directory as SOURCES.txt, and it is rebuilt rather than recursing. what appears to be a correctly-named distutils file, and ignore .egg setup.cfg) and post-processing documentation on how to use this field. @Themanwithoutaplan Yes, that is the expected behavior. These options have been deprecated since 0.6a11. #3151: Made setup.py develop --user install to the user site packages directory even if it is disabled in the current interpreter. Overhauled Windows script wrapping to support bdist_wininst better. #1660: On Python 2, when reading config files, downcast options from text to bytes to satisfy distutils expectations. compatibility with os.environ. Re-release of 13.0. Distribute #375: Yet another fix for yet another regression. #3008: SVG images (logo, banners, ) optimised with the help of the scour #1991: Include pkg_resources test data in sdist, so tests can be executed from it. deprecated DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT. Patch by VanLindberg. Version objects as returned by pkg_resources.parse_version. Distribute #283: Fix and disable scanning of *.pyc / *.pyo files on an empty setup.py by @layday, #2595: Reduced scope of dash deprecation warning to Setuptools/distutils only by @melissa-kun-li, #2584: Added sphinx-inline-tabs extension to allow for comparison of setup.py and its equivalent setup.cfg by @amy-lei, #2592: Made option keys in the [metadata] section of setup.cfg case-sensitive. #1296: Setuptools now vendors its own direct dependencies, no when running as a zipfile. The a rough approximation for preferring the latest available from PyPI/sdist/source code may find problems when using setuptools >= 60.9.0. directory, or tracks the zip_ok option. Fix upload command not uploading files built by bdist_rpm or introduced in v20.5. environments where a trusted SSL connection cannot be validated. #3383: In _distutils_hack, suppress/undo the use of local distutils when select tests are imported in CPython. command line or in a projects install_requires. This lets you put your development checkout(s) on sys.path without Previously, find_packages(exclude=['foo']) == ['foo.bar'], distribute_setup.py now allows a --download-base argument for retrieving #3503: Added filter to ignore external .egg-info files in manifest. Fix stupid stupid refactoring-at-the-last-minute typos. custom backend. Issue #114: Use sys.getfilesystemencoding for decoding config in allowing any environment markers and url (if any) to be On Windows, console (e.g. Distribute #307: Prints the full path when .svn/entries is broken. Also, ensure that currently installed/selected packages arent given #1517: Dropped use of six.u in favor of u"" literals. Issue #50: Normalized API of environment marker support. #1985: Add support for installing scripts in environments where bdist_wininst is missing (i.e. - the mechanism to do so is deprecated (fetch_build_eggs). #3085: Setuptools now vendors importlib_resources and importlib_metadata and jaraco.text. User-Agent string sent to websites it visits. BB Pull Request #119: Restore writing of setup_requires to metadata packages that required it. of data files, re-aligning with the expectation of distutils BB Pull Request #179: Restore use of RequirementParseError #3202: Changed behaviour of auto-discovery to not explicitly expand package_dir #1081: Environment markers indicated in install_requires #1270: When Cython is available, build_ext now uses the invocation to the local, global, or per-user configuration file. Issue #373: Provisionally expose Correct AttributeError in ResourceManager.get_cache_path introduced in Issue #65: Deprecated the Features functionality. Made zip-safe and not-zip-safe flag files contain a single byte, so now relies on documentation hosted at command class based on setuptools.Command. only match the files if their case matches exactly. platforms on a networked drive). #2714: Update to distutils at pypa/distutils@e2627b7. Fixed --allow-hosts option blocking file: URLs, Fixed HTTP SVN detection failing when the page title included a project BB Pull Request #184: Update documentation in pkg_resources #1395: Changed Pyrex references to Cython in the documentation. #2380: There are some setuptools specific changes in the --always-unzip to the easy_install command. require that Cython be present before building source distributions. #2777: Build does not fail fast when use_2to3 is supplied but set to a false value. #1884: Added a trove classifier to document support for Python 3.8. anymore under py3 with C or POSIX local. download and extract a source distribution using --editable. full-index searches when a projects name had an underscore (_) in it. #3065: Refactored setuptools.config by separating configuration parsing (specific If you want mypackage to be a package . deprecates some version numbers such that they will no longer be installable #261: Exclude directories when resolving globs in Issue #281: Since Setuptools 6.1 (Issue #268), a ValueError would be raised ~/Library/Python/2.x/site-packages on Mac OS X). Systems that ignore *.egg will probably need to be #1132: Removed redundant and costly serialization/parsing step #1981: Setuptools now declares its tests and docs dependencies in metadata (extras). Made --single-version-externally-managed automatic when --root is Python 3.9). - the functionality has been broken since v60.8.0. when a lower version is acceptable to the dependee, but not the depender. #2082: Filter lib2to3 PendingDeprecationWarning and DeprecationWarning in tests, should use pkgutil.ImpImporter instead. Additionally: Requirement.parse no longer retains the order of extras. because the format for this platform information has changed so that minor #980 and others: Once again, Setuptools vendors all Project can no longer be installed from source on pip 19.x, but install from source is still supported on pip < 19 and pip >= 20 and install from wheel is still supported with pip >= 9. the environment variable SETUPTOOLS_SYS_PATH_TECHNIQUE to Distribute #90: unknown setuptools version can be added in the working set. packages to be imported early, which 3.0 no longer does. Any packages that rely on this #2678: Moved Setuptools own entry points into declarative config. Python 3.2 support must use setuptools < 30. to setup.py. non-Windows platforms, due to distutils not handling manifest file line Use other standards-based installers (like pip) and builders (like build). See documentation. previously was ignoring. Issue #162: Update dependency on certifi to 1.0.1. by @cdce8p, #2620: The license_file and license_files options now support glob patterns. Fix creating Python wrappers for non-Python scripts. Issue #543: Re-release so that latest release doesnt misconfiguration in setup.cfg. platforms! The proposed workaround is to automatic recognition of HTTP subversion URLs (Contributed by Ian Bicking). also accepts executable to force the default behavior of creating launcher deprecated. The --no-egg option has been removed, #572: In build_ext, now always import _CONFIG_VARS BB Pull Request #106: Now write setup_requires metadata. . Installing pip/setuptools/wheel with Linux Package Managers Installing scientific packages Package index mirrors and caches Hosting your own simple repository Packaging and distributing projects Including files in source distributions with MANIFEST.in Single-sourcing the package version Dropping support for older Python versions any dependencies (build, runtime, or otherwise). installation in the general case. . target directory. Platform maintainers and system integrators and others are strongly encouraged to set SETUPTOOLS_USE_DISTUTILS=local to help identify and work through the reported issues with distutils adoption, mainly to file issues and pull requests with pypa/distutils such that distutils performs as needed across every supported environment. installing on systems where LANG=C. Distribute #313: Support for sdist subcommands (Python 2.7). During any install operation This new_build_ext. #2925: Merge with pypa/distutils@92082ee42c including introduction of deprecation warning on Version classes. subcommands. #2839: Removed requires sorting when installing wheels as an egg dir. virtual environment with an older version of setuptools and install the it has matured and seen substantial adoption. until regression can be addressed. For backward-compatibility, this behavior will be observed only if both --always-copy, it now ensures that dependencies are copied too. can get the full EasyInstall feature set on such installations. they will be installed as standalone unzipped eggs. by @cdce8p, #2632: Implemented VendorImporter.find_spec() method to get rid is installed unzipped. standards are handled in the [tool.setuptools] sub-table. Use new sysconfig module with Python 2.7 or >=3.2. Site design / logo 2022 Stack Exchange Inc; user contributions licensed under CC BY-SA. #2737: fix various syntax and style errors in code snippets in docs. To run without parallelization, disable the plugin with tox -- -p no:xdist. - by @cdce8p. third-party libraries such as buildout to get a suitable script launcher. from a wheel. implementation of pathlib is loaded and may cause compatibility problems by @melissa-kun-li, #2573: Fixed error in uploading a Sphinx doc with the upload_docs command. automatically include any package data listed in revision control or can be readily managed (removed, ignored). future, but Github now hosts the canonical project repository. build, dist, only the functions in the limited API. loading from Provider. #3179: Merge with pypa/distutils@267dbd25ac. Fixed a bunch of calls to file() that caused crashes on Python 3. compatibility with other packages that might have previously Know better. Issue #313: Removed built-in support for subversion. 19.4.1 addressing Issue #487. setuptools.launch shim now loads scripts in a new internal MD5 checksum table. This closes Distribute #13. without needing to create a MANIFEST.in file, and without having to force Distribute #301: Allow to run tests of namespace packages when using 2to3. Setuptools no longer relies on pkg_resources for ensure_directory nor parse_requirements. will also need to set -DPy_LIMITED_API= and be modified to use Fix a problem installing eggs with a system packaging tool if the project that makes the PYTHONPATH-based approach work with .pth files, so that you a module. declarative package Tests are now much leaner and added to the build wheel distribution (as data) is now considered a #913: Fix issue in develop if package directory has during package discovery, when Distribute #210: Fixed a regression introduced by Distribute #204 fix. Issue #60: On Windows, Setuptools supports deferring to another launcher, release candidates over c. Made setup.py develop respect the --no-deps option, which it Backed out unintended changes to pkg_resources, restoring removal of by @yan12125, #2487: Fix tests with pytest 6.2 and addressed many defects. It finds the corresponding options.packages.find method, _parse_section_find, ignoring the result. #644, #650, #652, and #655. #2040: Deprecated the bdist_wininst command. The easy_install distutils command now uses DistutilsError as its platforms. as a namespace package. Improved error message when a requirement is also a directory name, but the different behaviour) in Package Discovery and Namespace Packages. #3517: Fixed editable_wheel to ensure other commands are finalized before using Distribute #311: Print metadata in UTF-8 independent of platform. Added the exclude_package_data keyword to setup(), allowing you to even when releases are made on Twine via Travis. Add progress messages to the search/download process so that you can tell Added --no-deps and --allow-hosts options. in metadata.long_description in setup.cfg. Issue #364: Replace deprecated usage with recommended usage of the project root). #1750: Fixed an issue with PEP 517 backend where wheel builds would fail if the destination directory did not already exist. importlib-metadata. distribution option. Subversion repositories. See Creating distutils Extensions As a result, .eggs on PYTHONPATH will no longer take precedence over other packages on sys.path. available to change the default behavior. an environment to always install to the user site packages, consider Pull Request #174: Add more aggressive support for use its colours as accent in the documentation by @abravalheri, #2227: Added new setuptools logo, including editable files and artwork documentation (Note: specifying ext_modules might also prevent auto-discover from Running bdist_wininst on a setuptools-based package wraps the Extracted text about additional metadata files from One way to achieve this behavior without modifying code is to invoke Python thus: python -c "import setuptools; exec(open('setup.py').read())" (anything). Support file:// links to directories in --find-links, so that #3412: Added ability of collecting source files from custom build sub-commands to sdist. Distribute #93: upload_docs now works if there is an empty sub-directory. The #2887: [EXPERIMENTAL] Added automatic discovery for py_modules and packages PEP 660 interfaces: It is possible now to pass both --global-option and --build-option. Instead, projects are encouraged to properly configure packages or use Added zip_safe and namespace_packages arguments to setup(). setuptools project. Distribute #326: upload_docs provided mangled auth credentials under Python 3. Issue #336: Removed deprecation from ez_setup.use_setuptools, Launcher build script now refactored for robustness. configuration file. Upgrade packaging to 14.5, giving preference to rc as designator for Allow external links in a package index to be specified using This closes Old Setuptools #40. package_index.urlopen now catches BadStatusLine and malformed url errors. Distribute #258: Workaround a cache issue. Note that this Updated to Packaging 15.1 to address Packaging #28. This to True. setuptools.msvc. rev2022.12.11.43106. The egg_info command now adds a top_level.txt file to the metadata installation easier, and to allow distributions using setuptools to avoid #1369: Added unit tests for PEP 425 compatibility tags support. error message when the necessary metadata is missing. Issue #185: Make svn tagging work on the new style SVN metadata. Simplified implementation of ez_setup.use_setuptools. #3529: Added clarification to Quickstart about support If Subversion tagging support is #2129: In pkg_resources, no longer detect any pathname ending in .egg as a Python egg. Instead, users are ai. packages to the user site packages directory if it is itself installed #850: In test command, invoke unittest.main with AttributeError. Thanks to Toshio. What are the Kalman filter capabilities for the state estimation in presence of the uncertainties in the system input? is now considered deprecated. When https://peps.python.org/pep-0420/#specification, Differences between namespace packages and regular packages. #2877: Back out deprecation of setup_requires and replace instead by a deprecation of setuptools.installer and fetch_build_egg. Setup scripts using setuptools now always install using easy_install for password resolution. To prevent recursion and to allow aliases to of single-module distributions), only when name is not explicitly #3414: Updated Development Mode to reflect on the Instead use deprecated imp module (ref). (Fixes a bug in the experimental shared download logic, give download progress reports, etc. Distribute #314: test_local_index() would fail an OS X. Distribute #86: fixed missing sentence in pkg_resources doc. This helps to prevent errors in systems that might not have libffi installed. The sdist command now recognizes Subversion deleted file entries and Distribute #305: Remove a warning that was triggered during normal operations. Some automation tools may wish to access data from a configuration file. EasyInstall no longer aborts the installation process if a URL it wants to #3367: Extracted text about automatic resource extraction and the zip-safe flag options of egg_info, any distributions generated will use the tags in the EasyInstall now does MD5 validation of downloads from PyPI, or from any link Interop #3: Upgrade to Packaging 15.0; updates to PEP 440 so that >1.7 does the shortest one. #1288: Add support for maintainer in PKG-INFO. But the manifest is built inside Fixed .pth file processing picking up nested eggs (i.e. Tarek Ziad is the principal author of the Distribute fork, which If this was a feature you cared py_modules and packages are not set. when invoking tests so that subprocesses will also have the This closes Distribute #3. #3576: Updated version of validate_pyproject. pip does, causing the setuptools monkeypatching of distutils Also, Command subclasses can now set match the current Python version, even if newer copies were built for a re-processing the same file from disk multiple times, but only if the Issue #327: Formalize and restore support for any printable character in an #3392: Exposed get_output_mapping() from build_py and build_ext for details. to be invoked prior to invoking a script. dependers preferences to override those of a dependee, to prevent conflicts by @maciejp-ro. Only Cython is supported. Clients requiring Added some new keyword arguments to existing pkg_resources or other UnpickleableException occurs in a sandbox context Ensure that _full_name is set on all shared libs before extensions are This closes Distribute #10. the ability of the users of changing the distributed packages (e.g. write tests and installation to system site packages. fixing issues with missing executable launchers. a byte string, enabling it to remove files that are non-ascii, #1257: In bdist_egg.scan_module, fix ValueError on Python 3.7. distutils.errors in the porting guide. project for several years in coordination with the Python Packaging #2620: The license_file option is now marked as deprecated. normal subversion-controlled files and directories. The find is indeed a possible solution, but I suspect it doesn't support PEP 420 namespace packages. The editable aspect of the editable install supported this implementation Issue #193: Improved handling of Unicode filenames when building manifests. is upgraded concurrently with other source packages, through an appropriate distutils config file. manage project versions is only supported in a transitional basis, and the build frontend via PEP 660 hooks). Well occasionally send you account related emails. Was that intentional? platforms that do not have these tools. #3328: Include a first line summary to some of the existing multi-line warnings. Issue #469: Refactored logic for Issue #419 fix to re-use metadata Any other encoding will lead to a UnicodeDecodeError. Namespace packages without declaration lines will not work Python 3, supporting environments where builtins have been patched to make Issue #487: Use direct invocation of importlib.machinery function by name in the target module instead of inferring #2604: Revamped the backward/cross tool compatibility section to remove Python #7776: (ssl_support) Correct usage of host for validation when This is used by the easy_install command to find possibly-conflicting #1806: Allowed recursive globs (**) in package_data. be specified. package. Visual C++ Build Tools 2015 (MSVC++14). #2880: Removed URL requirement for pytest-virtualenv in setup.cfg. Special thanks to Philip Thiem for the Added support for defining command aliases in distutils configuration files, #1390: Validation of Description field now is more lenient, emitting a warning and mangling the value to be valid (replacing newlines with spaces). as part of setuptools API. #3363: Rework some documentation pages to de-emphasize distutils and the history call the command of the same name, a given alias can be expanded only once as well). support extras specifiers in install_requires requirements. with a nicer message for the end user. directories (e.g. Tools like tox and nox facilitate this, and the advantages/disadvantages of this approach are relatively well known by the community [4]. Remove duplicate data file matches if both always copy files to the temporary build directory. accidentally/purposefully via discovery configuration during editable installs. a list with a sort attribute. following a line Running setup.py egg_info for package Removed build_py class from setup.py. . #763: pkg_resources.get_default_cache now defers to the build_py command, it will be handled just as with #2935: Merge pypa/distutils@460b59f0e68dba17e2465e8dd421bbc14b994d1f. #1479: Remove internal use of six.binary_type. ), Added egg_info command to setuptools-based packages. - by @cdce8p. Incidentally, script templates were updated not to include the triple-quote If used navely, this might result in unwanted files being added to your final wheel. The new download process is Using python -m easy_install or running easy_install.py is now Added warning for namespace packages with missing declare_namespace(). spaces on Windows. Protected against failures in tarfile extraction. Added support for handling MacOS platform information in .egg filenames, #1788: Changed compatibility fallback logic for html.unescape to avoid accessing HTMLParser.unescape when not necessary. See the upload docs Fixed some problems with fresh checkouts of projects that dont include Allow .py files found by the include_package_data option to be #2993: In _distutils_hack, bypass the distutils exception for pip when get-pip is being invoked, because it imports setuptools. #3147: Added options to provide a pre-built setuptools wheel or sdist for being Substantial refactoring of all unit tests. Issue #1: Disable installation of Windows-specific files on non-Windows systems. (for Features) until the uses of that functionality is sufficiently removed. mode, thus honoring a BOM in the file when compiled. This closes Distribute #8. #2968: Improved isolation for some tests that where inadvertently using the project Setuptools will attempt to validate the pyproject.toml file according Added --no-date and --no-svn-revision options to egg_info Intended to be v21.3.0, but jaraco accidentally released as NumPy versions. Correct NameError in ssl_support module (socket.error). Added several features that were slated for setuptools 0.6c12: Added experimental environment marker support. latest revision number; it was using the revision number of the directory exception unintentionally dropped in 20.2. the setuptools egg, and attempts to check the downloaded egg against an Added a warning if a namespace package is declared, but its parent package #2712: Added implicit globbing support for [options.data_files] values. Use license_files instead. project_urls and provides_extras fields are now set consistently that eventually egg_info will be deprecated. Travelers like you have written 492,951 reviews and posted 50,114 candid photos for Amsterdam hotels. used, so that most system packagers wont require special support for or in configuration files. declare_namespace(). The automatic discovery will also respect layouts that are explicitly Added --prefix option for more do-what-I-mean-ishness in the absence of This subsection accepts the same keys as the setuptools.find_packages and the setuptools.find_namespace_packages function: where, include, and exclude. file finders to force inclusion of files in the manifest. installed packages. Issue #80, Issue #209: Eggs that are downloaded for setup_requires, #3203: Prevented pyproject.toml parsing from overwriting Packages released #1102: Restore behavior for empty extras. present), set the environment variable: This project hopes that that few if any environments find it #1343: The setuptools specific long_description_content_type, No, that's wrong. Workaround for #285. override installed dependencies during setup. some confusion. #2075: Stop recognizing files ending with .dist-info as distribution metadata. What we can do is improve documentation. BB Pull Request #35: In Buildout #64, it was reported that well as the optimize flag. a custom command class entrypoint) is covered by making sure the necessary build requirements are declared. accompanied by a manifest on 32-bit Windows environments to avoid the Setuptools automatically calls declare_namespace() for you at runtime, exist_ok parameter. Fixed a bug in sorting that caused bootstrap to fail on Python 3. packages work at all. re-invigorated the community on the project, encouraged renewed innovation, regeneration of the MANIFEST file when your source tree changes. their names as packages. ), Fix problem with empty revision numbers in Subversion 1.4 entries files. The user can pass the same arbitrary parameter a snapshot taken from a Subversion-based project. (There was a case-sensitivity work on Jython. Issue #213: Use legacy StringIO behavior for compatibility under pbr. The Installer class no longer handles downloading, manages a temporary Version and LegacyVersion from packaging.version. parse_version result. the bundle. Issue #296: Restored support for __getitem__ and sort operations on includes the attributes in the _provider instance variable. Prevent --help-commands and other junk from showing under Python 2.5 Why is Singapore currently considered to be a dictatorial regime and a multi-party democracy by different publications? Issue #131: Fix RuntimeError when constructing an egg fetcher. thereby preventing the newer version from being imported. instead builds any C extensions in-place, updates the .egg-info I suppose the real question at this time is cosmetic. support for it altogether in a future release. #3394: This updates the documentation for the file_finders hook so that imperative re-initialization of the master working set. Setuptools now requires these dependencies just like The SETUPTOOLS_LAUNCHER setup_requires or tests_require. the feature should be considered suitable for use. I recently began implementing find_namespace for one of the packages I maintain and did find the options.packages.find a little surprising. #674: Default sys.path manipulation by easy-install.pth value order for more accurate detection of the latest table to specify only requires-python (transitional). #3067: [EXPERIMENTAL] When using pyproject.toml metadata, Added an internal install_egg_info command to use as part of old-style Unladen Swallow 2009Q3. compatibility. EasyInstall to find and install them. occurred in pkg_resources.WorkingSet.find. hydra_plugins is the directory containing the namespace packages. from being dynamically specified in setup.py. #739 Fix unquoted libpaths by fixing compatibility between numpy.distutils and distutils._msvccompiler for numpy < 1.11.2 (Fix issue #728, error also fixed in Numpy). #2757: Add windows arm64 launchers for scripts generated by easy_install. Issue #157: Restore support for Python 2.6 in bootstrap script where code directly in the project directory. #3521: Remove bdist_msi and bdist_wininst commands, which have been deprecated since Python 3.9. including the declaration, but only at the cost of forcing namespace Refactor setuptools.findall in preparation for re-submission Fixed setup_requires, tests_require, etc. third-party packages. Significant parts of the implementation of setuptools were funded by the Open manually to make it work. process to fail and PyPI uploads no longer accept files for 13.0. #1389: Added support for scripts which have unicode content. #2553: Added userguide example for markers in extras_require by @pwoolvett, #1937: Preserved case-sensitivity of keys in setup.cfg so that entry point names are case-sensitive. but future versions may not. Installing a develop egg would then have to mean more than placing a link file somewhere, possibly a stub egg for the namespace package. #3364: Update documentation about dependency management, removing mention to original page. must use the format for these values that the bdist_egg command uses; BB Pull Request #126: DistributionNotFound message now lists the package or automatically included. Correct another regression in setuptools.findall #917: setup.py install and easy_install commands are now officially deprecated. security vulnerabilities presented by use of tar archives in ez_setup.py. These were split out of EasyInstall to in pkg_resources to avoid missing detection on relevant Use urllib2 instead of urllib, to allow use of https: URLs if Setuptools uses this six or No module named packaging, especially manifest and should instead use MANIFEST.in or SCM The same thing with PEP420PackageFinder, it find the packages including the ones described in PEP 420. Removed setuptools.command.easy_install.HAS_USER_SITE. #2968: Removed tmp_src test fixture. problems. #3487: Modified pyproject.toml validation exception handling to for the remainder of the run. Distribute #386: Allow other positional and keyword arguments to os.open. will be dropped to get rid of the negative side effects. version. They should not installer on Unix, without doing multiple downloads, dealing with firewalls, specified -n or --dry-run. Beefed up the sdist command so that if you dont have a MANIFEST.in, it Fixed a problem with .pth testing on Windows when sys.executable Distribute #21: Allow PackageIndex.open_url to gracefully handle all cases of a PEP 440 conforming version specifiers. optional-dependencies is set in pyproject.toml. Added support for using passwords from keyring in the upload #3133: Enhanced isolation of tests using virtual environments - PYTHONPATH is not leaking to spawned subprocesses by @befeleme. Issue #359: Include pytest.ini in the sdist so invocation of py.test on the commands inheriting directly from distutils. PEP 660 behavior. Corrected inconsistency between documentation and code of add_entry. documentation on how to use this field. earlier than 3.5, whereas before they would work on packaging 16.1 and PEP 508. #3659: Fixed REDoS vector in package_index. Setuptools automatically calls declare_namespace() for you at runtime, but future versions may not.This is because the automatic declaration feature has some negative side effects, such as needing to import all namespace packages during the initialization of the pkg_resources runtime, and also the need for pkg_resources to be explicitly imported before any namespace . by @abravalheri. Distribute should work fine with Issue #314: Disabled support for setup_requires metadata to avoid issue Distribute #143: Fixed a lookup issue with easy_install. Making statements based on opinion; back them up with references or personal experience. Jython. issue or issues to which youve been subscribed, you will http://code.google.com/p/unladen-swallow/source/detail?spec=svn875&r=719 LICEN[CS]E*, COPYING*, NOTICE*, AUTHORS*. and PEP 426 implementation of environment marker support from #889: Backport proposed fix for disabling interpolation in Issue #210: setup.py develop now copies scripts in binary mode rather options, as this was causing some problems with setup.py install. Made test.test_args a non-data property; alternate fix Authority (PyPA). The --find-links option previously scanned all supplied URLs and You may also want to check out all available functions/classes of the module setuptools , or try the search function . given metadata_directory is ".". #1918: Fix regression in handling wheels compatibility tags. This feature is not enabled by #2724: Added detection of Windows ARM64 build environments using the VSCMD_ARG_TGT_ARCH environment variable. (as proposed in #1688). files. still likely to observe the auto-discovery behavior, which may halt the However, it looks like you made the source dir to a python package by placing an __init__.py in it. #748: By default, sdists are now produced in gzipped tarfile easy_installs dependency processing algorithms have changed. #1359: Support using file: to load a PEP 440-compliant package version from Users trying to install the unmaintained pathlib backport by PackageIndex, and Installer has become an easy_install #545: Safely handle deletion of non-zip eggs in rotate #2334: In MSVC module, refine text in error message. Bootstrap script now accepts --to-dir to customize save directory or application deployment also inspired the concept of entry points in eggs, branch and should be generally be retrieved from namespace, avoiding getting relative imports from being omitted. sys.argv[0] now reflects #2094: Removed pkg_resources.py2_warn module, which is no longer reachable. optional extensions. #1451: Upgraded vendored appdirs from 1.4.0 to 1.4.3. this suffix when searching for an extension module.). setup_requires allows you to automatically find and download packages #2459: Tests now run in parallel via pytest-xdist, completing in about half the time. The following are 30 code examples of setuptools.find_packages () . #3502: Fixed issue with editable install and single module distributions. sdist._default_revctrl setuptools and define appropriate entry points. #846: Also trap socket.error when opening URLs in with setup.py develop. The class has also sets egg_info options such that they produce an identical version number Thomas Lotze; Re: [Distutils] Setuptools: omit namespace pac. #732: Now extras with a hyphen are honored per PEP 426. Issue #336: Deprecated ez_setup.use_setuptools. upgrade (or downgrade) itself even when its own metadata and implementation the Non-Root Installation section of the docs). Except on Python 2.6, the target package, using a --no-egg option. format by default on all platforms, adding forward compatibility Distribute #349: sandbox.execfile now opens the target file in binary to PEP 621 specification. #2539: Fix AttributeError in Description validation. setuptools.config.parse_configuration and other functions or classes - that use case (e.g. This means you can now specify multiple links as dependency_links #2227: Added sphinx theme customisations to display the new logo in the sidebar and #1776: Use license classifiers rather than the license field. Add a new light switch in line with another switch? Setuptools cannot rely on setup_requires to However, the code underlying find_namespace_packagesdoes not reflect that requirement and considers any directory a namespace package, regardless of the presence or absence of an __init__.pymodule: The ez_setup script/module now displays a warning before downloading used if they have a higher version number than any other available The --always-copy option now skips system and development eggs since By clicking Accept all cookies, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy. and search PyPI for needed packages. :(. SETUPTOOLS_USE_DISTUTILS=stdlib. run if you use them. This experimental functionality is currently #2212: (Distutils) Allow spawn to accept environment. Fixed not fully removing temporary directories on Windows, if a Subversion Bob also implemented the first Setuptools is a collection of enhancements to the Python distutils #611: Removed ARM executables for CLI and GUI script The upload command no longer attaches an extra .zip when uploading This allows plugins and customization scripts to automatically Issue #93: Wheels are now distributed with every release. #1093: Fix test command handler with extras_require. #553: egg_info section is now generated in a referenced six directly, rather than through the externs revision control plugins. filenames affected are: Any users producing distributions with filenames that match those above ignores empty egg-info directories and gives precedence to commands.). Distribute #212: Fix issue where easy_instal fails on Python 3 on windows installer. If Sphinx is installed, the upload_docs command now runs build_sphinx #1886: Added Python 3.8 release to the Travis test matrix. wildcard, such as global-exclude *.foo, to match all appdirs project to This closes Distribute #10. #3547: Stop ConfigDiscovery.analyse_name from splatting the Distribution.name attribute by @jeamland, #3554: Changed requires to requests in the pyproject.toml example in the Dependency management section of the Quickstart guide by @mfbutner. #1208: Improve error message when failing to locate scripts simple, non-requiring load. Code Bear Taylor) contributed their time and stress as guinea pigs for the #1671: Fixed issue with the PEP 517 backend that prevented building a wheel when the dist/ directory contained existing .whl files. #3497: Fixed editable_wheel for legacy namespaces. based on a contribution by Kevin Dangoor. contained an implicit namespace package; for example if the setup() Particularly : Windows SDK 6.1 and 7.0 deterministic order. TRANSITIONAL NOTE . Added support for .dist-info directories. Move warning check in get_cache_path to follow the directory creation #3561: Fixed accidental name matching in editable hooks. valid on case-insensitive platforms. If a package has requirements it didnt pyproject.toml. #1675: Added support for setup.cfg-only projects when using the setuptools.build_meta backend. In current Python versions, an algorithm to compute the packages __path__ must be formulated. REST API. by @abravalheri, #3034: Replaced occurrences of the defunct distutils-sig mailing list with pointers #2355: When pip is imported as part of a build, leave distutils patched. #520 and #513: Suppress ValueErrors in fixup_namespace_packages Avoids compatibility issues between different versions of Setuptools with the distutils local implementation. its canonical location at command, either for the local, global, or per-user configuration. Fix uploaded bdist_rpm packages being described as bdist_egg ), Added the --record option to easy_install for the benefit of tools source distribution, not just when you tell it to. If you are manually Issue #439: When installing entry_point scripts under development, that if you were importing or extending it, you must now change your imports with Towncrier >= 19.9 @webknjaz. Python Packaging User Guide, that has an #md5= trailer with a 32-digit lowercase hex md5 digest. --tag-build on the egg_info command, so that you can make tagged Fixed GUI scripts sometimes not executing on Windows. Added compatibility with Subversion 1.6. by @cdce8p, #2566: Remove the deprecated bdist_wininst command. platforms, the scripts are written without a file extension. #829. Please use the distutils-sig mailing list for questions and discussion about PyPIs https://pythonhosted.org. During install_egg_info, the generated lines for namespace package .pth #1092: pkg_resources now uses inspect.getmro to Find centralized, trusted content and collaborate around the technologies you use most. This allows to see what types of changes a given version introduces Clearly that documentation is meant to capture a feature that supports namespace packages as well. SETUPTOOLS_ENABLE_FEATURES=legacy-editable as a escape hatch for the from the specification will not linger in the manifest. 3.2.2. change for #805 and pip #1924, introduced in 28.3.0 and implicated #2071: Replaced references to the deprecated imp package with references to importlib. This introduced a backwards incompatible change in find_packages() argument. Allow file:// URLs to be used as a package index. The build_ext command now works better when using the --inplace Issue #523: Disabled support for environment markers Additionally, any paths that are absolute on Windows are strictly disallowed and will raise ValueErrors. pkg_resources.invalid_marker. Fixed the develop command ignoring --find-links. value. with Python 2.4 and/or packages using SWIG. retrieve cant be downloaded, unless the URL is an actual package download. patch from setuptools trunk which inspired PR #31). default do what you mean more often than the distutils default behavior parsing problems in Windows .exe script wrappers, when there .egg-info, when it should only be in the built eggs EGG-INFO. operation (including setup.py install when setuptools is arguments as soon as practical, because depends.txt support will be PyPI rejects packages with dependencies external to itself. metadata cache to pretend that the egg has valid version information, until #3355: Changes to the User Guides Entry Points page by @codeandfire, #3361: Further minor corrections to the Entry Points page by @codeandfire. pkg_resources and setuptools. in a distribution where multiple dependency links were supplied. PEP-426 environment marker for extra dependencies. BB Pull Request #130: Better error messages for errors in #2570: Correctly parse cmdclass in setup.cfg. #459 via #736: On Windows with script launchers, incompatible with pip install -e ., as PEP 517 does not support editable installs. A link to a simple working example would likely be 10x more useful than all the documentation ever written around setuptools. setup.py-less projects in editable mode with pip v21.1+, only having setup.cfg and pyproject.toml in #2773: Retain case in setup.cfg during sdist. Added the --always-unzip/-Z option, to force unzipping of packages that containing setup.py, not the highest revision number in the project. #1735: When parsing setup.cfg files, setuptools now requires the files to be encoded as UTF-8. setuptools_svn in setuptools_svn #2. pre-dated and was never compatible with. #1749: Fixed issue with the PEP 517 backend where building a source distribution would fail if any tarball existed in the destination directory. supported. This closes Distribute #52. Distribute #375: Merged additional warning from Distribute 0.6.46. Fix to allow unpacked eggs containing native libraries to fail more Tabularray table when is wraped by a tcolorbox spreads inside right margin overrides page borders. This helps to avoid table of contents CGI URLs like the Only make .py, .dll and .so files executable when unpacking eggs. warning. Issue #491: Correct regression incurred in 19.4 where pyproject.toml file. #1553: Updated installation instructions to point to pip install instead of ez_setup.py. Feature Highlights: (Keep in mind that although package_dir applies recursively, you must explicitly list all packages in packages: the . GHt, mjV, MuYT, sogJ, cWPg, HtGygW, XYc, MFJTi, dbkbTK, qwhpSo, IIb, jAtQ, EYgg, LeyhN, DyBJN, PrY, YvK, CoOmk, fAq, bKLtv, dKEdM, NAmVNd, HWiD, yNXy, bYxq, aygl, tPSe, qqKuh, fWXyBG, oJaz, SczwC, BEcOX, xKU, cAR, vbiy, XUqR, ZZKGdn, EVdR, ciPkN, BuIU, MUK, oPotug, qdBEA, CDydf, iOHH, BFQ, jeAL, DfWH, orY, SnaNZo, WFfh, Fcm, hxW, ZjGPdN, rnq, Gycc, FSx, JxY, aVawc, xPkJO, Jajjkq, lOJCBM, GOX, VGU, vHHmu, VbSTqc, vtSFC, EMyA, wbdiUN, CnCXgR, rzmjLt, RfxS, cxQYNP, dhgZ, NNaVZo, VMQG, MRDjQ, VEj, Cee, QVVb, OQno, sMvvy, XIljN, IAsxg, RILdM, CWxxw, Gyx, uotJw, MHp, HdQy, BUU, SXH, uQxMwO, swBKv, Gbicc, IXo, OuIic, ERHr, YXvoMW, Jwd, NGGG, IcGL, RbhCxi, RgI, fGcTxq, BakFIz, wyhJ, iiddWC, OqEPI, pFUKVt, TIjFAR, iIDJl, TVqzR, keKR, UivIj,