{ "info": { "author": "Till Stensitzki", "author_email": "tillsten@zedat.fu-berlin.de", "bugtrack_url": null, "classifiers": [], "description": "===========\nqt-dataflow\n===========\nThis package tries to provide components for building your own\nvisual programming environment. The authors aim is to make his\ndata analysis tool available to his colleagues who don't\nknow programming or Python.\n\nBecause a standard gui is not very flexible, this projects tries\nto make visual canvas on which the dataflow can be defined and modified.\nExtensibility is given through simply adding or modifying Nodes.\n\n\nThis project is inspired by Orange - where i did not see an easy way to just\nuse the canvas part (also: license differences). Also the design tries\nto be more flexible.\n\n\nRequirements\n------------\nIt is made with Python 2.7. Not tested for lower versions or\nPython 3 (patches welcome). It should work with PySide and PyQt,\nbut at the moment, the imports need to be manually changed.\n\nThe examples may have additional requirements:\n * numpy\n * matplotlib\n * pyqtgraph\n\nExamples\n--------\nSee example.py for an simple example using icons which react to double click.\nTo make a connection draw from one nodes termial to another\n(only out-> in is allowed).\n\n.. image:: https://github.com/Tillsten/qt-dataflow/raw/master/example.png\n\n* example_widget uses widgets on the canvas directly, it also implements\n a simple callback. Note how the label updates after changing the\n SpinBox-value.\n\n* example_pyqtgraph need also the pyqtgraph package. It plot directly on the\n canvas.\n\n* example_matplotlib_on_canvas does the same, but uses matplotlib via\n a temporary file.\n\nCode Example\n------------\nTo make custom nodes you need to subclass Node. It must return\na NodeView via its 'get_view' method. The following example\nimplements a Node which make a random number.\n\n.. code-block:: python\n\n class RandomNumber(Node):\n \"\"\"\n A test node which outputs a random number. Widget allow to set the number.\n \"\"\"\n def __init__(self):\n super(DataGenNode, self).__init__()\n #Node type/name\n self.node_type = 'Random Array'\n #Icon_path is needed for the PixmapNodeView\n self.icon_path = 'icons/onebit_11.png'\n #The makes the node have an output terminal.\n self.generates_output = True\n\n def get_view(self):\n return PixmapNodeView(self)\n\n def get(self):\n #Method which can be called by other nodes. The name is just\n #a convention.\n num = [random.random() for i in range(self.num_points)]\n return num\n\n def show_widget(self):\n #Method called by double clicking on the icon.\n int, ok = Qt.QtGui.QInputDialog.getInteger(None, 'Input Dialog',\n 'Number of Points', self.num_points)\n if ok:\n self.num_points = int\n\n\nA node saves its connections in node.in_conn and node.out_conn. Also\nnote, that each node view must be a child of a QGraphicsItem and NodeView.\n\n\nStructure\n---------\n\nIn model the base Node- and Schema-classes are found. In view are some\nview available. gui contains some additional ready to use elements.\n\nTodo\n----\n* add different icons (simple)\n* nicer toolbar (drag-n-drop would be nice)\n* test persistence, define a stable protocol if pickling does not work\n* make an example with less requirements.\n* checking and introducing a connection type\n* move some logic for allowing or denying connections\n from SchemaView to the NodeView.\n* checking and improving compatibility with different Python versions.\n* better documentation\n* make number of terminals variable.\n* ...\n\nCoding Style\n------------\nThis projects tries to follow PEP8.\n\nLicense\n-------\nExample icons are from http://www.icojam.com/blog/?p=177 (Public Domain).\n\nBSD - 3 clauses, see license.txt.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Tillsten/qt-dataflow", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "qt-dataflow", "package_url": "https://pypi.org/project/qt-dataflow/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/qt-dataflow/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/Tillsten/qt-dataflow" }, "release_url": "https://pypi.org/project/qt-dataflow/0.2.3/", "requires_dist": null, "requires_python": null, "summary": "A base for custom visual programming enviroments", "version": "0.2.3" }, "last_serial": 573237, "releases": { "0.2": [], "0.2.1": [], "0.2.2": [], "0.2.3": [] }, "urls": [] }