{ "info": { "author": "Jacques de Hooge", "author_email": "jacques.de.hooge@qquick.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: Other/Proprietary License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. figure:: http://www.qquick.org/eden.jpg\n\t\t:alt: Drawing of Garden of Eden\n\nName\n====\n\nEden - Event Driven Evaluation Nodes.\n\n\nLicence\n=======\n\nQQuick licence, see http://www.qquick.org.\nN.B. The Eden version on that site is obsolete, the newest version is on https://pypi.python.org\n\n\nPurpose\n=======\n\nEden is a library that allows rapid declarative construction of applications.\n\n\nDemo\n====\n\nhttp://www.youtube.com/watch?v=zN8OsrDfk98&fmt=22\n\n\nRecent changes\n==============\n\nKivy version:\n\tModules, tested with Kivy 1.9\n\nWinForms version:\n\tNone\n\t\n\t\nHow does it work\n================\n\nAll program logic and processing is specified by functional dependencies between Nodes.\nDependencies can be cyclic and exception handling by rollback is provided.\nNodes can be used in any situation, for console apps, batch apps, or apps using any GUI library that has a Python API.\n\nTo make life easier, a set of Views is available.\nEach View is a thin layer on top of a GUI Widget class from the underlying GUI library.\nViews can be connected to Nodes using Links.\nTypically a View will be connected to multiple Nodes, but also a Node can be connected to multiple Views.\nIn this way a complete GUI app can be \"wired\" together.\nLayout is dynamic.\nBoth data and layout are persistent.\n\n\nPractical experiences using Eden\n================================\n\nUsing Eden in everyday practice has proven a pleasure.\nEden has been in use for multiple years now by multiple people working on diverse engineering projects.\nThe resulting applications involve dozens of modules, most of them with dozens of nodes, some nodes carrying many megabytes of data.\nA characteristic of both projects is that requirements rapidly evolved during the project.\nWith Eden it proved remarkably easy to follow the changing requirements.\nIn spite of the fact that requirements changed frequently and deeply, application structure has remained lean and clean.\nUnfortunately these projects, that otherwise might have very well served as coding and style examples, were all proprietary.\nOne of the people working on a project remarked that with Eden, coding clean, flexible and maintainable program logic was as easy and routinely as drawing up a shopping list.\n\n\nLearning Eden\n=============\n\nAlthough the tutorial examples are simple for anyone to comprehend, they by far don't cover all the features.\nMoreover they are too small to reveal issues of overall program organisation, like the use of the Module mechanism.\nUsing Eden in an effective way for a non-trivial app has a steep (but short) learing curve.\nIt has proven feasible to get a \"fresh\" developer upto speed in a few days of side by side tutoring. There's a real need for a freely available elaborated example, though.\nCurrently I concentrate upon the CPython + Kivy version, since mobile- and tablet platforms are where most of the action is. One public domain application that uses the IronPython + WinForms version is Wave (see www.qquick.org).\nIt is, however, not yet complete and to specialistic to serve as an example.\nA killer app would help. As soon as the CPython + Kivy version has some body, I hope to come up with a free multiplatform app that proves the point as well as is suitable as an elaborated example.\n\n\nStatus\n======\n\nEden for IronPython + WinForms has been used for production programming for multiple years now by several people.\nEden for CPython + Kivy is in the early stages of development.\n\n\nInstallation\n============\n\nTo prevent name conflicts with future modules, Eden is now imported as follows:\n\n\tfrom org.qquick.eden import *\n\nAlternatively, you can import Eden e.g. as follows:\n\n\timport org.qquick.eden as eden\n\nTo make this work, install Eden as follows:\n\nIn the 'site-packages' or the 'dist-packages' directory of the Python version you wish to use, make a subdirectory 'org' containing an empty file '__init__.py'.\nOnly do so if a directory by that name and with such a file does not already exist.\n\nIn that subdirectory 'org' make a subdirectory 'qquick' containing an empty file '__init__.py'.\nOnly do so if a directory by that name and with such a file does not already exist.\n\nIn that subdirectory 'org.qquick' put the 'eden' (lowercase!) subdirectory of Eden.\nIf you want to install Eden under multiple Python versions, e.g. IronPython 2.7 and CPython 2.7, you can use a symlink named 'eden' (so NOT a shortcut, google for 'mklink').\n\nN.B. 1\nJava style URL based unique package names like 'org.qquick.eden' are a bit of a hack in Python 2.7, but are de-facto fully supported in Python >= 3.3.\nThis is the result of improvements in the module search mechanism, which will now search multiple 'org' subdirectories for 'qquick' and not give up after the first one encountered.\nThe decision to use URL based package names is based on the ever growing set of standard modules that are becoming part of the Python distribution.\nThis has already resulted in name clashes with packages that were written before a standard module by the same name was introduced.\n \nN.B. 2\nThe WinForms (stable) version works with IronPython 2.7.\nThe Kyvi version (under development) works with CPython 2.7 and Kivy 1.9 you can e.g. use the Python 2.7 that comes with Portable Kivy for Windows.\nThe Kyvi version should also run under Linux, although that is only tested infrequently.\n\n\nGetting started\n===============\n\n\nUsing IronPython + WinForms\n-----------------------------\n\nTutorial programs are in the tutorialWinForms directory\n\n\nUsing CPython + Kivy\n----------------------\n\nTutorial programs are in the tutorialKivy directory\n\n\t.. figure:: http://www.qquick.org/edenprog.jpg\n\t\t:alt: Image of Eden for Kivy calculator tutorial\n\t\t\n\t\t**Eden for Kivy calulator tutorial**\n\n\nCompatibility\n=============\n\nThe IronPython + WinForms version has been tested and used extensively on Windows from XP to 8.1.\nIt has never been tested on Linux + Mono.\n\nThe Views of the CPython + Kivy version will reflect the particularities of Kivy and of the diversity of platforms it should run at.\nSo, although there will be many common elements, there will be no one to one correspondence between Views based on Kivy and Views based on WinForms.\n\nThe essence of the matter, the API of the underlying Event Driven Evaluation Nodes pattern, however, is the same. Only the GUI part differs.\n\n\nFuture\n======\n\nPlans are to build out and fully document Eden and stay committed to it for a long time to come.\nHowever not any, even implied guarantee is made with respect to its continuity.\nTime will have to prove whether it acquires mindshare.\n\nThere exists a proprietary commercial port of Eden to Qt using PyQt.\nIt runs on Linux and Windows and was made and is owned by a third party.\nIt is not available as open source software, but its existence has proven the portability of Eden.\n\nSome work has been done on a TkInter version, but it has been abandoned in favor of Kivy.\n\n\nCo-Development\n==============\n\nThe code of the Eden project is hosted by GitHub.\nThe plan is to involve more developers as soon as the Kivy version is well underway.\nCompleting the TkInter version e.g. would be great...\nCoding for Eden requires thorough understanding of the Node/Link/View concepts, including rollback and cyclic dependencies.\nThe essence is in the Node library module.\nAlthough it is a small, extensively commented module, it is quite hard grab the nifty details.\nA very concise description is what I'll have to come up with...\n\n\nEnjoy!\n======\n\nJacques de Hooge\njacques.de.hooge@qquick.org\n\n\nqQuickLicence\n=============\n\nThis license governs use of the accompanying software (\"Software\"), and your use of \nthe Software constitutes acceptance of this license.\n\nYou may use the Software for any commercial or noncommercial purpose, including \ndistributing derivative works.\n\nIn return, it is required that you agree:\n\n1. Not to remove any copyright or other notices from the Software. \n2. That if you distribute the Software in source code form you do so only under\n this license (i.e. you must include a complete copy of this license with your\n distribution in a plain text file named QQuickLicence.txt),\n and if you distribute the Software solely in object form\n you only do so under a license that complies with this license. \n3. That the Software comes \"as is\", with no warranties. None whatsoever. This \n means no express, implied or statutory warranty, including without limitation, \n warranties of merchantability or fitness for a particular purpose or any \n warranty of title or non-infringement. Also, you must pass this disclaimer on \n whenever you distribute the Software or derivative works. \n4. That neither Geatec Engineering nor any contributor to the Software will be liable for any \n of those types of damages known as indirect, special, consequential, or \n incidental related to the Software or this license, to the maximum extent the law \n permits, no matter what legal theory it's based on. Also, you must pass this \n limitation of liability on whenever you distribute the Software or derivative \n works.\n5. That you will not use or cause usage of the Software in safety-critical situations\n under any circumstances.\n6. That if you sue anyone over patents that you think may apply to the Software for a \n person's use of the Software, your license to the Software ends automatically. \n7. That your rights under this License end automatically if you breach it in any way.\n8. That all rights not expressly granted to you in this license are reserved.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.qquick.org", "keywords": "eden,kivy,winforms,observer,functional", "license": "qQuickLicence", "maintainer": null, "maintainer_email": null, "name": "Eden", "package_url": "https://pypi.org/project/Eden/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/Eden/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.qquick.org" }, "release_url": "https://pypi.org/project/Eden/2.1.14/", "requires_dist": null, "requires_python": null, "summary": "Eden - Event Driven Evaluation Nodes, tested with Kivy 1.9.0", "version": "2.1.14" }, "last_serial": 1626720, "releases": { "2.1.10.Drop.down.menus.added": [ { "comment_text": "", "digests": { "md5": "584474075814e3be2b19cf602ddc6089", "sha256": "17872d8348aa6c11d9e97cfd0255db89a7fb30b6c406d159d38e1336abc3e2e6" }, "downloads": -1, "filename": "Eden-2.1.10.Drop.down.menus.added.zip", "has_sig": false, "md5_digest": "584474075814e3be2b19cf602ddc6089", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 538179, "upload_time": "2014-12-22T17:16:30", "url": "https://files.pythonhosted.org/packages/e8/e9/ea0601bc05fed29d0af0935c42f2941bd19cb349d61ef2823a7504fcf368/Eden-2.1.10.Drop.down.menus.added.zip" } ], "2.1.11.SwitchView-.checkbox-.radiobutton-.toggle": [ { "comment_text": "", "digests": { "md5": "2f1b023453b7db98c551efd5fc9427b6", "sha256": "594b6e076cbdd5ab5b6b0cee9fe8932b8d6e5ecd00a5efeb876a49f424103249" }, "downloads": -1, "filename": "Eden-2.1.11.SwitchView-.checkbox-.radiobutton-.toggle.zip", "has_sig": false, "md5_digest": "2f1b023453b7db98c551efd5fc9427b6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 547989, "upload_time": "2014-12-24T18:03:19", "url": "https://files.pythonhosted.org/packages/01/fa/66b27073101475c0629c6b5d75d9356c9b9e90ab908fc817dcc3251fbb63/Eden-2.1.11.SwitchView-.checkbox-.radiobutton-.toggle.zip" } ], "2.1.12.Local.menus-.unique.package.name-.many.bug.fixes": [ { "comment_text": "", "digests": { "md5": "200a23ff9812321f176c76c43904c9e7", "sha256": "c1c41fce1eea61db225d45fd4d55fc1e7a41f33ed942599457ef858b34dfc8be" }, "downloads": -1, "filename": "Eden-2.1.12.Local.menus-.unique.package.name-.many.bug.fixes.zip", "has_sig": false, "md5_digest": "200a23ff9812321f176c76c43904c9e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 517353, "upload_time": "2015-01-05T11:42:09", "url": "https://files.pythonhosted.org/packages/39/1e/58cb8efd635d7ff735ebf8c80ece530084af9d55e4aca02651aff625b3cf/Eden-2.1.12.Local.menus-.unique.package.name-.many.bug.fixes.zip" } ], "2.1.13.Modules-.demo.on.YouTube": [ { "comment_text": "", "digests": { "md5": "e31f72c88b01ceb5144c5b9347c0a0ae", "sha256": "2ad827ca6b115b155278b213b51dd6faf4480019bf7ed40a1bc1c475bd822640" }, "downloads": -1, "filename": "Eden-2.1.13.Modules-.demo.on.YouTube.zip", "has_sig": false, "md5_digest": "e31f72c88b01ceb5144c5b9347c0a0ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 557787, "upload_time": "2015-01-17T18:06:23", "url": "https://files.pythonhosted.org/packages/5a/96/7563b759cfc972263cbcfd1081e6922b24068056c4781888affdae5d2726/Eden-2.1.13.Modules-.demo.on.YouTube.zip" } ], "2.1.14": [ { "comment_text": "", "digests": { "md5": "bf391ef119af6527d78d821420c974b1", "sha256": "e6bd2dcd2b546f36813e6101fb6b8214241b696f9134470d9512d211d36f63a5" }, "downloads": -1, "filename": "Eden-2.1.14.zip", "has_sig": false, "md5_digest": "bf391ef119af6527d78d821420c974b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2955746, "upload_time": "2015-07-09T18:00:06", "url": "https://files.pythonhosted.org/packages/a8/4f/37c058d3175208d07d893848cba10c037e31d00a4427e8625ee0a4d33ad4/Eden-2.1.14.zip" } ], "2.1.2": [ { "comment_text": "", "digests": { "md5": "34f66804ea88de0e46452e52d21ac84b", "sha256": "342d697eb1ed868282ac4ecf1d5c9f11ccd608acb641b8d09a5505271b494607" }, "downloads": -1, "filename": "Eden-2.1.2.zip", "has_sig": false, "md5_digest": "34f66804ea88de0e46452e52d21ac84b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 461343, "upload_time": "2014-10-30T16:56:22", "url": "https://files.pythonhosted.org/packages/df/f5/5a4248a332e932e1fbb8576c41e5462978a8bd9f3b51050b4d98a9eda848/Eden-2.1.2.zip" } ], "2.1.3": [ { "comment_text": "", "digests": { "md5": "dad18ad32fc72130445a343c3be7de8b", "sha256": "43cd1c0d9fc08576fe9056bf5903aea7851f7e7cecfbce9a7e23069f74843655" }, "downloads": -1, "filename": "Eden-2.1.3.zip", "has_sig": false, "md5_digest": "dad18ad32fc72130445a343c3be7de8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 461322, "upload_time": "2014-10-30T17:09:10", "url": "https://files.pythonhosted.org/packages/e7/9a/f496b96d9042119ffe4eebdd9accc77a60c2f1ad06607815bdc3891e5a55/Eden-2.1.3.zip" } ], "2.1.4": [ { "comment_text": "", "digests": { "md5": "24f4ec2b0503483964f4b143dd76f3f1", "sha256": "f4b25b49e50dadc2d58e4aded5cd1df5d4b3c70bd59ae88b76a80cb336b606e0" }, "downloads": -1, "filename": "Eden-2.1.4.zip", "has_sig": false, "md5_digest": "24f4ec2b0503483964f4b143dd76f3f1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 461333, "upload_time": "2014-10-30T17:17:36", "url": "https://files.pythonhosted.org/packages/99/7c/e50a63aa32ebafcd67a83aac5da885e375c6e17101150ca33e96c2db6b8a/Eden-2.1.4.zip" } ], "2.1.5.-Kivy.TreeView.Drag-Drop.added-.testprogs.repaired-": [ { "comment_text": "", "digests": { "md5": "8d1b4330bc3ece386d238631d08c72cf", "sha256": "a1a39f2b347ca13d195c27243b913eaeaf00c284bfb90b80af6b9db32d9ca765" }, "downloads": -1, "filename": "Eden-2.1.5.-Kivy.TreeView.Drag-Drop.added-.testprogs.repaired-.zip", "has_sig": false, "md5_digest": "8d1b4330bc3ece386d238631d08c72cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 496321, "upload_time": "2014-11-13T13:51:27", "url": "https://files.pythonhosted.org/packages/04/25/c3a8f2f36745add213d7dc70cbb1268c160439ad5e6ab22c2ce0ae2478b5/Eden-2.1.5.-Kivy.TreeView.Drag-Drop.added-.testprogs.repaired-.zip" } ], "2.1.5.-Kivy.TreeView.Drag.-.Drop.added-": [ { "comment_text": "", "digests": { "md5": "3def421254c7a82ff6a7865f95957c84", "sha256": "f583c415cebde8abe64b04442fb8f217faa4008ab71c3d71d095c95a8a149851" }, "downloads": -1, "filename": "Eden-2.1.5.-Kivy.TreeView.Drag.-.Drop.added-.zip", "has_sig": false, "md5_digest": "3def421254c7a82ff6a7865f95957c84", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 490848, "upload_time": "2014-11-13T13:16:36", "url": "https://files.pythonhosted.org/packages/28/81/21532a06619c0eeeb38b4f5be6ba45cc38bc03a61e49f4c7934941f9ae75/Eden-2.1.5.-Kivy.TreeView.Drag.-.Drop.added-.zip" } ], "2.1.6.-Kivy-.ListView.D-D.added-.preliminary.tutorials.added.-": [ { "comment_text": "", "digests": { "md5": "8057a4939c1e499eb1408d84d78e26ae", "sha256": "328d2d0be44e6f3a551838ff06da528140017e655d0f327eca8ea6ac60ed1228" }, "downloads": -1, "filename": "Eden-2.1.6.-Kivy-.ListView.D-D.added-.preliminary.tutorials.added.-.zip", "has_sig": false, "md5_digest": "8057a4939c1e499eb1408d84d78e26ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 527252, "upload_time": "2014-12-04T14:01:15", "url": "https://files.pythonhosted.org/packages/ab/7e/cd648ee80a84f84d024dc57568e26f676e46f3b6a6c621ae4e332ff6d443/Eden-2.1.6.-Kivy-.ListView.D-D.added-.preliminary.tutorials.added.-.zip" } ], "2.1.6.-Kivy-.ListView.drag.drop.added-.preliminary.tutorials.added.-": [ { "comment_text": "", "digests": { "md5": "fbe2054a28959b4be496d181eb909edc", "sha256": "fec027f2ee5c3be877702455d98f585e93741aa76ba97167cc7d7219d569df04" }, "downloads": -1, "filename": "Eden-2.1.6.-Kivy-.ListView.drag.drop.added-.preliminary.tutorials.added.-.zip", "has_sig": false, "md5_digest": "fbe2054a28959b4be496d181eb909edc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 529236, "upload_time": "2014-12-04T14:02:39", "url": "https://files.pythonhosted.org/packages/88/b0/559975c23590cc215e7f63005eacd807517e1a344c644c46a6695b5c1549/Eden-2.1.6.-Kivy-.ListView.drag.drop.added-.preliminary.tutorials.added.-.zip" } ], "2.1.7.Multipanel.persistent.splitters.added.-.tutorial": [ { "comment_text": "", "digests": { "md5": "c9c95e09ddeb5f065ab07a90516a85af", "sha256": "5b96dd6fed9bdffd40a90807b0b02d45f5fa89a7a804ca7e5e4f7495dca19d05" }, "downloads": -1, "filename": "Eden-2.1.7.Multipanel.persistent.splitters.added.-.tutorial.zip", "has_sig": false, "md5_digest": "c9c95e09ddeb5f065ab07a90516a85af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 526450, "upload_time": "2014-12-09T13:09:11", "url": "https://files.pythonhosted.org/packages/db/77/138509281e273f4b96362d1731a344988c2e1833da4c3966aefcbda2ac24/Eden-2.1.7.Multipanel.persistent.splitters.added.-.tutorial.zip" } ], "2.1.8.Tabbed.view.with.persistent.selection.and.hiding.of.pages.": [ { "comment_text": "", "digests": { "md5": "47c77d4ca627c1a6b37f32cb96811364", "sha256": "0dc755848f2b33a66d2b2acc0ab71f4ec77d24c3af1e7709bfc9c001809f362f" }, "downloads": -1, "filename": "Eden-2.1.8.Tabbed.view.with.persistent.selection.and.hiding.of.pages..zip", "has_sig": false, "md5_digest": "47c77d4ca627c1a6b37f32cb96811364", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1047831, "upload_time": "2014-12-09T18:12:21", "url": "https://files.pythonhosted.org/packages/61/f3/1e061133411302ed9a0aa953e6e8bbbe10b2970630207683476b224bb394/Eden-2.1.8.Tabbed.view.with.persistent.selection.and.hiding.of.pages..zip" } ], "2.1.9.Modal.views.added-.div..bugs.fixed": [ { "comment_text": "", "digests": { "md5": "1ed20554c192ebed93793e000d8c59b1", "sha256": "abc5b0ed04854ec58b5e3a272f651acf11630b1fe78638c9dd6c377315ab07e1" }, "downloads": -1, "filename": "Eden-2.1.9.Modal.views.added-.div..bugs.fixed.zip", "has_sig": false, "md5_digest": "1ed20554c192ebed93793e000d8c59b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 540084, "upload_time": "2014-12-21T18:31:54", "url": "https://files.pythonhosted.org/packages/6e/49/36d3b093bbbafe1cc2c4d1835f54f76cc68e6f4b8505a7093ff71dbae4b1/Eden-2.1.9.Modal.views.added-.div..bugs.fixed.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "bf391ef119af6527d78d821420c974b1", "sha256": "e6bd2dcd2b546f36813e6101fb6b8214241b696f9134470d9512d211d36f63a5" }, "downloads": -1, "filename": "Eden-2.1.14.zip", "has_sig": false, "md5_digest": "bf391ef119af6527d78d821420c974b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2955746, "upload_time": "2015-07-09T18:00:06", "url": "https://files.pythonhosted.org/packages/a8/4f/37c058d3175208d07d893848cba10c037e31d00a4427e8625ee0a4d33ad4/Eden-2.1.14.zip" } ] }