{ "info": { "author": "Erik Moqvist", "author_email": "erik.moqvist@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3" ], "description": "|buildstatus|_\n|coverage|_\n|codecov|_\n\nAbout\n=====\n\n`Google Protocol Buffers`_ tools in Python 3.6+.\n\n- `C` source code generator.\n\n- `proto3`_ language parser.\n\nKnown limitations:\n\n- Options, services (gRPC), reserved fields and maps are ignored.\n\nProject homepage: https://github.com/eerimoq/pbtools\n\nDocumentation: http://pbtools.readthedocs.org/en/latest\n\nInstallation\n============\n\n.. code-block:: python\n\n pip install pbtools\n\nC source code design\n====================\n\nThe C source code is designed with the following in mind:\n\n- Clean and easy to use API.\n\n- No dynamic memory usage.\n\n- Fast encoding and decoding.\n\n- Small memory footprint.\n\nKnown limitations:\n\n- Recursive messages are not yet supported (probably never will be).\n\n- ``char`` must be 8 bits.\n\nMemory management\n-----------------\n\nA workspace, or arena, is used to allocate memory when encoding and\ndecoding messages. For simplicity, allocated memory can't be freed,\nwhich puts restrictions on how a message can be modified between\nencodings (if one want to do that). Scalar value type fields (ints,\nstrings, bytes, etc.) can be modified, but the length of repeated\nfields can't.\n\nBenchmark\n---------\n\nSee `benchmark`_ for a benchmark of a few C/C++ protobuf libraries.\n\nExample usage\n=============\n\nC source code\n-------------\n\nIn this example we use the simple proto-file `hello_world.proto`_.\n\n.. code-block:: proto\n\n syntax = \"proto3\";\n\n package hello_world;\n\n message Foo {\n int32 bar = 1;\n }\n\nGenerate C source code from the proto-file.\n\n.. code-block:: text\n\n $ pbtools generate_c_source examples/hello_world/hello_world.proto\n Successfully generated hello_world.h and hello_world.c.\n Successfully created pbtools.h and pbtools.c.\n\nSee `hello_world.h`_ and `hello_world.c`_ for the contents of the\ngenerated files.\n\nWe'll use the generated types and functions below.\n\n.. code-block:: c\n\n struct hello_world_foo_t {\n struct pbtools_message_base_t base;\n int32_t bar;\n };\n\n struct hello_world_foo_t *hello_world_foo_new(\n void *workspace_p,\n size_t size);\n\n int hello_world_foo_encode(\n struct hello_world_foo_t *self_p,\n void *encoded_p,\n size_t size);\n\n int hello_world_foo_decode(\n struct hello_world_foo_t *self_p,\n const uint8_t *encoded_p,\n size_t size);\n\nEncode and decode the Foo-message in `main.c`_.\n\n.. code-block:: c\n\n #include \n #include \"hello_world.h\"\n\n int main(int argc, const char *argv[])\n {\n int size;\n uint8_t workspace[64];\n uint8_t encoded[16];\n struct hello_world_foo_t *foo_p;\n\n /* Encode. */\n foo_p = hello_world_foo_new(&workspace[0], sizeof(workspace));\n\n if (foo_p == NULL) {\n return (1);\n }\n\n foo_p->bar = 78;\n size = hello_world_foo_encode(foo_p, &encoded[0], sizeof(encoded));\n\n if (size < 0) {\n return (2);\n }\n\n printf(\"Successfully encoded Foo into %d bytes.\\n\", size);\n\n /* Decode. */\n foo_p = hello_world_foo_new(&workspace[0], sizeof(workspace));\n\n if (foo_p == NULL) {\n return (3);\n }\n\n size = hello_world_foo_decode(foo_p, &encoded[0], size);\n\n if (size < 0) {\n return (4);\n }\n\n printf(\"Successfully decoded %d bytes into Foo.\\n\", size);\n printf(\"Foo.bar: %d\\n\", foo_p->bar);\n\n return (0);\n }\n\nBuild and run the program.\n\n.. code-block:: text\n\n $ gcc main.c hello_world.c pbtools.c -o main\n $ ./main\n Successfully encoded Foo into 2 bytes.\n Successfully decoded 2 bytes into Foo.\n Foo.bar: 78\n\nSee `hello_world`_ for all files used in this example.\n\nCommand line tool\n-----------------\n\nThe generate C source subcommand\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nBelow is an example of how to generate C source code from a\nproto-file.\n\n.. code-block:: text\n\n $ pbtools generate_c_source examples/address_book/address_book.proto\n Successfully generated address_book.h and address_book.c.\n Successfully created pbtools.h and pbtools.c.\n\nSee `address_book.h`_ and `address_book.c`_ for the contents of the\ngenerated files.\n\n.. |buildstatus| image:: https://travis-ci.org/eerimoq/pbtools.svg?branch=master\n.. _buildstatus: https://travis-ci.org/eerimoq/pbtools\n\n.. |coverage| image:: https://coveralls.io/repos/github/eerimoq/pbtools/badge.svg?branch=master\n.. _coverage: https://coveralls.io/github/eerimoq/pbtools\n\n.. |codecov| image:: https://codecov.io/gh/eerimoq/pbtools/branch/master/graph/badge.svg\n.. _codecov: https://codecov.io/gh/eerimoq/pbtools\n\n.. _Google Protocol Buffers: https://developers.google.com/protocol-buffers\n\n.. _proto3: https://developers.google.com/protocol-buffers/docs/proto3\n\n.. _address_book.h: https://github.com/eerimoq/pbtools/blob/master/examples/address_book/generated/address_book.h\n\n.. _address_book.c: https://github.com/eerimoq/pbtools/blob/master/examples/address_book/generated/address_book.c\n\n.. _hello_world.proto: https://github.com/eerimoq/pbtools/blob/master/examples/hello_world/hello_world.proto\n\n.. _hello_world.h: https://github.com/eerimoq/pbtools/blob/master/examples/hello_world/generated/hello_world.h\n\n.. _hello_world.c: https://github.com/eerimoq/pbtools/blob/master/examples/hello_world/generated/hello_world.c\n\n.. _main.c: https://github.com/eerimoq/pbtools/blob/master/examples/hello_world/main.c\n\n.. _hello_world: https://github.com/eerimoq/pbtools/blob/master/examples/hello_world\n\n.. _benchmark: https://github.com/eerimoq/pbtools/blob/master/benchmark\n\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/eerimoq/pbtools", "keywords": "protobuf,proto,protocol buffers", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pbtools", "package_url": "https://pypi.org/project/pbtools/", "platform": "", "project_url": "https://pypi.org/project/pbtools/", "project_urls": { "Homepage": "https://github.com/eerimoq/pbtools" }, "release_url": "https://pypi.org/project/pbtools/0.24.2/", "requires_dist": [ "textparser (>=0.21.1)" ], "requires_python": "", "summary": "Google Protocol Buffers tools.", "version": "0.24.2" }, "last_serial": 5985439, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "30b167f41cea4b57f91912b999a7148d", "sha256": "94262e50008ae84cfd317f9cb4065e4226684bc1bcb62309755797544ad43bff" }, "downloads": -1, "filename": "pbtools-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "30b167f41cea4b57f91912b999a7148d", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 3192, "upload_time": "2019-08-19T06:40:05", "url": "https://files.pythonhosted.org/packages/ad/36/442d072aae4fc5ac66350a7d1234ee0584f9fb6ac74d6d1e5932280ee423/pbtools-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d71872b2f1c8595d4e05412d64531bd7", "sha256": "01f2a55424b2ea2f6c6c049e9091136ce30744b7fa9a9c897077f228afad709e" }, "downloads": -1, "filename": "pbtools-0.1.0.tar.gz", "has_sig": false, "md5_digest": "d71872b2f1c8595d4e05412d64531bd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2623, "upload_time": "2019-08-19T06:40:08", "url": "https://files.pythonhosted.org/packages/f6/8c/8312d6fbdbdb9a36871d9fb0b40106da98941c737ad147f9f2050ec595f8/pbtools-0.1.0.tar.gz" } ], "0.10.0": [ { "comment_text": "", "digests": { "md5": "bb9b7ad676a62b54c35222ed6611af5e", "sha256": "280fe7f3cc23cc827957998f036e16540c842e1bb2ffcf1620eb9b99f5ca871e" }, "downloads": -1, "filename": "pbtools-0.10.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb9b7ad676a62b54c35222ed6611af5e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24483, "upload_time": "2019-09-15T11:12:52", "url": "https://files.pythonhosted.org/packages/0f/e4/2cfa2c2ad312655d356043089449f73a17f9d203c1012f0a4b53b6000786/pbtools-0.10.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "10fa9cc3e7c57f8cc8fd63f2d2d234e0", "sha256": "c6d3ce1ecf750c5c4e7adf5dd1f2c967d226c2aef8df8b072544fdd9045cc285" }, "downloads": -1, "filename": "pbtools-0.10.0.tar.gz", "has_sig": false, "md5_digest": "10fa9cc3e7c57f8cc8fd63f2d2d234e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91050, "upload_time": "2019-09-15T11:12:54", "url": "https://files.pythonhosted.org/packages/e2/75/3c8a2b9f0e65b8d06603be998c4d48142965378355bb0dfde3ce6f21d077/pbtools-0.10.0.tar.gz" } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "a286a8fb94fda1ca263851a377ff674b", "sha256": "cb121b06acdfba00c52355aa813bb2fa53bf7260a66983776b0fa2a18fa4cd2f" }, "downloads": -1, "filename": "pbtools-0.11.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a286a8fb94fda1ca263851a377ff674b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24482, "upload_time": "2019-09-15T11:32:52", "url": "https://files.pythonhosted.org/packages/e4/a7/add48f2ab1fd776f7c1aee0c870e7dfbf42470cef9b3e77a231316a08530/pbtools-0.11.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "37cc3311b78c682d2533bb258c3bdab5", "sha256": "a8e6b397733fe1867442084f54fce23209a3d49bf4f4486748464e7fbecdcf56" }, "downloads": -1, "filename": "pbtools-0.11.0.tar.gz", "has_sig": false, "md5_digest": "37cc3311b78c682d2533bb258c3bdab5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91676, "upload_time": "2019-09-15T11:32:54", "url": "https://files.pythonhosted.org/packages/f8/8f/136b4c623ef57553f1b8c4762388acf55faa08ec97d674680adcb42c6a2a/pbtools-0.11.0.tar.gz" } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "7db3508cfd00039e14bbc10eafe22cbf", "sha256": "cb4a2526a3b1fae6b6e2601a0e49cbeb6b0b7d10dff666dd4ad663009d82191c" }, "downloads": -1, "filename": "pbtools-0.12.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7db3508cfd00039e14bbc10eafe22cbf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24736, "upload_time": "2019-09-15T14:12:12", "url": "https://files.pythonhosted.org/packages/4f/ab/2bfe1cd1cc9c0092578daecbac688e3bd11ade64d885f1e7ff00090d2841/pbtools-0.12.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e50d55beb978899afc7f6e81d8406e0e", "sha256": "732fe95a51d4df58c96afcd23a6eda7c11cccc93ae2f5fbbd93ae337ee092b67" }, "downloads": -1, "filename": "pbtools-0.12.0.tar.gz", "has_sig": false, "md5_digest": "e50d55beb978899afc7f6e81d8406e0e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92189, "upload_time": "2019-09-15T14:12:14", "url": "https://files.pythonhosted.org/packages/f6/c4/9f0652d70bc56d3552dd389eca78840149c8cbe92ff0fc44fafdd95cd7dd/pbtools-0.12.0.tar.gz" } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "4e8f7bac2d13cbe654f2324bed0263b4", "sha256": "f24d7c4d34bd70b3d59abf168898fa816ca37cb47b98b75e80ba902899dd5c23" }, "downloads": -1, "filename": "pbtools-0.13.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e8f7bac2d13cbe654f2324bed0263b4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24753, "upload_time": "2019-09-15T14:22:58", "url": "https://files.pythonhosted.org/packages/2c/28/5b232131b8a2e3d2af4dda726daeeeba8ab46023a490062f0dbeddee10f3/pbtools-0.13.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5751c7cf42635cd26cd743fb2cfdba07", "sha256": "95022fffad5ee0e514eb2c2e0def2cd0228dd134155a5523bd422a3984647ede" }, "downloads": -1, "filename": "pbtools-0.13.0.tar.gz", "has_sig": false, "md5_digest": "5751c7cf42635cd26cd743fb2cfdba07", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 92223, "upload_time": "2019-09-15T14:23:00", "url": "https://files.pythonhosted.org/packages/8a/30/866ac35c3a5cf5b151939cd45b89251fdb7a9a824395b9f6ff0689d14b57/pbtools-0.13.0.tar.gz" } ], "0.14.0": [ { "comment_text": "", "digests": { "md5": "1bd3e818beec4c9576825313e78c601a", "sha256": "671432387d395a02735cfe017410a1d0af649127900746d3ccb98f77175b039f" }, "downloads": -1, "filename": "pbtools-0.14.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1bd3e818beec4c9576825313e78c601a", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26068, "upload_time": "2019-09-16T04:32:20", "url": "https://files.pythonhosted.org/packages/cb/91/023c5dc2bfd09f15a4eeee6dd9b985dc28df8fabbb2264a8ce6a247004e4/pbtools-0.14.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "13330141f145b7c8f2d8c68856029f6d", "sha256": "8f50db34099764930fd20648860f238c240c3e33fa6b9767d3c80f50dba0e774" }, "downloads": -1, "filename": "pbtools-0.14.0.tar.gz", "has_sig": false, "md5_digest": "13330141f145b7c8f2d8c68856029f6d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 95744, "upload_time": "2019-09-16T04:32:22", "url": "https://files.pythonhosted.org/packages/93/ef/b13a547b9853b5b93eae2e7c3da54d14b92d1f59df0cc9f4979e5858d8b5/pbtools-0.14.0.tar.gz" } ], "0.15.0": [ { "comment_text": "", "digests": { "md5": "43533b627ff1a0d1aed72870c952c7b5", "sha256": "aa5b507896af2196c37e1a25818c737233c238e5e825ca2490aa523851586701" }, "downloads": -1, "filename": "pbtools-0.15.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "43533b627ff1a0d1aed72870c952c7b5", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24770, "upload_time": "2019-09-17T20:14:34", "url": "https://files.pythonhosted.org/packages/e8/a9/8f2357747bac85c45ebd67d97f70c9da770dd1d32ee429ca20177e5d1691/pbtools-0.15.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ade068b5f6e790ac3f4fdb1060e89e74", "sha256": "c86d47937af0b80353f3134075ccbf6e5e837b8858a198e2abf396fcc0f880ba" }, "downloads": -1, "filename": "pbtools-0.15.0.tar.gz", "has_sig": false, "md5_digest": "ade068b5f6e790ac3f4fdb1060e89e74", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 94718, "upload_time": "2019-09-17T20:14:36", "url": "https://files.pythonhosted.org/packages/65/22/87500a60a47d59066af63f2f81f8e9c060d348a90f0698dd5894e1bd405d/pbtools-0.15.0.tar.gz" } ], "0.16.0": [ { "comment_text": "", "digests": { "md5": "13ea079abd391b84be6cc2040aaac102", "sha256": "b770bafef773990f1459983672548447c75452566fcaf4960d0887bc78ca13b5" }, "downloads": -1, "filename": "pbtools-0.16.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "13ea079abd391b84be6cc2040aaac102", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25877, "upload_time": "2019-09-18T04:39:56", "url": "https://files.pythonhosted.org/packages/6a/f5/35ba80ff4acb179eec115765c5f0900f80aeb37a3d1da008270487f9dfcc/pbtools-0.16.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0b45e429f210ead59ed03eb12144cb3b", "sha256": "a3cd8dbbc97854542680827d238f81c9af1fc1e3aa0116116308897c8aae98cc" }, "downloads": -1, "filename": "pbtools-0.16.0.tar.gz", "has_sig": false, "md5_digest": "0b45e429f210ead59ed03eb12144cb3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 97540, "upload_time": "2019-09-18T04:39:58", "url": "https://files.pythonhosted.org/packages/b4/93/abdd2b48e81fb104e604422ba4fdc187972e6d0c74ae182b87bd34b0076c/pbtools-0.16.0.tar.gz" } ], "0.17.0": [ { "comment_text": "", "digests": { "md5": "6cb932bb23d993fc114e7ac15e631c6e", "sha256": "7b520609dab1789f3ff70d2a306ba2797ca03967a8ef71fd83deb263b19eef6f" }, "downloads": -1, "filename": "pbtools-0.17.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6cb932bb23d993fc114e7ac15e631c6e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25875, "upload_time": "2019-09-18T04:58:39", "url": "https://files.pythonhosted.org/packages/1a/3a/6c96c1679633872998d3fad655ae8ee68cff451974ee47945849a1d031b0/pbtools-0.17.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7cba72c4daaa33ad736fb6e8bb6883f8", "sha256": "f22a18584cc24705cb65340a72eb3efce6f9cf033b11da748cb2790c6f00eca6" }, "downloads": -1, "filename": "pbtools-0.17.0.tar.gz", "has_sig": false, "md5_digest": "7cba72c4daaa33ad736fb6e8bb6883f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 97758, "upload_time": "2019-09-18T04:58:41", "url": "https://files.pythonhosted.org/packages/d4/b9/083254440b9a571883ae9e45654ab90a39f4cad0621fb1bff779472ef307/pbtools-0.17.0.tar.gz" } ], "0.18.0": [ { "comment_text": "", "digests": { "md5": "7a0342384c530e9b2e25315a3bb05c2e", "sha256": "4cc7cdef2a8431baa5b000021bb12519da278493f355cf970ffd0ff4f3cae586" }, "downloads": -1, "filename": "pbtools-0.18.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "7a0342384c530e9b2e25315a3bb05c2e", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24420, "upload_time": "2019-09-18T07:24:48", "url": "https://files.pythonhosted.org/packages/b0/dc/10af50d732a4009f512b69f8fa0a26d58944c9eb7ce0208aeb6773d628ed/pbtools-0.18.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea2361d11c4a85bed4ce1ce79635f41a", "sha256": "014c6bcc9d8459917fb75e7c9924fc7503cd9507a4933c5cc9dea36ad2ba3c88" }, "downloads": -1, "filename": "pbtools-0.18.0.tar.gz", "has_sig": false, "md5_digest": "ea2361d11c4a85bed4ce1ce79635f41a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 94625, "upload_time": "2019-09-18T07:24:50", "url": "https://files.pythonhosted.org/packages/45/14/6b19c7a6cf92a793a4bdc8045d89eae8a3fd4fd653711df985fdfe5cc313/pbtools-0.18.0.tar.gz" } ], "0.19.0": [ { "comment_text": "", "digests": { "md5": "3ddecbcd63ab4461623201cbe1bf29f6", "sha256": "6caf59ae8376ab1f1d31aa7bf6d34bb3f1441dc25d41aaaa56df0d616c743bc1" }, "downloads": -1, "filename": "pbtools-0.19.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3ddecbcd63ab4461623201cbe1bf29f6", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24525, "upload_time": "2019-09-18T14:33:45", "url": "https://files.pythonhosted.org/packages/37/3b/c9e6a43b7909d48349863ba08959a29e32e9f5af6e1d9bf322edd5f79fee/pbtools-0.19.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "96d32952bfddd5f46bd68a43af0c9631", "sha256": "f4cee1ee386e9343701cc3bca55b4c0384d67dd1bd3de2c3518d073d2436a6b9" }, "downloads": -1, "filename": "pbtools-0.19.0.tar.gz", "has_sig": false, "md5_digest": "96d32952bfddd5f46bd68a43af0c9631", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 100794, "upload_time": "2019-09-18T14:33:48", "url": "https://files.pythonhosted.org/packages/7e/6a/c473796e86bdaf620257af4af3fabdc4b07a95cc301b909b3e94aadd0227/pbtools-0.19.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a98dd7c9f6fabfe477510f2fcfe67e12", "sha256": "afb4ce3f081756054d93ef78261d6a85f9c4fd85197aa426eccab74854fda17c" }, "downloads": -1, "filename": "pbtools-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a98dd7c9f6fabfe477510f2fcfe67e12", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13115, "upload_time": "2019-08-26T04:54:11", "url": "https://files.pythonhosted.org/packages/9d/1a/e89100a5f10a7c27265dcfe6cfe69e24532df02eff432e88d64f06716dbf/pbtools-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d7a12221a37f85d4b3709c18103a975a", "sha256": "e9908c5936115ef0733db0edca98cad24934fb99d1a5bae8e6121a8b57dbc809" }, "downloads": -1, "filename": "pbtools-0.2.0.tar.gz", "has_sig": false, "md5_digest": "d7a12221a37f85d4b3709c18103a975a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 53957, "upload_time": "2019-08-26T04:54:13", "url": "https://files.pythonhosted.org/packages/07/7a/cc88854557c5c4fa0252dadbf60b094e477e9a6db555f39ed947bff40c4a/pbtools-0.2.0.tar.gz" } ], "0.20.0": [ { "comment_text": "", "digests": { "md5": "6fd6daa62934fbecbf393446366ce601", "sha256": "e7083d2a99a16b1b8fc86bb2ea5d8cb2094470027ce8283d58f9f77613107f0d" }, "downloads": -1, "filename": "pbtools-0.20.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6fd6daa62934fbecbf393446366ce601", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24775, "upload_time": "2019-09-19T04:25:00", "url": "https://files.pythonhosted.org/packages/73/02/71a29a1aa9b854aad640e20ecbb4d97a23928f25a57709c245dae85c065d/pbtools-0.20.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3b1f9e4acb4cc53f922eac5b24d6754e", "sha256": "b56b39f7b366b6f1373bad567d562a242d978af6536a3d44b7c0729ea6472c0f" }, "downloads": -1, "filename": "pbtools-0.20.0.tar.gz", "has_sig": false, "md5_digest": "3b1f9e4acb4cc53f922eac5b24d6754e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 101513, "upload_time": "2019-09-19T04:25:08", "url": "https://files.pythonhosted.org/packages/ad/23/6ffca74b6b7c1636acbae66a9cb28b54dba483c4223e928f4a04c0db685c/pbtools-0.20.0.tar.gz" } ], "0.21.0": [ { "comment_text": "", "digests": { "md5": "906e8e1fd5f428f28df1c991756ac0e8", "sha256": "eece613b8ffcc3b576291fb271a33f53be9e52416e2d2e4be77b0b44880832f9" }, "downloads": -1, "filename": "pbtools-0.21.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "906e8e1fd5f428f28df1c991756ac0e8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26624, "upload_time": "2019-09-19T21:02:26", "url": "https://files.pythonhosted.org/packages/71/62/5a84bf610dfd2c6b919155527315dd883ed83d3c31e653cf5ad4b711dd6a/pbtools-0.21.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b365fa5913b2a1a8195ba1de51b235ee", "sha256": "47e9ed3f0c38d0ccdd098f7bf71b2fe303cd381c738ab5b8e18669b3de0cf78d" }, "downloads": -1, "filename": "pbtools-0.21.0.tar.gz", "has_sig": false, "md5_digest": "b365fa5913b2a1a8195ba1de51b235ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 107088, "upload_time": "2019-09-19T21:02:28", "url": "https://files.pythonhosted.org/packages/96/53/548af7fad69d730a97484677f2c031672c92b2c8972db1d7fc66d0ea02d4/pbtools-0.21.0.tar.gz" } ], "0.22.0": [ { "comment_text": "", "digests": { "md5": "e16a8cf24c693a36c7b3fe050991d660", "sha256": "08a55b1b1239805c11980faa1b0fdcacdd336016dc119f2a78d1e1b0ea71a964" }, "downloads": -1, "filename": "pbtools-0.22.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e16a8cf24c693a36c7b3fe050991d660", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27274, "upload_time": "2019-09-21T04:52:07", "url": "https://files.pythonhosted.org/packages/22/6c/044e3fa419bd4d4a872c9d70bae37a63e13f77ff2858d6739224112b4f17/pbtools-0.22.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bf6c470a8cd845ff734f02c53cd4e333", "sha256": "96906db78cdc1ad44abc655aeedff0886f46701a800dd3e72c328460a615a7d0" }, "downloads": -1, "filename": "pbtools-0.22.0.tar.gz", "has_sig": false, "md5_digest": "bf6c470a8cd845ff734f02c53cd4e333", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108210, "upload_time": "2019-09-21T04:52:09", "url": "https://files.pythonhosted.org/packages/7e/54/92ce7bde86b9b21769f5f28ff4c6365fa71d83f3a747c15f8fde432a2bd3/pbtools-0.22.0.tar.gz" } ], "0.23.0": [ { "comment_text": "", "digests": { "md5": "670432435ee178526ae914bad7d41502", "sha256": "35306791ba3b2b552a1386fe6ea046a56bed1d7e2ec5a3291288e691181dbfb6" }, "downloads": -1, "filename": "pbtools-0.23.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "670432435ee178526ae914bad7d41502", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27307, "upload_time": "2019-09-21T07:29:18", "url": "https://files.pythonhosted.org/packages/94/b0/4fcec719721dbd2caf5ad257ce45d0b03d8c25d3d6e19387e5bbc844a0d4/pbtools-0.23.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "56013816afb470fb03a231ede71a5719", "sha256": "5555f1fae4c63322bd455ce3bf2d35912fcc5bc612900399e334b80d06f0bd17" }, "downloads": -1, "filename": "pbtools-0.23.0.tar.gz", "has_sig": false, "md5_digest": "56013816afb470fb03a231ede71a5719", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108309, "upload_time": "2019-09-21T07:29:20", "url": "https://files.pythonhosted.org/packages/17/60/bdc72be9ec888d35604093e0c08e1baf6b98b63fc6fc76fc8a563c7873fc/pbtools-0.23.0.tar.gz" } ], "0.24.0": [ { "comment_text": "", "digests": { "md5": "ae7027935a920eb7a818dba82038170b", "sha256": "b281cb82710071738150fe737772cfe0e1783bdab2bd7ddc2441eb4a94a0be5e" }, "downloads": -1, "filename": "pbtools-0.24.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ae7027935a920eb7a818dba82038170b", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27746, "upload_time": "2019-09-24T04:15:07", "url": "https://files.pythonhosted.org/packages/6f/b6/548c9a86e36defd9f519631d03afe46b1f2663ba3f0ac07f19f7317abb46/pbtools-0.24.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "243708038c28da797a109d894e67672e", "sha256": "7f339a10370a1fddf3b98dd8719a622ef73fd6e3e357a70e98d897194a5af45d" }, "downloads": -1, "filename": "pbtools-0.24.0.tar.gz", "has_sig": false, "md5_digest": "243708038c28da797a109d894e67672e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 109029, "upload_time": "2019-09-24T04:15:10", "url": "https://files.pythonhosted.org/packages/fa/bd/74a0aab0e8d844a667a04ef0dc5c1db381dbaf31a15b20b4c39d5ac5f3a1/pbtools-0.24.0.tar.gz" } ], "0.24.1": [ { "comment_text": "", "digests": { "md5": "4e11b12b103ebe4bf71d21c45cc01078", "sha256": "ff113c81ee7654b0bde3aaf36aea686e4ed1d46bebbc270bee82de7a46faba06" }, "downloads": -1, "filename": "pbtools-0.24.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4e11b12b103ebe4bf71d21c45cc01078", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 27790, "upload_time": "2019-10-07T22:03:44", "url": "https://files.pythonhosted.org/packages/8c/0b/fb56cac0bce4336ec7e8d7b1843c256fbce3f7b92ee68c12d0ae01be22f5/pbtools-0.24.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ee6ac45c15c3d47e742671071c421b24", "sha256": "d7b9cba8214f2545c384e64f7dc09c98479b4829c854f50d8d8f1b413f45da8d" }, "downloads": -1, "filename": "pbtools-0.24.1.tar.gz", "has_sig": false, "md5_digest": "ee6ac45c15c3d47e742671071c421b24", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 115785, "upload_time": "2019-10-07T22:03:47", "url": "https://files.pythonhosted.org/packages/77/d9/fbbfd607e68e08c7183264bd750ebda6824d2b79a618682d6cf37e903a8e/pbtools-0.24.1.tar.gz" } ], "0.24.2": [ { "comment_text": "", "digests": { "md5": "55560c5fe5691aaad8b3dcf26abe7d89", "sha256": "296227e2cfd58204eb3972fc7c3bfc80254e815e02f1e8e26a800b0cc8adc571" }, "downloads": -1, "filename": "pbtools-0.24.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "55560c5fe5691aaad8b3dcf26abe7d89", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26319, "upload_time": "2019-10-16T16:50:26", "url": "https://files.pythonhosted.org/packages/c3/2d/a2bbe95d2f0be97190391f24fb9bf93801412a489b54542e39ef05592d7c/pbtools-0.24.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b03811eceeb8f5f28261714a7c0300f", "sha256": "2694009b70f7fcf020ca1e87479ac41f0904b1c2905cb8b5c6901717fdcf2ca2" }, "downloads": -1, "filename": "pbtools-0.24.2.tar.gz", "has_sig": false, "md5_digest": "1b03811eceeb8f5f28261714a7c0300f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113237, "upload_time": "2019-10-16T16:50:29", "url": "https://files.pythonhosted.org/packages/c5/51/d93b8652f55e9de398d6eecd703c26af65aef4270fb1fe916ef552363e71/pbtools-0.24.2.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "db5c6d76a8181c338172882acee87c83", "sha256": "a82a8c75ffecf7ae4f9f2b2007aa3037bce8a4f91b108d92e2ed28863dc3c9b0" }, "downloads": -1, "filename": "pbtools-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "db5c6d76a8181c338172882acee87c83", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 12616, "upload_time": "2019-09-08T19:33:23", "url": "https://files.pythonhosted.org/packages/aa/21/27ec58a6089c9c1540309d5ace69a91121b727b5d269fab521431ca2cb6d/pbtools-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7ef7d34995fd970b132e71998b4bc5bd", "sha256": "5a338e22c9080f76c4cfc33b663b0b47cabb837fcff11c898830c15e6f6896d9" }, "downloads": -1, "filename": "pbtools-0.3.0.tar.gz", "has_sig": false, "md5_digest": "7ef7d34995fd970b132e71998b4bc5bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 65180, "upload_time": "2019-09-08T19:33:25", "url": "https://files.pythonhosted.org/packages/2b/00/580b2965ae7ef36999b24f6ac6cffe4bab0d49fcf005e75436058857e174/pbtools-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "dd5c83ace7888112c65597571d861a40", "sha256": "dc6b7a7f629731d0333e9b211266e998811d3f48de607c14833f2233b1b71b56" }, "downloads": -1, "filename": "pbtools-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dd5c83ace7888112c65597571d861a40", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22702, "upload_time": "2019-09-09T18:55:02", "url": "https://files.pythonhosted.org/packages/95/5d/f021c4188fa31c94dba48cece1e470ea5c36230c55bfb0dbd9213d2c4151/pbtools-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8511ae7a056e81a3db1978e710871f96", "sha256": "824034aac3c4badfdade617dc90eaf77bd3b31564200304f3aaef9919c6cd775" }, "downloads": -1, "filename": "pbtools-0.4.0.tar.gz", "has_sig": false, "md5_digest": "8511ae7a056e81a3db1978e710871f96", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74870, "upload_time": "2019-09-09T18:55:05", "url": "https://files.pythonhosted.org/packages/48/c6/93e56bfdfc28064de71bcfc1982cd38b299afdd45e94283fa90f49fd0486/pbtools-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "e60a4ddd5b27042e8a54b575dbf3eec2", "sha256": "3b00dde20da8b720f273c1f58726e37117272ce03cb2e62914d4fb1e8e37b4a7" }, "downloads": -1, "filename": "pbtools-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e60a4ddd5b27042e8a54b575dbf3eec2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22719, "upload_time": "2019-09-09T19:53:21", "url": "https://files.pythonhosted.org/packages/13/18/af76b9f2afc407192121320c4ab76e426a384f5377c3bbff32636dbd5bb3/pbtools-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77468f619c7c8fdb1572c4611246d3a7", "sha256": "78fe45bddbfe11b99c77138e69e0bbb1f58908da84797898f5f861316094f805" }, "downloads": -1, "filename": "pbtools-0.5.0.tar.gz", "has_sig": false, "md5_digest": "77468f619c7c8fdb1572c4611246d3a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75052, "upload_time": "2019-09-09T19:53:23", "url": "https://files.pythonhosted.org/packages/4d/3b/dcf8867c2fcf7257931f2fad270a4b23b17f3949cf23dc896663247ddfaf/pbtools-0.5.0.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "c249778ab462177062f3438c74c05157", "sha256": "f834e93c933c6cb46adee6a234072dd976351ebddec3cc0d15b883834b93e78d" }, "downloads": -1, "filename": "pbtools-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "c249778ab462177062f3438c74c05157", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 22728, "upload_time": "2019-09-09T19:58:25", "url": "https://files.pythonhosted.org/packages/b2/90/75f4c2d5bbcab0690776aa169262c8d785b25ea3f71bd8c272aaa60b97bd/pbtools-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aaaaae3df8e92c8231605f933e49bda4", "sha256": "c58ae5f0603a586a60e7bd4b3c0426101936d9e24fdbc36a76e0029aa8942224" }, "downloads": -1, "filename": "pbtools-0.6.0.tar.gz", "has_sig": false, "md5_digest": "aaaaae3df8e92c8231605f933e49bda4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75066, "upload_time": "2019-09-09T19:58:27", "url": "https://files.pythonhosted.org/packages/35/9e/25a096f1cffa2cb21e0d9e7f90f49bc2660720f38638d08d04693f619cf6/pbtools-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "b668efa60b61e92a13342860bd934096", "sha256": "825cfee5d6e530b8e2173f0c67168a14ebe45d663c70eda4b631689abdae34f5" }, "downloads": -1, "filename": "pbtools-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b668efa60b61e92a13342860bd934096", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 23891, "upload_time": "2019-09-11T14:06:04", "url": "https://files.pythonhosted.org/packages/f9/7f/cd907a411747cd6a79eb237ce2bdc66be5acb2269dbc12d321a01dd071e6/pbtools-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9cc79830ff5babdf5ebf631616f87232", "sha256": "4616d602eba1895d1dafc76f0e6d7ea044a72fb7312b660f623dbb2c10a51ca5" }, "downloads": -1, "filename": "pbtools-0.7.0.tar.gz", "has_sig": false, "md5_digest": "9cc79830ff5babdf5ebf631616f87232", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 85804, "upload_time": "2019-09-11T14:06:06", "url": "https://files.pythonhosted.org/packages/28/2e/634a8cf0a93d40526d32e88fdf758e2efed510103fc0012b080f737ebef2/pbtools-0.7.0.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "e775cbc6845f7ce83126e2e333d3fea7", "sha256": "51a91704f76a45a9139aa2a25ef157261a74750c09eb74501401b7c6d288f71a" }, "downloads": -1, "filename": "pbtools-0.8.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e775cbc6845f7ce83126e2e333d3fea7", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 24999, "upload_time": "2019-09-11T21:04:41", "url": "https://files.pythonhosted.org/packages/38/f9/067aec4c26b8486276f818c903858387d6234f0d2edf9c7a0533a2b0014f/pbtools-0.8.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8210ac6f9d877ca44e04b53e83aa2d0d", "sha256": "af7a57d47367c1f689f20fb5fa655342c19a6c6cbca8384f558be00a9910225c" }, "downloads": -1, "filename": "pbtools-0.8.0.tar.gz", "has_sig": false, "md5_digest": "8210ac6f9d877ca44e04b53e83aa2d0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 87469, "upload_time": "2019-09-11T21:04:43", "url": "https://files.pythonhosted.org/packages/87/fa/b86efac638c0eec5d58cf6854bd15bbd68cd1d9413eddcd6a3e9ec72d48c/pbtools-0.8.0.tar.gz" } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "089c9b7ac99617a1217b926ab2d147bf", "sha256": "d9b6f2cc58b165bc5d4d1df8083cf4128fb1b517563cb0184b1a55bc7bac4bc6" }, "downloads": -1, "filename": "pbtools-0.9.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "089c9b7ac99617a1217b926ab2d147bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 25228, "upload_time": "2019-09-12T05:24:26", "url": "https://files.pythonhosted.org/packages/ed/14/0344e7d9751123ee3d609fafdc32bd4796308e4474c14fd78525c752022f/pbtools-0.9.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b752b7f4dc56a4e73bc0fa1d3b4d77f3", "sha256": "049cab9104c709e2ad43e4002947dee747a0e2c26bef02837ec5856bbd48e8b4" }, "downloads": -1, "filename": "pbtools-0.9.0.tar.gz", "has_sig": false, "md5_digest": "b752b7f4dc56a4e73bc0fa1d3b4d77f3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88961, "upload_time": "2019-09-12T05:24:28", "url": "https://files.pythonhosted.org/packages/91/98/64b13d3866ab52524e14b0e5d7c88e3838adb17163e14a009d20fb86c892/pbtools-0.9.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "55560c5fe5691aaad8b3dcf26abe7d89", "sha256": "296227e2cfd58204eb3972fc7c3bfc80254e815e02f1e8e26a800b0cc8adc571" }, "downloads": -1, "filename": "pbtools-0.24.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "55560c5fe5691aaad8b3dcf26abe7d89", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 26319, "upload_time": "2019-10-16T16:50:26", "url": "https://files.pythonhosted.org/packages/c3/2d/a2bbe95d2f0be97190391f24fb9bf93801412a489b54542e39ef05592d7c/pbtools-0.24.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1b03811eceeb8f5f28261714a7c0300f", "sha256": "2694009b70f7fcf020ca1e87479ac41f0904b1c2905cb8b5c6901717fdcf2ca2" }, "downloads": -1, "filename": "pbtools-0.24.2.tar.gz", "has_sig": false, "md5_digest": "1b03811eceeb8f5f28261714a7c0300f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 113237, "upload_time": "2019-10-16T16:50:29", "url": "https://files.pythonhosted.org/packages/c5/51/d93b8652f55e9de398d6eecd703c26af65aef4270fb1fe916ef552363e71/pbtools-0.24.2.tar.gz" } ] }