{ "info": { "author": "Jampp", "author_email": "klauss@jampp.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": ".. _using-sharedbuffers:\n\nUsing sharedbuffers\n===================\n\nThis library implements shared-memory typed buffers that can be read and manipulated (and we'll eventually\nsupport writes too) efficiently without serialization or deserialization.\n\nThe main supported implementation of obtaining shared memory is by memory-mapping files, but the library also supports\nmapping buffers (anonymous mmap objects) as well, albeit they're harder to share among processes.\n\nSupported primivite types:\n\n * int (up to 64 bit precision)\n * str (bytes)\n * unicode\n * frozenset\n * tuple / list\n * dict\n * buffer\n * date\n * datetime\n * numpy arrays\n * decimal\n\nPrimitive types can be cloned into their actual builtin objects (As specified by the mapped types), which is fast,\nbut potentially memory-intensive. In addition, they can be proxied, in which case they will be built directly\non top of the memory mapping, without the need for constructing the actual object. Proxied objects aim at supporting\nthe same interface as the builtin containers.\n\nObjects can be registered with schema serializers and thus composite types can be mapped as well. For this to function\nproperly, objects need a class attribute specifying the attributes it holds and the type of the attributes. When an\nattribute doesn't have a clearly defined type, it can be wrapped in a RTTI-containing container by specifying it as\ntype `object`.\n\nFor example:\n\n.. code:: python\n\n class SomeStruct(object):\n __slot_types__ = {\n 'a' : int,\n 'b' : float,\n 's' : str,\n 'u' : unicode,\n 'fset' : frozenset,\n 'l' : list,\n 'o' : object,\n }\n __slots__ = __slot_types__.keys()\n\nAdding `__slot_types__`, however, isn't enough to make the object mappable. A schema definition needs to be created,\nwhich can be used to map files or buffers and obtain proxies to the information within:\n\n.. code:: python\n\n class SomeStruct(object):\n __slot_types__ = {\n 'a' : int,\n 'b' : float,\n 's' : str,\n 'u' : unicode,\n 'fset' : frozenset,\n 'l' : list,\n 'o' : object,\n }\n __slots__ = __slot_types__.keys()\n __schema__ = mapped_struct.Schema.from_typed_slots(__slot_types__)\n\nUsing the schema is thus straightforward:\n\n.. code:: python\n\n s = SomeStruct()\n s.a = 3\n s.s = 'blah'\n s.fset = frozenset([1,3])\n s.o = 3\n s.__schema__.pack(s) # returns a bytearray\n\n buf = bytearray(1000)\n\n # writes in offset 10 of buf, returns the size of the written object\n s.__schema__.pack_into(s, buf, 10)\n\n # returns a proxy for the object just packed into buf, does not deserialize\n p = s.__schema__.unpack_from(s, buf, 10)\n\n print p.a\n print p.s\n print p.fset\n\n.. _composite-types:\n\nDeclaring compound types\n------------------------\n\nTyped objects can be nested, but for that a typecode must be assigned to each type in order for `RTTI` to properly\nidentify the custom types:\n\n.. code:: python\n\n SomeStruct.__mapped_type__ = mapped_struct.mapped_object.register_schema(\n SomeStruct, SomeStruct.__schema__, 'S')\n\nFrom then on, `SomeStruct` can be used as any other type when declaring field types.\n\n.. _container-structures:\n\nContainer structures\n--------------------\n\nHigh-level typed container_ classes can be created by inheriting the proper base class.\n\nThe API for these high-level container objects is aimed at collections that don't really fit in RAM in their\npure-python form, so they must be built using an iterator over the items (ideally a generator that doesn't\nput the whole collection in memory at once), and then mapped from the resulting file or buffer.\n\nCurrently, there are three kind of mappings supported: string-to-object, uint-to-object and a generic object-to-object.\nThe first two are provided for efficiency's sake; use the generic one when the others won't do.\n\n.. code:: python\n\n class StructArray(mapped_struct.MappedArrayProxyBase):\n schema = SomeStruct.__schema__\n class StructNameMapping(mapped_struct.MappedMappingProxyBase):\n IdMapper = mapped_struct.StringIdMapper\n ValueArray = StructArray\n class StructIdMapping(mapped_struct.MappedMappingProxyBase):\n IdMapper = mapped_struct.NumericIdMapper\n ValueArray = StructArray\n class StructObjectMapping(mapped_struct.MappedMappingProxyBase):\n IdMapper = mapped_struct.ObjectIdMapper\n ValueArray = StructArray\n\nAn example:\n\n.. code:: python\n\n with tempfile.NamedTemporaryFile() as destfile:\n arr = StructArray.build([SomeStruct(), SomeStruct()], destfile=destfile)\n print arr[0]\n\n with tempfile.NamedTemporaryFile() as destfile:\n arr = StructNameMapping.build(dict(a=SomeStruct(), b=SomeStruct()).iteritems(), destfile=destfile)\n print arr['a']\n\n with tempfile.NamedTemporaryFile() as destfile:\n arr = StructIdMapping.build({1:SomeStruct(), 3:SomeStruct()}.iteritems(), destfile=destfile)\n print arr[3]\n\n.. _idmap-usage:\n\nWhen using nested hierarchies, it's possible to unify references to the same object by specifying an `idmap` dict.\nHowever, since the idmap will map objects by their `id()`, objects must be kept alive by holding references to\nthem while they're still referenced in the idmap, so its usage is non-trivial. An example technique:\n\n.. code:: python\n\n def all_structs(idmap):\n iter_all = iter(some_generator)\n while True:\n idmap.clear()\n\n sstructs = list(itertools.islice(iter_all, 10000))\n if not sstructs:\n break\n\n for ss in sstructs :\n # mapping from \"s\" attribute to struct\n yield (ss.s, ss)\n del sstructs\n\n idmap = {}\n name_mapping = StructNameMapping.build(all_structs(idmap),\n destfile = destfile, idmap = idmap)\n\nThe above code syncs the lifetime of objects and their idmap entries to avoid mapping issues. If the invariant\nisn't maintained (objects referenced in the idmap are alive and holding a unique `id()` value), the result will be\nsilent corruption of the resulting mapping due to object identity mixups.\n\nThere are variants of the mapping proxy classes and their associated id mapper classes that implement multi-maps.\nThat is, mappings that, when fed with multiple values for a key, will return a list of values for that key rather\nthan a single key. Their in-memory representation is identical, but their querying API returns all matching values\nrather than the first one, so multi-maps and simple mappings are binary compatible.\n\nMulti-maps with string keys can also be approximate, meaning the original keys will be discarded and the mapping will\nonly work with hashes, making the map much faster and more compact, at the expense of some inaccuracy where the\nreturned values could have extra values corresponding to other keys whose hash collide with the one being requested.\n\nRunning tests\n-------------\n\nRunning tests can be done locally or on docker, using the script `run-tests.sh`:\n\n.. code:: shell\n\n $> virtualenv venv\n $> . venv/bin/activate\n $> sh ./run-tests.sh\n\n\nAlternatively, running it on docker can be done with the following command:\n\n.. code:: shell\n\n $> docker run -v ${PWD}:/opt/sharedbuffers -w /opt/sharedbuffers python:2.7 /bin/sh run-tests.sh\n\n.. _container: https://en.wikipedia.org/wiki/Container_(abstract_data_type)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/jampp/sharedbuffers/", "keywords": "", "license": "BSD 3-Clause", "maintainer": "Claudio Freire", "maintainer_email": "klauss@jampp.com", "name": "sharedbuffers", "package_url": "https://pypi.org/project/sharedbuffers/", "platform": "", "project_url": "https://pypi.org/project/sharedbuffers/", "project_urls": { "Homepage": "https://github.com/jampp/sharedbuffers/" }, "release_url": "https://pypi.org/project/sharedbuffers/0.8.2/", "requires_dist": null, "requires_python": "", "summary": "Shared-memory structured buffers", "version": "0.8.2" }, "last_serial": 5821214, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "767b9319c068e426bbe382efb63b936d", "sha256": "5eb8da841d102bdfc63fc97d26c07527f372d9533dda8d60ddaf67c33b80a4d0" }, "downloads": -1, "filename": "sharedbuffers-0.1.tar.gz", "has_sig": false, "md5_digest": "767b9319c068e426bbe382efb63b936d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 297472, "upload_time": "2016-10-05T22:03:48", "url": "https://files.pythonhosted.org/packages/f1/cf/361c50ced37da12d9179c79aa26565207fd19d8c4c560139120e51e46a9d/sharedbuffers-0.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "cb3d354cec5d7e72e30c68507706acc9", "sha256": "ffa61f06d2f5e6c8f24ae60fe47d67be79971ada15333215999b4f1bf0889231" }, "downloads": -1, "filename": "sharedbuffers-0.2.0.tar.gz", "has_sig": false, "md5_digest": "cb3d354cec5d7e72e30c68507706acc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 325639, "upload_time": "2016-10-11T19:54:42", "url": "https://files.pythonhosted.org/packages/4a/45/dd99debdb9c44ba2d28a6dd052d90613b589bbd9d35a448256d0ff48d7c5/sharedbuffers-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "81e7c403355cc34f2354db3cbc1bf139", "sha256": "d09981a387956a75064fcadea4f843efc632591766e9d1ba1790acef9422f34c" }, "downloads": -1, "filename": "sharedbuffers-0.2.1.tar.gz", "has_sig": false, "md5_digest": "81e7c403355cc34f2354db3cbc1bf139", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 351435, "upload_time": "2016-10-19T00:14:54", "url": "https://files.pythonhosted.org/packages/0a/f5/9460488afbd6b9537a2d8045e82e6447b844af4a6c6e45dab5626db108ac/sharedbuffers-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "d485fd3b3bd94f967b1356465b6c5efa", "sha256": "51b252efffb608c766aef2126c70af599720a44ef63b483c4c542e5bc164cef2" }, "downloads": -1, "filename": "sharedbuffers-0.3.0.tar.gz", "has_sig": false, "md5_digest": "d485fd3b3bd94f967b1356465b6c5efa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 360212, "upload_time": "2016-11-08T22:26:06", "url": "https://files.pythonhosted.org/packages/9d/a1/56a99343bcdc381fa21858ebaf5c2b22f80f581a5151f35bf2b1a4150d96/sharedbuffers-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d34eb5b675ed80d7de99747f0c604df4", "sha256": "212299916db458d8125d32211dc848cc6f0a9bcf09451ef2295b9a94549691af" }, "downloads": -1, "filename": "sharedbuffers-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d34eb5b675ed80d7de99747f0c604df4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 360337, "upload_time": "2016-11-09T22:52:16", "url": "https://files.pythonhosted.org/packages/5d/d9/a12be484ed9091bc6ab52c904082e2038096c967ddc3cb7af61e8b1e7d87/sharedbuffers-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "eeca008f894d6134b9ef9431c5120754", "sha256": "9be141f8ff58ae8a7df0d728af4584d106c2e3faa234c925b31a5fce2a6c99b6" }, "downloads": -1, "filename": "sharedbuffers-0.3.2.tar.gz", "has_sig": false, "md5_digest": "eeca008f894d6134b9ef9431c5120754", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 387675, "upload_time": "2017-04-07T20:59:17", "url": "https://files.pythonhosted.org/packages/52/8a/17b55b4b350027c322f767259f154b33d58f982cfeb2681a4d7afcbadca6/sharedbuffers-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "938c75c975edea22219817c4dcb21331", "sha256": "478dc17efd67be29fed46820c2fac636588678ccc4b3a89b234673ef200bd723" }, "downloads": -1, "filename": "sharedbuffers-0.3.3.tar.gz", "has_sig": false, "md5_digest": "938c75c975edea22219817c4dcb21331", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 388875, "upload_time": "2017-04-25T20:03:16", "url": "https://files.pythonhosted.org/packages/e5/3d/3439c18125b48416a6dd527ad0243ffcf9ffe2497376f8e3cd6f2c1ed3e3/sharedbuffers-0.3.3.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "4b8277a53a3bcb91c36aeb061236d48f", "sha256": "b8d8189fddde4a003648999d4a804faf119d5ce7b83ae3367c64593d880ae2e1" }, "downloads": -1, "filename": "sharedbuffers-0.4.0.tar.gz", "has_sig": false, "md5_digest": "4b8277a53a3bcb91c36aeb061236d48f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 36554, "upload_time": "2017-07-12T20:01:34", "url": "https://files.pythonhosted.org/packages/c6/d9/a836f2f12cdd4ad7fb2d06af016a67c60ac4d35dfa95a79bf2cd808bd49c/sharedbuffers-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "57d321872846c43db240c4201785a33e", "sha256": "6b3fbc40a93ae1d827e2b7db43105aea2cb8be3c8fbeb93f32a79fa7b7813fd3" }, "downloads": -1, "filename": "sharedbuffers-0.4.1.tar.gz", "has_sig": false, "md5_digest": "57d321872846c43db240c4201785a33e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37209, "upload_time": "2017-07-18T20:24:34", "url": "https://files.pythonhosted.org/packages/e1/ca/3c87b9363c1e32ec53618a33dbbcc193129ec540e8f75039975391fdfa30/sharedbuffers-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "920e4b56ed807507793fe734a36d539c", "sha256": "cfc3d3eb1bf0b7b5e133e21da0cf5f8874a2e76171c72ca3a5d3bd68cccaf674" }, "downloads": -1, "filename": "sharedbuffers-0.4.2.tar.gz", "has_sig": false, "md5_digest": "920e4b56ed807507793fe734a36d539c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 37765, "upload_time": "2017-08-14T15:44:36", "url": "https://files.pythonhosted.org/packages/ff/64/65a92cc42cd5562d573f9da53c9fd60a353201b8beb7499bd4f292aee897/sharedbuffers-0.4.2.tar.gz" } ], "0.4.3": [ { "comment_text": "", "digests": { "md5": "b3ff608145d106ded8639728a54ed765", "sha256": "0882a51f020cd687457f0fd87e911bf507d3d1faa6b156aa821399c51cef2bc9" }, "downloads": -1, "filename": "sharedbuffers-0.4.3.tar.gz", "has_sig": false, "md5_digest": "b3ff608145d106ded8639728a54ed765", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38928, "upload_time": "2017-09-28T15:02:35", "url": "https://files.pythonhosted.org/packages/0a/4b/4aff4c16a4bcd354329a9e60efc6ee4ef1a9a631a627d83fdbc938c86066/sharedbuffers-0.4.3.tar.gz" } ], "0.4.4": [ { "comment_text": "", "digests": { "md5": "1075482bc93e2e95ef765c48561cafd7", "sha256": "7ac87c662477009b599781b604fae6daa983ca379f8ceaf63c12685233c278dc" }, "downloads": -1, "filename": "sharedbuffers-0.4.4.tar.gz", "has_sig": false, "md5_digest": "1075482bc93e2e95ef765c48561cafd7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39341, "upload_time": "2017-10-02T16:03:07", "url": "https://files.pythonhosted.org/packages/c9/7b/dec5b61b4dbb1f2381ecbf59a9982d9bf27dba5a57d667d9210395804da1/sharedbuffers-0.4.4.tar.gz" } ], "0.4.5": [ { "comment_text": "", "digests": { "md5": "07a479211588ec12cbfe53d454a8b107", "sha256": "2afa69f4f037fb216045a3bbe9be8a7aebeee5d91126f810b6b4cc14030309fb" }, "downloads": -1, "filename": "sharedbuffers-0.4.5.tar.gz", "has_sig": false, "md5_digest": "07a479211588ec12cbfe53d454a8b107", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39940, "upload_time": "2017-10-12T15:18:59", "url": "https://files.pythonhosted.org/packages/41/b8/a671db492130deffa14f6dae12eeb82316bf80f14726db8283e3c9ac4982/sharedbuffers-0.4.5.tar.gz" } ], "0.4.6": [ { "comment_text": "", "digests": { "md5": "ae8b538c6845ab12c01532625d0b20a0", "sha256": "0c2b208c4f5f1f2924878c4395c226c63a33d8882263e99a5cf9a4583b8cc091" }, "downloads": -1, "filename": "sharedbuffers-0.4.6.tar.gz", "has_sig": false, "md5_digest": "ae8b538c6845ab12c01532625d0b20a0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 446772, "upload_time": "2017-12-18T17:17:39", "url": "https://files.pythonhosted.org/packages/f3/39/1dc8aba0ea127e9765230b6684395bc1ea8f9e0049cfc416da51e275a0b4/sharedbuffers-0.4.6.tar.gz" } ], "0.4.7": [ { "comment_text": "", "digests": { "md5": "03c8371227bf1db9e60f71326986e4ad", "sha256": "7fb30bdb6ce2637124b154f06822aed3c3bbae0ff8df70a0821398c3d1884169" }, "downloads": -1, "filename": "sharedbuffers-0.4.7.tar.gz", "has_sig": false, "md5_digest": "03c8371227bf1db9e60f71326986e4ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 447688, "upload_time": "2018-02-22T13:36:20", "url": "https://files.pythonhosted.org/packages/b3/5e/3bc01748e9fb0bbbfd820bc801f6f7abb86c4aee25bb0b924731321a503e/sharedbuffers-0.4.7.tar.gz" } ], "0.4.8": [ { "comment_text": "", "digests": { "md5": "c899525ca078441fcea2202fc913ea77", "sha256": "aa5c1b01d70ba5537fc31abf82b5bb3cedc07e3e12e498698310c1dbc119daab" }, "downloads": -1, "filename": "sharedbuffers-0.4.8.tar.gz", "has_sig": false, "md5_digest": "c899525ca078441fcea2202fc913ea77", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 448097, "upload_time": "2018-05-28T20:35:47", "url": "https://files.pythonhosted.org/packages/ed/3b/91db6d655625c7b459322d0b2e804f01166f76d46e8fb87daaea207eed57/sharedbuffers-0.4.8.tar.gz" } ], "0.4.9": [ { "comment_text": "", "digests": { "md5": "d24faf5aadb25e1b92bdd0a94dbfe4d0", "sha256": "6cff3687b895de263692692e3f57841dd9a3d1746ee1c26fae72a8be6c1415c6" }, "downloads": -1, "filename": "sharedbuffers-0.4.9.tar.gz", "has_sig": false, "md5_digest": "d24faf5aadb25e1b92bdd0a94dbfe4d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 506314, "upload_time": "2018-10-30T14:54:49", "url": "https://files.pythonhosted.org/packages/69/a9/dbefcb1a8bdc7a84fbc5c68c64e41c6917e7ac7c11fc0eed94fa68926925/sharedbuffers-0.4.9.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "95f7e8a0d4c79b2b6abcbed513672538", "sha256": "389905b4060f0f1c5d82792ea0f8c063f84afc98e55acf6fadf5ae1ec17f62ed" }, "downloads": -1, "filename": "sharedbuffers-0.5.0.tar.gz", "has_sig": false, "md5_digest": "95f7e8a0d4c79b2b6abcbed513672538", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 945502, "upload_time": "2018-12-11T20:36:38", "url": "https://files.pythonhosted.org/packages/de/f4/e3cad9b3276f8b1dab511e43dbb289ba2336fd920331ab65b9be4c25e92c/sharedbuffers-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "905e914d9bb858f7c03d4149e5da3dc8", "sha256": "1b040c3a9356b930d71c4dfd6d848f9b3e0e6d46ea44ffdc5eca5d79ff1baab1" }, "downloads": -1, "filename": "sharedbuffers-0.5.1.tar.gz", "has_sig": false, "md5_digest": "905e914d9bb858f7c03d4149e5da3dc8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 948431, "upload_time": "2018-12-17T19:25:11", "url": "https://files.pythonhosted.org/packages/b1/b5/2536e307a608266a4f2c44d5a488c76f850e31cd33fedad0e220d6e64d9c/sharedbuffers-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "ae1c009ca6decaedf8d64aec21889df9", "sha256": "b47d395c4c7c95deaf2334a4f53994e2660a9d40dccf1932349a5d8fcfec493c" }, "downloads": -1, "filename": "sharedbuffers-0.6.0.tar.gz", "has_sig": false, "md5_digest": "ae1c009ca6decaedf8d64aec21889df9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 948631, "upload_time": "2018-12-27T17:37:00", "url": "https://files.pythonhosted.org/packages/c7/58/fec5a2dcfa111ffaabd026414e213c450ece905e1913757dc1c454e755a2/sharedbuffers-0.6.0.tar.gz" } ], "0.6.1": [ { "comment_text": "", "digests": { "md5": "3557100dea55e6f757d11a83f8bc0e38", "sha256": "655e9d7f8262181594bd8fb6c4b8e5855405a449f0262def7058b6f9b0025710" }, "downloads": -1, "filename": "sharedbuffers-0.6.1.tar.gz", "has_sig": false, "md5_digest": "3557100dea55e6f757d11a83f8bc0e38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 949033, "upload_time": "2019-01-23T21:48:19", "url": "https://files.pythonhosted.org/packages/55/c0/d2fd515a0cf0049645a2eb337a640b3575eee63c5c964b8b8a3b28f9c563/sharedbuffers-0.6.1.tar.gz" } ], "0.6.2": [ { "comment_text": "", "digests": { "md5": "317841554b463ec62b3556be4be12ad6", "sha256": "c96ba856c2034c6bde2c1dc62f2705c033c6dd1dc1d8514b5d9bb3f6772114f0" }, "downloads": -1, "filename": "sharedbuffers-0.6.2.tar.gz", "has_sig": false, "md5_digest": "317841554b463ec62b3556be4be12ad6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 949544, "upload_time": "2019-02-21T13:38:15", "url": "https://files.pythonhosted.org/packages/56/29/619fd1402d9c57edfaccf6b7a0610b2f74eaf92a942a39dedc2930422c6c/sharedbuffers-0.6.2.tar.gz" } ], "0.6.4": [ { "comment_text": "", "digests": { "md5": "23c6b93e46074be75dc7f79e9191ff00", "sha256": "a9251e392db8c4e91efd60895460447a306470fb73403bb9a2d757c88416712b" }, "downloads": -1, "filename": "sharedbuffers-0.6.4.tar.gz", "has_sig": false, "md5_digest": "23c6b93e46074be75dc7f79e9191ff00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 974321, "upload_time": "2019-05-30T18:22:36", "url": "https://files.pythonhosted.org/packages/e1/ce/9095ef7feaf2bf5ea2d5b8c85fb381a580b2e8eb1662a58b0fa9df3f1e17/sharedbuffers-0.6.4.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "c1d88204c00a9c064c09e42408a32e83", "sha256": "75443c495656494b0551b4c7f386bdff99953d5cb01ac98df0d95a723ade6088" }, "downloads": -1, "filename": "sharedbuffers-0.7.0.tar.gz", "has_sig": false, "md5_digest": "c1d88204c00a9c064c09e42408a32e83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1028096, "upload_time": "2019-06-06T19:28:33", "url": "https://files.pythonhosted.org/packages/b7/cd/fa449fe9f4428cf7fd28782947237d5927c223575cb4740cb1dd2b0f9042/sharedbuffers-0.7.0.tar.gz" } ], "0.7.1": [ { "comment_text": "", "digests": { "md5": "4b0bfc43918a02a09ed62fc35d2b03c8", "sha256": "1e9cbe023a22db8879bbfdf6367fabf4c8be581f938fdcb15eaefe0edfe6ed58" }, "downloads": -1, "filename": "sharedbuffers-0.7.1.tar.gz", "has_sig": false, "md5_digest": "4b0bfc43918a02a09ed62fc35d2b03c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1028020, "upload_time": "2019-06-13T16:43:53", "url": "https://files.pythonhosted.org/packages/c1/1b/c68dca81200e95f449866645cf547d5123e788cb88a3d275a60bf3698e68/sharedbuffers-0.7.1.tar.gz" } ], "0.7.2": [ { "comment_text": "", "digests": { "md5": "ef32f818daa231b42cdd0f99f5639ff9", "sha256": "e6a3515da2daa694f0a876af18be9b43ef306579f5e793d731200e9c5dc76edd" }, "downloads": -1, "filename": "sharedbuffers-0.7.2.tar.gz", "has_sig": false, "md5_digest": "ef32f818daa231b42cdd0f99f5639ff9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1030215, "upload_time": "2019-06-27T17:29:14", "url": "https://files.pythonhosted.org/packages/b2/66/55912abd7923199f05be301db4c2b981af8f0c4303db45d560355e8bc86d/sharedbuffers-0.7.2.tar.gz" } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "c8f386451ae65b34dfa90ca78383ac11", "sha256": "72fa46e073f75efa2556f87a82448ac9449b9cf47dfd8c28ee4479909fdd849b" }, "downloads": -1, "filename": "sharedbuffers-0.8.0.tar.gz", "has_sig": false, "md5_digest": "c8f386451ae65b34dfa90ca78383ac11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1032416, "upload_time": "2019-08-08T21:23:55", "url": "https://files.pythonhosted.org/packages/38/32/51114e92ce5c52086cff7005fa7868c85242a5f23d78001d71ddfb7e90f3/sharedbuffers-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "17258e86e2fa1c1514b498aecc8c736b", "sha256": "176d2f01ee38c887b3aa50f288c3442fe7b96c3dd5b24428a89460e5fb24a793" }, "downloads": -1, "filename": "sharedbuffers-0.8.1.tar.gz", "has_sig": false, "md5_digest": "17258e86e2fa1c1514b498aecc8c736b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1032854, "upload_time": "2019-09-11T14:59:21", "url": "https://files.pythonhosted.org/packages/e1/ef/442e116f9d0d20269d6195b51353d54a9f30002f5a6e33b55a18e779ebca/sharedbuffers-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "001760062b0f24ac4a3bed37ce5a0109", "sha256": "38bd6c17570a9e2659ae55201194e7094db02c820d9eb28fe101ae33e64e7dee" }, "downloads": -1, "filename": "sharedbuffers-0.8.2.tar.gz", "has_sig": false, "md5_digest": "001760062b0f24ac4a3bed37ce5a0109", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1033738, "upload_time": "2019-09-12T15:45:58", "url": "https://files.pythonhosted.org/packages/4b/89/8a2fe1cd64f3d561f2f3b09b031345b494ee77b75ec4038f9a809df303b3/sharedbuffers-0.8.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "001760062b0f24ac4a3bed37ce5a0109", "sha256": "38bd6c17570a9e2659ae55201194e7094db02c820d9eb28fe101ae33e64e7dee" }, "downloads": -1, "filename": "sharedbuffers-0.8.2.tar.gz", "has_sig": false, "md5_digest": "001760062b0f24ac4a3bed37ce5a0109", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1033738, "upload_time": "2019-09-12T15:45:58", "url": "https://files.pythonhosted.org/packages/4b/89/8a2fe1cd64f3d561f2f3b09b031345b494ee77b75ec4038f9a809df303b3/sharedbuffers-0.8.2.tar.gz" } ] }