summaryrefslogtreecommitdiff
path: root/setuptools/tests/test_resources.py
Commit message (Collapse)AuthorAgeFilesLines
...
* ``safe_name()`` now allows dots in project names, and there is a newPJ Eby2006-01-101-1/+1
| | | | | | | | | | | ``to_filename()`` function that escapes project names and versions for safe use in constructing egg filenames from a Distribution object's metadata. Note that allowing dots may now cause problems for projects with '.' in the name that were previously installed, since such projects had to be spelled with a '-' before. The '-' name will no longer match the '.' project, and there is no real room for backward compatibility here. :(
* Make it clearer that Requirement.parse() is the only way for usersPJ Eby2006-01-031-11/+11
| | | | to create correct Requirement instances.
* Changed ``parse_version()`` to remove dashes before pre-release tags, soPJ Eby2005-12-061-3/+3
| | | | | | | that ``0.2-rc1`` is considered an *older* version than ``0.2``, and is equal to ``0.2rc1``. The idea that a dash *always* meant a post-release version was highly non-intuitive to setuptools users and Python developers, who seem to want to use ``-rc`` version numbers a lot.
* Added support for ``.egg-info`` files or directories with version/platformPJ Eby2005-12-061-2/+2
| | | | | | | information embedded in the filename, so that system packagers have the option of including ``PKG-INFO`` files to indicate the presence of a system-installed egg, without needing to use ``.egg`` directories, zipfiles, or ``.pth`` manipulation.
* Fixed a problem with ``WorkingSet.resolve()`` that prevented versionPJ Eby2005-11-031-4/+4
| | | | conflicts from being detected at runtime. (As reported by Ian Bicking.)
* 0.6a7 bugfix releasePJ Eby2005-11-021-1/+1
|
* Bugfixes. :(PJ Eby2005-09-291-1/+1
|
* Ensure that WorkingSet.resolve() (and therefore require() as well)PJ Eby2005-09-261-6/+6
| | | | | | returns a list of the relevant distributions, even if they are found in the working set rather than the environment. This fixes some problems in the 0.6a3 release.
* Fix a problem with inconsistent quoting of "extras", reported by IanPJ Eby2005-09-241-1/+1
| | | | Bicking on the distutils-sig.
* Document the "Environment" class, and simplify its API.PJ Eby2005-08-141-6/+6
|
* Added docs for main EntryPoint APIs, and cleaned up the API itself a bit.PJ Eby2005-08-131-4/+4
| | | | Also fixed a few bugs.
* Renamed AvailableDistributions -> Environment. Add sketch of pkg_resourcesPJ Eby2005-08-071-2/+2
| | | | manual outline.
* Misc. bug fixes and doc additions. Add 'iter_entry_points()' API.PJ Eby2005-07-251-6/+6
|
* Implement "entry points" for dynamic discovery of drivers and plugins.PJ Eby2005-07-241-1/+83
| | | | | | Change setuptools to discover setup commands using an entry point group called "distutils.commands". Thanks to Ian Bicking for the suggestion that led to designing this super-cool feature.
* Fix eager resource extraction. Add eager_resources setup() argument. AddPJ Eby2005-07-241-2/+2
| | | | | support for obtaining project-level resources by making get_provider() accept Requirement objects.
* Catch a few missed terminology changes.PJ Eby2005-07-181-11/+11
|
* Massive API refactoring; see setuptools.txt changelog for details. Also,PJ Eby2005-07-181-29/+22
| | | | | add ``#egg=project-version`` link support, and docs on how to make your package available for EasyInstall to find.
* ``Distribution`` objects now implement the ``IResourceProvider`` andPJ Eby2005-07-171-1/+1
| | | | | ``IMetadataProvider`` interfaces, so you don't need to reference the (no longer available) ``metadata`` attribute to get at these interfaces.
* Renamings for consistent terminology; distributions and requirements nowPJ Eby2005-07-171-5/+5
| | | | | | | | | both have 'project_name' attributes, instead of one having 'name' and the other 'distname'. Requirements no longer have 'options', they have 'extras'. This is the beginning of the terminology/architecture refactoring described at: http://mail.python.org/pipermail/distutils-sig/2005-June/004652.html
* Implement PyPI screenscraping for EasyInstall. Fix a bug in requirementPJ Eby2005-06-051-6/+13
| | | | version checking. Document new options for screen scraping.
* Add "safe_name" and "safe_version" functions to allow sanitizing ofPJ Eby2005-06-051-15/+15
| | | | | distribution names and versions in arbitrary packages that might be built using EasyInstall.
* Make ``AvailableDistributions`` keep track of the desired platform/python.PJ Eby2005-06-051-1/+1
| | | | | | Add a ``can_add()`` method that indicates whether a distribution matches the collection's desired platform and Python version. Fix a bug in ``Distribution.from_filename()`` when the filename has no Python version.
* Add tests for AvailableDistributions().resolve(). This effectivelyPJ Eby2005-05-231-0/+41
| | | | | | | | completes the core dependency resolution engine; all we need now is a way to turn sys.path entries into "distribution sources" that can list Distribution objects for inclusion in an instance of AvailableDistributions, and the 'require("SomePkg>=2.7")' API will be usable.
* Added support for specifying options on requirements, so that a package'sPJ Eby2005-05-221-3/+44
| | | | | optional dependencies can be included when processing nested dependencies. Next up: tests for the resolve() algorithm.
* Distribution metadata parsing: distribution objects can now extract theirPJ Eby2005-05-221-67/+108
| | | | | version from PKG-INFO and their dependencies from depends.txt, including optional dependencies.
* Refine dependency resolution algorithm so it won't take exponential time,PJ Eby2005-05-221-10/+51
| | | | | | | | or bomb on cyclic dependencies. (But it's still an untested sketch.) Added list of things that need to be implemented before dependency resolution can actually work. Added tests for lower-level parts of the dependency resolution system, and a hook to support subclasses doing automatic download of needed dependencies.
* Add basic "Requirement" class that can tell whether a distribution orPJ Eby2005-05-211-3/+44
| | | | version meets its version requirements.
* Added "AvailableDistributions" class that finds and indexes usablePJ Eby2005-04-031-6/+47
| | | | | | | | | distributions; this replaces the previous "iter_distributions()" API. Added basic platform support to Distribution and AvailableDistributions so that platform-independent distros as well as local platform-compatible distros are acceptable. The actual platform scheme is currently delegated to distutils.util.get_platform(), but needs to be replaced with a better scheme of some kind, especially for OS X.
* Fix handling of -/_ so that they are canonicalized to '-' when doing namePJ Eby2005-04-031-2/+2
| | | | or version comparisons, but rendered as '_' in egg filenames.
* Add a "Distribution" object that wraps a sys.path entry with metadata, andPJ Eby2005-04-031-5/+78
| | | | | | | can extract its name/version/pythonversion/platform if built from a .egg filename. Later, distributions will be able to add themselves to sys.path and request that their dependencies be added as well. Also, added some real-life version test cases supplied by jemfinch.
* Add a simple version parser that combines the pre-release smarts ofPJ Eby2005-04-021-0/+58
| | | | | | distutils' StrictVersion, with the flexibility of LooseVersion. It also deals heuristically with common concepts like alpha/beta/candidate/rc and pre/preview, as well as '-' and 'pl' branching schemes.
* Rough draft of version requirement parser. Make bdist_egg look for aPJ Eby2005-04-021-0/+33
distname.egg-info directory instead of EGG-INFO.in; this will be used later to support development of egg-distributed packages that an application under development expects to 'require()'. (Thanks to Fred Drake for pointing out this use case, and Bob Ippolito for helping me figure out how to support it, although the runtime support doesn't actually exist yet.)