{ "info": { "author": "Andre Santos", "author_email": "andre.f.santos@inesctec.pt", "bugtrack_url": null, "classifiers": [], "description": "Bonsai\n======\n\n| Bonsai is an attempt to provide a miniature and refined representation\n for the\n| often cumbersome **syntax trees** and **program models**.\n| This idea, of providing a *smaller tree* that is more or less the same\n thing,\n| is where the name comes from.\n\n| This work started as part of an analysis tool that I am developing for\n my own\n| research. I am interested in analysing `ROS`_\n| robotics applications, which are often written in C++.\n| Since free C++ analysis tools are *rather scarce*, I tried\n| to come up with my own, using the Python bindings of the ``clang``\n compiler.\n| At the moment of this writing, I am aware that these bindings are\n incomplete\n| in terms of AST information they provide.\n\n| As this analysis tool developed, I realized that the C++ analysis\n features\n| are independent of ROS or any other framework, and that this kind of\n tool\n| might be useful for someone else, either as is, or as a starting point\n for\n| something else.\n\nFeatures\n--------\n\n| Bonsai provides an interface to represent, analyse or manipulate\n programs.\n| The model it uses is abstract enough to serve as a basis for specific\n language\n| implementations, although it focuses more on\n imperative/object-oriented\n| languages for now.\n\nWhat to expect from **bonsai**:\n\n- classes for the different **entities of a program** (e.g. variables,\n functions, etc.);\n- extended classes for **specific programming languages** (only C++ for\n now);\n- **parser implementations**, able to take a file and produce a model\n (e.g. ``clang`` for C++);\n- extensible interface to **manipulate and query** the resulting model\n (e.g. find calls for a function);\n- a console script to use as a standalone application.\n\nInstallation\n------------\n\n| Here are some instructions to help you get bonsai.\n| Bonsai has been tested with *Linux Ubuntu* and *Python 2.7*,\n| but the platform should not make much of a difference.\n| Dependencies are minimal, and depend on what you want to analyse.\n\n| Since at the moment there is only a single implementation for C++\n| using clang 3.8, you will need to install ``libclang`` and the\n| `clang.cindex bindings`_\n| (``pip install clang``) to parse C++ files. Skip this if you want to\n use\n| the library in any other way.\n\nMethod 1: Running Without Installation\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n| Open a terminal, and move to a directory where you want to clone this\n| repository.\n\n.. code:: bash\n\n git clone https://github.com/git-afsantos/bonsai.git\n\n| There is an executable script in the root of this repository to help\n you get started.\n| It allows you to run bonsai without installing it. Make sure that your\n terminal is at\n| the root of the repository.\n\n.. code:: bash\n\n cd bonsai\n python bonsai-runner.py \n\nYou can also run it with the executable package syntax.\n\n.. code:: bash\n\n python -m bonsai \n\nMethod 2: Installing Bonsai on Your Machine\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n| Bonsai is now available on `PyPi`_.\n| You can install it from source or from a wheel.\n\n.. code:: bash\n\n [sudo] pip install bonsai-code\n\n| The above command will install bonsai for you. Alternatively, download\n and extract its\n| source, move to the project\u2019s root directory, and then execute the\n following.\n\n.. code:: bash\n\n python setup.py install\n\n| After installation, you should be able to run the command ``bonsai``\n in your terminal\n| from anywhere.\n\nExamples\n--------\n\n| The ``cpp_example.py`` script at the root of this repository is a\n small example on\n| how to parse a C++ file and then find all references to a variable\n ``a`` in that file.\n| In it, you can see parser creation\n\n.. code:: python\n\n parser = CppAstParser(workspace = \"examples/cpp\")\n\n| access to the global (top level, or root) scope of the program, and\n obtaining\n| a pretty string representation of everything that goes in it\n\n.. code:: python\n\n parser.global_scope.pretty_str()\n\n| getting a list of all references to variable ``a``, starting the\n search from\n| the top of the program (global scope)\n\n.. code:: python\n\n CodeQuery(parser.global_scope).all_references.where_name(\"a\").get()\n\n| and accessing diverse properties from the returned ``CodeReference``\n objects,\n| such as file line and column (``cppobj.line``, ``cppobj.column``), the\n type of the\n| object (``cppobj.result``), what is it a reference of\n (``cppobj.reference``,\n| in this case a ``CodeVariable``) and an attempt to interpret the\n program and\n| resolve the reference to a concrete value\n (``resolve_reference(cppobj)``).\n\n| Do note that **resolving expressions and references is still\n experimental**,\n| and more often that not will not be able to produce anything useful.\n\n| This is the pretty string output for a program that defines a class\n ``C``\n| and a couple of functions.\n\n::\n\n class C:\n C():\n [declaration]\n\n void m(int a):\n [declaration]\n\n int x_ = None\n\n C():\n x_ = 0\n\n void m(int a):\n a = (a + 2) * 3\n this.x_ = a\n\n int main(int argc, char ** argv):\n C c = new C()\n c.m(42)\n C * c1 = new C()\n C * c2 = new C()\n new C()\n delete(c1)\n delete(c2)\n return 0\n\n| The pretty string representation, as seen, is a sort of\n pseudo-language, inspired\n| in the Python syntax, even though the parsed program is originally in\n C++.\n\n| For more details on what you can get from the various program\n entities, check out\n| the source for the abstract model and then the language-specific\n| implementation of your choice.\n\n.. _ROS: http://www.ros.org/\n.. _clang.cindex bindings: https://github.com/llvm-mirror/clang/tree/master/bindings/python\n.. _PyPi: https://pypi.python.org/pypi/bonsai-code\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/git-afsantos/bonsai", "keywords": "static-analysis ast parsing", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "bonsai-code", "package_url": "https://pypi.org/project/bonsai-code/", "platform": "", "project_url": "https://pypi.org/project/bonsai-code/", "project_urls": { "Homepage": "https://github.com/git-afsantos/bonsai" }, "release_url": "https://pypi.org/project/bonsai-code/0.4.11/", "requires_dist": null, "requires_python": "", "summary": "Static analysis library.", "version": "0.4.11" }, "last_serial": 5403460, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "a9abb20805084b95656c052953f71afc", "sha256": "597a46e203991f180c411bddb3ac812de201727457d2d0df44a85e832372cade" }, "downloads": -1, "filename": "bonsai_code-0.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "a9abb20805084b95656c052953f71afc", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 29065, "upload_time": "2017-10-11T16:02:14", "url": "https://files.pythonhosted.org/packages/f2/24/6dea28636f924085b58dbf6693fbdf23787bfe1415b9b8908e3d51fd3304/bonsai_code-0.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "799db9d6fd4079fe5906a579141377ba", "sha256": "fefaa1ebcfc6dc6a396f9a7a001893512ac4419d4a0a50184a4838ad4447bbc6" }, "downloads": -1, "filename": "bonsai-code-0.1.0.tar.gz", "has_sig": false, "md5_digest": "799db9d6fd4079fe5906a579141377ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19389, "upload_time": "2017-10-11T16:02:18", "url": "https://files.pythonhosted.org/packages/d1/c0/4d2c2927124705c23526ef6f6fb6529eb099d1bf357be9693378d9aea108/bonsai-code-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "d07e52b4121297d93fe4b9f8af4f544b", "sha256": "38778002a3136747dc192a70f900ea74a6e35d37d461356296d39998793e3ca8" }, "downloads": -1, "filename": "bonsai_code-0.1.1-py2-none-any.whl", "has_sig": false, "md5_digest": "d07e52b4121297d93fe4b9f8af4f544b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 33965, "upload_time": "2017-11-09T22:47:12", "url": "https://files.pythonhosted.org/packages/0f/47/79d89c8966aaaf2a620e13e4070136d85be4a939abef9235e61ebfc37c80/bonsai_code-0.1.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5196a3cd935bd88af02ddc7bbdeeeec5", "sha256": "caa14938534d75cf05e6814e97d1429076220b34d0482fde49b4f0911b893b4c" }, "downloads": -1, "filename": "bonsai-code-0.1.1.tar.gz", "has_sig": false, "md5_digest": "5196a3cd935bd88af02ddc7bbdeeeec5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25058, "upload_time": "2017-11-09T22:47:13", "url": "https://files.pythonhosted.org/packages/e7/39/e3c869eb1fbffae90468aa62f246312dad45bd60f7fe177e326d099495d3/bonsai-code-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "91975a6b7b60bc2f4cc6d2a412b981de", "sha256": "43aebaf99678f07e253f0606dcebe5493f3157477ded33dd21367e24c5bea52c" }, "downloads": -1, "filename": "bonsai_code-0.1.2-py2-none-any.whl", "has_sig": false, "md5_digest": "91975a6b7b60bc2f4cc6d2a412b981de", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 33975, "upload_time": "2017-11-10T09:16:10", "url": "https://files.pythonhosted.org/packages/64/42/6589d005922cff23b5d0bbe1dae863068f93e3005db98b9bed7dcfa0cbb7/bonsai_code-0.1.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e606a28c9bd524f4cb5d7b713423043f", "sha256": "e165d5d7d4f99e47e9282183549e1c557b5f6169412d0285e9de5d995b64017e" }, "downloads": -1, "filename": "bonsai-code-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e606a28c9bd524f4cb5d7b713423043f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25078, "upload_time": "2017-11-10T09:16:11", "url": "https://files.pythonhosted.org/packages/a4/fa/38ce9f7fada05b353af844c42ca678dfa5f73ae8da869285cf0964b0ac5b/bonsai-code-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "cd8f10c5f9a3c111b3250cef9b356c71", "sha256": "01c0860a5e383437424591cb143b79cc2d6a0fd896b0b7abbbb8297348a02e8a" }, "downloads": -1, "filename": "bonsai_code-0.1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "cd8f10c5f9a3c111b3250cef9b356c71", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 33979, "upload_time": "2017-11-10T09:19:37", "url": "https://files.pythonhosted.org/packages/bf/d6/f1a87733ab396ec572d91d468f7983fa4356620e13cf5bbaec017b5ca46e/bonsai_code-0.1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f363d41362c26ca4f41b91cf0c2c6a4", "sha256": "19bb94c9ed398e0999588908c3505d547e4c2ede4a957643ee6fb9951c58506d" }, "downloads": -1, "filename": "bonsai-code-0.1.3.tar.gz", "has_sig": false, "md5_digest": "4f363d41362c26ca4f41b91cf0c2c6a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25073, "upload_time": "2017-11-10T09:19:39", "url": "https://files.pythonhosted.org/packages/3d/d2/25772cf0f6efd62b182fa7a419214083960941769e031d275775677efb93/bonsai-code-0.1.3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "68da2fbd80d16bca658661d167934f85", "sha256": "4631a8bd4a107a42723ca743df7883d699fd6b9518239dcead372b20f375e616" }, "downloads": -1, "filename": "bonsai_code-0.2.0-py2-none-any.whl", "has_sig": false, "md5_digest": "68da2fbd80d16bca658661d167934f85", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34037, "upload_time": "2018-01-18T14:42:44", "url": "https://files.pythonhosted.org/packages/e7/81/f5dfa79e7a351dbe9e9cfc1158a9d2dbbc831d316d9afce0a19e91a26eaf/bonsai_code-0.2.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bd13a452f416d776d72a4b69c1004735", "sha256": "d983ca166bc45f93be98bfefc1ac8f073353817502fef9366ed37c8d5adfaec0" }, "downloads": -1, "filename": "bonsai-code-0.2.0.tar.gz", "has_sig": false, "md5_digest": "bd13a452f416d776d72a4b69c1004735", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25135, "upload_time": "2018-01-18T14:42:46", "url": "https://files.pythonhosted.org/packages/e7/73/64c163013cbb240fc9b03f451ec0be197604cda44d3627f53655c3d0b1e3/bonsai-code-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "662d15e475e34974b8ff73cdb0eebf0f", "sha256": "7b6cf8b3ba75fdf7ac07ecdc379f908834f3a292a90689dac7c9bb3eaf53848c" }, "downloads": -1, "filename": "bonsai_code-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "662d15e475e34974b8ff73cdb0eebf0f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34099, "upload_time": "2018-01-24T18:27:51", "url": "https://files.pythonhosted.org/packages/56/72/ec44f5a630499882ca589e940f23c6ac5e23122e8eae46785e639f6fd92c/bonsai_code-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3a074cc2694c2f8359425efaf5e4b591", "sha256": "caaf6ad8c42198e8de87b120cccb3e9fdc970ac367f4fa2ff8792b7483cb6c2a" }, "downloads": -1, "filename": "bonsai-code-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3a074cc2694c2f8359425efaf5e4b591", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25183, "upload_time": "2018-01-24T18:27:52", "url": "https://files.pythonhosted.org/packages/10/8f/1fe19428d924e630f713ff8f40b21985de660420c1cfcc651b39ee050a4d/bonsai-code-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "94e6b1254ec59bc006ecb567a8db4315", "sha256": "d2d24812ea361c7d32486d26f859643b8b60fca9eb274a93600df5dc45133da9" }, "downloads": -1, "filename": "bonsai_code-0.3.1-py2-none-any.whl", "has_sig": false, "md5_digest": "94e6b1254ec59bc006ecb567a8db4315", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34161, "upload_time": "2018-02-12T21:30:11", "url": "https://files.pythonhosted.org/packages/30/0e/3613e9963b581b84f168acabb2e30f7f01b0e57be5086a062cc8928aff7b/bonsai_code-0.3.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bb3ad6a7cb0727ecde315fc8e0c89452", "sha256": "65e428fc9a822b2f7a2015d56ef9093804135bae34c0e4e1cad85a3238fcb262" }, "downloads": -1, "filename": "bonsai-code-0.3.1.tar.gz", "has_sig": false, "md5_digest": "bb3ad6a7cb0727ecde315fc8e0c89452", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25239, "upload_time": "2018-02-12T21:30:13", "url": "https://files.pythonhosted.org/packages/15/46/0a2f31bb40d57c6873ece18cfdd0e416efdee4b39cfc78d2ea11884464ea/bonsai-code-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "91588f41fb3b6f32a5bafedafd5e961d", "sha256": "1f8ffd6a27380f87b00332e42c28e1a6b35adb938242b4bd1eb416ff23389454" }, "downloads": -1, "filename": "bonsai_code-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "91588f41fb3b6f32a5bafedafd5e961d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 35087, "upload_time": "2018-10-04T10:15:41", "url": "https://files.pythonhosted.org/packages/0b/5d/b1e0405d282d410ea6eb61f090df87d0c30a783f811149e860362c9060b6/bonsai_code-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd41fa3e9b9fd60df77378319f475b2b", "sha256": "f37a3a5aef38095b56ba44443159233a811929f0b6df48ce7684ab7213d117cf" }, "downloads": -1, "filename": "bonsai-code-0.4.0.tar.gz", "has_sig": false, "md5_digest": "fd41fa3e9b9fd60df77378319f475b2b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26879, "upload_time": "2018-10-04T10:15:43", "url": "https://files.pythonhosted.org/packages/28/6d/593cff3a5e2f6b70f32e976d40dbfb481bc66953cc8eaa49f2468bfc6515/bonsai-code-0.4.0.tar.gz" } ], "0.4.10": [ { "comment_text": "", "digests": { "md5": "6b2227b1620d8779eb5d57dd15888713", "sha256": "12e041319177160150481b9dc63b561787f0eee140265cc7ff3c09f7c82a0047" }, "downloads": -1, "filename": "bonsai_code-0.4.10-py2-none-any.whl", "has_sig": false, "md5_digest": "6b2227b1620d8779eb5d57dd15888713", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34063, "upload_time": "2019-06-14T13:28:51", "url": "https://files.pythonhosted.org/packages/c6/4c/ae228e51cfdf0f92b778f6f1b10990faa3055ab80988e12920b08a4f6936/bonsai_code-0.4.10-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "104050f5eca8f3e7b9d878d482c1cd6f", "sha256": "52439afbcd4598050e6a7b28186be17b783e14e466fbc628be6f0564a30b0ef0" }, "downloads": -1, "filename": "bonsai-code-0.4.10.tar.gz", "has_sig": false, "md5_digest": "104050f5eca8f3e7b9d878d482c1cd6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28516, "upload_time": "2019-06-14T13:28:53", "url": "https://files.pythonhosted.org/packages/82/92/f17245146966f4cd21aff2b0d63474e6d7b04506ab8bed678771fa49d316/bonsai-code-0.4.10.tar.gz" } ], "0.4.11": [ { "comment_text": "", "digests": { "md5": "b2ec556d018bb7800394787f6d1c1801", "sha256": "cf4f9c811e86285f3745c4715b236f9f0dd0f10c370917b10595b42feff95bce" }, "downloads": -1, "filename": "bonsai_code-0.4.11-py2-none-any.whl", "has_sig": false, "md5_digest": "b2ec556d018bb7800394787f6d1c1801", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34299, "upload_time": "2019-06-15T08:50:32", "url": "https://files.pythonhosted.org/packages/f3/ae/d5961f2a5a75b857e02759e43be964d9fabfd30dbf71d1b72a760a6f0cd5/bonsai_code-0.4.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8419fcc76c30ef8f0dfdfbc568cb1d8b", "sha256": "a2ad8d7c2947587c44a8633004a84a424e9dfca3fd6a1e02f97568c42d267e5d" }, "downloads": -1, "filename": "bonsai-code-0.4.11.tar.gz", "has_sig": false, "md5_digest": "8419fcc76c30ef8f0dfdfbc568cb1d8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28681, "upload_time": "2019-06-15T08:50:34", "url": "https://files.pythonhosted.org/packages/9f/1d/d6e1ee6735bb29e791f93f98bb514114da481639f1ea377cc9fdb71d5e30/bonsai-code-0.4.11.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "64f53a22a38c0172176b76158bd45400", "sha256": "7e785a24f990853ffab0366b0c960ec317e17f9d820ea226e0346a058fd08f20" }, "downloads": -1, "filename": "bonsai_code-0.4.5-py2-none-any.whl", "has_sig": false, "md5_digest": "64f53a22a38c0172176b76158bd45400", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 33698, "upload_time": "2018-10-29T17:52:49", "url": "https://files.pythonhosted.org/packages/23/8a/1b67ba3d7821c99db4e12b0fd2c94d5ef78da008a5a54da7de87a58a17af/bonsai_code-0.4.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bab6b1ec74514775844b6ae283a0c92f", "sha256": "c913991c1b08c4f4a03d70aff0c687ed4955bbfbdf2c6e9820af9ce2cb0291f7" }, "downloads": -1, "filename": "bonsai-code-0.4.5.tar.gz", "has_sig": false, "md5_digest": "bab6b1ec74514775844b6ae283a0c92f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28100, "upload_time": "2018-10-29T17:52:51", "url": "https://files.pythonhosted.org/packages/60/71/b7a5299a16e5b0245f2ea584607dc1cb179d4fb3fc27598d609ea50c86e4/bonsai-code-0.4.5.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "45da9d32abe33bf869d3715d139fb960", "sha256": "504ac4b29ae3c7866afbfd0c2f0f7d7273aba34e38b88782d2c278a119fe12b3" }, "downloads": -1, "filename": "bonsai_code-0.4.6-py2-none-any.whl", "has_sig": false, "md5_digest": "45da9d32abe33bf869d3715d139fb960", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 36221, "upload_time": "2019-02-13T12:27:08", "url": "https://files.pythonhosted.org/packages/73/13/1f1d7d600e50fe502247f7bf3249e7abd73ffc27c785b6dfd7a90dd813a9/bonsai_code-0.4.6-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02795322537ad5b56f6aad3ee22b912b", "sha256": "6d2c4cb74663926d2b25b8d90b9f462b62ad3c59add7e07e925103a2b02c0c0f" }, "downloads": -1, "filename": "bonsai-code-0.4.6.tar.gz", "has_sig": false, "md5_digest": "02795322537ad5b56f6aad3ee22b912b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27285, "upload_time": "2019-02-13T12:27:10", "url": "https://files.pythonhosted.org/packages/6e/3c/97ce3b69760f3c061505964871cca70a0993ced69e68ab9c46b10eee616b/bonsai-code-0.4.6.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "5a8ed67af54120229ebcddd5f317605f", "sha256": "ef136fe4ec17b1d11c00996a27e1a79e2434545ac3f477a44c167ee968fe2169" }, "downloads": -1, "filename": "bonsai_code-0.4.7-py2-none-any.whl", "has_sig": false, "md5_digest": "5a8ed67af54120229ebcddd5f317605f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 36238, "upload_time": "2019-02-13T12:39:30", "url": "https://files.pythonhosted.org/packages/b1/e0/9133e5119061d22b7a9ff28a8889e2039b663522af5c1721e5472d03957a/bonsai_code-0.4.7-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e24c37b42663d35b26b3a9e70564674", "sha256": "16af825051a6af6e36b0634bffbddccef5d3c04a93cd9844c09aa9e65c5767ae" }, "downloads": -1, "filename": "bonsai-code-0.4.7.tar.gz", "has_sig": false, "md5_digest": "0e24c37b42663d35b26b3a9e70564674", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27301, "upload_time": "2019-02-13T12:39:31", "url": "https://files.pythonhosted.org/packages/9b/09/23e86c65bd351e43774b8e12cf78b8ef048a5b591c70cfe65dc5ef5466e2/bonsai-code-0.4.7.tar.gz" } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "1869c9b959c41ff97bd25f0f11378c34", "sha256": "598b0ebcd54a6a214595b9a95cbc9bd5f67dacd14d499a3f585d40544fa3e006" }, "downloads": -1, "filename": "bonsai_code-0.4.8-py2-none-any.whl", "has_sig": false, "md5_digest": "1869c9b959c41ff97bd25f0f11378c34", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 33875, "upload_time": "2019-04-02T20:06:52", "url": "https://files.pythonhosted.org/packages/c3/b8/7b4de133cf1e0629747e01f0a3f5ab86e02a61b4c9f591db2f708707c79b/bonsai_code-0.4.8-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e41d49bab539ca19258da6fada17a123", "sha256": "0a02a44f5f95bc02b36e7746a4d942d136224ec4f68da68714520446047c07c5" }, "downloads": -1, "filename": "bonsai-code-0.4.8.tar.gz", "has_sig": false, "md5_digest": "e41d49bab539ca19258da6fada17a123", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27374, "upload_time": "2019-04-02T20:06:54", "url": "https://files.pythonhosted.org/packages/09/59/3be214ac6a213b4e5206c939e180a18b7cce03ccf7abe59c0442e818b3d6/bonsai-code-0.4.8.tar.gz" } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "d3ac09968d09a40f2d187b8ea0f2e1ac", "sha256": "aaccf5b8a3849a6c7d000df1fd97c841789ebc1f33a365e3bc008c6b9ce8e9e9" }, "downloads": -1, "filename": "bonsai_code-0.4.9-py2-none-any.whl", "has_sig": false, "md5_digest": "d3ac09968d09a40f2d187b8ea0f2e1ac", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34023, "upload_time": "2019-04-11T12:25:21", "url": "https://files.pythonhosted.org/packages/c2/66/a8ab4761b34935a41ab0fae4dc0fdd259f7396966410122269cb1d94ae11/bonsai_code-0.4.9-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2c90bb58c301eedc544d705c64765e71", "sha256": "3538b78861979adc4d7527540d2f7f21e6f5a559518a3d3738eaeadf94df8b8a" }, "downloads": -1, "filename": "bonsai-code-0.4.9.tar.gz", "has_sig": false, "md5_digest": "2c90bb58c301eedc544d705c64765e71", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27594, "upload_time": "2019-04-11T12:25:23", "url": "https://files.pythonhosted.org/packages/e3/5e/c06d670df331c8d73d4ab9609cbfdd905b11c8d3627c04e60da5c6bf0306/bonsai-code-0.4.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b2ec556d018bb7800394787f6d1c1801", "sha256": "cf4f9c811e86285f3745c4715b236f9f0dd0f10c370917b10595b42feff95bce" }, "downloads": -1, "filename": "bonsai_code-0.4.11-py2-none-any.whl", "has_sig": false, "md5_digest": "b2ec556d018bb7800394787f6d1c1801", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 34299, "upload_time": "2019-06-15T08:50:32", "url": "https://files.pythonhosted.org/packages/f3/ae/d5961f2a5a75b857e02759e43be964d9fabfd30dbf71d1b72a760a6f0cd5/bonsai_code-0.4.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8419fcc76c30ef8f0dfdfbc568cb1d8b", "sha256": "a2ad8d7c2947587c44a8633004a84a424e9dfca3fd6a1e02f97568c42d267e5d" }, "downloads": -1, "filename": "bonsai-code-0.4.11.tar.gz", "has_sig": false, "md5_digest": "8419fcc76c30ef8f0dfdfbc568cb1d8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28681, "upload_time": "2019-06-15T08:50:34", "url": "https://files.pythonhosted.org/packages/9f/1d/d6e1ee6735bb29e791f93f98bb514114da481639f1ea377cc9fdb71d5e30/bonsai-code-0.4.11.tar.gz" } ] }