diff --git a/.gitignore b/.gitignore index 67bb080..6d4bd14 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,9 @@ +.*.swp *.pyc dist/ build/ yolk.egg-info/ +.travis-solo/ +yolk3k.egg-info/ +Paste-1.7.5.1.tar.gz +Paste_svn/ diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..66bfdf7 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,13 @@ +language: python + +python: + - "2.7" + - "3.3" + - "3.4" + +install: + - python setup.py --quiet install + +script: + - ./setup.py test + - ./test.bash diff --git a/AUTHORS b/AUTHORS deleted file mode 100644 index b803edb..0000000 --- a/AUTHORS +++ /dev/null @@ -1,6 +0,0 @@ - - -Rob Cakebread - - - diff --git a/COPYING b/COPYING index c16495f..4749c8d 100644 --- a/COPYING +++ b/COPYING @@ -24,5 +24,3 @@ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - - diff --git a/CREDITS b/CREDITS index 35b8116..f8c1e60 100644 --- a/CREDITS +++ b/CREDITS @@ -22,5 +22,3 @@ Patches: Jesus Rivero: entry-map patch in 0.4.2 - - diff --git a/ChangeLog b/ChangeLog deleted file mode 100644 index b825101..0000000 --- a/ChangeLog +++ /dev/null @@ -1,807 +0,0 @@ -2012-02-06 Rob Cakebread - - * README, README.rst: Tidy docs. - - * MANIFEST.in, NEWS, README, README.rst, yolk/__init__.py: Version bump - - * MANIFEST.in, tox.ini: Added tox support for testing multiple python - versions - - * docs/index.rst, requires.txt, tests/test_yolk_cli.py: Tidy up. - -2012-02-05 Rob Cakebread - - * docs/yolk.1: Updated version - - * docs/_build/doctrees/index.doctree, docs/_build/html/.buildinfo, - docs/_build/html/_sources/index.txt, - docs/_build/html/_static/ajax-loader.gif, docs/_build/html/_static/basic.css, - docs/_build/html/_static/comment-bright.png, - docs/_build/html/_static/comment-close.png, - docs/_build/html/_static/comment.png, docs/_build/html/_static/default.css, - docs/_build/html/_static/doctools.js, - docs/_build/html/_static/down-pressed.png, docs/_build/html/_static/down.png, - docs/_build/html/_static/file.png, docs/_build/html/_static/jquery.js, - docs/_build/html/_static/minus.png, docs/_build/html/_static/plus.png, - docs/_build/html/_static/pygments.css, - docs/_build/html/_static/searchtools.js, docs/_build/html/_static/sidebar.js, - docs/_build/html/_static/underscore.js, - docs/_build/html/_static/up-pressed.png, docs/_build/html/_static/up.png, - docs/_build/html/_static/websupport.js, docs/_build/html/genindex.html, - docs/_build/html/index.html, docs/_build/html/objects.inv, - docs/_build/html/search.html, docs/_build/html/searchindex.js: Don't need. - - * docs/_build/_sources/index.txt, docs/_build/_static/ajax-loader.gif, - docs/_build/_static/basic.css, docs/_build/_static/comment-bright.png, - docs/_build/_static/comment-close.png, docs/_build/_static/comment.png, - docs/_build/_static/default.css, docs/_build/_static/doctools.js, - docs/_build/_static/down-pressed.png, docs/_build/_static/down.png, - docs/_build/_static/file.png, docs/_build/_static/jquery.js, - docs/_build/_static/minus.png, docs/_build/_static/plus.png, - docs/_build/_static/pygments.css, docs/_build/_static/searchtools.js, - docs/_build/_static/sidebar.js, docs/_build/_static/underscore.js, - docs/_build/_static/up-pressed.png, docs/_build/_static/up.png, - docs/_build/_static/websupport.js, docs/_build/doctrees/environment.pickle, - docs/_build/genindex.html, docs/_build/index.html, docs/_build/objects.inv, - docs/_build/search.html, docs/_build/searchindex.js: Un-needed. - - * docs/_build/.buildinfo, docs/_build/.doctrees/environment.pickle, - docs/_build/.doctrees/index.doctree, docs/_build/_sources/index.txt, - docs/_build/_static/ajax-loader.gif, docs/_build/_static/basic.css, - docs/_build/_static/comment-bright.png, - docs/_build/_static/comment-close.png, docs/_build/_static/comment.png, - docs/_build/_static/default.css, docs/_build/_static/doctools.js, - docs/_build/_static/down-pressed.png, docs/_build/_static/down.png, - docs/_build/_static/file.png, docs/_build/_static/jquery.js, - docs/_build/_static/minus.png, docs/_build/_static/plus.png, - docs/_build/_static/pygments.css, docs/_build/_static/searchtools.js, - docs/_build/_static/sidebar.js, docs/_build/_static/underscore.js, - docs/_build/_static/up-pressed.png, docs/_build/_static/up.png, - docs/_build/_static/websupport.js, docs/_build/doctrees/environment.pickle, - docs/_build/doctrees/index.doctree, docs/_build/genindex.html, - docs/_build/html/.buildinfo, docs/_build/html/_sources/index.txt, - docs/_build/html/_static/ajax-loader.gif, docs/_build/html/_static/basic.css, - docs/_build/html/_static/comment-bright.png, - docs/_build/html/_static/comment-close.png, - docs/_build/html/_static/comment.png, docs/_build/html/_static/default.css, - docs/_build/html/_static/doctools.js, - docs/_build/html/_static/down-pressed.png, docs/_build/html/_static/down.png, - docs/_build/html/_static/file.png, docs/_build/html/_static/jquery.js, - docs/_build/html/_static/minus.png, docs/_build/html/_static/plus.png, - docs/_build/html/_static/pygments.css, - docs/_build/html/_static/searchtools.js, docs/_build/html/_static/sidebar.js, - docs/_build/html/_static/underscore.js, - docs/_build/html/_static/up-pressed.png, docs/_build/html/_static/up.png, - docs/_build/html/_static/websupport.js, docs/_build/html/genindex.html, - docs/_build/html/index.html, docs/_build/html/objects.inv, - docs/_build/html/search.html, docs/_build/html/searchindex.js, - docs/_build/index.html, docs/_build/objects.inv, docs/_build/search.html, - docs/_build/searchindex.js: Testing Sphinx - - * docs/index.rst: Testing Sphinx - - * requires.txt: For Sphix docs - - * docs/Makefile, docs/conf.py, docs/index.rst: Setting up Sphix docs - - * setup.py: Fixed README - - * setup.py: Typo in desc - - * README, README.rst: Update before release - - * .gitignore: Added build/ - - * NEWS, README: Python 2 and 3 support\! - - * ChangeLog: Updated ChangeLog - - * yolk/cli.py, yolk/metadata.py, yolk/pypi.py, yolk/setuptools_support.py, - yolk/utils.py, yolk/yolklib.py: Change license info, email - - * yolk/cli.py: entry-map patch from Jesus Rivero (Neurogeek) - - * .gitignore: Update w/ dist/ - - * .gitignore: Update w/ *.pyc - - * AUTHORS, COPYING, CREDITS, INSTALL, README, README.rst, THANKS, TODO, - setup.py, yolk/__init__.py: Prep for 0.4.2 release - -2008-10-18 Rob Cakebread - - * yolk/metadata.py: Simplify get_metadata - - * tests/test_yolk_metadata.py, tests/test_yolk_pypi.py, - tests/test_yolk_setuptools_support.py, tests/test_yolk_utils.py, - tests/test_yolk_yolklib.py: Renamed. - -2008-09-03 Rob Cakebread - - * yolk/pypi.py: Added xmlrpc debug info when XMLRPC_DEBUG env variable is - set. - -2008-08-21 Rob Cakebread - - * : Moved to test_yolk_yolklib.py - -2008-08-11 Rob Cakebread - - * README, yolk/__init__.py, yolk/cli.py: Fix -f bug with -l - - * CREDITS, NEWS, README: Update docs for release - - * yolk/pypi.py: Add self.verbose to ProxyTransport - - * yolk/cli.py, yolk/pypi.py, yolk/setuptools_support.py, yolk/utils.py: Tidy, - add doc strings - - * yolk/pypi.py: Add http proxy for xml-rpc. Closes #24 - - * yolk/cli.py: Case-insensitive search for -f. Closes #12 - - * yolk/cli.py: Don't choke on missing metadata. Closes #23 - -2008-04-23 Rob Cakebread - - * yolk/pypi.py: Fix pypi's new URL. No more cheeseshop. - -2007-07-20 Rob Cakebread - - * yolk/cli.py: Fix fetch_uri to be Python <2.5 compatible - - * yolk/setuptools_support.py: Fix get_download_uri - - * yolk/cli.py, yolk/setuptools_support.py: Added --pypi-index option to - specify PyPI mirror. - - * yolk/cli.py: Fix problem with -D svn - -2007-07-18 Rob Cakebread - - * yolk/cli.py: Update docstrings. - - * yolk/cli.py: MAJOR refactor of run(). Yay\! - -2007-07-17 Rob Cakebread - - * yolk/cli.py: Fixes #22 - - * yolk/__init__.py: Version bump. - - * THANKS: More thanks. - - * README: Updated changelog. - - * tests/test_cli.py: Removed test. - - * tests/rss_feed.py: Add skipped tests. - -2007-07-16 Rob Cakebread - - * CREDITS: Updated. - - * tests/rss_feed.py, yolk/__init__.py, yolk/cli.py, yolk/pypi.py, - yolk/setuptools_support.py, yolk/utils.py: Refactor, smarter package list - cacheing. - -2007-07-14 Rob Cakebread - - * README, setup.py, yolk/cli.py, yolk/pypi.py, yolk/utils.py: Remove rss - cruft. - - * yolk/pypi.py: Removed RSS support in favor of new XML-RPC method. - - * yolk/cli.py, yolk/pypi.py, yolk/setuptools_support.py: Refactored XML-RPC - code a bit. - - * yolk/cli.py, yolk/setuptools_support.py: Don't show source if no egg is - available (setuptools default) - - * yolk/cli.py, yolk/metadata.py, yolk/pypi.py, yolk/utils.py: Refactor -D - code - - * yolk/cli.py, yolk/pypi.py, yolk/setuptools_support.py: Huge refactoring. - -2007-07-13 Rob Cakebread - - * yolk/cli.py: Add support for svn fetching for -F -T svn - - * yolk/cli.py: Added -F option for source download. - - * setup.py, yolk/__init__.py, yolk/__version__.py, yolk/cli.py, yolk/pypi.py: - Add Revision svn prop to version. Squelch pkg_resources output - -2007-07-07 Rob Cakebread - - * yolk/__version__.py: Version bump. - - * README, setup.py: Updated description. - - * setup.py: Removed obsolete comments. - - * yolk/cli.py: Remove result msg when no non-active pkgs installed - - * README, setup.py, yolk/pypi.py: Make cElementTree optional for RSS - extra_requires - - * README, yolk/__version__.py: Version bump. - - * tests/test_parse_pkg_ver.py: Moved to test_cli.py - -2007-07-06 Rob Cakebread - - * setup.py: Add install_reqires and celementree-foo - - * yolk/cli.py, yolk/setuptools_support.py: Tidy up docstrings - - * yolk/cli.py, yolk/metadata.py, yolk/pypi.py, yolk/setuptools_support.py: - Clean up docstrings - - * yolk/cli.py: Clarify msg when no pkgs installed - - * yolk/yolklib.py: Pretty-up docstrings - -2007-06-24 Rob Cakebread - - * yolk/cli.py: Fixed -M for non-specific version. - -2007-06-23 Rob Cakebread - - * yolk/cli.py, yolk/setuptools_support.py: Added 'svn' type for -T - -2007-06-13 Rob Cakebread - - * yolk/cli.py: Tidy get_all_versions_pypi - - * yolk/cli.py: Remove obsolete comments. - - * yolk/cli.py: Got rid of Usage excaption. - - * yolk/cli.py, yolk/pypi.py, yolk/setuptools_support.py: Clean up url for -D - if pkg_name==dev - - * yolk/cli.py: Fix -M and -V to not show all versions when specific is asked - for. - - * setup.py: Remove un-needed find_packages - -2007-05-18 Rob Cakebread - - * README: Update changelog - -2007-05-17 Rob Cakebread - - * yolk/pypi.py: Fix indent level - - * yolk/plugins/__init__.py: Reduce log level - - * tests/rss_feed.py: Fix celementtree dep for Python 2.5 - - * setup.py: Changed from Pre-Alpha to Alpha classifier - - * yolk/__version__.py: Version bump. - - * yolk/cli.py: Fixed undefined variable. - - * yolk/cli.py, yolk/pypi.py: More accurate support for -D. Fixes ticket #16 - - * yolk/metadata.py: Removed pylint disable-msg - - * yolk/setuptools_support.py: More accurate support for -D. Fixes ticket #16 - -2007-05-14 Rob Cakebread - - * yolk/cli.py: Allow -f option with -M - -2007-05-11 Rob Cakebread - - * yolk/cli.py: Tidy up logger. - - * yolk/cli.py, yolk/yolklib.py: Add ability to only check one pkg for -U - - * yolk/cli.py: Refactor main w/ correct exit codes. Fixes ticket #15 - -2007-04-24 Rob Cakebread - - * yolk/cli.py: Tidy up opt parser help. - -2007-04-23 Rob Cakebread - - * yolk/cli.py, yolk/yolklib.py: Fixes ticket #17 - - * README: New yolk-dev URL - - * yolk/__version__.py: Version bump. - - * ChangeLog: Update ChangeLog for 0.0.7 release - - * README: Update changelog - - * yolk/__version__.py: Update version for 0.0.7 release - - * FAQ, INSTALL, NEWS, README: Update for 0.7 release - - * README, yolk/cli.py, yolk/pypi.py: Make sure -M works with PKG_SPEC - -2007-04-22 Rob Cakebread - - * setup.py: Added yolk.plugins - - * yolk/cli.py: Move PYPI to local scope. Tidy up. - - * examples/plugins/README, examples/plugins/yolk_portage/README, - examples/plugins/yolk_portage/yolk_portage.py: Add docs. - -2007-04-21 Rob Cakebread - - * yolk/cli.py: Fix bug when invalid package showed all installed. - - * yolk/cli.py: new --entry-points and --entry-map options - - * yolk/cli.py, yolk/metadata.py, yolk/plugins/__init__.py, - yolk/plugins/base.py, yolk/pypi.py, yolk/setuptools_support.py: Tidy up after - pylint. - - * yolk/__version__.py, yolk/metadata.py, yolk/pypi.py, - yolk/setuptools_support.py, yolk/yolklib.py: Change license info. - - * yolk/__init__.py: Change license to GPL-2 - - * CHANGELOG, ChangeLog: Renamed. - - * CHANGELOG: Updated. - -2007-04-20 Rob Cakebread - - * yolk/cli.py: Remove false false positive. - - * yolk/cli.py: Don't detect workingenv dirs as development - - * yolk/cli.py: Changed license to GPL-2 - - * COPYING, setup.py: Change to GPL-2 license - - * CREDITS: Update credit due. - - * yolk/cli.py, yolk/plugins/__init__.py, yolk/plugins/base.py: Initial plugin - support. - -2007-04-18 Rob Cakebread - - * yolk/__version__.py: Update version. - - * yolk/__init__.py, yolk/__version__.py, yolk/cli.py, yolk/metadata.py, - yolk/pypi.py, yolk/setuptools_support.py, yolk/yolklib.py: Tidy up per pylint - - * yolk/cli.py, yolk/setuptools_support.py, yolk/yolklib.py: Better setuptools - hack for -D - - * tests/rss_feed.py: Skip packages with space in name till fixed. - -2007-04-14 Rob Cakebread - - * yolk/pypi.py: Remove #md5 from urls - - * tests/rss_feed.py: Use setuptoolks pkg spec format. - -2007-04-10 Rob Cakebread - - * yolk/cli.py: Sort RSS feed by date - - * yolk/pypi.py: Sort RSS feed by date - - * yolk/yolklib.py: Use pkg_resource.require instead of Enviroent directly - - * yolk/pypi.py: Add date to RSS data - - * docs/api/epydoc.css, docs/api/index.html, docs/api/private/epydoc.css, - docs/api/private/exceptions.Exception-class.html, - docs/api/private/frames.html, docs/api/private/help.html, - docs/api/private/index.html, docs/api/private/indices.html, - docs/api/private/toc-everything.html, docs/api/private/toc-yolk-module.html, - docs/api/private/toc-yolk.__version__-module.html, - docs/api/private/toc-yolk.cli-module.html, - docs/api/private/toc-yolk.metadata-module.html, - docs/api/private/toc-yolk.pypi-module.html, - docs/api/private/toc-yolk.yolklib-module.html, docs/api/private/toc.html, - docs/api/private/trees.html, docs/api/private/yolk-module.html, - docs/api/private/yolk.__version__-module.html, - docs/api/private/yolk.cli-module.html, - docs/api/private/yolk.cli.Usage-class.html, - docs/api/private/yolk.metadata-module.html, - docs/api/private/yolk.pypi-module.html, - docs/api/private/yolk.pypi.CheeseShop-class.html, - docs/api/private/yolk.yolklib-module.html, - .../private/yolk.yolklib.Distributions-class.html, - docs/api/public/epydoc.css, docs/api/public/exceptions.Exception-class.html, - docs/api/public/frames.html, docs/api/public/help.html, - docs/api/public/index.html, docs/api/public/indices.html, - docs/api/public/toc-everything.html, docs/api/public/toc-yolk-module.html, - docs/api/public/toc-yolk.__version__-module.html, - docs/api/public/toc-yolk.cli-module.html, - docs/api/public/toc-yolk.metadata-module.html, - docs/api/public/toc-yolk.pypi-module.html, - docs/api/public/toc-yolk.yolklib-module.html, docs/api/public/toc.html, - docs/api/public/trees.html, docs/api/public/yolk-module.html, - docs/api/public/yolk.__version__-module.html, - docs/api/public/yolk.cli-module.html, - docs/api/public/yolk.cli.Usage-class.html, - docs/api/public/yolk.metadata-module.html, - docs/api/public/yolk.pypi-module.html, - docs/api/public/yolk.pypi.CheeseShop-class.html, - docs/api/public/yolk.yolklib-module.html, - .../public/yolk.yolklib.Distributions-class.html: Remove API docs - - * docs/api/index.html, docs/api/private/exceptions.Exception-class.html, - docs/api/private/frames.html, docs/api/private/help.html, - docs/api/private/index.html, docs/api/private/indices.html, - docs/api/private/toc-everything.html, docs/api/private/toc-yolk-module.html, - docs/api/private/toc-yolk.__version__-module.html, - docs/api/private/toc-yolk.cli-module.html, - docs/api/private/toc-yolk.pypi-module.html, - docs/api/private/toc-yolk.yolklib-module.html, docs/api/private/toc.html, - docs/api/private/trees.html, docs/api/private/yolk-module.html, - docs/api/private/yolk.__version__-module.html, - docs/api/private/yolk.cli-module.html, - docs/api/private/yolk.cli.Usage-class.html, - docs/api/private/yolk.metadata-module.html, - docs/api/private/yolk.pypi-module.html, - docs/api/private/yolk.pypi.CheeseShop-class.html, - docs/api/private/yolk.yolklib-module.html, - .../private/yolk.yolklib.Distributions-class.html, - docs/api/public/exceptions.Exception-class.html, docs/api/public/frames.html, - docs/api/public/help.html, docs/api/public/index.html, - docs/api/public/indices.html, docs/api/public/toc-everything.html, - docs/api/public/toc-yolk-module.html, - docs/api/public/toc-yolk.__version__-module.html, - docs/api/public/toc-yolk.cli-module.html, - docs/api/public/toc-yolk.pypi-module.html, - docs/api/public/toc-yolk.yolklib-module.html, docs/api/public/toc.html, - docs/api/public/trees.html, docs/api/public/yolk-module.html, - docs/api/public/yolk.__version__-module.html, - docs/api/public/yolk.cli-module.html, - docs/api/public/yolk.cli.Usage-class.html, - docs/api/public/yolk.metadata-module.html, - docs/api/public/yolk.pypi-module.html, - docs/api/public/yolk.pypi.CheeseShop-class.html, - docs/api/public/yolk.yolklib-module.html, - .../public/yolk.yolklib.Distributions-class.html: Update API docs - -2007-03-21 Rob Cakebread - - * yolk/pypi.py: Fixed check for binary -T -D - -2007-03-15 Rob Cakebread - - * yolk/cli.py: Update ignores - -2007-03-07 Rob Cakebread - - * yolk/pypi.py: Don't exit on PyPI errors - - * examples/rss_feed.py, tests/rss_feed.py: Moved. - -2007-03-06 Rob Cakebread - - * yolk/cli.py: Add Debian location ignores - - * yolk/cli.py, yolk/yolklib.py: Case-insensitive searches for installed opts - ticket #3 - - * README: Updated svn yolk==dev link - - * README: Updated. - - * yolk/__version__.py: Version bump. - -2007-03-01 Rob Cakebread - - * CHANGELOG: Updated. - - * examples/rss_feed.py: Fixed bad interpreter error - - * README: Updated svn dev egg - - * setup.py: Added nose unit testing - - * yolk/cli.py, yolk/metadata.py, yolk/pypi.py, yolk/yolklib.py: Use - restructuredtext for docstrings - -2007-02-28 Rob Cakebread - - * CHANGELOG, README: Update for 0.0.6 - - * yolk/__version__.py: Version bump. - - * yolk/cli.py: Do case-insensitive prefix search - -2007-02-27 Rob Cakebread - - * setup.py: Fix desc - - * README: Remove broken svn link auth required - - * yolk/cli.py: Fix shebang - - * README: Added ebuild location. - - * yolk/cli.py, yolk/metadata.py, yolk/pypi.py, yolk/yolklib.py: Tidy up per - pylint - - * yolk/cli.py: Fix for pkgs with no metadata - - * yolk/cli.py: Fixed false positives for development pkgs - - * README, setup.py: Use reST for long desc - - * yolk/cli.py: Change 'egg' to 'binary' with -T - - * CHANGELOG, yolk/cli.py: Parse PKG_SPEC with == - - * examples/rss_feed.py: Updated to use new API - -2007-02-26 Rob Cakebread - - * yolk/cli.py: Removed -p - - * FAQ: Updated. - -2007-02-18 Rob Cakebread - - * yolk/cli.py, yolk/yolklib.py: Added -p PKG_SPEC - -2007-02-14 Rob Cakebread - - * yolk/__version__.py: Version bump. - -2007-02-13 Rob Cakebread - - * docs/api/epydoc.css, docs/api/index.html, docs/api/private/epydoc.css, - docs/api/private/exceptions.Exception-class.html, - docs/api/private/frames.html, docs/api/private/help.html, - docs/api/private/index.html, docs/api/private/indices.html, - docs/api/private/toc-everything.html, docs/api/private/toc-yolk-module.html, - docs/api/private/toc-yolk.__version__-module.html, - docs/api/private/toc-yolk.cli-module.html, - docs/api/private/toc-yolk.metadata-module.html, - docs/api/private/toc-yolk.pypi-module.html, - docs/api/private/toc-yolk.yolklib-module.html, docs/api/private/toc.html, - docs/api/private/trees.html, docs/api/private/yolk-module.html, - docs/api/private/yolk.__version__-module.html, - docs/api/private/yolk.cli-module.html, - docs/api/private/yolk.cli.Usage-class.html, - docs/api/private/yolk.metadata-module.html, - docs/api/private/yolk.pypi-module.html, - docs/api/private/yolk.pypi.CheeseShop-class.html, - docs/api/private/yolk.yolklib-module.html, - .../private/yolk.yolklib.Distributions-class.html, - docs/api/public/epydoc.css, docs/api/public/exceptions.Exception-class.html, - docs/api/public/frames.html, docs/api/public/help.html, - docs/api/public/index.html, docs/api/public/indices.html, - docs/api/public/toc-everything.html, docs/api/public/toc-yolk-module.html, - docs/api/public/toc-yolk.__version__-module.html, - docs/api/public/toc-yolk.cli-module.html, - docs/api/public/toc-yolk.metadata-module.html, - docs/api/public/toc-yolk.pypi-module.html, - docs/api/public/toc-yolk.yolklib-module.html, docs/api/public/toc.html, - docs/api/public/trees.html, docs/api/public/yolk-module.html, - docs/api/public/yolk.__version__-module.html, - docs/api/public/yolk.cli-module.html, - docs/api/public/yolk.cli.Usage-class.html, - docs/api/public/yolk.metadata-module.html, - docs/api/public/yolk.pypi-module.html, - docs/api/public/yolk.pypi.CheeseShop-class.html, - docs/api/public/yolk.yolklib-module.html, - .../public/yolk.yolklib.Distributions-class.html: Updated API docs. - - * docs/api/epydoc.css, docs/api/index.html, docs/api/private/epydoc.css, - docs/api/private/exceptions.Exception-class.html, - docs/api/private/frames.html, docs/api/private/help.html, - docs/api/private/index.html, docs/api/private/indices.html, - docs/api/private/toc-everything.html, docs/api/private/toc-yolk-module.html, - docs/api/private/toc-yolk.__version__-module.html, - docs/api/private/toc-yolk.cli-module.html, - docs/api/private/toc-yolk.metadata-module.html, - docs/api/private/toc-yolk.pypi-module.html, - docs/api/private/toc-yolk.yolklib-module.html, docs/api/private/toc.html, - docs/api/private/trees.html, docs/api/private/yolk-module.html, - docs/api/private/yolk.__version__-module.html, - docs/api/private/yolk.cli-module.html, - docs/api/private/yolk.cli.Usage-class.html, - docs/api/private/yolk.metadata-module.html, - docs/api/private/yolk.pypi-module.html, - docs/api/private/yolk.pypi.CheeseShop-class.html, - docs/api/private/yolk.yolklib-module.html, - .../private/yolk.yolklib.Distributions-class.html, - docs/api/public/epydoc.css, docs/api/public/exceptions.Exception-class.html, - docs/api/public/frames.html, docs/api/public/help.html, - docs/api/public/index.html, docs/api/public/indices.html, - docs/api/public/toc-everything.html, docs/api/public/toc-yolk-module.html, - docs/api/public/toc-yolk.__version__-module.html, - docs/api/public/toc-yolk.cli-module.html, - docs/api/public/toc-yolk.metadata-module.html, - docs/api/public/toc-yolk.pypi-module.html, - docs/api/public/toc-yolk.yolklib-module.html, docs/api/public/toc.html, - docs/api/public/trees.html, docs/api/public/yolk-module.html, - docs/api/public/yolk.__version__-module.html, - docs/api/public/yolk.cli-module.html, - docs/api/public/yolk.cli.Usage-class.html, - docs/api/public/yolk.metadata-module.html, - docs/api/public/yolk.pypi-module.html, - docs/api/public/yolk.pypi.CheeseShop-class.html, - docs/api/public/yolk.yolklib-module.html, - .../public/yolk.yolklib.Distributions-class.html: Update API docs. - - * lib/__init__.py, lib/__version__.py, lib/cli.py, lib/metadata.py, - lib/pypi.py, lib/yolklib.py, setup.py, yolk/__init__.py, yolk/__version__.py, - yolk/cli.py, yolk/metadata.py, yolk/pypi.py, yolk/yolklib.py: Fixed -U false - positives. ticket #2 - - * CHANGELOG: Updated. - -2007-02-12 Rob Cakebread - - * docs/api/epydoc.css, docs/api/index.html, docs/api/private/epydoc.css, - docs/api/private/exceptions.Exception-class.html, - docs/api/private/frames.html, docs/api/private/help.html, - docs/api/private/index.html, docs/api/private/indices.html, - docs/api/private/toc-everything.html, docs/api/private/toc-yolk-module.html, - docs/api/private/toc-yolk.__version__-module.html, - docs/api/private/toc-yolk.cli-module.html, - docs/api/private/toc-yolk.metadata-module.html, - docs/api/private/toc-yolk.pypi-module.html, - docs/api/private/toc-yolk.yolklib-module.html, docs/api/private/toc.html, - docs/api/private/trees.html, docs/api/private/yolk-module.html, - docs/api/private/yolk.__version__-module.html, - docs/api/private/yolk.cli-module.html, - docs/api/private/yolk.cli.Usage-class.html, - docs/api/private/yolk.metadata-module.html, - docs/api/private/yolk.pypi-module.html, - docs/api/private/yolk.pypi.CheeseShop-class.html, - docs/api/private/yolk.yolklib-module.html, - .../private/yolk.yolklib.Distributions-class.html, - docs/api/public/epydoc.css, docs/api/public/exceptions.Exception-class.html, - docs/api/public/frames.html, docs/api/public/help.html, - docs/api/public/index.html, docs/api/public/indices.html, - docs/api/public/toc-everything.html, docs/api/public/toc-yolk-module.html, - docs/api/public/toc-yolk.__version__-module.html, - docs/api/public/toc-yolk.cli-module.html, - docs/api/public/toc-yolk.metadata-module.html, - docs/api/public/toc-yolk.pypi-module.html, - docs/api/public/toc-yolk.yolklib-module.html, docs/api/public/toc.html, - docs/api/public/trees.html, docs/api/public/yolk-module.html, - docs/api/public/yolk.__version__-module.html, - docs/api/public/yolk.cli-module.html, - docs/api/public/yolk.cli.Usage-class.html, - docs/api/public/yolk.metadata-module.html, - docs/api/public/yolk.pypi-module.html, - docs/api/public/yolk.pypi.CheeseShop-class.html, - docs/api/public/yolk.yolklib-module.html, - .../public/yolk.yolklib.Distributions-class.html: Update API docs. - - * docs/api/epydoc.css, docs/api/index.html, docs/api/private/epydoc.css, - docs/api/private/frames.html, docs/api/private/help.html, - docs/api/private/index.html, docs/api/private/indices.html, - docs/api/private/toc-everything.html, docs/api/private/toc-yolk-module.html, - docs/api/private/toc-yolklib-module.html, - .../private/toc-yolklib.__version__-module.html, - docs/api/private/toc-yolklib.metadata-module.html, - docs/api/private/toc-yolklib.pypi-module.html, - docs/api/private/toc-yolklib.yolklib-module.html, docs/api/private/toc.html, - docs/api/private/trees.html, docs/api/private/yolk-module.html, - docs/api/private/yolklib-module.html, - docs/api/private/yolklib.__version__-module.html, - docs/api/private/yolklib.metadata-module.html, - docs/api/private/yolklib.pypi-module.html, - .../api/private/yolklib.pypi.CheeseShop-class.html, - docs/api/private/yolklib.yolklib-module.html, - .../yolklib.yolklib.Distributions-class.html, docs/api/public/epydoc.css, - docs/api/public/frames.html, docs/api/public/help.html, - docs/api/public/index.html, docs/api/public/indices.html, - docs/api/public/toc-everything.html, docs/api/public/toc-yolk-module.html, - docs/api/public/toc-yolklib-module.html, - .../api/public/toc-yolklib.__version__-module.html, - docs/api/public/toc-yolklib.metadata-module.html, - docs/api/public/toc-yolklib.pypi-module.html, - docs/api/public/toc-yolklib.yolklib-module.html, docs/api/public/toc.html, - docs/api/public/trees.html, docs/api/public/yolk-module.html, - docs/api/public/yolklib-module.html, - docs/api/public/yolklib.__version__-module.html, - docs/api/public/yolklib.metadata-module.html, - docs/api/public/yolklib.pypi-module.html, - docs/api/public/yolklib.pypi.CheeseShop-class.html, - docs/api/public/yolklib.yolklib-module.html, - .../yolklib.yolklib.Distributions-class.html: Update api docs - - * yolklib/__init__.py, yolklib/__version__.py, yolklib/metadata.py, - yolklib/pypi.py, yolklib/yolklib.py: Moved to lib - - * yolklib/scripts/yolk.py: Removed - - * lib/__init__.py, lib/__version__.py, lib/cli.py, lib/metadata.py, - lib/pypi.py, lib/yolklib.py, setup.py: Refactored yolklib to lib - - * CHANGELOG, FAQ: Updated. - -2007-02-08 Rob Cakebread - - * yolk.py: Moved to yolklib/scripts. - - * setup.py: Moved yolk.py to scripts directory. - - * CHANGELOG: Updated. - - * yolklib/pypi.py: Added check for Python2.5 elementtree - - * docs/api/index.html, docs/api/private/frames.html, - docs/api/private/help.html, docs/api/private/index.html, - docs/api/private/indices.html, docs/api/private/toc-everything.html, - docs/api/private/toc-yolk-module.html, - docs/api/private/toc-yolklib-module.html, - .../private/toc-yolklib.__version__-module.html, - docs/api/private/toc-yolklib.pypi-module.html, docs/api/private/toc.html, - docs/api/private/trees.html, docs/api/private/yolk-module.html, - docs/api/private/yolklib-module.html, - docs/api/private/yolklib.__version__-module.html, - docs/api/private/yolklib.metadata-module.html, - docs/api/private/yolklib.pypi-module.html, - .../api/private/yolklib.pypi.CheeseShop-class.html, - docs/api/private/yolklib.yolklib-module.html, - .../yolklib.yolklib.Distributions-class.html, docs/api/public/frames.html, - docs/api/public/help.html, docs/api/public/index.html, - docs/api/public/indices.html, docs/api/public/toc-everything.html, - docs/api/public/toc-yolk-module.html, - docs/api/public/toc-yolklib-module.html, - .../api/public/toc-yolklib.__version__-module.html, - docs/api/public/toc-yolklib.pypi-module.html, docs/api/public/toc.html, - docs/api/public/trees.html, docs/api/public/yolk-module.html, - docs/api/public/yolklib-module.html, - docs/api/public/yolklib.__version__-module.html, - docs/api/public/yolklib.metadata-module.html, - docs/api/public/yolklib.pypi-module.html, - docs/api/public/yolklib.pypi.CheeseShop-class.html, - docs/api/public/yolklib.yolklib-module.html, - .../yolklib.yolklib.Distributions-class.html: Updated via epydoc - - * yolklib/scripts/yolk.py, yolklib/yolk.py: Moving file - - * yolklib/yolk.py: Moving file - -2007-02-06 Rob Cakebread - - * yolk.py: Added get_highest_version - -2007-02-05 Rob Cakebread - - * yolklib/pypi.py, yolklib/yolklib.py: Remove #\!/usr/bin/python - - * yolk.py: Only show newer packages on PyPI -U - -2007-02-02 Rob Cakebread - - * yolk.py: Check for Summary metadata key. - -2007-02-01 Rob Cakebread - - * yolk.py: Show which pkgs have updates based on PyPI. - - * yolk.py: Fixed print_help printing None. - -2007-01-31 Rob Cakebread - - * yolk.py, yolklib/pypi.py: Add check for filetype -T - -2007-01-30 Rob Cakebread - - * yolklib/__version__.py: Update version. - -2007-01-29 Rob Cakebread - - * tests/rss_feed.py: Removed flakey test. - - * examples/rss_feed.py: Tidy. - - * setup.py, yolklib/__version__.py: Updated version. - - * yolk.py, yolklib/pypi.py: Added operator parsing for PyPI searches diff --git a/FAQ b/FAQ deleted file mode 100644 index 4dd8f69..0000000 --- a/FAQ +++ /dev/null @@ -1,9 +0,0 @@ - - -Q: Why is wsgiref showing up as a development package? - -A: wsgiref is a 'system' package which is a development package located -in a system directory. Currently there is no way to determine which -packages are system packages or 'normal' development packages. - - diff --git a/INSTALL b/INSTALL deleted file mode 100644 index 2892588..0000000 --- a/INSTALL +++ /dev/null @@ -1,13 +0,0 @@ - - -With pip: - pip yolk - -With distutils: - python setup.py install - -Gentoo Linux: - emerge dev-python/yolk - - -easy_install? See 'pip'. diff --git a/MANIFEST.in b/MANIFEST.in index daeacad..118c19a 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,28 +1,9 @@ -recursive-include tests *.py *.txt -recursive-include docs *.py *.txt *.conf *.css *.css_t Makefile indexsidebar.html -include *.py -include *.rst include MANIFEST.in -include AUTHORS include COPYING include CREDITS -include ChangeLog -include FAQ -include INSTALL -include NEWS -include README -include THANKS -include TODO +include README.rst include setup.py -include docs/tests.txt -include docs/yolk-logo.png -include docs/yolk.1 -include examples/plugins/README -include examples/plugins/yolk_pkg_manager/README -include examples/plugins/yolk_pkg_manager/setup.py -include examples/plugins/yolk_pkg_manager/yolk_acme.py -include examples/plugins/yolk_portage/README -include examples/plugins/yolk_portage/setup.py -include examples/plugins/yolk_portage/yolk_portage.py -include tests/rss_feed.py -include tests/test_cli.py +exclude .travis.yml +exclude Makefile +exclude check_readme.bash +exclude test.bash diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f383b27 --- /dev/null +++ b/Makefile @@ -0,0 +1,5 @@ +check: + pep8 --ignore=E402 yolk setup.py + python setup.py --long-description | rstcheck - + check-manifest + ./check_readme.bash diff --git a/NEWS b/NEWS deleted file mode 100644 index 7e720cc..0000000 --- a/NEWS +++ /dev/null @@ -1,16 +0,0 @@ - -0.4.3 - - -02/06/2012 - -This release includes some missing documentation and license files. - - -0.4.2 - - -02/05/2012 - -A new branch of yolk supporting both Python 2 and 3 is in development and will be pushed out on github soon! - - - diff --git a/README b/README deleted file mode 100644 index aadc8f2..0000000 --- a/README +++ /dev/null @@ -1,193 +0,0 @@ -yolk 0.4.3 -========== - -.. contents:: - -Installation ------------- - -You can install yolk with ``pip install yolk`` or via your distro's package manager, if available. - -As of 0.0.7 yolk is in Gentoo's Portage tree as dev-python/yolk and a plugin for Portage named dev-python/yolk-portage. The portage plugin shows you which Python packages were installed via Portage and which were installed directly with pip (or easy_install). Check out that plugin and make one for your favorite distro. It's a great way to find Python cruft. - - -Summary -------- - -Yolk is a Python tool for obtaining information about installed Python packages and querying packages avilable on PyPI (Python Package Index). - -You can see which packages are active, non-active or in development mode and show you which have newer versions available by querying PyPI. - -Usage Examples:: - - $ yolk -l - List all installed Python packages - - $ yolk -a - List only the activated packages installed (Activated packages are normal packages on sys.path you can import) - - $ yolk -n - List only the non-activated (--multi-version) packages installed - - $ yolk -l -f License,Author nose==1.0 - Show the license and author for version 1.0 of the package `nose` - - $ yolk --entry-map nose - Show entry map for the nose package - - $ yolk --entry-points nose.plugins - Show all setuptools entry points for nose.plugins - - -These options query PyPI:: - - $ yolk -U pkg_name - Shows if an update for pkg_name is available by querying PyPI - - $ yolk -U - Checks PyPI to see if any installed Python packages have updates available. - - $ yolk -F Paste - Download source tarball for latest version of Paste to your current directory - - $ yolk -F Paste -T svn - Do a subversion checkout for Paste to a directory named Paste_svn in your current directory. - - $ yolk -L 2 - Show list of CheeseShop releases in the last two hours - - $ yolk -C 2 - Show detailed list of changes in the CheeseShop in the last two hours - - $ yolk -M Paste==1.0 - Show all the metadata for Paste version 1.0 - - $ yolk -M Paste - Show all the metadata for the latest version of Paste listed on PyPi - - $ yolk -D cheesecake - Show all (source, egg, svn) URL's for the latest version of cheesecake packages - - $ yolk -T source -D cheesecake - Show only source code releases for cheesecake - - $ yolk -H twisted - Launches your web browser at Twisted's home page - - -Tips and Tricks ---------------- - - * Use yolk inside your virtualenv to see which packages are installed. - - * Upgrade all installed Python packages: - - - Warning: You only want to do this inside a virtualenv. If you're using Linux, use your package manager to install Python packages globally whenever possible. Think twice before upgrading all packages system-wide on OSX. - - $ pip install -U `yolk -U | awk '{print $1}'` - - - -Changes -------- -**0.4.3**: Added missing documentation and license files - - - -**0.4.2**: Fix for -C when an integer isn't supplied - - Fix for --entry-map from Jesus Rivero (Neurogeek) neurogeek@gentoo.org. Thanks, Jesus! - - Switch to BSD license from GPL-2 - - -**0.4.1**: Fix for -f fields - - Add check for integer with -L - - -**0.4.0**: Added http proxy support for XML-RPC - - Added case-insensitive search for -f - - Non-existent packages with -S no longer show entire index (bug was with PyPI) - - Fixed exception when package has no metadata - - -**0.3.0**: Added -C and -L options for new PyPI XML-RPC methods `changelog` and `updated_releases` - - Always check package name cache on disk before querying PyPi to see if a package exists and has proper case. - - Added -F option to download source, egg or subversion checkouts. - - Removed -L RSS feed option because the new `updated_releases` XML-RPC method is much nicer - - Fixed '-D -T egg' so it won't return source if no egg is available - - Major refactoring. - - Removed dependency on elementtree - - -**0.2.0**: Added 'svn' type for -T - - A kablillion bug fixes - - -**0.1.0**: You can now use -f with -M - - More accurate URL's with -D using pip - - Ability to check for a single package with -U - - Uses std Python logging module - - Fixed bug so we have correct exit codes - - -**0.0.7**: New options: --entry-map and -entry-points - - Improved results with --download-links - - New plugin system. First plugin available: yolk-portage - for Gentoo Linux. - - -v option is now --version - - -v is now a new option: --verbose - - Many bug fixes. - - -**0.0.6**: Fix Windows problem which showed all pkgs in develop mode - on some systems. - - Fix bad interpreter shebang in rss_feed.py example - - Start using nose unit tests from setup.py - - Use restructuredtext in docstrings - - -**0.0.5**: Show packages installed in 'development' mode. - - Improved output of -l, -n and -a. You can get the previous (<=0.0.4) - output by adding '-f Summary' - - More sanity checking for various options. - - Don't throw exception if there is no package metadata - - -**0.0.4**: Added -U option to query PyPI for new versions of packages you have - installed - -Requirements ------------- - -* setuptools (Distribute preferred) - -* elementtree (For RSS feed option extra_requires [RSS]) (included in Python >=2.5) - diff --git a/README.rst b/README.rst index aadc8f2..a110a16 100644 --- a/README.rst +++ b/README.rst @@ -1,193 +1,106 @@ -yolk 0.4.3 -========== +yolk +==== + +.. image:: https://travis-ci.org/myint/yolk.svg?branch=develop + :target: https://travis-ci.org/myint/yolk + :alt: Build status .. contents:: + Installation ------------ -You can install yolk with ``pip install yolk`` or via your distro's package manager, if available. +:: -As of 0.0.7 yolk is in Gentoo's Portage tree as dev-python/yolk and a plugin for Portage named dev-python/yolk-portage. The portage plugin shows you which Python packages were installed via Portage and which were installed directly with pip (or easy_install). Check out that plugin and make one for your favorite distro. It's a great way to find Python cruft. + $ pip install --upgrade yolk3k Summary ------- -Yolk is a Python tool for obtaining information about installed Python packages and querying packages avilable on PyPI (Python Package Index). +Yolk is a Python tool for obtaining information about installed Python packages +and querying packages available on PyPI (Python Package Index). ``yolk3k`` +is a fork of the original ``yolk``. ``yolk3k`` add Python 3 support (while +maintaining Python 2 support). It also adds additional features. -You can see which packages are active, non-active or in development mode and show you which have newer versions available by querying PyPI. + +You can see which packages are active, non-active or in development mode and +show you which have newer versions available by querying PyPI. Usage Examples:: + $ yolk --upgrade + Upgrade all packages + + $ yolk --upgrade --user + Upgrade user packages + $ yolk -l - List all installed Python packages + List all installed Python packages + + $ yolk -a + List only the activated packages installed (Activated packages are + normal packages on sys.path you can import) - $ yolk -a - List only the activated packages installed (Activated packages are normal packages on sys.path you can import) + $ yolk -n + List only the non-activated (--multi-version) packages installed - $ yolk -n - List only the non-activated (--multi-version) packages installed - $ yolk -l -f License,Author nose==1.0 - Show the license and author for version 1.0 of the package `nose` + Show the license and author for version 1.0 of the package `nose` $ yolk --entry-map nose - Show entry map for the nose package + Show entry map for the nose package $ yolk --entry-points nose.plugins - Show all setuptools entry points for nose.plugins + Show all setuptools entry points for nose.plugins These options query PyPI:: $ yolk -U pkg_name - Shows if an update for pkg_name is available by querying PyPI + Shows if an update for pkg_name is available by querying PyPI $ yolk -U - Checks PyPI to see if any installed Python packages have updates available. + Checks PyPI to see if any installed Python packages have updates + available. $ yolk -F Paste - Download source tarball for latest version of Paste to your current directory + Download source tarball for latest version of Paste to your current + directory $ yolk -F Paste -T svn - Do a subversion checkout for Paste to a directory named Paste_svn in your current directory. + Do a subversion checkout for Paste to a directory named Paste_svn in + your current directory. $ yolk -L 2 - Show list of CheeseShop releases in the last two hours + Show list of CheeseShop releases in the last two hours $ yolk -C 2 - Show detailed list of changes in the CheeseShop in the last two hours - - $ yolk -M Paste==1.0 - Show all the metadata for Paste version 1.0 - - $ yolk -M Paste - Show all the metadata for the latest version of Paste listed on PyPi - - $ yolk -D cheesecake - Show all (source, egg, svn) URL's for the latest version of cheesecake packages - - $ yolk -T source -D cheesecake - Show only source code releases for cheesecake - - $ yolk -H twisted - Launches your web browser at Twisted's home page - - -Tips and Tricks ---------------- - - * Use yolk inside your virtualenv to see which packages are installed. - - * Upgrade all installed Python packages: - - - Warning: You only want to do this inside a virtualenv. If you're using Linux, use your package manager to install Python packages globally whenever possible. Think twice before upgrading all packages system-wide on OSX. - - $ pip install -U `yolk -U | awk '{print $1}'` - - - -Changes -------- -**0.4.3**: Added missing documentation and license files - - - -**0.4.2**: Fix for -C when an integer isn't supplied - - Fix for --entry-map from Jesus Rivero (Neurogeek) neurogeek@gentoo.org. Thanks, Jesus! - - Switch to BSD license from GPL-2 - - -**0.4.1**: Fix for -f fields - - Add check for integer with -L - - -**0.4.0**: Added http proxy support for XML-RPC - - Added case-insensitive search for -f - - Non-existent packages with -S no longer show entire index (bug was with PyPI) - - Fixed exception when package has no metadata + Show detailed list of changes in the CheeseShop in the last two hours + $ yolk -M Paste==1.0 + Show all the metadata for Paste version 1.0 -**0.3.0**: Added -C and -L options for new PyPI XML-RPC methods `changelog` and `updated_releases` + $ yolk -M Paste + Show all the metadata for the latest version of Paste listed on PyPI - Always check package name cache on disk before querying PyPi to see if a package exists and has proper case. + $ yolk -D cheesecake + Show all (source, egg, svn) URL's for the latest version of cheesecake + packages - Added -F option to download source, egg or subversion checkouts. + $ yolk -T source -D cheesecake + Show only source code releases for cheesecake - Removed -L RSS feed option because the new `updated_releases` XML-RPC method is much nicer + $ yolk -H twisted + Launches your web browser at Twisted's home page - Fixed '-D -T egg' so it won't return source if no egg is available - Major refactoring. - - Removed dependency on elementtree - - -**0.2.0**: Added 'svn' type for -T - - A kablillion bug fixes - - -**0.1.0**: You can now use -f with -M - - More accurate URL's with -D using pip - - Ability to check for a single package with -U - - Uses std Python logging module - - Fixed bug so we have correct exit codes - - -**0.0.7**: New options: --entry-map and -entry-points - - Improved results with --download-links - - New plugin system. First plugin available: yolk-portage - for Gentoo Linux. - - -v option is now --version - - -v is now a new option: --verbose - - Many bug fixes. - - -**0.0.6**: Fix Windows problem which showed all pkgs in develop mode - on some systems. - - Fix bad interpreter shebang in rss_feed.py example - - Start using nose unit tests from setup.py - - Use restructuredtext in docstrings - - -**0.0.5**: Show packages installed in 'development' mode. - - Improved output of -l, -n and -a. You can get the previous (<=0.0.4) - output by adding '-f Summary' - - More sanity checking for various options. - - Don't throw exception if there is no package metadata - - -**0.0.4**: Added -U option to query PyPI for new versions of packages you have - installed - -Requirements ------------- +Useful tips +----------- -* setuptools (Distribute preferred) +Check invalid reStructuredText in descriptions on PyPI (using `rstcheck`_):: -* elementtree (For RSS feed option extra_requires [RSS]) (included in Python >=2.5) + $ yolk --query-metadata=pip --fields=description | rstcheck - +.. _rstcheck: https://github.com/myint/rstcheck diff --git a/THANKS b/THANKS deleted file mode 100644 index 41a5229..0000000 --- a/THANKS +++ /dev/null @@ -1,7 +0,0 @@ - - -Thanks to Phillib J. Eby for help in understanding the resource_pkg API - -Thanks to Martin v. Löwis for his work on speeding up The Cheese Shop! - -Thanks to Jim Fulton for being persistent in encouraging people to make The Cheese Shop quicker. diff --git a/TODO b/TODO deleted file mode 100644 index 76d2834..0000000 --- a/TODO +++ /dev/null @@ -1,9 +0,0 @@ - - ------------------------------------------------------------------------------- - -See yolk on github - -https://github.com/cakebread/yolk - ------------------------------------------------------------------------------- diff --git a/check_readme.bash b/check_readme.bash new file mode 100755 index 0000000..bf65fb2 --- /dev/null +++ b/check_readme.bash @@ -0,0 +1,10 @@ +#!/bin/bash -eux + +clean() +{ + rm -rf ./Paste-*.tar.gz ./Paste_svn +} +trap clean EXIT + +grep '\$' README.rst | grep -iv install | grep -iv upgrade | \ + sed 's/\$/python -m /' | bash -eux diff --git a/docs/Makefile b/docs/Makefile deleted file mode 100644 index 872b72b..0000000 --- a/docs/Makefile +++ /dev/null @@ -1,153 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/yolk.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/yolk.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/yolk" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/yolk" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/docs/_build/.buildinfo b/docs/_build/.buildinfo deleted file mode 100644 index 044e328..0000000 --- a/docs/_build/.buildinfo +++ /dev/null @@ -1,4 +0,0 @@ -# Sphinx build info version 1 -# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: b5e5b1c52abc0137c74f0bc40465ff5c -tags: fbb0d17656682115ca4d033fb2f83ba1 diff --git a/docs/_build/.doctrees/environment.pickle b/docs/_build/.doctrees/environment.pickle deleted file mode 100644 index 8b03360..0000000 Binary files a/docs/_build/.doctrees/environment.pickle and /dev/null differ diff --git a/docs/_build/.doctrees/index.doctree b/docs/_build/.doctrees/index.doctree deleted file mode 100644 index ffe66cc..0000000 Binary files a/docs/_build/.doctrees/index.doctree and /dev/null differ diff --git a/docs/conf.py b/docs/conf.py deleted file mode 100644 index 59f0bf5..0000000 --- a/docs/conf.py +++ /dev/null @@ -1,242 +0,0 @@ -# -*- coding: utf-8 -*- -# -# yolk documentation build configuration file, created by -# sphinx-quickstart on Sun Feb 5 23:10:07 2012. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'yolk' -copyright = u'2012, Rob Cakebread' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '0.4.2' -# The full version, including alpha/beta/rc tags. -release = '0.4.2' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'default' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -#html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -#html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -#html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'yolkdoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'yolk.tex', u'yolk Documentation', - u'Rob Cakebread', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'yolk', u'yolk Documentation', - [u'Rob Cakebread'], 1) -] - -# If true, show URL addresses after external links. -#man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------------ - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ('index', 'yolk', u'yolk Documentation', - u'Rob Cakebread', 'yolk', 'One line description of project.', - 'Miscellaneous'), -] - -# Documents to append as an appendix to all manuals. -#texinfo_appendices = [] - -# If false, no module index is generated. -#texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -#texinfo_show_urls = 'footnote' diff --git a/docs/index.rst b/docs/index.rst deleted file mode 100644 index 64fcf8c..0000000 --- a/docs/index.rst +++ /dev/null @@ -1,23 +0,0 @@ -.. yolk documentation master file, created by - sphinx-quickstart on Sun Feb 5 23:10:07 2012. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Welcome to yolk's documentation! -================================ - -Contents: - -.. toctree:: - :maxdepth: 2 - - intro.rst - tutorial.rst - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` - diff --git a/docs/intro.rst b/docs/intro.rst deleted file mode 100644 index c163045..0000000 --- a/docs/intro.rst +++ /dev/null @@ -1,8 +0,0 @@ - - -Introduction -============ - - - -Coming 02/07/2012 in release 0.4.4 diff --git a/docs/tests.txt b/docs/tests.txt deleted file mode 100644 index 2c0f5b3..0000000 --- a/docs/tests.txt +++ /dev/null @@ -1,2 +0,0 @@ - -tests/rss_feed.py tests interfacing with PyPI's RSS feed diff --git a/docs/tutorial.rst b/docs/tutorial.rst deleted file mode 100644 index 181dd95..0000000 --- a/docs/tutorial.rst +++ /dev/null @@ -1,7 +0,0 @@ - - -Yolk Tutorial -============= - - -Coming 02/07/2012 in release 0.4.4 diff --git a/docs/yolk-logo.png b/docs/yolk-logo.png deleted file mode 100644 index 34bf1cd..0000000 Binary files a/docs/yolk-logo.png and /dev/null differ diff --git a/docs/yolk.1 b/docs/yolk.1 deleted file mode 100644 index c62399a..0000000 --- a/docs/yolk.1 +++ /dev/null @@ -1,85 +0,0 @@ -.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.36. -.TH YOLK "1" "January 2012" "yolk 0.4.2" "User Commands" -.SH NAME -yolk \- manual page for yolk 0.4.2 -.SH DESCRIPTION -usage: yolk [options] -.SS "options:" -.TP -\fB\-h\fR, \fB\-\-help\fR -show this help message and exit -.TP -\fB\-v\fR, \fB\-\-version\fR -Show yolk version and exit. -.IP -Query installed Python packages: -.IP -The following options show information about Python packages installed -by setuptools. Activated packages are normal packages on sys.path that -can be imported. Non\-activated packages need 'pkg_resources.require()' -before they can be imported, such as packages installed with -\&'easy_install \fB\-\-multi\-version\fR' -.TP -\fB\-l\fR, \fB\-\-list\fR -List all packages installed by setuptools. -.TP -\fB\-a\fR, \fB\-\-activated\fR -List only activated packages installed by setuptools. -.TP -\fB\-n\fR, \fB\-\-non\-activated\fR -List only non\-activated packages installed by -setuptools. -.TP -\fB\-m\fR, \fB\-\-metadata\fR -Show all metadata for packages installed by setuptools -(use with \fB\-l\fR \fB\-a\fR or \fB\-n\fR) -.TP -\fB\-f\fR FIELDS, \fB\-\-fields\fR=\fIFIELDS\fR -Show specific metadata fields. (use with \fB\-l\fR \fB\-a\fR or \fB\-n\fR) -.TP -\fB\-d\fR, \fB\-\-depends\fR -Show dependencies for a package installed by -setuptools if they are available. (use with \fB\-l\fR \fB\-a\fR or -\fB\-n\fR) -.IP -PyPI (Cheese Shop) options: -.IP -The following options query the Python Package Index: -.TP -\fB\-C\fR, \fB\-\-use\-cached\-pkglist\fR -Use cached package list instead of querying PyPI (Use -\fB\-F\fR to force retrieving list.) -.TP -\fB\-D\fR, \fB\-\-download\-links\fR -Show download URL's for package listed on PyPI. -.TP -\fB\-F\fR, \fB\-\-fetch\-package\-list\fR -Fetch and cache list of packages from PyPI. -.TP -\fB\-H\fR, \fB\-\-browse\-homepage\fR -Launch web browser at home page for package. -.TP -\fB\-L\fR, \fB\-\-latest\fR -Show last 20 updates on PyPI. -.TP -\fB\-M\fR, \fB\-\-query\-metadata\fR -Show metadata for a package listed on PyPI. -.TP -\fB\-S\fR, \fB\-\-search\fR -Search PyPI by spec and operator. -.TP -\fB\-V\fR, \fB\-\-versions\-available\fR -Show available versions for given package listeded on -PyPI. -.SH "SEE ALSO" -The full documentation for -.B yolk -is maintained as a Texinfo manual. If the -.B info -and -.B yolk -programs are properly installed at your site, the command -.IP -.B info yolk -.PP -should give you access to the complete manual. diff --git a/examples/plugins/README b/examples/plugins/README deleted file mode 100644 index 068f836..0000000 --- a/examples/plugins/README +++ /dev/null @@ -1,12 +0,0 @@ - - -The plugin system is very rudimentary as of version 0.7. -About the only thing you can do with it is add a column of text to the -output when using -l, -a or -n. - -An API will be firmed up for the 0.8 series. - -If you make a plugin the name does not matter but it would be nice -if it were prefixed with `yolk-` so its easier to find in the Cheese Shop etc. - - diff --git a/examples/plugins/yolk_pkg_manager/README b/examples/plugins/yolk_pkg_manager/README deleted file mode 100644 index 44f5be3..0000000 --- a/examples/plugins/yolk_pkg_manager/README +++ /dev/null @@ -1,87 +0,0 @@ -yolk-acme example plugin -======================== - -The purpose of this plugin is to show which packages were installed via an -external package manager or directly by distutils/setuptools. - -This plugin example shows how to use the `add_column` method -to add this information to the output of -l, -a, or -n. - -To actually make this plugin work you will need to be able to determine if -a file was installed by your package manager. An actual working plugin that -does this is the `yolk-portage` plugin included in the examples folder. It -determines if a file was installed by Gentoo's `portage` package manager by -using the program `qfile` available from app-portage/portage-utils. - -You'll need to put the actual name of your package manager -here: - - class PackageManagerPlugin: - name = "pkg-manager-name" - -By doing that you have a new --pkg-manager-name option availabe to yolk. - -Next, you'll need to return a string you want added to -the output if your package manager installed the package -or return "" if not. - - def package_manager_owns(self, dist): - if your pkg manager owns file: - return "(acme)" - else: - return "" - - -The text you return can be the name of the package manager -or the full package name your package manager used to install it, -for example. - -Normal output of yolk -l looks like: - -python-fchksum - 1.7.1 - active -python-openid - 1.2.0 - active -python-xlib - 0.12 - active -pyvorbis - 1.4 - active -rope - 0.4 - active - -With your plugin it may look like: - -python-fchksum - 1.7.1 - active (acme) -python-openid - 1.2.0 - active (acme) -python-xlib - 0.12 - active -pyvorbis - 1.4 - active (acme) -rope - 0.4 - active (acme) - - -Here is the code from Gentoo's yolk-portage plugin: - - def package_manager_owns(self, dist): - """ - `dist` is a setuptools Distribution object passed by yolk - when using the options -l, -n or -a - - Returns True if package manager installed the package - Returns False if package manager did not install the package - - """ - - #Find full path to a file in the Python package - #If location is in site-packages dir, check for .egg-info file - - if dist.location.lower() == get_python_lib().lower(): - filename = os.path.join(dist.location, dist.egg_name() + ".egg-info") - else: - filename = dist.location - - #Determine if external package manager installed it - - status, output = getstatusoutput("/usr/bin/qfile -q %s" % filename) - - #status == 0 (file was installed by Gentoo Portage) - #status == 256 (file was not installed by Gentoo Portage) - - if status == 0: - return output.split()[0] - else: - return "" - diff --git a/examples/plugins/yolk_pkg_manager/setup.py b/examples/plugins/yolk_pkg_manager/setup.py deleted file mode 100644 index dae38a4..0000000 --- a/examples/plugins/yolk_pkg_manager/setup.py +++ /dev/null @@ -1,27 +0,0 @@ -#!/usr/bin/env python - -from setuptools import setup - - -setup(name="yolk-acme", - license="GPL-2", - version="0.1", - description="Plugin to show which Python packages were installed via the Acme Package Manger.", - maintainer="Josefina Blo", - author="Josefina Blo", - author_email="josefina@josefinasdomain.com", - url="http://tools.assembla.com/josplugin", - keywords="PyPI setuptools cheeseshop distutils eggs package management", - classifiers=["Development Status :: 2 - Pre-Alpha", - "Intended Audience :: Developers", - "Programming Language :: Python", - "Topic :: Software Development :: Libraries :: Python Modules", - ], - py_modules = ['yolk_acme'], - entry_points = { - 'yolk.plugins': [ - 'acmeplugin = yolk_acme:PackageManagerPlugin' - ] - }, -) - diff --git a/examples/plugins/yolk_pkg_manager/yolk_acme.py b/examples/plugins/yolk_pkg_manager/yolk_acme.py deleted file mode 100644 index ea35d46..0000000 --- a/examples/plugins/yolk_pkg_manager/yolk_acme.py +++ /dev/null @@ -1,98 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" - -yolk_acme - -This is a plugin for acme, the package manager for Acme Linux. -It provides information for packages installed by Acme. - ---acme used with -l, -a or -n will show you if the packages -were installed by Acme. - - -""" - -__docformat__ = 'restructuredtext' - -import os -from distutils.sysconfig import get_python_lib -from commands import getstatusoutput - - -class PackageManagerPlugin: - - """Class for finding pkgs installed by external package manager""" - - #This is the name of the external package manager - #This will become a new yolk option: --acme - name = "acme" - - enabled = False - enable_opt = None - - def __init__(self): - if self.name is None: - self.name = self.__class__.__name__.lower() - if self.enable_opt is None: - self.enable_opt = "enable_plugin_%s" % self.name - - def add_options(self, parser): - """Add plugin's options to yolk""" - parser.add_option('--%s' % self.name, action='store_true', - dest=self.enable_opt, - help="Show which packages are installed via the " + - " %s package manager. Use with -l" % self.name) - - def configure(self, options, conf): - """Configure the plugin and system, based on selected options. - - The base plugin class sets the plugin to enabled if the enable option - for the plugin (self.enableOpt) is true. - """ - self.conf = conf - if hasattr(options, self.enable_opt): - self.enabled = getattr(options, self.enable_opt) - - def add_column(self, dist): - """ - Add column of text to output of -l, -n or -a - Text will be appended to normal output. - e.g. - normal output: - java-config - 2.0.31 - active - - Using plugin with add_column: - java-config - 2.0.31 - active YOUR EXTRA TEXT - """ - return self.package_manager_owns(dist) - - def package_manager_owns(self, dist): - """ - Returns True if package manager 'owns' file - Returns False if package manager does not 'own' file - - There is currently no way to determine if distutils or - setuptools installed a package. A future feature of setuptools - will make a package manifest which can be checked. - - 'filename' must be the full path to file - - """ - #Installed by distutils/setuptools or external package manager? - #If location is in site-packages dir, check for .egg-info file - if dist.location.lower() == get_python_lib().lower(): - filename = os.path.join(dist.location, dist.egg_name() + ".egg-info") - else: - filename = dist.location - - status, output = getstatusoutput("/usr/bin/acmefile -q %s" % filename) - #status == 0 (file was installed by Acme) - #status == 256 (file was not installed by Acme) - if status == 0: - return self.name - else: - return "" - - diff --git a/examples/plugins/yolk_portage/README b/examples/plugins/yolk_portage/README deleted file mode 100644 index cf2f966..0000000 --- a/examples/plugins/yolk_portage/README +++ /dev/null @@ -1,10 +0,0 @@ - -yolk-portage -============ - -This is a plugin for yolk. It provides information for Gentoo -systems using Portage. - ---portage used with -l, -a or -n will show you if the packages -were installed by Portage or directly by easy_install/distutils/setuptools. - diff --git a/examples/plugins/yolk_portage/setup.py b/examples/plugins/yolk_portage/setup.py deleted file mode 100644 index 258369c..0000000 --- a/examples/plugins/yolk_portage/setup.py +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env python - -from setuptools import setup - - - -setup(name="yolk-portage", - license="GPL-2", - version="0.1", - description="Plugin to show which Python packages were installed via Gentoo's Portage system.", - long_description=open("README", "r").read(), - maintainer="Rob Cakebread", - author="Rob Cakebread", - author_email="gentoodev a t gmail . com", - url="http://tools.assembla.com/yolk/", - keywords="Gentoo portage PyPI setuptools cheeseshop distutils eggs package management", - classifiers=["Development Status :: 2 - Pre-Alpha", - "Intended Audience :: Developers", - "Programming Language :: Python", - "Topic :: Software Development :: Libraries :: Python Modules", - ], - py_modules = ['yolk_portage'], - entry_points = { - 'yolk.plugins': [ - 'gentooplugin = yolk_portage:PackageManagerPlugin' - ] - }, - test_suite = 'nose.collector', -) - diff --git a/examples/plugins/yolk_portage/yolk_portage.py b/examples/plugins/yolk_portage/yolk_portage.py deleted file mode 100644 index 36d24d5..0000000 --- a/examples/plugins/yolk_portage/yolk_portage.py +++ /dev/null @@ -1,111 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" - -yolk-portage -============ - -This is a plugin for yolk. It provides information for Gentoo -systems using Portage. - ---portage used with -l, -a or -n will show you if the packages -were installed by Portage or directly by easy_install/setuptools/distutils. - - -""" - -__docformat__ = 'restructuredtext' - -import os -from distutils.sysconfig import get_python_lib -from commands import getstatusoutput - - -class PackageManagerPlugin: - - """Class for using Gentoo Portage as external package manager""" - - #This is the name of the external package manager - #This will become a new yolk option: --portage - name = "portage" - - enabled = False - enable_opt = None - - def __init__(self): - if self.name is None: - self.name = self.__class__.__name__.lower() - if self.enable_opt is None: - self.enable_opt = "enable_plugin_%s" % self.name - - def add_options(self, parser): - """Add plugin's options to yolk""" - parser.add_option('--%s' % self.name, action='store_true', - dest=self.enable_opt, - help="Show which packages are installed via the " + - "%s package manager. Use with -l, -a or -n" % self.name) - - def configure(self, options, conf): - """Configure the plugin and system, based on selected options. - - The base plugin class sets the plugin to enabled if the enable option - for the plugin (self.enableOpt) is true. - """ - self.conf = conf - if hasattr(options, self.enable_opt): - self.enabled = getattr(options, self.enable_opt) - - def add_column(self, dist): - """ - Add column of text to output of -l, -n or -a - Text will be appended to normal output. - e.g. - normal output: - java-config - 2.0.31 - active - - Using plugin with add_column: - java-config - 2.0.31 - active YOUR EXTRA TEXT - """ - return self.package_manager_owns(dist) - - def package_manager_owns(self, dist): - """ - Returns True if package manager 'owns' file - Returns False if package manager does not 'own' file - - There is currently no way to determine if distutils or - setuptools installed a package. A future feature of setuptools - will make a package manifest which can be checked. - - 'filename' must be the full path to file - - """ - #Installed by distutils/setuptools or external package manager? - #If location is in site-packages dir, check for .egg-info file - if dist.location.lower() == get_python_lib().lower(): - filename = os.path.join(dist.location, dist.egg_name() + ".egg-info") - else: - filename = dist.location - - status, output = getstatusoutput("/usr/bin/qfile -q %s" % filename) - #status == 0 (file was installed by Gentoo Portage) - #status == 256 (file was not installed by Gentoo Portage) - if status == 0: - return output.split()[0] - else: - return "" - - def get_highest_version_available(self, category, package): - """ - Find highest available version through package manager - - This can be used with -U to see if a higher version - is available through the package manager but is not - yet installed. - - """ - - #XXX Use gentoolkit? - pass - diff --git a/requires.txt b/requires.txt deleted file mode 100644 index 9c034c4..0000000 --- a/requires.txt +++ /dev/null @@ -1,3 +0,0 @@ -Pygments>=1.2 -Jinja2>=2.3 -docutils>=0.7 diff --git a/setup.py b/setup.py old mode 100644 new mode 100755 index eb45c5b..00657fe --- a/setup.py +++ b/setup.py @@ -1,33 +1,46 @@ -#!/usr/bin/python +#!/usr/bin/env python +"""Installer for yolk.""" -from setuptools import setup +import ast -from yolk.__init__ import __version__ as VERSION +from setuptools import setup +def version(): + """Return version string.""" + with open('yolk/__init__.py') as input_file: + for line in input_file: + if line.startswith('__version__'): + return ast.parse(line).body[0].value.s -setup(name="yolk", - license = "BSD License", - version=VERSION, - description="Command-line tool for querying PyPI and Python packages installed on your system.", - long_description=open("README", "r").read(), - maintainer="Rob Cakebread", - author="Rob Cakebread", - author_email="cakebread @ gmail dot com", - url="https://github.com/cakebread/yolk", - keywords="PyPI setuptools cheeseshop distutils eggs package management", - classifiers=["Development Status :: 4 - Beta", - "Intended Audience :: Developers", - "License :: OSI Approved :: BSD License", - "Programming Language :: Python", - "Topic :: Software Development :: Libraries :: Python Modules", - ], - install_requires=["setuptools"], - tests_require=["nose"], - packages=['yolk', 'yolk.plugins'], - package_dir={'yolk':'yolk'}, - entry_points={'console_scripts': ['yolk = yolk.cli:main',]}, - test_suite = 'nose.collector', -) +with open('README.rst') as readme: + setup( + name='yolk3k', + license='BSD License', + version=version(), + description='Command-line tool for querying PyPI and Python packages ' + 'installed on your system.', + long_description=readme.read(), + maintainer='Steven Myint', + author='Rob Cakebread', + url='https://github.com/myint/yolk', + keywords='PyPI,setuptools,cheeseshop,distutils,eggs,package,' + 'management', + classifiers=[ + 'Development Status :: 5 - Production/Stable', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: BSD License', + 'Programming Language :: Python', + 'Programming Language :: Python :: 2', + 'Programming Language :: Python :: 2.7', + 'Programming Language :: Python :: 3', + 'Programming Language :: Python :: 3.3', + 'Programming Language :: Python :: 3.4', + 'Topic :: Software Development :: Libraries :: Python Modules', + ], + packages=['yolk'], + package_dir={'yolk': 'yolk'}, + entry_points={'console_scripts': ['yolk = yolk.cli:main']} + ) diff --git a/test.bash b/test.bash new file mode 100755 index 0000000..45bb586 --- /dev/null +++ b/test.bash @@ -0,0 +1,30 @@ +#!/bin/bash -ex + +trap "echo -e '\x1b[01;31mFailed\x1b[0m'" ERR + +python -m yolk --query-metadata=pip | grep -i 'license:' +python -m yolk --query-metadata=pip --fields=author,name | grep -i 'author:' +python -m yolk --query-metadata=pip --fields=author,name | grep -iv 'license:' + +# Do not print field name if there is only one. +python -m yolk --query-metadata=pip --fields=author | grep -iv 'author:' + +python -m yolk --depends=pip +python -m yolk --list +python -m yolk --list pip +python -m yolk --list --metadata pip | grep -i 'license:' +python -m yolk --list --metadata --fields=author,license | grep -i 'author:' +python -m yolk --list --metadata --fields=author,license | grep -i 'license:' + +python -m yolk --depends=fake_foo 2>&1 | grep 'fake_foo is not installed' + +python -m yolk --latest-releases=1 +python -m yolk --show-updates +python -m yolk --show-updates --user + +if [ "$TRAVIS_PYTHON_VERSION" != "2.7" ] +then + python -m doctest yolk/utils.py +fi + +echo -e '\x1b[01;32mOkay\x1b[0m' diff --git a/tests/rss_feed.py b/tests/rss_feed.py deleted file mode 100755 index 9f21e98..0000000 --- a/tests/rss_feed.py +++ /dev/null @@ -1,101 +0,0 @@ -#!/usr/bin/env python - -""" -Some basic tests of the command-line and API using the PyPI RSS feed of recent -updates. - -Known issues: Package names with spaces will show as a fail. - -""" - -__docformat__ = 'restructuredtext' - -import urllib -import os -import sys - - -if sys.version_info[0] == 2 and sys.version_info[1] == 5: - #Python >=2.5 has elementtree - from xml.etree.cElementTree import iterparse -else: - try: - #Python <2.5 has elementtree as 3rd party module - from cElementTree import iterparse - except ImportError: - print "You need to install cElementTree" - sys.exit(2) - - - - -from yolk.pypi import CheeseShop - -PYPI_URL = 'http://www.python.org/pypi?:action=rss' - - -def get_pkg_ver(pv, add_quotes=True): - """Return package name and version""" - #XXX Fix package names with spaces bug. - n = len(pv.split()) - if n == 2: - #Normal package_name 1.0 - pkg_name, ver = pv.split() - else: - parts = pv.split() - ver = parts[-1:] - if add_quotes: - pkg_name = "'%s'" % " ".join(parts[:-1]) - else: - pkg_name = "%s" % " ".join(parts[:-1]) - return pkg_name, ver - -def test_api(pypi_xml): - """Basic API tests""" - print "Testing API""" - skipped = 0 - skipped_msgs = [] - failed = 0 - failed_msgs = [] - for event, elem in iterparse(pypi_xml): - if elem.tag == "title": - if not elem.text.startswith('Cheese Shop recent updates'): - pkg_name, ver = get_pkg_ver(elem.text, False) - (pypi_pkg_name, versions) = PyPI.query_versions_pypi(pkg_name) - if " " in pypi_pkg_name: - skipped +=1 - failed_msgs.append("%s %s" \ - % (pkg_name, "- space in project name")) - try: - assert versions[0] == ver - print "Testing %s... passed" % elem.text - except: - failed += 1 - failed_msgs.append("%s %s" % (pkg_name, versions)) - print "Testing %s... failed" % elem.text - - print "%s tests failed." % failed - for msg in failed_msgs: - print "\t%s" % msg - print "%s tests skipped." % skipped - for msg in skipped_msgs: - print "\t%s" % msg - -def test_cli(pypi_xml): - """Test the command-line tool""" - print "Testing CLI" - for event, elem in iterparse(pypi_xml): - if elem.tag == "title": - if not elem.text.startswith('Cheese Shop recent updates'): - print "Testing %s..." % elem.text - pkg_name, ver = get_pkg_ver(elem.text) - if " " in pkg_name: - print "Space in package name, skipping: %s" % pkg_name - else: - os.system("yolk -V '%s'" % pkg_name) - os.system("yolk -D %s==%s" % (pkg_name, ver)) - elem.clear() - -test_cli(urllib.urlopen(PYPI_URL)) -PyPI = CheeseShop() -test_api(urllib.urlopen(PYPI_URL)) diff --git a/tests/test_yolk_cli.py b/tests/test_yolk_cli.py deleted file mode 100644 index 7f217a9..0000000 --- a/tests/test_yolk_cli.py +++ /dev/null @@ -1,109 +0,0 @@ - -class TestStdOut: - def test_object_initialization(self): - pass # TODO: implement your test here - - def test_write(self): - pass # TODO: implement your test here - - def test_writelines(self): - pass # TODO: implement your test here - -class TestYolk: - def test_object_initialization(self): - pass # TODO: implement your test here - - def test_get_plugin(self): - pass # TODO: implement your test here - - def test_set_log_level(self): - pass # TODO: implement your test here - - def test_run(self): - pass # TODO: implement your test here - - def test_show_active(self): - pass # TODO: implement your test here - - def test_show_non_active(self): - pass # TODO: implement your test here - - def test_show_all(self): - pass # TODO: implement your test here - - def test_show_updates(self): - pass # TODO: implement your test here - - def test_show_distributions(self): - pass # TODO: implement your test here - - def test_print_metadata(self): - pass # TODO: implement your test here - - def test_show_deps(self): - pass # TODO: implement your test here - - def test_show_pypi_changelog(self): - pass # TODO: implement your test here - - def test_show_pypi_releases(self): - pass # TODO: implement your test here - - def test_show_download_links(self): - pass # TODO: implement your test here - - def test_print_download_uri(self): - pass # TODO: implement your test here - - def test_fetch(self): - pass # TODO: implement your test here - - def test_fetch_uri(self): - pass # TODO: implement your test here - - def test_fetch_svn(self): - pass # TODO: implement your test here - - def test_browse_website(self): - pass # TODO: implement your test here - - def test_query_metadata_pypi(self): - pass # TODO: implement your test here - - def test_versions_available(self): - pass # TODO: implement your test here - - def test_parse_search_spec(self): - pass # TODO: implement your test here - - def test_pypi_search(self): - pass # TODO: implement your test here - - def test_show_entry_map(self): - pass # TODO: implement your test here - - def test_show_entry_points(self): - pass # TODO: implement your test here - - def test_yolk_version(self): - pass # TODO: implement your test here - - def test_parse_pkg_ver(self): - pass # TODO: implement your test here - -class TestSetupOptParser: - def test_setup_opt_parser(self): - pass # TODO: implement your test here - -class TestPrintPkgVersions: - def test_print_pkg_versions(self): - pass # TODO: implement your test here - -class TestValidatePypiOpts: - def test_validate_pypi_opts(self): - pass # TODO: implement your test here - -class TestMain: - def test_main(self): - pass # TODO: implement your test here - diff --git a/tox.ini b/tox.ini deleted file mode 100644 index da0c6d1..0000000 --- a/tox.ini +++ /dev/null @@ -1,21 +0,0 @@ -[tox] -envlist = py267,py271,py272,py321 -[testenv] -changedir=tests -deps=pytest -commands=py.test --junitxml=junit-{envname}.xml - -[testenv:py321] -basepython=/var/lib/jenkins/.pythonbrew/pythons/Python-3.2.1/bin/python3.2 - - -[testenv:py272] -basepython=/var/lib/jenkins/.pythonbrew/pythons/Python-2.7.2/bin/python2.7 - -[testenv:py271] -basepython=/var/lib/jenkins/.pythonbrew/pythons/Python-2.7.1/bin/python2.7 - -[testenv:py267] -basepython=/var/lib/jenkins/.pythonbrew/pythons/Python-2.6.7/bin/python2.6 - - diff --git a/yolk/__init__.py b/yolk/__init__.py index 9c58573..b6a3a69 100644 --- a/yolk/__init__.py +++ b/yolk/__init__.py @@ -1,7 +1,4 @@ - -""" - -__init__.py +"""yolk. Author: Rob Cakebread @@ -9,7 +6,4 @@ """ -__docformat__ = 'restructuredtext' -__version__ = '0.4.3' - - +__version__ = '0.8.8' diff --git a/yolk/__main__.py b/yolk/__main__.py new file mode 100644 index 0000000..39628bc --- /dev/null +++ b/yolk/__main__.py @@ -0,0 +1,26 @@ +# pylint: disable-msg=W0613,W0612,W0212,W0511,R0912,C0322,W0704 +# W0511 = XXX (my own todo's) + +""" + +__main__.py +=========== + +Desc: Command-line tool for listing Python packages installed by setuptools, + package metadata, package dependencies, and querying The Cheese Shop + (PyPI) for Python package release information such as which installed + packages have updates available. + +Author: Rob Cakebread + +License : BSD (See COPYING) + +""" + +__docformat__ = 'restructuredtext' + +from cli import main +import sys + +if __name__ == "__main__": + sys.exit(main()) diff --git a/yolk/cli.py b/yolk/cli.py old mode 100755 new mode 100644 index fccc2c5..3becfec --- a/yolk/cli.py +++ b/yolk/cli.py @@ -1,10 +1,6 @@ -# pylint: disable-msg=W0613,W0612,W0212,W0511,R0912,C0322,W0704 -# W0511 = XXX (my own todo's) +# PYTHON_ARGCOMPLETE_OK -""" - -cli.py -====== +"""cli. Desc: Command-line tool for listing Python packages installed by setuptools, package metadata, package dependencies, and querying The Cheese Shop @@ -17,99 +13,113 @@ """ -__docformat__ = 'restructuredtext' - +from __future__ import print_function +import argparse import inspect -import re -import pprint import os -import sys -import optparse import pkg_resources +import pprint +import re +import site +import struct +import subprocess +import sys import webbrowser -import logging -from xmlrpclib import Fault as XMLRPCFault -from distutils.sysconfig import get_python_lib -from urllib import urlretrieve -from urlparse import urlparse +if sys.version_info[0] == 2: + from httplib import HTTPException + from urllib import urlretrieve + from urlparse import urlparse + from xmlrpclib import Fault as XMLRPCFault +else: + from http.client import HTTPException + from urllib.request import urlretrieve + from urllib.parse import urlparse + from xmlrpc.client import Fault as XMLRPCFault + +from distutils.sysconfig import get_python_lib from yolk.metadata import get_metadata -from yolk.yolklib import get_highest_version, Distributions +from yolk import yolklib from yolk.pypi import CheeseShop from yolk.setuptools_support import get_download_uri, get_pkglist -from yolk.plugins import load_plugins from yolk.utils import run_command, command_successful from yolk.__init__ import __version__ as VERSION +class YolkException(Exception): -class StdOut: + """Exception for communicating top-level error to user.""" - """ - Filter stdout or stderr from specific modules - So far this is just used for pkg_resources - """ + +class StdOut(object): + + """Filter stdout or stderr from specific modules So far this is just used + for pkg_resources.""" def __init__(self, stream, modulenames): self.stdout = stream - #Modules to squelch + # Modules to squelch self.modulenames = modulenames def __getattr__(self, attribute): - if not self.__dict__.has_key(attribute) or attribute == '__doc__': + if attribute not in self.__dict__ or attribute == '__doc__': return getattr(self.stdout, attribute) return self.__dict__[attribute] - def write(self, inline): + def flush(self): + """Bug workaround for Python 3.2+: Exception AttributeError: 'flush' + in. + +