{ "info": { "author": "Roland van Laar and Reinout van Rees", "author_email": "reinout@vanrees.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: MacOS X", "Framework :: Buildout", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Build Tools" ], "description": "Description\n===========\n\nBuildout is great for repeatable builds of Python packages. It grabs a\nbunch of packages off Pypi (the Python package index) and you're done.\nPure Python packages are no problem. But sometimes there are packages\nthat are a bit harder.\n\nSome packages require quite a number of libraries to be available,\npreferrably as development packages. In Debian/Ubuntu terms, this are\nthe ``*-dev`` packages. These packages contain C code or build upon\nexisting libraries. All in all, this is sometimes functionality that's\nbetter provided through your OS. Who wants to build \"numpy\" by hand?\nWay nicer to just do an ``aptitude install python-numpy`` and to\nautomatically get all the dependencies.\n\nThe ``syseggrecipe`` buildout recipe provides a handy way to re-use\nthose perfectly packaged \"system eggs\". They are already there, so why\nnot use them? We know that buildout is best used to gather everything\ntogether on its own, but there are practical limits. Sometimes system\neggs are handier.\n\nThe ``syseggrecipe`` recipe allows you to specify which eggs you want\nto grab from your OS and it injects just those eggs into your buildout\nso that you can use them without pulling in everything that's on your\nsystem path.\n\n\nExample\n========\n\nAn example of how to use the recipe. Please note that the sysegg recipe\nmust be the first buildout part to make sure it gets the first go at\ngrabbing global eggs.::\n\n [buildout]\n parts = sysegg\n \n [sysegg]\n recipe = syseggrecipe\n eggs =\n netCDF4\n\nTo stop the buildout when not all syseggs are installed include\n``force-sysegg = true``::\n\n [buildout]\n parts = sysegg\n\n [sysegg]\n recipe = syseggrecipe\n force-sysegg = true\n eggs =\n netCDF4\n\nThis way, the specified eggs **must** be installed globally. Otherwise\nthey are optional (which might be a fine choice, too).\n\n\nHow it works\n============\n\nThe core of the system is buildout's concept of \"development eggs\".\nThis is a special directory (``develop-eggs/`` within your buildout)\nwith pointers to Python packages that are currently being developed.\nThese pointers take precedense over any other item. Examples include\nthe project you're working on, but also items you installed with\n`mr.developer `_.\n\nFor every egg specified in the part, setuptools is asked for a\nmatching distribution. If one is found, it is inserted into the\ndevelop eggs directory. There are two ways:\n\n- If it is a proper egg, an ``EGGNAME.egg-link`` file is made in the\n ``develop-eggs/`` directory that points at the correct egg.\n\n- If it isn't a real egg, a matching ``EGGNAME*.egg-info`` file or\n directory is looked for and symlinked into the ``develop-eggs/``\n directory.\n\nBoth ways are enough for setuptools to know the global egg exists. As\nbuildout doesn't strip out the system path (except for the abortive\n1.5/1.6/1/7 releases), setuptools can find them globally. We just had\nto make sure it knows how to find them.\n\n\nOrigin\n======\n\nThis package is a fork of (and improvement on) osc.recipe.sysegg_.\nAs such it is licensed under MIT. \n\n.. _osc.recipe.sysegg: http://pypi.python.org/pypi/osc.recipe.sysegg\n\n\nChangelog\n=========\n\n\n1.5.1 (2015-10-27)\n------------------\n\n- Added a little bit of extra logging. for 1.5's feature.\n [reinout]\n\n\n1.5 (2015-10-27)\n----------------\n\n- If a package isn't found, it sometimes only is a matter of a missing\n ``*.egg-info`` file. Like ubuntu, that misses the egg-info file for mapnik,\n even though mapnik itself is installed.\n\n We now attempt to import such a package (simply using the package name) and\n use the directory it is installed in, if found. Note: the package name might\n not be a valid import name. Support might have to be added for corner cases.\n [reinout]\n\n\n1.4 (2015-06-08)\n----------------\n\n- We now also find pip-installed packages (which end in\n ``.dist-info``). (Support added by Olivier Bornet, thanks!)\n\n\n1.3 (2014-11-18)\n----------------\n\n- Fixed bug: ``%S`` instead of ``%s`` (lowercase) in a log message. You'd get\n a ``ValueError: unsupported format character in recipe.py`` if you got hit\n by the bug (which only happens in a corner case).\n\n\n1.2 (2014-03-19)\n----------------\n\n- Using ``os.path.lexists()`` instead of ``os.path.exists()``, this one\n returns True also if there's a symlink that leads nowhere. ``exists()``\n follows the symlink so returns False for broken symlinks. In our case that\n means that the broken symlink isn't removed so that the subsequent creation\n of a new symlink fails as the filename is already in use. Fixes #3.\n\n\n1.1 (2014-03-19)\n----------------\n\n- Added Python 2.6 compatibility.\n\n- Compensating for packages with underscore characters like ``MySQL_python``.\n (Both fixes by benwah, thanks!)\n\n\n1.0.1 (2013-09-17)\n------------------\n\n- Quick fix bug where buildout rmtree can't remove egg info/link files.\n\n\n1.0 (2013-09-11)\n----------------\n\n- Re-released as 1.0 as it is stable now.\n\n\n0.4 (2013-09-10)\n----------------\n\n- Back to symlinking instead of copying: some egg-info files are\n actually directories. Downside: Windows is out of the door again.\n\n\n0.3 (2013-09-10)\n----------------\n\n- We report files that we've added to buildout now so that buildout\n automatically cleans them up for us. No more pollution in our\n develop-eggs directory!\n\n- Symlinking folders of non-egg distributions that we found in a\n system directory turned out to be a bad idea. Some distributions\n install files instead of directories (GDAL ends up as ``gdal.py``,\n for instance). We now only copy the \"egg-info\" files, which turns\n out to be enough for setuptools to find the distributions.\n\n- Copying (see above) instead of symlinking means it also works on\n windows again.\n\n\n0.2 (2013-09-10)\n----------------\n\n- Fix in README for running sysegg standalone.\n\n- Distributions that aren't eggs but directories directly inside a\n ``sys.path`` directory would have the actual system folder as their\n location. This used to mean that everything in that system folder\n can erroneously be used as a system egg. Not anymore, as those\n directories are now symlinked directly instead of being used through\n a too-generic ``.egg-link`` file.\n\n- This recipe uses symlinks for the above fix, which means it doesn't\n work on windows anymore.\n\n\n0.1 (2013-02-05)\n----------------\n\n- Patch code to allow for force-sysegg=false\n\n- Add original code from osc.recipe.sysegg.\n\n- Add buildout and setup.py.\n\n- Added readme, changes and MIT license.", "description_content_type": null, "docs_url": null, "download_url": null, "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/nens/syseggrecipe", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "syseggrecipe", "package_url": "https://pypi.org/project/syseggrecipe/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/syseggrecipe/", "project_urls": { "Homepage": "https://github.com/nens/syseggrecipe" }, "release_url": "https://pypi.org/project/syseggrecipe/1.5.1/", "requires_dist": null, "requires_python": null, "summary": "Syseggrecipe allows the reuse of system eggs in buildout installs", "version": "1.5.1" }, "last_serial": 3847314, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b656cfb6ff4f46480e390c2e9a01aea5", "sha256": "549b4ea654426e6200737e9fd1ee665c89029e266c2f034ef6ec798e273a0025" }, "downloads": -1, "filename": "syseggrecipe-0.1.zip", "has_sig": false, "md5_digest": "b656cfb6ff4f46480e390c2e9a01aea5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11501, "upload_time": "2013-02-05T22:06:14", "url": "https://files.pythonhosted.org/packages/67/7c/af354e49dbbde6f40492453b9b8a7cf637ca518d7fbf366cbc2866db88e3/syseggrecipe-0.1.zip" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "617931169c1a99d0255ab2f6bb230b99", "sha256": "516b978cff62c1ace16920e3b87a479027a0e66e5e707d56a4c1893a473343db" }, "downloads": -1, "filename": "syseggrecipe-0.2.tar.gz", "has_sig": false, "md5_digest": "617931169c1a99d0255ab2f6bb230b99", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7977, "upload_time": "2013-09-10T10:12:02", "url": "https://files.pythonhosted.org/packages/13/52/3507d9e41901f8f3bb1db90f6cc1e55d62e402bcd7fa4911a06ae0bfa919/syseggrecipe-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "5445bc9075065e65f814344cb25a1f95", "sha256": "e4c8554a219a6e499275f5c66405ef24b5b360cd5ec159f293e0753e6187ed95" }, "downloads": -1, "filename": "syseggrecipe-0.3.zip", "has_sig": false, "md5_digest": "5445bc9075065e65f814344cb25a1f95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13824, "upload_time": "2013-09-10T13:33:08", "url": "https://files.pythonhosted.org/packages/40/5d/4b47bb9c4b9aa6382e646f3b1fed0d663ebee7a52d0647785699224f008f/syseggrecipe-0.3.zip" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "cc81361ff9d7425e084ad37f2349f011", "sha256": "d7f97628da954ad18377a09117042a9e55f10b2791e8d5e86b2503d2c7020502" }, "downloads": -1, "filename": "syseggrecipe-0.4.zip", "has_sig": false, "md5_digest": "cc81361ff9d7425e084ad37f2349f011", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14073, "upload_time": "2013-09-10T13:54:42", "url": "https://files.pythonhosted.org/packages/b8/a3/53fe3c1222179d705a7b721dd4ae0c4b91bbf7525c0b4e53959ac0418cf3/syseggrecipe-0.4.zip" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "c7b3de9e6cd70ce05e2ef9d13075b9e9", "sha256": "779f032d59c622f33fa8276890ef1db10c423ff68bcba8494a9ec8cb8c348e1b" }, "downloads": -1, "filename": "syseggrecipe-1.0.tar.gz", "has_sig": false, "md5_digest": "c7b3de9e6cd70ce05e2ef9d13075b9e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9735, "upload_time": "2013-09-11T01:11:13", "url": "https://files.pythonhosted.org/packages/c6/02/0ce7df88e68f7a2f3e0a901d53b7950e086ac081c80527ba3acd2d62bc13/syseggrecipe-1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "6fea7675f840207c8acadca77d83a13f", "sha256": "dff2f5956a0f402b2728d1a67dcac6b33feb29bda941ec9f0ec841d36aafcf8e" }, "downloads": -1, "filename": "syseggrecipe-1.0.zip", "has_sig": false, "md5_digest": "6fea7675f840207c8acadca77d83a13f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17079, "upload_time": "2013-09-11T01:09:06", "url": "https://files.pythonhosted.org/packages/82/fa/b42db3deaa0b001bff65268c85991876d0a761348fba735b1a0751d73c60/syseggrecipe-1.0.zip" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "8146bfb8c154b60406674602bfd86651", "sha256": "a3d96acaa7619b09393b9bca20a87ab2eeb73b772fb97cab9fe38504c2cd1043" }, "downloads": -1, "filename": "syseggrecipe-1.0.1.zip", "has_sig": false, "md5_digest": "8146bfb8c154b60406674602bfd86651", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17309, "upload_time": "2013-09-17T08:42:39", "url": "https://files.pythonhosted.org/packages/bf/2e/6e3b12fa4085af3c46cf143f43325d87ce324d7fc1f5fc14820a6c149cdd/syseggrecipe-1.0.1.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "42a9f1abd4329515beaac42fdf0fa0ae", "sha256": "971b90fe714961605799a5a3598f9af5706d4aa7425a5ec821bcadb4687f37c3" }, "downloads": -1, "filename": "syseggrecipe-1.1.zip", "has_sig": false, "md5_digest": "42a9f1abd4329515beaac42fdf0fa0ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17554, "upload_time": "2014-03-19T14:50:27", "url": "https://files.pythonhosted.org/packages/97/12/92dcc46e96c47a262f8fff507d0f09d9d53f4b063adf1dbaa1aef251159d/syseggrecipe-1.1.zip" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "096b05295d19c589e8c619e9a0115c00", "sha256": "4445090d13b99f9b6e20d688469612c6db2e7520eca91309b3e4fbd08d5de2af" }, "downloads": -1, "filename": "syseggrecipe-1.2.zip", "has_sig": false, "md5_digest": "096b05295d19c589e8c619e9a0115c00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18122, "upload_time": "2014-03-19T14:57:17", "url": "https://files.pythonhosted.org/packages/4b/b0/c7fe89383a02502d6ea13405582662ab8bc450af15851c10ec4457f1a1c7/syseggrecipe-1.2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "95aef5621db24b34680b10af9f551c5e", "sha256": "5955ce6d5fde5155495f43732a1b048bbb5856b5f5b8d792dab5e8ec8b1c662d" }, "downloads": -1, "filename": "syseggrecipe-1.3.zip", "has_sig": false, "md5_digest": "95aef5621db24b34680b10af9f551c5e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18489, "upload_time": "2014-11-18T13:42:11", "url": "https://files.pythonhosted.org/packages/0e/68/ad782ef03ef23a784ad0cb957b16940062088c2c3cb6d52039e271b6f1ed/syseggrecipe-1.3.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "4b2f96e88c25e99e2490c7f5dafc1b42", "sha256": "df370bca33879ef723ba5f31add64fd5bc3ff5e08b886d642714d503fcc28a9a" }, "downloads": -1, "filename": "syseggrecipe-1.4.tar.gz", "has_sig": false, "md5_digest": "4b2f96e88c25e99e2490c7f5dafc1b42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10369, "upload_time": "2015-06-08T16:44:25", "url": "https://files.pythonhosted.org/packages/f1/00/24118d81d89bdcb60068dab33db9237b08b6a1ed844516044d4704252c7a/syseggrecipe-1.4.tar.gz" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "69f87eb0bd6e7a130a1023cc8f3138e9", "sha256": "9c971ec775c043bccd4d66af5d3f3a0cc72421aabccd7dad0712a552e7e5329f" }, "downloads": -1, "filename": "syseggrecipe-1.5.tar.gz", "has_sig": false, "md5_digest": "69f87eb0bd6e7a130a1023cc8f3138e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9894, "upload_time": "2015-10-27T16:14:51", "url": "https://files.pythonhosted.org/packages/55/67/8310b0dd0bc9f979fa817b3335cfcda7bb9d3b2ffa7220a2949711cec0a1/syseggrecipe-1.5.tar.gz" } ], "1.5.1": [ { "comment_text": "", "digests": { "md5": "7d4826fcddddec619a20be4fc03684c5", "sha256": "f7cd7a2feb74291733026e66678f5d0833230e101088a5b6366b4ea3baadb715" }, "downloads": -1, "filename": "syseggrecipe-1.5.1.tar.gz", "has_sig": false, "md5_digest": "7d4826fcddddec619a20be4fc03684c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9965, "upload_time": "2015-10-27T19:40:07", "url": "https://files.pythonhosted.org/packages/90/0a/a20c126a1b718f8f34d8a3a48e737b20d10e66a99c87abb8071183e93ab5/syseggrecipe-1.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7d4826fcddddec619a20be4fc03684c5", "sha256": "f7cd7a2feb74291733026e66678f5d0833230e101088a5b6366b4ea3baadb715" }, "downloads": -1, "filename": "syseggrecipe-1.5.1.tar.gz", "has_sig": false, "md5_digest": "7d4826fcddddec619a20be4fc03684c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9965, "upload_time": "2015-10-27T19:40:07", "url": "https://files.pythonhosted.org/packages/90/0a/a20c126a1b718f8f34d8a3a48e737b20d10e66a99c87abb8071183e93ab5/syseggrecipe-1.5.1.tar.gz" } ] }