{ "info": { "author": "Sean Kelly", "author_email": "kelly@seankelly.biz", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Environment :: Console", "Framework :: Buildout", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Build Tools", "Topic :: Software Development :: Libraries :: Java Libraries" ], "description": "****************\nsk.recipe.jython\n****************\n\nThis is a Buildout_ recipe that automates the download, configuration, and\ndeployment of Jython_, the Python_ environment implemented in Java_.\n\n\nIntroduction\n============\n\nJava is a statically-typed, object-oriented, compiled programming language with\na vast standard application programmer interface (API) as well as enterprise\nAPI. Python is a dynamically-typed, object-oriented scripting language with a\nvast API but fewer enterprise features. Jython brings the agility of Python\nto the elephantine vastness of Java by implementing the Python runtime in Java\nand providing access to Java's APIs.\n\nBuildout is a civilized, coarse-grained environment for managing repeatable\nsoftware deployments. Buildout is driven by recipes, each of which accomplish\na specific goal, often in a cross-platform method. This recipe,\n``sk.recipe.jython``, enables the user to automatically download, configure,\nand deploy Jython in a Buildout environment.\n\n\nDeveloper's Information\n=======================\n\nProject home page\n http://code.google.com/p/buildout-recipes/\nSource repository\n http://buildout-recipes.googlecode.com/svn/recipes/sk.recipe.jython\nIssue tracker\n http://code.google.com/p/buildout-recipes/issues/list\n\n\n.. References:\n.. _Buildout: http://www.buildout.org/\n.. _Jython: http://jython.org/\n.. _Python: http://python.org/\n.. _Java: http://java.sun.com/\n\n\n\n\nInstallation\n============\n\nSince this is a Buildout recipe, there's nothing really to install. Just\nmention the recipe name in a buildout and enjoy! For example, your\n``buildout.cfg`` might be something like this::\n\n [buildout]\n develop = src/myegg\n parts =\n jython\n myegg\n [jython]\n recipe = sk.recipe.jython\n [myegg]\n recipe = zc.recipe.egg\n python = jython\n interpreter = mypy\n eggs = myegg\n\nThe above buildout accomplishes the following:\n\n* Specifies a Python egg in-development in ``src/myegg``.\n* Downloads and installs Jython.\n* Creates a new interpreter ``bin/mypy`` pre-baked with ``myegg`` and powered\n by Jython.\n\nEasy!\n\n\nSupported Options\n=================\n\nThe ``sk.recipe.jython`` recipe supports the following options:\n\n``url``\n (Optional.) URL to a release of Jython. If not given, defaults to the URL to the\n 2.5.1 release_ of Jython. This URL must point to a Jython installer jar\n file.\n``md5sum``\n (Optional.) MD5 hash of the Jython installer mentioned by ``url``. If\n specified, the downloaded Jython release will be checked against this hash\n and installation will *not* proceed if there's a mismatch. If both\n ``md5sum`` and ``url`` are missing, then the recipe will check the 2.5.1\n release for its proper MD5 hash, 2ee978eff4306b23753b3fe9d7af5b37.\n``java``\n (Optional.) Full path to a Java virtual machine executable. If not\n specified, the recipe will find one by shell path. This ``java``\n executable will be invoked to *install* Jython only, not for Jython's\n runtime. Example: ``/usr/java/j2sdk/bin/java``.\n``jre``\n (Optional.) Home directory of a Java runtime or development kit used to\n *run* Jython. Specify this if you wish to have Jython use a separate\n runtime from that of the installer. Unlike the ``java`` option above, the\n ``jre`` option expects the home directory of a Java runtime; i.e., there\n will be ``bin``, ``lib``, etc., directories in the directory named by this\n option. Exampe: ``/System/Library/Frameworks/JavaVM.framework/Home``.\n``include-parts``\n (Optional.) List of parts to install. See \"Installable Parts\" below. If\n not specified, you'll get a minimal Jython installation, which is more\n than likely what you'll want if you're developing Jython-based\n applications.\n\nAll options are optional. Really. By default the recipe makes a complete\nJython installation in the Buildout's ``parts/jython`` directory (you can\noverride the parts directory in the ``[buildout]`` itself). That means your\nrecipe can be as simple as::\n\n [jython]\n recipe = sk.recipe.jython\n\nThis recipe exports two values that are handy in other recipes:\n\n``location``\n This exported option identifies where the recipe installed Jython. You\n can use its value as the JYTHON_HOME environment variable.\n``executable``\n This exported option names the path of the ``jython`` executable. You can\n use this as a Python interpreter, for example with the ``zc.recipe.egg``\n collection of recipes.\n\n\nInstallable Parts\n-----------------\n\nJython consists of a number of parts that comprises an installation. The\n``include-parts`` option specifies which extra parts to include in an\ninstallation (by default, *no* additional parts are installed). The\nadditional parts are:\n\n* ``mod``: Library modules.\n* ``demo``: Demonstrations and example code.\n* ``doc``: Documentation.\n* ``src``: Source code to Jython.\n\n\nExample Usage\n=============\n\nFor this demonstration, we'll use a fanciful Jython installer jar (actually an\nempty file) and Java virtual machine (written in Python) to mimic what the\nactual an Jython installer does. In actuality, it merely echoes the options\ngiven to it. These files are in the ``testdata`` directory::\n\n >>> import os.path\n >>> testdata = join(os.path.dirname(__file__), 'testdata')\n\nThe file ``java`` is actually an executable Python script, while\n``jython-fake.jar`` is an empty file.\n\nLet's create a buildout to build and install Jython::\n\n >>> write(sample_buildout, 'buildout.cfg', '''\n ... [buildout]\n ... parts = jython\n ...\n ... [jython]\n ... recipe = sk.recipe.jython\n ... java = %(testdata)s/java\n ... url = file://%(testdata)s/jython-fake.jar\n ... ''' % dict(testdata=testdata))\n\nThis will \"download\" the fake Jython installer and install it with all parts.\nRunning the buildout::\n\n >>> print system(buildout)\n Installing jython.\n \"JVM\": Jython installer in file \".../jython-fake.jar\"\n \"JVM\": Installer options: ['--silent', '--directory', '/sample-buildout/parts/jython']\n \nAnd the parts directory should now have Jython installed::\n\n >>> ls(sample_buildout, 'parts')\n d jython\n\n\nUsing Additional Options\n------------------------\n\nLet's exercise the ``jre`` and ``include-parts`` options, specifying a\nmythical JRE at ``/usr/mythical/java/j3sdk`` and asking for the documentation\n(``doc``) and source code (``src``) to be installed::\n\n >>> write(sample_buildout, 'buildout.cfg', '''\n ... [buildout]\n ... parts = jython\n ...\n ... [jython]\n ... recipe = sk.recipe.jython\n ... java = %(testdata)s/java\n ... jre = /usr/mythical/java/j3sdk\n ... include-parts =\n ... doc\n ... src\n ... url = file://%(testdata)s/jython-fake.jar\n ... ''' % dict(testdata=testdata))\n\nRe-running the buildout now gives us::\n\n >>> print system(buildout)\n Uninstalling jython.\n Installing jython.\n \"JVM\": Jython installer in file \".../jython-fake.jar\"\n \"JVM\": Installer options: ['--silent', '--directory', '/sample-buildout/parts/jython', '--jre', '/usr/mythical/java/j3sdk', '--include', 'doc', 'src']\n\nPerfect.\n\n\nMD5 Hashes\n----------\n\nLet's re-write the buildout but inject an error: an incorrect MD5 hash::\n\n >>> write(sample_buildout, 'buildout.cfg',\n ... '''\n ... [buildout]\n ... parts = jython\n ...\n ... [jython]\n ... recipe = sk.recipe.jython\n ... java = %(testdata)s/java\n ... md5sum = c120503f1e327388bd0b6bbdee530733\n ... url = file://%(testdata)s/jython-fake.jar\n ... ''' % dict(testdata=testdata))\n\nThe hash shown above is *not* the correct MD5 for an empty file (which is what\n``jython-fake.jar`` is). Running the buildout should bail::\n\n >>> print system(buildout)\n Uninstalling jython.\n Installing jython.\n While:\n Installing jython.\n Error: MD5 checksum mismatch...\n\nSpecifying the correct MD5::\n\n >>> write(sample_buildout, 'buildout.cfg',\n ... '''\n ... [buildout]\n ... parts = jython\n ...\n ... [jython]\n ... recipe = sk.recipe.jython\n ... java = %(testdata)s/java\n ... md5sum = d41d8cd98f00b204e9800998ecf8427e\n ... url = file://%(testdata)s/jython-fake.jar\n ... ''' % dict(testdata=testdata))\n\nMakes the problem go away::\n\n >>> print system(buildout)\n Installing jython.\n \"JVM\": Jython installer in file \".../jython-fake.jar\"\n \"JVM\": Installer options: ['--silent', '--directory', '/sample-buildout/parts/jython']\n\nThat's pretty much it.\n\n\n.. References:\n.. _release: http://sourceforge.net/projects/jython/files/jython/jython_installer-2.5.1.jar\n\n\nChangelog\n=========\n\n0.0.0\n-----\n\nThis release is destined to become the eventual GA_ release.\n\n\n.. References:\n.. _GA: http://en.wikipedia.org/wiki/Development_stage#General_availability_.28GA.29", "description_content_type": null, "docs_url": null, "download_url": "http://code.google.com/p/buildout-recipes/downloads/list", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://code.google.com/p/buildout-recipes/", "keywords": "buildout jython installation automation", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "sk.recipe.jython", "package_url": "https://pypi.org/project/sk.recipe.jython/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/sk.recipe.jython/", "project_urls": { "Download": "http://code.google.com/p/buildout-recipes/downloads/list", "Homepage": "http://code.google.com/p/buildout-recipes/" }, "release_url": "https://pypi.org/project/sk.recipe.jython/0.0.0/", "requires_dist": null, "requires_python": null, "summary": "A recipe for Buildout (zc.buildout) to install Jython", "version": "0.0.0" }, "last_serial": 154069, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "433c01780b5ecbb987a75440e9f6660f", "sha256": "1c8f3c1ef2e1c7d47c453c3bcf661ac23cd458ae506c78025acf71ff72398c87" }, "downloads": -1, "filename": "sk.recipe.jython-0.0.0-py2.4.egg", "has_sig": false, "md5_digest": "433c01780b5ecbb987a75440e9f6660f", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 14925, "upload_time": "2010-02-21T03:16:13", "url": "https://files.pythonhosted.org/packages/b9/50/616e0dba715a20496427fdc83e4d0b5d0df537a19aebcd5d16bdef4874ea/sk.recipe.jython-0.0.0-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "95c9c172b343d9895808dda871149b83", "sha256": "3c6d35ce615aa93481f28f60470ae0078592aeb55904061477b4a64cb67d0bd1" }, "downloads": -1, "filename": "sk.recipe.jython-0.0.0-py2.5.egg", "has_sig": false, "md5_digest": "95c9c172b343d9895808dda871149b83", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 14905, "upload_time": "2010-02-21T03:15:29", "url": "https://files.pythonhosted.org/packages/e0/f9/a5438616c3050f06ca94bedd7b4f1d1fff6031d8434d53607c425356ecea/sk.recipe.jython-0.0.0-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "355cc87b2ad8c20caf028937dc7476a0", "sha256": "52c223b122bab1f4235a4183c40a02a2e4c9e46a13287116eead24c3e76c6d2c" }, "downloads": -1, "filename": "sk.recipe.jython-0.0.0-py2.6.egg", "has_sig": false, "md5_digest": "355cc87b2ad8c20caf028937dc7476a0", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 14906, "upload_time": "2010-02-21T03:12:05", "url": "https://files.pythonhosted.org/packages/81/70/a0e6a5a49459adb1afed52f289ec031ec587c1369d04054ef8faa230dcc4/sk.recipe.jython-0.0.0-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "af0294051de3c4c15935d557c268337b", "sha256": "ae88d1ff18812cb9049f7e2b02a891c53154e87ee523b7b1244d72865f73082c" }, "downloads": -1, "filename": "sk.recipe.jython-0.0.0.tar.gz", "has_sig": false, "md5_digest": "af0294051de3c4c15935d557c268337b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8669, "upload_time": "2010-02-21T03:12:06", "url": "https://files.pythonhosted.org/packages/9c/47/e4206f3a4e1ffcf959356cd9e6dc173a13807be05ef3cfedda597d6c3a23/sk.recipe.jython-0.0.0.tar.gz" } ], "0.0.0dev-r14": [], "0.0.0dev-r6": [] }, "urls": [ { "comment_text": "", "digests": { "md5": "433c01780b5ecbb987a75440e9f6660f", "sha256": "1c8f3c1ef2e1c7d47c453c3bcf661ac23cd458ae506c78025acf71ff72398c87" }, "downloads": -1, "filename": "sk.recipe.jython-0.0.0-py2.4.egg", "has_sig": false, "md5_digest": "433c01780b5ecbb987a75440e9f6660f", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 14925, "upload_time": "2010-02-21T03:16:13", "url": "https://files.pythonhosted.org/packages/b9/50/616e0dba715a20496427fdc83e4d0b5d0df537a19aebcd5d16bdef4874ea/sk.recipe.jython-0.0.0-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "95c9c172b343d9895808dda871149b83", "sha256": "3c6d35ce615aa93481f28f60470ae0078592aeb55904061477b4a64cb67d0bd1" }, "downloads": -1, "filename": "sk.recipe.jython-0.0.0-py2.5.egg", "has_sig": false, "md5_digest": "95c9c172b343d9895808dda871149b83", "packagetype": "bdist_egg", "python_version": "2.5", "requires_python": null, "size": 14905, "upload_time": "2010-02-21T03:15:29", "url": "https://files.pythonhosted.org/packages/e0/f9/a5438616c3050f06ca94bedd7b4f1d1fff6031d8434d53607c425356ecea/sk.recipe.jython-0.0.0-py2.5.egg" }, { "comment_text": "", "digests": { "md5": "355cc87b2ad8c20caf028937dc7476a0", "sha256": "52c223b122bab1f4235a4183c40a02a2e4c9e46a13287116eead24c3e76c6d2c" }, "downloads": -1, "filename": "sk.recipe.jython-0.0.0-py2.6.egg", "has_sig": false, "md5_digest": "355cc87b2ad8c20caf028937dc7476a0", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 14906, "upload_time": "2010-02-21T03:12:05", "url": "https://files.pythonhosted.org/packages/81/70/a0e6a5a49459adb1afed52f289ec031ec587c1369d04054ef8faa230dcc4/sk.recipe.jython-0.0.0-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "af0294051de3c4c15935d557c268337b", "sha256": "ae88d1ff18812cb9049f7e2b02a891c53154e87ee523b7b1244d72865f73082c" }, "downloads": -1, "filename": "sk.recipe.jython-0.0.0.tar.gz", "has_sig": false, "md5_digest": "af0294051de3c4c15935d557c268337b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8669, "upload_time": "2010-02-21T03:12:06", "url": "https://files.pythonhosted.org/packages/9c/47/e4206f3a4e1ffcf959356cd9e6dc173a13807be05ef3cfedda597d6c3a23/sk.recipe.jython-0.0.0.tar.gz" } ] }