{ "info": { "author": "Globality Engineering", "author_email": "engineering@globality.com", "bugtrack_url": null, "classifiers": [], "description": "# Simple Microservice Configuration\n\nWell-written microservices are small and single-purpose; any non-trivial ecosystem will have\na fleet of such services, each performing a different function. Inevitably, these services\nwill use common code and structure; this library provides a simple mechanism for constructing\nthese shared components and wiring them together into services.\n\n[![Circle CI](https://circleci.com/gh/globality-corp/microcosm/tree/develop.svg?style=svg)](https://circleci.com/gh/globality-corp/microcosm/tree/develop)\n\n\n## Terminology\n\n - A `microservice` is a small software application. It is composed of several smaller pieces\n of software, many of which are reusable.\n - A `component` is one of these (possibly reusable) pieces of software.\n - A `factory` is a function used to create a component; it may be an object's constructor.\n - A `config dict` is a nested dictionary with string-valued keys. It contains data used\n by factories to create components.\n - An `object graph` is a collection of components that may reference each other (acyclically).\n - A `binding` is a string-valued key. It is used to identify a component within an object graph\n and the subsection of the config dict reserved for a component's factory.\n\n\n## Basic Usage\n\n 1. Define factory functions for `components`, attach them to a `binding`, and provide\n (optional) configuration `defaults`:\n\n from microcosm.api import defaults, binding\n\n @binding(\"foo\")\n @defaults(baz=\"value\")\n def create_foo(graph):\n return dict(\n # factories can reference other components\n bar=graph.bar,\n # factories can reference configuration\n baz=graph.config.foo.baz,\n )\n\n @binding(\"bar\")\n def create_bar(graph):\n return dict()\n\n Factory functions have access to the `object graph` and, through it, the `config dict`. Default\n configuration values, if provided, are pre-populated within the provided binding; these may be\n overridden from data loaded from an external source.\n\n 2. Wire together the microservice by creating a new object graph along with service metadata:\n\n from microcosm.api import create_object_graph\n\n graph = create_object_graph(\n name=\"myservice\",\n debug=False,\n testing=False,\n )\n\n Factories may access the service metadata via `graph.metadata`. This allows for several\n best practices:\n\n - Components can implement ecosystem-wide conventions (e.g. for logging or persistence),\n using the service name as a discriminator.\n - Components can customize their behavior during development (`debug=True`) and unit\n testing (`testing=True`)\n\n 3. Reference any `binding` in the `object graph` to access the corresponding `component`:\n\n print(graph.foo)\n\n Components are initialized *lazily*. In this example, the first time `graph.foo` is accessed,\n the bound factory (`create_foo()`) is automatically invoked. Since this factory in turn\n accesses `graph.bar`, the next factory in the chain (`create_bar()`) would also be called\n if it had not been called yet.\n\n Graph cycles are not allowed, although dependent components may cache the graph instance\n to access depending components after initialization completes.\n\n 4. Optionally, initialize the microservice's components explicitly:\n\n graph.use(\n \"foo\",\n \"bar\",\n )\n\n While the same effect could be achieved by accessing `graph.foo` or `graph.bar`, this\n construction has the advantage of initializes the listed components up front and triggering\n any configuration errors as early as possible.\n\n It is also possible to then *disable* any subsequent lazy initialization, preventing any\n unintended initialization during subsequent operations:\n\n graph.lock()\n\n\n## Assumptions\n\nThis library was influenced by the [pinject](https://github.com/google/pinject) project, but\nmakes a few assumption that allow for a great deal of simplication:\n\n 1. Microservices are small enough that simple string bindings suffice. Or, put another way,\n conflicts between identically bound components are a non-concern and there is no need\n for explicit scopes.\n\n 2. Microservices use processes, not threads to scale. As such, thread synchronization is\n a non-goal.\n\n 3. Mocking (and patching) of the object graph is important and needs to be easy. Unit tests\n expect to use `unittest.mock library; it should be trivial to temporarily replace a component.\n\n 4. Some components will be functions that modify other components rather than objects\n that need to be instantiated.", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/globality-corp/microcosm", "keywords": "microcosm", "license": "", "maintainer": "", "maintainer_email": "", "name": "microcosm", "package_url": "https://pypi.org/project/microcosm/", "platform": "", "project_url": "https://pypi.org/project/microcosm/", "project_urls": { "Homepage": "https://github.com/globality-corp/microcosm" }, "release_url": "https://pypi.org/project/microcosm/3.0.0/", "requires_dist": null, "requires_python": ">=3.6", "summary": "Microcosm - Simple microservice configuration", "version": "3.0.0", "yanked": false, "yanked_reason": null }, "last_serial": 8263146, "releases": { "0.10.0": [ { "comment_text": "", "digests": { "md5": "ae81f3f069f4b7d8b17063ae5c59277c", "sha256": "58f9c8268b0231e732c5b573048843b295dcf38032b3c8cdd28834f95cf1d106" }, "downloads": -1, "filename": "microcosm-0.10.0.tar.gz", "has_sig": false, "md5_digest": "ae81f3f069f4b7d8b17063ae5c59277c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6359, "upload_time": "2016-05-03T16:59:35", "upload_time_iso_8601": "2016-05-03T16:59:35.015986Z", "url": "https://files.pythonhosted.org/packages/d9/f1/4cc53b0576f2de98f5300f80650f1892604a1f49bb775bfe58db08b4573b/microcosm-0.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.11.0": [ { "comment_text": "", "digests": { "md5": "3ca318c3caef99ac833e825f228b9da4", "sha256": "4ff6e9912fafca99a388e0ed9ffdcba2c0341d204ec64e9a7db085397975041e" }, "downloads": -1, "filename": "microcosm-0.11.0.tar.gz", "has_sig": false, "md5_digest": "3ca318c3caef99ac833e825f228b9da4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6400, "upload_time": "2016-07-21T21:29:10", "upload_time_iso_8601": "2016-07-21T21:29:10.901872Z", "url": "https://files.pythonhosted.org/packages/b7/62/a5643b352b064f910891f3ab82585a459bfc56e25ce444b323b5059dec12/microcosm-0.11.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.12.0": [ { "comment_text": "", "digests": { "md5": "8c08730f2858dbad5fd5b945abe33e88", "sha256": "6070a815b3b0356d5e7506257d73937ec40a40146afdb92cb018c998ad9c893b" }, "downloads": -1, "filename": "microcosm-0.12.0.tar.gz", "has_sig": false, "md5_digest": "8c08730f2858dbad5fd5b945abe33e88", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7148, "upload_time": "2016-08-26T18:10:12", "upload_time_iso_8601": "2016-08-26T18:10:12.345478Z", "url": "https://files.pythonhosted.org/packages/d6/b8/294e5cf4e529deea243228c64a50cc98a93f1bc185fe526b4b068ac9ac01/microcosm-0.12.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.13.0": [ { "comment_text": "", "digests": { "md5": "2bf3c686664cb5440b0a02dfd471dd73", "sha256": "3681e8e5815e776dc3673755825f8826ae2c29567aefe3222ced6c83e46cd8bd" }, "downloads": -1, "filename": "microcosm-0.13.0.tar.gz", "has_sig": false, "md5_digest": "2bf3c686664cb5440b0a02dfd471dd73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7766, "upload_time": "2016-10-06T17:32:55", "upload_time_iso_8601": "2016-10-06T17:32:55.584621Z", "url": "https://files.pythonhosted.org/packages/09/5f/b6834a899229c591eb09459f1c1c82362178908d15e3fbf7afba260c5323/microcosm-0.13.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.14.0": [ { "comment_text": "", "digests": { "md5": "6df378ca4d400ea800cb6c6dffcba0c1", "sha256": "5cc95245ebe7cb5f2f2bb42a43ec8225c3b8dd46be1b94dabd726549a3ee999e" }, "downloads": -1, "filename": "microcosm-0.14.0.tar.gz", "has_sig": false, "md5_digest": "6df378ca4d400ea800cb6c6dffcba0c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7768, "upload_time": "2016-10-06T19:46:16", "upload_time_iso_8601": "2016-10-06T19:46:16.008917Z", "url": "https://files.pythonhosted.org/packages/76/2c/3b67974d2ca51771db8b9b17908d10316cf8463bf4fb45c10fe0b9030752/microcosm-0.14.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.15.0": [ { "comment_text": "", "digests": { "md5": "3ee14f23b9f7e8819a539417037b6642", "sha256": "befd08105786dd728c8b2f4c0ff8ab04d3a8d30761239766d554debad2cd0c9e" }, "downloads": -1, "filename": "microcosm-0.15.0.tar.gz", "has_sig": false, "md5_digest": "3ee14f23b9f7e8819a539417037b6642", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7770, "upload_time": "2016-10-06T19:52:50", "upload_time_iso_8601": "2016-10-06T19:52:50.587885Z", "url": "https://files.pythonhosted.org/packages/56/0b/c0850d478c6ab450fc91fc25b1ef13f9ca5fe210a55fac0356e962fb50e4/microcosm-0.15.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.16.0": [ { "comment_text": "", "digests": { "md5": "70eb9025ca8d5b102eddf4de41d5db04", "sha256": "49e7d096f96f4a031fded36321a9d94385326956e1ec71e0c37cd3916ca2b984" }, "downloads": -1, "filename": "microcosm-0.16.0.tar.gz", "has_sig": false, "md5_digest": "70eb9025ca8d5b102eddf4de41d5db04", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8799, "upload_time": "2017-03-24T16:36:51", "upload_time_iso_8601": "2017-03-24T16:36:51.168689Z", "url": "https://files.pythonhosted.org/packages/52/5a/bf9338f77c4166d07dc45d5bbc054009ff264d16d86e32dddf2311398deb/microcosm-0.16.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.17.0": [ { "comment_text": "", "digests": { "md5": "ac8ad144526a636b96117acddb2dcb38", "sha256": "7e026b9d078f61e89b02e0479e13e8d42728dfaca155f0c39dc60f06955dea1c" }, "downloads": -1, "filename": "microcosm-0.17.0.tar.gz", "has_sig": false, "md5_digest": "ac8ad144526a636b96117acddb2dcb38", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8960, "upload_time": "2017-04-12T22:37:16", "upload_time_iso_8601": "2017-04-12T22:37:16.693374Z", "url": "https://files.pythonhosted.org/packages/ab/04/5670b6dcc4c9e8290f7a5bd6c9b81231e6a5bb0378efcbfafcc30955831e/microcosm-0.17.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.17.1": [ { "comment_text": "", "digests": { "md5": "a2794c41b0f815277c114df684ce6807", "sha256": "1b9bee68a691f6e6b8f503d27ec0527cb1ebbb57d96c0d904f5d6a74a2c5290d" }, "downloads": -1, "filename": "microcosm-0.17.1.tar.gz", "has_sig": false, "md5_digest": "a2794c41b0f815277c114df684ce6807", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9102, "upload_time": "2017-04-13T04:18:17", "upload_time_iso_8601": "2017-04-13T04:18:17.780231Z", "url": "https://files.pythonhosted.org/packages/0e/d6/e60e411b1088a75370ed994631d4a2204be9acadc4404c2e951607cc8805/microcosm-0.17.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.17.2": [ { "comment_text": "", "digests": { "md5": "177e79bb82cc05ce6b49a6d3bc3b132b", "sha256": "90bccf5dd7d036857bcc28a9be660913297a1229e2fd1b46d2dd6ac268859f31" }, "downloads": -1, "filename": "microcosm-0.17.2.tar.gz", "has_sig": false, "md5_digest": "177e79bb82cc05ce6b49a6d3bc3b132b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9100, "upload_time": "2017-04-13T04:30:27", "upload_time_iso_8601": "2017-04-13T04:30:27.420501Z", "url": "https://files.pythonhosted.org/packages/fc/ec/b0f5470e710fd25e69e886dea45e1bbbfedb320610ef1183e82e713bc27f/microcosm-0.17.2.tar.gz", "yanked": false, "yanked_reason": null } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "a9b4fe6a771f28da8372eb2684015565", "sha256": "31385f01c7577e2a6465355ac5fa00ca0ede1892fa8c091d0f17577fe83e6c3e" }, "downloads": -1, "filename": "microcosm-0.2.1.tar.gz", "has_sig": false, "md5_digest": "a9b4fe6a771f28da8372eb2684015565", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5124, "upload_time": "2016-03-04T01:29:56", "upload_time_iso_8601": "2016-03-04T01:29:56.557322Z", "url": "https://files.pythonhosted.org/packages/3d/78/e31b09279b23c0dad15c865c8e06ce783cc8fa8d73441b0416bf07504dbc/microcosm-0.2.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "73f3975db322be8c022aa06586fc2b26", "sha256": "ff25342389b46ab263ac8f2ce4ee86b5c8c06f4c556bb3644a25fb71b141aeb1" }, "downloads": -1, "filename": "microcosm-0.3.0.tar.gz", "has_sig": false, "md5_digest": "73f3975db322be8c022aa06586fc2b26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5116, "upload_time": "2016-03-04T06:01:27", "upload_time_iso_8601": "2016-03-04T06:01:27.271817Z", "url": "https://files.pythonhosted.org/packages/8b/3e/0cdee591e6d93b7020d98156622f3d55cba45be2625f38e60154559af8f5/microcosm-0.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "6c3d93ed9377a8e388413e73555f4c76", "sha256": "b859398e7ddcba19c0b5dc842a84629b2e353335a5b6707828739ba24a3faa5e" }, "downloads": -1, "filename": "microcosm-0.4.0.tar.gz", "has_sig": false, "md5_digest": "6c3d93ed9377a8e388413e73555f4c76", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6090, "upload_time": "2016-03-08T18:16:48", "upload_time_iso_8601": "2016-03-08T18:16:48.363930Z", "url": "https://files.pythonhosted.org/packages/9a/f2/3fe2c880ab7c611ae586656735003d40d8b7f6400a3d4b84404400373587/microcosm-0.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "ad500bd4fdfb3163673138473edc2126", "sha256": "918b1805d8467e92caeb5d888a4600e842638586df54d7fe4899db7efba40721" }, "downloads": -1, "filename": "microcosm-0.5.0.tar.gz", "has_sig": false, "md5_digest": "ad500bd4fdfb3163673138473edc2126", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6170, "upload_time": "2016-03-10T00:44:15", "upload_time_iso_8601": "2016-03-10T00:44:15.108882Z", "url": "https://files.pythonhosted.org/packages/36/89/d58493d85e85b58389062a50212b74ed0d90cb03db563d945cf6f32bf2a5/microcosm-0.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "e148b4591786e15efbe7c50010eef478", "sha256": "a37c6c9827439d3b081fb9133baeeec025b1b3d1bacfd02dc5d83b336ff83f80" }, "downloads": -1, "filename": "microcosm-0.5.1.tar.gz", "has_sig": false, "md5_digest": "e148b4591786e15efbe7c50010eef478", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6178, "upload_time": "2016-03-10T16:39:11", "upload_time_iso_8601": "2016-03-10T16:39:11.882263Z", "url": "https://files.pythonhosted.org/packages/3f/ca/c1d0c754b949ead0c8b0a85fea8838a79b35da042eaeeb4d52e8207c7c71/microcosm-0.5.1.tar.gz", "yanked": false, "yanked_reason": null } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "3dfe8e22a7bd8da2056d59265c67fb94", "sha256": "2778cab7f4828448a65e8c78e0edd2cbebe844aa5150ea0c0cb95dd5273e74a2" }, "downloads": -1, "filename": "microcosm-0.6.0.tar.gz", "has_sig": false, "md5_digest": "3dfe8e22a7bd8da2056d59265c67fb94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6230, "upload_time": "2016-03-10T23:47:22", "upload_time_iso_8601": "2016-03-10T23:47:22.669200Z", "url": "https://files.pythonhosted.org/packages/58/b3/cde3c3314b212d4cbad6ae922a5029e614676bc61b273ed629e77728ba6d/microcosm-0.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "306ffce36fb147be8b43baa587d22bee", "sha256": "19e8b2243cb03738cc6e6a4cae3854453fb08e1c5d47d3acedce4a206e0d63b0" }, "downloads": -1, "filename": "microcosm-0.7.0.tar.gz", "has_sig": false, "md5_digest": "306ffce36fb147be8b43baa587d22bee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6273, "upload_time": "2016-03-12T00:25:18", "upload_time_iso_8601": "2016-03-12T00:25:18.612094Z", "url": "https://files.pythonhosted.org/packages/97/f1/70dc1934eedd6090e9f10edb163e016da6e6efea1dca66ea05e75e00d6f5/microcosm-0.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.8.0": [ { "comment_text": "", "digests": { "md5": "1e849ccea5e231d40168958d5e9c5d5f", "sha256": "736e0df90c9e719b1e55536c134b23e33c61b3a800eb4473a278fddeb745e9ed" }, "downloads": -1, "filename": "microcosm-0.8.0.tar.gz", "has_sig": false, "md5_digest": "1e849ccea5e231d40168958d5e9c5d5f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6333, "upload_time": "2016-04-11T22:04:10", "upload_time_iso_8601": "2016-04-11T22:04:10.370413Z", "url": "https://files.pythonhosted.org/packages/43/4f/a84d94792826407901d574fcc2b0ac407dfbfb8779ec209def1a080f88e1/microcosm-0.8.0.tar.gz", "yanked": false, "yanked_reason": null } ], "0.9.0": [ { "comment_text": "", "digests": { "md5": "c85486e32986a3f80163be5188f29b82", "sha256": "1c816b6c29d63018e69cac38b09cf5bafa1e7b3387d6bf3a98430543ee7c5656" }, "downloads": -1, "filename": "microcosm-0.9.0.tar.gz", "has_sig": false, "md5_digest": "c85486e32986a3f80163be5188f29b82", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6335, "upload_time": "2016-04-25T22:45:16", "upload_time_iso_8601": "2016-04-25T22:45:16.294106Z", "url": "https://files.pythonhosted.org/packages/a8/ab/2fd7c75b570c155bb08427c4c051862f95f85033888d0c07aac480c7728c/microcosm-0.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "ee99ec83c91c9c3f15873e843a92e660", "sha256": "23452580a446725596e25c7c2d190a5da6fd40a066c3b04a134442f096841b08" }, "downloads": -1, "filename": "microcosm-1.0.0.tar.gz", "has_sig": false, "md5_digest": "ee99ec83c91c9c3f15873e843a92e660", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8724, "upload_time": "2017-04-25T15:46:48", "upload_time_iso_8601": "2017-04-25T15:46:48.847243Z", "url": "https://files.pythonhosted.org/packages/df/b8/07573604cbb3510e3c5aa4f29a790019112d08b49e19a2e7c6af596f94c4/microcosm-1.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "4e7b6a735304bed9da9b12f5c2be8398", "sha256": "1fd8e46fbc34d4a462915dc40b15582ddbc82c18e83a0d7a7c61c2820d1abef6" }, "downloads": -1, "filename": "microcosm-1.1.0.tar.gz", "has_sig": false, "md5_digest": "4e7b6a735304bed9da9b12f5c2be8398", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8661, "upload_time": "2017-05-25T23:47:37", "upload_time_iso_8601": "2017-05-25T23:47:37.458410Z", "url": "https://files.pythonhosted.org/packages/2d/f2/a975677b182eb363318f074543077d93fe1b7ea81a6fb42866b3043f2d24/microcosm-1.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "56baddf805f13f74c7d311d3028fdcfc", "sha256": "5946c62f6b3b567b7b1cc0a3b15d0c9df6cd02700305cb3336815fa27a5dd61d" }, "downloads": -1, "filename": "microcosm-1.2.0.tar.gz", "has_sig": false, "md5_digest": "56baddf805f13f74c7d311d3028fdcfc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8704, "upload_time": "2017-05-26T16:05:52", "upload_time_iso_8601": "2017-05-26T16:05:52.852790Z", "url": "https://files.pythonhosted.org/packages/43/3e/a2d243eaed9ecb822dab63ebfd6a41124fe227966fc2b4e52439029a4105/microcosm-1.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "4413bed81de82345ba4ceda7ef7ee8f6", "sha256": "5910675ea35e188bf347b024b46d4ba07c7f1b6c6a644227a05a0f98a388a24e" }, "downloads": -1, "filename": "microcosm-1.3.0.tar.gz", "has_sig": false, "md5_digest": "4413bed81de82345ba4ceda7ef7ee8f6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9809, "upload_time": "2017-07-12T23:44:47", "upload_time_iso_8601": "2017-07-12T23:44:47.436580Z", "url": "https://files.pythonhosted.org/packages/b8/0a/eda69cf1e54b37c3cf962cb0763863190ffc9fbcf7d918f47defcaf8c8a8/microcosm-1.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "7817c40d6108632e8629ddad7ab8b992", "sha256": "28e8bbb81cb497dc4c64375f4747ed351aec8b407117ab4216cd15f09c051c76" }, "downloads": -1, "filename": "microcosm-1.3.2.tar.gz", "has_sig": false, "md5_digest": "7817c40d6108632e8629ddad7ab8b992", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9809, "upload_time": "2017-07-13T05:00:22", "upload_time_iso_8601": "2017-07-13T05:00:22.861385Z", "url": "https://files.pythonhosted.org/packages/71/3b/16833ecfb89805af358b5e282fc405c7c11ba844d5fb766cb36dc1ef0338/microcosm-1.3.2.tar.gz", "yanked": false, "yanked_reason": null } ], "1.4.0": [ { "comment_text": "", "digests": { "md5": "ac6509828b3c12f12d31598b4399bc2f", "sha256": "660db6f52856b9d1a01e3b9528c4d52aaaa72e5bcd691eb5d5d5705aac4dbf7f" }, "downloads": -1, "filename": "microcosm-1.4.0.tar.gz", "has_sig": false, "md5_digest": "ac6509828b3c12f12d31598b4399bc2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10426, "upload_time": "2017-07-14T18:36:22", "upload_time_iso_8601": "2017-07-14T18:36:22.525866Z", "url": "https://files.pythonhosted.org/packages/ac/7e/952d27a6027996651fc07ec4d23892b7ddbdb614aa0a959a4f9e69ebe1f5/microcosm-1.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "1a3df94cdec723a602e632fcfcd3b4b1", "sha256": "b5b71706f1b0a798f543181475d18f8607024c2b00ae43950e9ef9017cfd17d6" }, "downloads": -1, "filename": "microcosm-2.0.0.tar.gz", "has_sig": false, "md5_digest": "1a3df94cdec723a602e632fcfcd3b4b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12202, "upload_time": "2018-01-05T20:25:30", "upload_time_iso_8601": "2018-01-05T20:25:30.186459Z", "url": "https://files.pythonhosted.org/packages/11/a1/ef3dbe30f161b3157b7fc0d46545544b34654f5d9904a2e7da666f398da4/microcosm-2.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.1.0": [ { "comment_text": "", "digests": { "md5": "8a10060dc63f5516f44341422385043f", "sha256": "7b1608049ff2f3f7754fb6badb83eb2283bd05267c893f30bfd6fe2b95223151" }, "downloads": -1, "filename": "microcosm-2.1.0.tar.gz", "has_sig": false, "md5_digest": "8a10060dc63f5516f44341422385043f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12448, "upload_time": "2018-02-13T18:45:14", "upload_time_iso_8601": "2018-02-13T18:45:14.274810Z", "url": "https://files.pythonhosted.org/packages/83/f0/9fdf802ca594727b3a68f12a1c9a235d2627d1d963a52c64f52e96138c99/microcosm-2.1.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.10.0": [ { "comment_text": "", "digests": { "md5": "951adf6e7817b3b5d26017f72d631569", "sha256": "34872ec744f7fe0965337bd3de5a515fcbeb9562d619c696722ca5c6d758d6d4" }, "downloads": -1, "filename": "microcosm-2.10.0.tar.gz", "has_sig": false, "md5_digest": "951adf6e7817b3b5d26017f72d631569", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18743, "upload_time": "2019-07-16T23:02:56", "upload_time_iso_8601": "2019-07-16T23:02:56.154698Z", "url": "https://files.pythonhosted.org/packages/f8/ef/28a05f658f8f1a206b01add5d54f47c0669fbbc5939da1adf8954ceb7f86/microcosm-2.10.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.11.0": [ { "comment_text": "", "digests": { "md5": "ee24b68594a247c1328fa6ad66eb9634", "sha256": "5d82eb9358212c9266a2e57739aa424333c108971ff62e411d9189eb3c4579b3" }, "downloads": -1, "filename": "microcosm-2.11.0.tar.gz", "has_sig": false, "md5_digest": "ee24b68594a247c1328fa6ad66eb9634", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19564, "upload_time": "2019-07-29T16:25:54", "upload_time_iso_8601": "2019-07-29T16:25:54.230298Z", "url": "https://files.pythonhosted.org/packages/2f/c6/0d7711a535b9b18a63328139fea6126b08f9132b146ff0aa075b28724808/microcosm-2.11.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.11.1": [ { "comment_text": "", "digests": { "md5": "aeb90f02ecd31446283e2fee15603f60", "sha256": "db5b9036dc4196eac9d7e15ab97671b204842469eeb87816187d198d936ca22d" }, "downloads": -1, "filename": "microcosm-2.11.1.tar.gz", "has_sig": false, "md5_digest": "aeb90f02ecd31446283e2fee15603f60", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19590, "upload_time": "2019-07-30T15:19:22", "upload_time_iso_8601": "2019-07-30T15:19:22.438781Z", "url": "https://files.pythonhosted.org/packages/6d/67/f6c4605ac2d5b5a47ed7525d0279a9f81f50bc841306406340cdbf7163e8/microcosm-2.11.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.12.0": [ { "comment_text": "", "digests": { "md5": "ab3852334ccbef1007af57a361497f67", "sha256": "4164ef9c39b2949ee804490f980e9daa1806b4c65defd523484ec41f3dd513f7" }, "downloads": -1, "filename": "microcosm-2.12.0.tar.gz", "has_sig": false, "md5_digest": "ab3852334ccbef1007af57a361497f67", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19601, "upload_time": "2019-08-02T02:45:06", "upload_time_iso_8601": "2019-08-02T02:45:06.525477Z", "url": "https://files.pythonhosted.org/packages/c8/0f/163e26cddefd1b783f34c7c4b35a2323633385519a9fcc5e6ab8cf55ff1f/microcosm-2.12.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.12.1": [ { "comment_text": "", "digests": { "md5": "bf6108c3e6ce57fccc5a6fbaf02eed7a", "sha256": "941bf64bbf108cb8df20385b1f2d31e36f4a191a5fe86ccdb419920a8fc76092" }, "downloads": -1, "filename": "microcosm-2.12.1.tar.gz", "has_sig": false, "md5_digest": "bf6108c3e6ce57fccc5a6fbaf02eed7a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19692, "upload_time": "2019-08-14T14:33:24", "upload_time_iso_8601": "2019-08-14T14:33:24.174789Z", "url": "https://files.pythonhosted.org/packages/a6/0a/aa4d5a1f77061139ee8268b3a94510fd4b8ea5159d3d52407a0e66c3e70d/microcosm-2.12.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.12.2": [ { "comment_text": "", "digests": { "md5": "16006a4e05a675861f50f4efe39fb422", "sha256": "7a5cdcaba33908323074554e4555a62b0694770f1d9b556b90e4c22f5c074f57" }, "downloads": -1, "filename": "microcosm-2.12.2.tar.gz", "has_sig": false, "md5_digest": "16006a4e05a675861f50f4efe39fb422", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19916, "upload_time": "2019-08-19T20:11:39", "upload_time_iso_8601": "2019-08-19T20:11:39.655680Z", "url": "https://files.pythonhosted.org/packages/90/cb/8623f4a5fe1ef9a33d993312a1866339ab877ba0b15f4513bab9c3e1dbed/microcosm-2.12.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.13.0": [ { "comment_text": "", "digests": { "md5": "a14f8b805aa98a04a3208afb7ab3eaa1", "sha256": "7e991ba977d2b3c8d766b5fcf7ee4a4ded1a08c9556a888d5623f1fe49cc676f" }, "downloads": -1, "filename": "microcosm-2.13.0.tar.gz", "has_sig": false, "md5_digest": "a14f8b805aa98a04a3208afb7ab3eaa1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19825, "upload_time": "2019-09-09T06:28:07", "upload_time_iso_8601": "2019-09-09T06:28:07.250877Z", "url": "https://files.pythonhosted.org/packages/15/b4/f23bb7bf48aab66c937a2d2075130c48740da07d7efd6d7f0ef72eb0c1b0/microcosm-2.13.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.13.1": [ { "comment_text": "", "digests": { "md5": "7bf5c29fefe51e635b4e3b7fa1c0ecc9", "sha256": "fff0b779f3fb951f2243590c09c3e79aca9b5df0c9cd3d0d9f0ebc192430cab9" }, "downloads": -1, "filename": "microcosm-2.13.1.tar.gz", "has_sig": false, "md5_digest": "7bf5c29fefe51e635b4e3b7fa1c0ecc9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19907, "upload_time": "2019-10-22T16:03:13", "upload_time_iso_8601": "2019-10-22T16:03:13.888943Z", "url": "https://files.pythonhosted.org/packages/f8/99/d6fd735bf1ca99b110ad4ce8642dbe26b9bbe4519715ae26c45347e86c7f/microcosm-2.13.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.13.2": [ { "comment_text": "", "digests": { "md5": "941b94c1c06aef9db54174f236667b54", "sha256": "4b7105d7d82ab89d778edf3051ab22609e9796aa8b178dd58d0a1f90439110f6" }, "downloads": -1, "filename": "microcosm-2.13.2.tar.gz", "has_sig": false, "md5_digest": "941b94c1c06aef9db54174f236667b54", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19911, "upload_time": "2020-01-03T13:04:52", "upload_time_iso_8601": "2020-01-03T13:04:52.283995Z", "url": "https://files.pythonhosted.org/packages/74/82/c2208dca24342f2ab798d40a21c44c5fdad5ac839a683ab8ece4e15b6bc9/microcosm-2.13.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.14.0": [ { "comment_text": "", "digests": { "md5": "53b3372f825202498fba5b2362aafcd4", "sha256": "eaa8e81c15671db85b8255dc24d2cafaa5d9a1c088acbf9fe3ad32ccf4ec05d3" }, "downloads": -1, "filename": "microcosm-2.14.0.tar.gz", "has_sig": false, "md5_digest": "53b3372f825202498fba5b2362aafcd4", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19958, "upload_time": "2020-07-23T16:08:56", "upload_time_iso_8601": "2020-07-23T16:08:56.240989Z", "url": "https://files.pythonhosted.org/packages/35/4c/f7dfe5202e7a98475307e9c10ae9169d87a5e81b209e7681bb34eda824b3/microcosm-2.14.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.2.0": [ { "comment_text": "", "digests": { "md5": "9139d2e359994ffe29e72b820b66c74f", "sha256": "02aada4a56397fd36c01205803a88b46fe05c7b963384425846f6f1b405df0dc" }, "downloads": -1, "filename": "microcosm-2.2.0.tar.gz", "has_sig": false, "md5_digest": "9139d2e359994ffe29e72b820b66c74f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13334, "upload_time": "2018-02-14T21:18:40", "upload_time_iso_8601": "2018-02-14T21:18:40.571273Z", "url": "https://files.pythonhosted.org/packages/7e/a1/5a154720090bc7a5299320e13f40ced6fb95b9ea5bb5c8a465fb7cca5c09/microcosm-2.2.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.3.0": [ { "comment_text": "", "digests": { "md5": "7c73b74ef50852684dbf0943e51f3c86", "sha256": "b827c2a0d3c602f06f269452e1631b790e552c0ea5fc9343c574a00362ae39f0" }, "downloads": -1, "filename": "microcosm-2.3.0.tar.gz", "has_sig": false, "md5_digest": "7c73b74ef50852684dbf0943e51f3c86", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14218, "upload_time": "2018-02-16T01:31:35", "upload_time_iso_8601": "2018-02-16T01:31:35.608711Z", "url": "https://files.pythonhosted.org/packages/dd/7d/fa12c3981a2edcd3a6aab0c6c8715b4108a39d81030f035c857ecd54919f/microcosm-2.3.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.0": [ { "comment_text": "", "digests": { "md5": "99919cef525689f20a3874c633dc55f2", "sha256": "9afbb1fc7c8ff195379678bbd622f7b07a16c6233e898e11dbd9d20a5ad861a6" }, "downloads": -1, "filename": "microcosm-2.4.0.tar.gz", "has_sig": false, "md5_digest": "99919cef525689f20a3874c633dc55f2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14234, "upload_time": "2018-02-16T23:17:31", "upload_time_iso_8601": "2018-02-16T23:17:31.447661Z", "url": "https://files.pythonhosted.org/packages/b1/bc/a7527b2a78e8bff83fc14f559123ac7c83db2e571b01f29b547edb275f6b/microcosm-2.4.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.4.1": [ { "comment_text": "", "digests": { "md5": "1e3ae7259ff9dcf75ad358338fa75768", "sha256": "46fb55b875f429a143137374f6e45905b177510ca250ad30323bb6c924d468ff" }, "downloads": -1, "filename": "microcosm-2.4.1.tar.gz", "has_sig": false, "md5_digest": "1e3ae7259ff9dcf75ad358338fa75768", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12693, "upload_time": "2018-06-26T00:38:44", "upload_time_iso_8601": "2018-06-26T00:38:44.700046Z", "url": "https://files.pythonhosted.org/packages/bc/71/af6fda2b0b45acc03e63a08912b846eb6751a583f7a33e7c4455c9e79d73/microcosm-2.4.1.tar.gz", "yanked": false, "yanked_reason": null } ], "2.5.0": [ { "comment_text": "", "digests": { "md5": "4a71d448f5a251ac23ea401dae46ad79", "sha256": "4f4da1a15c53f38dad3be7559a15b100dd42ac73a75d9e0c580528c80fb5db4d" }, "downloads": -1, "filename": "microcosm-2.5.0.tar.gz", "has_sig": false, "md5_digest": "4a71d448f5a251ac23ea401dae46ad79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14614, "upload_time": "2019-02-20T02:51:21", "upload_time_iso_8601": "2019-02-20T02:51:21.907783Z", "url": "https://files.pythonhosted.org/packages/b7/44/e1d498f3295d19ba0db6c3cc2060cbb9c5fca461ec596c43ae0f3453d6a0/microcosm-2.5.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.6.0": [ { "comment_text": "", "digests": { "md5": "da1f3f3bff756841b9175a4d54e32fe0", "sha256": "edafe6d737f8837950bae98d90b31d4527358cfa94038167370744a5f5a778ab" }, "downloads": -1, "filename": "microcosm-2.6.0.tar.gz", "has_sig": false, "md5_digest": "da1f3f3bff756841b9175a4d54e32fe0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14690, "upload_time": "2019-02-20T17:02:11", "upload_time_iso_8601": "2019-02-20T17:02:11.654969Z", "url": "https://files.pythonhosted.org/packages/9e/59/6d455f6fad427c6d840a37cd2be56006dbfece27d810d137711ef148fd60/microcosm-2.6.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.7.0": [ { "comment_text": "", "digests": { "md5": "d23f5f384717000c1adeb2c6cf1c7ccd", "sha256": "51c293b4519949453e4cda8d8c4a5864f00b1ea5adbe1bcffb8d7bd8bffcf562" }, "downloads": -1, "filename": "microcosm-2.7.0.tar.gz", "has_sig": false, "md5_digest": "d23f5f384717000c1adeb2c6cf1c7ccd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14746, "upload_time": "2019-05-15T17:23:34", "upload_time_iso_8601": "2019-05-15T17:23:34.008750Z", "url": "https://files.pythonhosted.org/packages/37/6a/034a429a1b5ba8c68cb0e1d5d82528b6080c53d59821f5dd421d0ccdcd00/microcosm-2.7.0.tar.gz", "yanked": false, "yanked_reason": null } ], "2.8.2": [ { "comment_text": "", "digests": { "md5": "4fab93e38fbd6e3560c487b476552230", "sha256": "5d0b09051ebde89862d4a4f509bf04d34bc0c90bfe78aedbe433529ba37f2849" }, "downloads": -1, "filename": "microcosm-2.8.2.tar.gz", "has_sig": false, "md5_digest": "4fab93e38fbd6e3560c487b476552230", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17679, "upload_time": "2019-06-13T13:04:56", "upload_time_iso_8601": "2019-06-13T13:04:56.922268Z", "url": "https://files.pythonhosted.org/packages/9d/51/926ce5d9cbb95e23f3b43f5eaea3f9fd27eb91e2e66be28e1fe9a57d4a72/microcosm-2.8.2.tar.gz", "yanked": false, "yanked_reason": null } ], "2.8.3": [ { "comment_text": "", "digests": { "md5": "aadcc7304e5da9a74d174521b0a13f83", "sha256": "7f93e834c4e1c61f215b41f301bdb4ab3de3d7c6b2428cebeb9ef40e24b7c4c6" }, "downloads": -1, "filename": "microcosm-2.8.3.tar.gz", "has_sig": false, "md5_digest": "aadcc7304e5da9a74d174521b0a13f83", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17685, "upload_time": "2019-06-14T13:11:09", "upload_time_iso_8601": "2019-06-14T13:11:09.924620Z", "url": "https://files.pythonhosted.org/packages/b8/93/71fa71869c9e0eb4936385d16201ea59b3904aa4d173b669d63bf672cd54/microcosm-2.8.3.tar.gz", "yanked": false, "yanked_reason": null } ], "2.8.4": [ { "comment_text": "", "digests": { "md5": "00a4f3f28dfd690b007c3a6eeb33c6b1", "sha256": "ed550e564bbcb73858da6b49178af16dc9bc932ca764423d221d676eddb571d4" }, "downloads": -1, "filename": "microcosm-2.8.4.tar.gz", "has_sig": false, "md5_digest": "00a4f3f28dfd690b007c3a6eeb33c6b1", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17700, "upload_time": "2019-07-16T16:41:28", "upload_time_iso_8601": "2019-07-16T16:41:28.791855Z", "url": "https://files.pythonhosted.org/packages/7b/bc/70f88b0abaa456f9b1678a50bc51caf733aca3796bed6c9a0fc403bf1fc8/microcosm-2.8.4.tar.gz", "yanked": false, "yanked_reason": null } ], "2.9.0": [ { "comment_text": "", "digests": { "md5": "9dfd2beec1c56e5e4779c6bc8a56aec0", "sha256": "98507f2064c80d8683f410ef82fde0c7bc38a8d8223cdf504704b42e460d017b" }, "downloads": -1, "filename": "microcosm-2.9.0.tar.gz", "has_sig": false, "md5_digest": "9dfd2beec1c56e5e4779c6bc8a56aec0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 17694, "upload_time": "2019-07-16T22:46:01", "upload_time_iso_8601": "2019-07-16T22:46:01.347652Z", "url": "https://files.pythonhosted.org/packages/2b/1d/846ee4eac70a845f634a8456808a9e294f7e50fe8d448dec5d3e5e2f8c92/microcosm-2.9.0.tar.gz", "yanked": false, "yanked_reason": null } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "b4513cac03d272720ae4c5ec2eb48680", "sha256": "fb001c8c711aaaddbbc398cecb6d26c9fdb0bfb809376024bd951808deaa50c6" }, "downloads": -1, "filename": "microcosm-3.0.0.tar.gz", "has_sig": false, "md5_digest": "b4513cac03d272720ae4c5ec2eb48680", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18883, "upload_time": "2020-09-24T15:50:28", "upload_time_iso_8601": "2020-09-24T15:50:28.789774Z", "url": "https://files.pythonhosted.org/packages/2d/97/15835ea86540638bf416328910eb92d807d5cb3c1e697748326a8f9953ad/microcosm-3.0.0.tar.gz", "yanked": false, "yanked_reason": null } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b4513cac03d272720ae4c5ec2eb48680", "sha256": "fb001c8c711aaaddbbc398cecb6d26c9fdb0bfb809376024bd951808deaa50c6" }, "downloads": -1, "filename": "microcosm-3.0.0.tar.gz", "has_sig": false, "md5_digest": "b4513cac03d272720ae4c5ec2eb48680", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18883, "upload_time": "2020-09-24T15:50:28", "upload_time_iso_8601": "2020-09-24T15:50:28.789774Z", "url": "https://files.pythonhosted.org/packages/2d/97/15835ea86540638bf416328910eb92d807d5cb3c1e697748326a8f9953ad/microcosm-3.0.0.tar.gz", "yanked": false, "yanked_reason": null } ], "vulnerabilities": [] }