{ "info": { "author": "Gustavo vargas", "author_email": "xgvargas@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Intended Audience :: End Users/Desktop", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Software Development :: Build Tools" ], "description": "SmartSide is one of many available ways to have PySide signals connected in a easy way.\r\n\r\nExample of what it can do for you\r\n---------------------------------\r\n\r\nSuppose you have designed a GUI using *Qt Designer*\r\n\r\nCompile it with:\r\n\r\n.. sourcecode:: bash\r\n\r\n $ pyside-uic.exe myform.ui -o myform_ui.py\r\n\r\n # if you have resources included compile them too\r\n $ pyside-rcc.exe myresources.qrc -o myresources_rc.py\r\n\r\n\r\nThen use a code like this to show your form and bind some signals:\r\n\r\n.. sourcecode:: python\r\n\r\n import sys\r\n from myform_ui import * # this will also include `QtCore` and `QtGui`\r\n import smartside.signal as smartsignal\r\n\r\n class MyApplication(QtGui.QMainWindow, Ui_MainWindow, smartsignal.SmartSignal):\r\n def __init__(self, parent=None):\r\n super(MyApplication, self).__init__(parent)\r\n self.setupUi(self)\r\n\r\n # create any local UI object here, so they signal are\r\n # going to be auto-connected too\r\n\r\n self.auto_connect()\r\n\r\n # will respond to stateChanged signal from checkBox widget\r\n # notice the double underline between widget name and signal name\r\n def _on_checkBox__stateChanged(self):\r\n print 'check', self.sender().isChecked()\r\n\r\n # will respond to `pressed` signal of btn_add widget\r\n def _on_btn_add__pressed(self):\r\n print 'btn_add was pressed'\r\n\r\n # list some widgets and use regex `regex`, to select multiples.\r\n # starting with underline is mandatory\r\n _myfuncs = 'btn_base, btn_format, `btn_.+log.+`, btn_sqr'\r\n # will respond to clicked signal of all widget listed above\r\n def _when_myfuncs__clicked(self):\r\n print 'multiples', self.sender()\r\n\r\n if __name__ == \"__main__\":\r\n app = QtGui.QApplication(sys.argv)\r\n window = MyApplication()\r\n window.show()\r\n\r\n # uncomment line below to print a list of ALL signals available on your form\r\n # window.print_all_signals()\r\n\r\n sys.exit(app.exec_())\r\n\r\nYour form is supposed to be called *Ui_MainWindow* in this example.\r\n\r\nFirst we use ``setupUi`` as usual to create the interface.\r\n\r\nThen ``auto_connect`` will connect member functions to signals when they match.\r\n\r\nThe last case use a multiple connection, so more then one widgets will call the same callback function. You can also use regex to select related widgets. In the example above we have selected a few widgets by its explicit name and also all widget whose name starts with ``'btn\\_'`` and have ``'log'`` in some part of its name. All of them are going to be connected to ``_when_myfuncs__clicked``.\r\n\r\nYes, it works with actions too. Like ``def _on_actionTest__triggered(self):``. This is usefull when you create context menu by code. Just remember to call ``auto_connect`` *after* menu creation.\r\n\r\nShow icon on Windows taskbar\r\n----------------------------\r\n\r\nUsually Windows 7+ executes Python scripts as a group and put every icon you define to your GUI as a child of Python's taskbar icon, since python actually hosts your code. This happens even if you give ``.pyw`` as extension for your python script.\r\n\r\nTo solve this you have to tell Windows your script is an application by calling ``smartside.setAsApplication()`` and pass to this function an unique identifier for your script, like: 'company.product.version'.\r\n\r\n.. sourcecode:: python\r\n\r\n # ....\r\n\r\n if __name__ == \"__main__\":\r\n\r\n from smartside import setAsApplication\r\n setAsApplication('example_co.exampleProd.'+__version__)\r\n\r\n app = QtGui.QApplication(sys.argv)\r\n window = MyApplication()\r\n window.show()\r\n sys.exit(app.exec_())\r\n\r\n\r\nConsole Widget\r\n--------------\r\n\r\nUsing Qt Designer promote a QPlainTextEdit to ``ConsoleWidget``, and use ``smartside.console`` as header (source).\r\n\r\nThen, inside ``__init__`` of this form use: ``self.name_of_widget.setLocals({'name': object, 'me': self})``.\r\n\r\nThis will make the promoted QPlainTextEdit to become a python console with access to two objects: ``name`` and ``me``.\r\n\r\n\r\nLanguage\r\n--------\r\n\r\nThe function ``getBestTranslation`` is used to discover the best translation file available for an app.\r\n\r\nIt will look in a folder for a ``.qm`` file in the following order:\r\n\r\n- en-US.qm\r\n- en_US.qm\r\n- en.qm\r\n\r\nYou can specify a list of desired languages or let the function to check the system languages. If no translation is found the native language will be used.\r\n\r\n.. sourcecode:: python\r\n\r\n # ....\r\n\r\n if __name__ == \"__main__\":\r\n\r\n from smartside import getBestTranslation\r\n\r\n # this will look for translations inside folder ./i18n\r\n # it will search by system languages\r\n translator = getBestTranslation('i18n')\r\n\r\n app = QtGui.QApplication(sys.argv)\r\n app.installTranslator(translator)\r\n\r\n window = MyApp()\r\n window.show()\r\n sys.exit(app.exec_())\r\n\r\n.. sourcecode:: python\r\n\r\n # if you want to specify the languages\r\n translator = getBestTranslation('language', ['pt-BR', 'es'])\r\n\r\nIn this case it will try:\r\n\r\n- language/pt-BR.qm\r\n- language/pt_BR.qm\r\n- language/pt.qm\r\n- language/es.qm\r\n\r\n\r\nChange History\r\n--------------\r\n\r\n:0.1.7: Added language locator.\r\n:0.1.6: Fixed setup typo.\r\n:0.1.5: Added support to python 3.\r\n:0.1.4: Added ``ConsoleWidget`` class.\r\n:0.1.3: Added ``setAsApplication``.\r\n:0.1.2: Added QAction support; For every QAction created before calling auto_connect() you can use ``def _on_action_name__clicked(self):`` like you do with signals.\r\n:0.1.1: Small fix.\r\n\r\n------------------\r\n\r\nDevelopment:\r\n https://github.com/xgvargas/smartside - please use this space if you found a problem or think any other task on PySide can be simplified.", "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/xgvargas/smartside", "keywords": null, "license": "Apache", "maintainer": null, "maintainer_email": null, "name": "smartside", "package_url": "https://pypi.org/project/smartside/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/smartside/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/xgvargas/smartside" }, "release_url": "https://pypi.org/project/smartside/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "Makes PySide a little smarter.", "version": "0.2.0" }, "last_serial": 2217403, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "99b900afd42afee297f8b4d9f9655bed", "sha256": "2133e7380f44600ba7413df928c0f2b9ee8c20bc07ce45029b4ef3e09e364a03" }, "downloads": -1, "filename": "smartside-0.1.0-py2.7.egg", "has_sig": false, "md5_digest": "99b900afd42afee297f8b4d9f9655bed", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6030, "upload_time": "2014-02-20T00:04:58", "url": "https://files.pythonhosted.org/packages/2c/be/88e01aba1f8a1be8fe62c2e6baafa6fe8f76e4cbb58a4c2da675c296aa73/smartside-0.1.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "40f8d683be90a8c439468070024c8d38", "sha256": "e7723934e2ddf76d03bf8389473ec5471c6b1cc4030f2234bd47b7e9447d17ad" }, "downloads": -1, "filename": "smartside-0.1.0.tar.gz", "has_sig": false, "md5_digest": "40f8d683be90a8c439468070024c8d38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7920, "upload_time": "2014-02-20T00:04:52", "url": "https://files.pythonhosted.org/packages/d7/c5/03e2f60c5edddb0f108ee011de3a29e90dd515b5215bca7a55e4c8e8f756/smartside-0.1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "2f285b3478b85fffee711a91360d36dd", "sha256": "e412ebe9d7efde6bcb2980924f4b77ccf00677c6e57e29b50475db7e72d9ccbc" }, "downloads": -1, "filename": "smartside-0.1.0.zip", "has_sig": false, "md5_digest": "2f285b3478b85fffee711a91360d36dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12124, "upload_time": "2014-02-20T00:04:55", "url": "https://files.pythonhosted.org/packages/2a/3b/7874b6884564c1cd03fd850d47a050283c34741bb9b87449f52bbf50a526/smartside-0.1.0.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "aed2b6873c2396504bc1887c29d3ff26", "sha256": "d546e39efed3043a2ff3b67330b780c1df920ce496ebe544498fe0405734da3b" }, "downloads": -1, "filename": "smartside-0.1.1-py2.7.egg", "has_sig": false, "md5_digest": "aed2b6873c2396504bc1887c29d3ff26", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 5984, "upload_time": "2014-02-20T00:13:42", "url": "https://files.pythonhosted.org/packages/90/7a/c043b49f8266ac4994e8f9f81017886cf42f95fecf5e3555cb0e51ed02a2/smartside-0.1.1-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "8583ffbdc3b369b1c648d30b0c2336cb", "sha256": "862abcebbb0c9edb292e57cefe75e7ff2e4e6b99c151f089764750a21649f94d" }, "downloads": -1, "filename": "smartside-0.1.1.tar.gz", "has_sig": false, "md5_digest": "8583ffbdc3b369b1c648d30b0c2336cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7893, "upload_time": "2014-02-20T00:13:37", "url": "https://files.pythonhosted.org/packages/5e/30/9ca531473ca6d4aeb2c8600ef96271842c97185425d30625f002747954f4/smartside-0.1.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "0f205008b93449d8ce0002d368ccf418", "sha256": "7f0aeb939f91b8ecb8bc011ab1eb1d9c71c2037082b31d364d591c74ebb0d375" }, "downloads": -1, "filename": "smartside-0.1.1.zip", "has_sig": false, "md5_digest": "0f205008b93449d8ce0002d368ccf418", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12105, "upload_time": "2014-02-20T00:13:40", "url": "https://files.pythonhosted.org/packages/d6/23/92e066425c4ff6a5d80d0aba1da5985aa152dab99f81609f4242f8a24902/smartside-0.1.1.zip" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f4d8e5644e141c54dbd4bfb8a4e67485", "sha256": "17ee46a1a913e2f69f123b82d7486d7420db26290790d752c106cba62d5cc3f3" }, "downloads": -1, "filename": "smartside-0.1.2-py2.7.egg", "has_sig": false, "md5_digest": "f4d8e5644e141c54dbd4bfb8a4e67485", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 6194, "upload_time": "2014-02-21T03:01:01", "url": "https://files.pythonhosted.org/packages/c8/cb/c20c33b79492d270ea05d3e2bee52228d1ce6b65ccd921365c5263835dcb/smartside-0.1.2-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "381455c3dd931488b31e343990896ccf", "sha256": "16af5a45331d8c44de693831fe6082bcfebfc74daf6b31ce5e70067468309487" }, "downloads": -1, "filename": "smartside-0.1.2.tar.gz", "has_sig": false, "md5_digest": "381455c3dd931488b31e343990896ccf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8007, "upload_time": "2014-02-21T03:00:54", "url": "https://files.pythonhosted.org/packages/97/df/053c1e75f5578b6df3ab1614b23f22e8fb66bb1f4699ce1659d0a4569dc6/smartside-0.1.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "962edfe3ff14e9d75661e5c69b40456a", "sha256": "5d24eb3523b236e9e4a691dbebb52584b85497dee5956b2771292b0cf4240b30" }, "downloads": -1, "filename": "smartside-0.1.2.zip", "has_sig": false, "md5_digest": "962edfe3ff14e9d75661e5c69b40456a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12318, "upload_time": "2014-02-21T03:00:58", "url": "https://files.pythonhosted.org/packages/3d/94/5bfd0cf7a5b91645488e130ca2dc188bf0d9405c61c434e1b48474af84d7/smartside-0.1.2.zip" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "789615d98636d20b69f54f6dd44acfda", "sha256": "b2a9978c1963cf51726cc6d7c6c91053a0b2e40903dd9b2edcb7accef05d36aa" }, "downloads": -1, "filename": "smartside-0.1.3-py2.7.egg", "has_sig": false, "md5_digest": "789615d98636d20b69f54f6dd44acfda", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 7029, "upload_time": "2014-03-18T16:28:06", "url": "https://files.pythonhosted.org/packages/eb/72/772bfba11daa04ff1e22487c7d253e09f6f76c596cd160031cf2852557bc/smartside-0.1.3-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "7dd9a3397cfdb7d0fed1e0e2c1f52903", "sha256": "3edb8d52eb0a581267c3faafd9c7c821b1e1beb5f4ddadda173a5e9bd2b6049c" }, "downloads": -1, "filename": "smartside-0.1.3.tar.gz", "has_sig": false, "md5_digest": "7dd9a3397cfdb7d0fed1e0e2c1f52903", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8606, "upload_time": "2014-03-18T16:28:02", "url": "https://files.pythonhosted.org/packages/09/28/44de32da42b3df8b6b55fe3d80a55747aab20718c293ef56f03bc370f703/smartside-0.1.3.tar.gz" }, { "comment_text": "", "digests": { "md5": "4b804b4a013e985331814745afb5fe0d", "sha256": "1075af505fa6c8b5786666458732181668d30dc2f5df59f1ac3ade37e0566bf4" }, "downloads": -1, "filename": "smartside-0.1.3.zip", "has_sig": false, "md5_digest": "4b804b4a013e985331814745afb5fe0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13674, "upload_time": "2014-03-18T16:28:04", "url": "https://files.pythonhosted.org/packages/c0/e1/2db75bdf74bb760f5f6dbeb639fd63daf3bac8aa634581d684194371abcd/smartside-0.1.3.zip" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "9ffd1f7dabad46d328bc169802b5a76f", "sha256": "f782c1318bf685422b29cd8d02b33bab66d9336522b40ef4beed445b020be4f5" }, "downloads": -1, "filename": "smartside-0.1.5-py3.4.egg", "has_sig": false, "md5_digest": "9ffd1f7dabad46d328bc169802b5a76f", "packagetype": "bdist_egg", "python_version": "3.4", "requires_python": null, "size": 10112, "upload_time": "2015-03-30T22:25:31", "url": "https://files.pythonhosted.org/packages/e4/ad/3733cda7159a1eb5f77a076d02781b58bd60a7ea1f301d5c1106b24bd73b/smartside-0.1.5-py3.4.egg" }, { "comment_text": "", "digests": { "md5": "16bc7cfcf4aaed7a7d4117d4c1bb13a5", "sha256": "86cd955ff558032d9ddb85c0a100ef66ea93326b6eef9ad4e490cef9f8450057" }, "downloads": -1, "filename": "smartside-0.1.5.tar.gz", "has_sig": false, "md5_digest": "16bc7cfcf4aaed7a7d4117d4c1bb13a5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9398, "upload_time": "2015-03-30T22:25:24", "url": "https://files.pythonhosted.org/packages/40/4c/c586aa0bf1134c316302287d0ecaba354c256cf8640e3123d75246bcc3a8/smartside-0.1.5.tar.gz" }, { "comment_text": "", "digests": { "md5": "c0a38b050a40ad8bd393595bb08cbeed", "sha256": "016397f02422f2451dc366d417df3924a709ef650e78f8ef2611a1c7ee4ad851" }, "downloads": -1, "filename": "smartside-0.1.5.zip", "has_sig": false, "md5_digest": "c0a38b050a40ad8bd393595bb08cbeed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15287, "upload_time": "2015-03-30T22:25:28", "url": "https://files.pythonhosted.org/packages/e1/94/2cac9dbf8e257bdd7a707357a11944c6b61e3c0abc896eb711cb4f29b28c/smartside-0.1.5.zip" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "87bea474c0e934e826c649ad17e01cad", "sha256": "91c2ddafa18870c519f8cf16dc8bff0a7ef6890b948c4c917bfa60da573b4d01" }, "downloads": -1, "filename": "smartside-0.1.6-py2.7.egg", "has_sig": false, "md5_digest": "87bea474c0e934e826c649ad17e01cad", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 9784, "upload_time": "2015-04-02T21:35:57", "url": "https://files.pythonhosted.org/packages/53/4d/be6050364d299e190f06b091262cec9aef2b9bd82a6f0209938730ebd3e7/smartside-0.1.6-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "ed57ffeb2aa6dc03bba218b192b43a48", "sha256": "4652e1d11389f7bd54a16cd05214ee80090615e53a3e1858f0d0015efc7c4174" }, "downloads": -1, "filename": "smartside-0.1.6.tar.gz", "has_sig": false, "md5_digest": "ed57ffeb2aa6dc03bba218b192b43a48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9433, "upload_time": "2015-04-02T21:35:50", "url": "https://files.pythonhosted.org/packages/47/aa/30062666aedc34a894a6ac789d35b9f13cb08fa4a9a1734062b27189e375/smartside-0.1.6.tar.gz" }, { "comment_text": "", "digests": { "md5": "13f5460762dbfc9bb851ac05223b5efb", "sha256": "4abcc21fc2c6fb257a5951d7c5dc5d422f47a8df75693bee9c79dd61a7f8c4ce" }, "downloads": -1, "filename": "smartside-0.1.6.zip", "has_sig": false, "md5_digest": "13f5460762dbfc9bb851ac05223b5efb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15330, "upload_time": "2015-04-02T21:35:54", "url": "https://files.pythonhosted.org/packages/b4/26/879a3c7165aca4c5f1d0485019b4b287b81639568432f43d80f7a35aaf4a/smartside-0.1.6.zip" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "00bb12422c40b145c7908b86b40d5ce3", "sha256": "ff8537165f585722c3fc0677c3e2777167fd10103062b1780ad1bc8a8b7fa36e" }, "downloads": -1, "filename": "smartside-0.2.0-py2.7.egg", "has_sig": false, "md5_digest": "00bb12422c40b145c7908b86b40d5ce3", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 11038, "upload_time": "2016-07-12T20:06:18", "url": "https://files.pythonhosted.org/packages/6d/f2/e5c47e47029767ffe2c16de5206ed0f59385cf168cb19df1dc671a177318/smartside-0.2.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d8eff48cf6b807abf524101707e88108", "sha256": "947dad408823bbba9e6b36dc9cdff81f21d804610d334e809fcfc42f51ac35ae" }, "downloads": -1, "filename": "smartside-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d8eff48cf6b807abf524101707e88108", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10337, "upload_time": "2016-07-12T20:06:11", "url": "https://files.pythonhosted.org/packages/c6/61/0818edddd77723fb3d0d3c78cc26bc4cd168480a125adcffc58a9e20b5a1/smartside-0.2.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "a322f053020048d449da281a4ebe7e3b", "sha256": "574858affda8447c82dfafb67799a5a7aa6502183312a98646bfb68356393812" }, "downloads": -1, "filename": "smartside-0.2.0.zip", "has_sig": false, "md5_digest": "a322f053020048d449da281a4ebe7e3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17110, "upload_time": "2016-07-12T20:06:14", "url": "https://files.pythonhosted.org/packages/49/36/afd1b9ae6f88cc10758edd5f47d1c3d74f82d123f0cb381fef692d7662eb/smartside-0.2.0.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "00bb12422c40b145c7908b86b40d5ce3", "sha256": "ff8537165f585722c3fc0677c3e2777167fd10103062b1780ad1bc8a8b7fa36e" }, "downloads": -1, "filename": "smartside-0.2.0-py2.7.egg", "has_sig": false, "md5_digest": "00bb12422c40b145c7908b86b40d5ce3", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 11038, "upload_time": "2016-07-12T20:06:18", "url": "https://files.pythonhosted.org/packages/6d/f2/e5c47e47029767ffe2c16de5206ed0f59385cf168cb19df1dc671a177318/smartside-0.2.0-py2.7.egg" }, { "comment_text": "", "digests": { "md5": "d8eff48cf6b807abf524101707e88108", "sha256": "947dad408823bbba9e6b36dc9cdff81f21d804610d334e809fcfc42f51ac35ae" }, "downloads": -1, "filename": "smartside-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d8eff48cf6b807abf524101707e88108", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10337, "upload_time": "2016-07-12T20:06:11", "url": "https://files.pythonhosted.org/packages/c6/61/0818edddd77723fb3d0d3c78cc26bc4cd168480a125adcffc58a9e20b5a1/smartside-0.2.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "a322f053020048d449da281a4ebe7e3b", "sha256": "574858affda8447c82dfafb67799a5a7aa6502183312a98646bfb68356393812" }, "downloads": -1, "filename": "smartside-0.2.0.zip", "has_sig": false, "md5_digest": "a322f053020048d449da281a4ebe7e3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17110, "upload_time": "2016-07-12T20:06:14", "url": "https://files.pythonhosted.org/packages/49/36/afd1b9ae6f88cc10758edd5f47d1c3d74f82d123f0cb381fef692d7662eb/smartside-0.2.0.zip" } ] }