{ "info": { "author": "cologler", "author_email": "skyoflw@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# singletonify\n\n[![Build Status](https://travis-ci.com/Cologler/singletonify-python.svg?branch=master)](https://travis-ci.com/Cologler/singletonify-python)\n[![PyPI](https://img.shields.io/pypi/v/singletonify.svg)](https://pypi.org/project/singletonify/)\n\n\n## install\n\n``` cmd\npip install singletonify\n```\n\n## usage\n\n``` py\n@singleton(a=3)\nclass YourClass:\n def __init__(self, a): ...\n\nassert YourClass() is YourClass()\n```\n\n## why not other\n\nThere are many singleton libraries on pypi, but their all has problem:\n\n* [singleton](https://pypi.python.org/pypi/singleton) - cannot use `issubclass()` or `__mro__` or ...\n* [singleton-decorator](https://pypi.python.org/pypi/singleton-decorator) - cannot use `isinstance()` .\n* [singleton_factory](https://pypi.python.org/pypi/singleton_factory) - wtf, why do people use `dict()[hash(obj)] = obj` ?\n* [singletonmetaclasss](https://pypi.python.org/pypi/singletonmetaclasss/0.1) - a little like this, but not a decorator.\n* [singleton3](https://pypi.python.org/pypi/singleton3) - haha\n* [pysingleton](https://pypi.python.org/pypi/pysingleton) - ABANDONED.\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/Cologler/singletonify-python", "keywords": "singleton", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "singletonify", "package_url": "https://pypi.org/project/singletonify/", "platform": "", "project_url": "https://pypi.org/project/singletonify/", "project_urls": { "Homepage": "https://github.com/Cologler/singletonify-python" }, "release_url": "https://pypi.org/project/singletonify/0.2.4/", "requires_dist": null, "requires_python": "", "summary": "", "version": "0.2.4" }, "last_serial": 4384814, "releases": { "0.1.0.0": [ { "comment_text": "", "digests": { "md5": "58e444e15efe6f3bc0be58f004d47679", "sha256": "88374ca53440ed39343ecd02765d2e997ecb743bc70258a6c5c9d4585bf62e11" }, "downloads": -1, "filename": "singletonify-0.1.0.0-py3.6.egg", "has_sig": false, "md5_digest": "58e444e15efe6f3bc0be58f004d47679", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 3191, "upload_time": "2018-01-03T09:56:22", "url": "https://files.pythonhosted.org/packages/38/08/2635ad69aa6afe9008a397cb0ae4272eafc50696460326dda94c8da14ee1/singletonify-0.1.0.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "10d929f45ccd6df79496fb05c8e946c1", "sha256": "3256b15449efaf3f99d17c4ada65ce13d5e1d4547629aba1da7ae7780f846072" }, "downloads": -1, "filename": "singletonify-0.1.0.0.tar.gz", "has_sig": false, "md5_digest": "10d929f45ccd6df79496fb05c8e946c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2076, "upload_time": "2018-01-03T09:56:19", "url": "https://files.pythonhosted.org/packages/bc/6d/89fcf64aa9b823356a2eaa7ed3bd69672922bd29953b922ea9bf07413b5c/singletonify-0.1.0.0.tar.gz" } ], "0.1.0.1": [ { "comment_text": "", "digests": { "md5": "6498569d880eac89cb240a16b362f906", "sha256": "7915325b87d16313cea2107ee8d85ce495b474f7b9205f63e2a1955c041bebd2" }, "downloads": -1, "filename": "singletonify-0.1.0.1-py3.6.egg", "has_sig": false, "md5_digest": "6498569d880eac89cb240a16b362f906", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 3222, "upload_time": "2018-01-03T10:06:46", "url": "https://files.pythonhosted.org/packages/48/8b/b8667673857b46949edf5c6a42edc62c3a98ad33cd5560f8bd7e371d7298/singletonify-0.1.0.1-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "ac7675bbc312cdbde38f2c37a91c1c55", "sha256": "3750c24d92a69a8572d73d9682713f35244104d43f33bf5b9edcd3ed242a0a5c" }, "downloads": -1, "filename": "singletonify-0.1.0.1.tar.gz", "has_sig": false, "md5_digest": "ac7675bbc312cdbde38f2c37a91c1c55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2120, "upload_time": "2018-01-03T10:06:43", "url": "https://files.pythonhosted.org/packages/d6/28/c63f3294224ae814b2b2aaf30c8fb55d914cd94f738e9efdf385782a3ef0/singletonify-0.1.0.1.tar.gz" } ], "0.1.1.0": [ { "comment_text": "", "digests": { "md5": "b2d2eec5140d283c17f6c905af85fdeb", "sha256": "30f633267c807d05d63bbe320fe3300cd760ca561efedf82f74fd0bcf72d6697" }, "downloads": -1, "filename": "singletonify-0.1.1.0-py3.6.egg", "has_sig": false, "md5_digest": "b2d2eec5140d283c17f6c905af85fdeb", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 3170, "upload_time": "2018-01-13T12:25:50", "url": "https://files.pythonhosted.org/packages/cd/2a/40ada07b81a50852e1c350c7f930aff3022ed7be213ad565cb1e923c48fe/singletonify-0.1.1.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "18c346ab81e16039f7763d8c6cb4d15f", "sha256": "04f03317f7cae1b95b533b13de87d02aedddcce23f0b09b4845bbd5ebadd44d3" }, "downloads": -1, "filename": "singletonify-0.1.1.0.tar.gz", "has_sig": false, "md5_digest": "18c346ab81e16039f7763d8c6cb4d15f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2110, "upload_time": "2018-01-13T12:25:48", "url": "https://files.pythonhosted.org/packages/a2/dd/9d606a87991971a511a2bff106d23d4229c5c29f2819180eb824aa40f9a5/singletonify-0.1.1.0.tar.gz" } ], "0.1.2.0": [ { "comment_text": "", "digests": { "md5": "983b89f15c0f579f2fcd4eb3bcf28247", "sha256": "b41bc4864cc36631b89337a42e14ce5d864d0db1ca0297f2a270697648360e3e" }, "downloads": -1, "filename": "singletonify-0.1.2.0-py3.6.egg", "has_sig": false, "md5_digest": "983b89f15c0f579f2fcd4eb3bcf28247", "packagetype": "bdist_egg", "python_version": "3.6", "requires_python": null, "size": 3132, "upload_time": "2018-01-16T17:06:09", "url": "https://files.pythonhosted.org/packages/6f/fc/085933e134ca1ec0cca0f2237ba8269cb6c541b105f80eb1991b48c4f123/singletonify-0.1.2.0-py3.6.egg" }, { "comment_text": "", "digests": { "md5": "3d769c8fe65344ae6c235a7e9c30e361", "sha256": "397a252282d9f06faea2953c2cd524a88809b36b776bc1d06215794a05ae2ed5" }, "downloads": -1, "filename": "singletonify-0.1.2.0.tar.gz", "has_sig": false, "md5_digest": "3d769c8fe65344ae6c235a7e9c30e361", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2073, "upload_time": "2018-01-16T17:06:07", "url": "https://files.pythonhosted.org/packages/37/7f/bdac7e1dc9ae2d6e257af9fd0da27d743b0e01b27ca748cf3abc727903b0/singletonify-0.1.2.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "6c80eaf49a84b1c48cd9a6fb372c16a7", "sha256": "133c9a419c44c130d49e7059b6f8e8cc34f49d7e3ae6a54145a6daa50de3c944" }, "downloads": -1, "filename": "singletonify-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6c80eaf49a84b1c48cd9a6fb372c16a7", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 2282, "upload_time": "2018-09-27T17:51:57", "url": "https://files.pythonhosted.org/packages/83/42/0c8aadc0608e244128b93ed80a6a4b3f283ddcab7eb581420c94f4977956/singletonify-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "86a6f9b4653a239bfc14afb4dd40b977", "sha256": "c1471a3bb0fb01cd28b40523ec2e8129f1a43e67d5b5a52b89c13c4e5d8a82dc" }, "downloads": -1, "filename": "singletonify-0.2.0.tar.gz", "has_sig": false, "md5_digest": "86a6f9b4653a239bfc14afb4dd40b977", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2169, "upload_time": "2018-09-27T17:51:55", "url": "https://files.pythonhosted.org/packages/cc/89/0237c9b136b3842442b9c7b947e6ed818642f3736511c60bada3cf4b1d05/singletonify-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "38f02bf7e66ee542f376c8aae2924ad3", "sha256": "714cd558659f2e4797f1abf7d4182c01bbf8c54329b62ed6b35d833eeb2718df" }, "downloads": -1, "filename": "singletonify-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "38f02bf7e66ee542f376c8aae2924ad3", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 2277, "upload_time": "2018-09-27T17:54:13", "url": "https://files.pythonhosted.org/packages/34/f8/9676e6aeeb751d68759c456fe52bd7d42cd0049d38b8ac4641b58044920e/singletonify-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c95b95325dd49b977e41d0310a632c02", "sha256": "caa8339813cd5eba950d68f1a15a4c2d8b53d3421b8bf1682ea0126bd14eff14" }, "downloads": -1, "filename": "singletonify-0.2.1.tar.gz", "has_sig": false, "md5_digest": "c95b95325dd49b977e41d0310a632c02", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2072, "upload_time": "2018-09-27T17:54:10", "url": "https://files.pythonhosted.org/packages/d4/e0/fb9d5b47eb21f3794d3c741ec27c6decc925177e0832b0a1194e754cddf5/singletonify-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "df539f672dae3a8587c4630bf4cc031c", "sha256": "76265a48b406e1b73fbbdde4c5bf9d2d1e9035af88d66750f3b98a2eb68722b9" }, "downloads": -1, "filename": "singletonify-0.2.2.tar.gz", "has_sig": false, "md5_digest": "df539f672dae3a8587c4630bf4cc031c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2115, "upload_time": "2018-09-28T02:00:02", "url": "https://files.pythonhosted.org/packages/20/61/dae28a589cfc44a5834b0e0812700aab4369c61abe468ff3cd2b844ddddd/singletonify-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "d800c7388037203e283f7a44e8633f97", "sha256": "51e8d6c895d8de72d126e0b523f3c34817442201245da517c91c4a29d82ad133" }, "downloads": -1, "filename": "singletonify-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "d800c7388037203e283f7a44e8633f97", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2351, "upload_time": "2018-09-28T02:03:17", "url": "https://files.pythonhosted.org/packages/04/a2/42e42669f605a5da9f3e8ea3665ec9158aaf8986dfe6b90b12f8416bc814/singletonify-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b52cba330501d06483b3a9ea0afabab9", "sha256": "e04ba8278b3dee3d46877482cef9682f7d5df9bd305722f6828a49bbeb9a4def" }, "downloads": -1, "filename": "singletonify-0.2.3.tar.gz", "has_sig": false, "md5_digest": "b52cba330501d06483b3a9ea0afabab9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2111, "upload_time": "2018-09-28T02:03:18", "url": "https://files.pythonhosted.org/packages/40/ae/132c91def0f3236b2d77e99c45582f55e08bcda925c4872be381e446ed4c/singletonify-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "991c0c53f21e04fb7d5fc5751154f383", "sha256": "2508c0630611f72061bb396427c9a2932d9909cc07ebaa479edef01f64dab336" }, "downloads": -1, "filename": "singletonify-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "991c0c53f21e04fb7d5fc5751154f383", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3211, "upload_time": "2018-10-17T03:26:58", "url": "https://files.pythonhosted.org/packages/4b/31/7aa2ad2a40cada659a46ad2441de4bda08cc2385c40ce7886b976f59b2ca/singletonify-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a4fa91765c8066d31668403e96a08cd", "sha256": "05be9f3eefc9dcd93fc18eabc72468f586a317af6b216a821e7a1f2ea351f26f" }, "downloads": -1, "filename": "singletonify-0.2.4.tar.gz", "has_sig": false, "md5_digest": "5a4fa91765c8066d31668403e96a08cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2173, "upload_time": "2018-10-17T03:26:59", "url": "https://files.pythonhosted.org/packages/97/61/b297dab1cca05651aac73e93fd6e8083ae08bab7b549cb2d3f0ce7e92111/singletonify-0.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "991c0c53f21e04fb7d5fc5751154f383", "sha256": "2508c0630611f72061bb396427c9a2932d9909cc07ebaa479edef01f64dab336" }, "downloads": -1, "filename": "singletonify-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "991c0c53f21e04fb7d5fc5751154f383", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3211, "upload_time": "2018-10-17T03:26:58", "url": "https://files.pythonhosted.org/packages/4b/31/7aa2ad2a40cada659a46ad2441de4bda08cc2385c40ce7886b976f59b2ca/singletonify-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5a4fa91765c8066d31668403e96a08cd", "sha256": "05be9f3eefc9dcd93fc18eabc72468f586a317af6b216a821e7a1f2ea351f26f" }, "downloads": -1, "filename": "singletonify-0.2.4.tar.gz", "has_sig": false, "md5_digest": "5a4fa91765c8066d31668403e96a08cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2173, "upload_time": "2018-10-17T03:26:59", "url": "https://files.pythonhosted.org/packages/97/61/b297dab1cca05651aac73e93fd6e8083ae08bab7b549cb2d3f0ce7e92111/singletonify-0.2.4.tar.gz" } ] }