{ "info": { "author": "masell", "author_email": "", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# stupid\n\nA stupid workaround when using multiple inheritance and `__slots__`\n\n# installation\n\n`pip install stupid`\n\n# example\n\n```\nfrom hashlib import sha512\nfrom stupid import StupidData\n\nclass User(StupidData):\n name: str\n\nclass AccessData(StupidData):\n access_code: sha512\n\nclass ApiPayload(User, AccessData):\n pass\n\npayload = ApiPayload(\"root\", sha512()) \npayload = ApiPayload(name=\"root\", access_code=sha512())\n```\n\n`__slots__` are autogenerated and works with multiple inheritance as shown above.\nAs `__slots__` are present assigning new attributes is not allowed.\n\n```\n>>> payload = ApiPayload(name=\"root\", access_code=sha512())\n>>> payload.extra = 1\nTraceback (most recent call last):\n File \"\", line 1, in \nAttributeError: 'ApiPayload' object has no attribute 'extra'\n```\n\nIt's also a dataclass.\n\n```\n>>> from dataclasses import is_dataclass\n>>> is_dataclass(ApiPayload)\nTrue\n```\n\nisinstance check also works.\n```\n>>> isinstance(payload, User)\nTrue\n>>> isinstance(payload, AccessData)\nTrue\n```\n\n\nissubclass\n```\n>>> from stupid import StupidData\n>>> class A(StupidData): pass\n>>> class B(A): pass\n>>> class C:pass\n>>>\n>>> issubclass(B, A)\nTrue\n>>> issubclass(B, C)\nFalse\n```\n\n\n", "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/masell/stupid", "keywords": "", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "stupid", "package_url": "https://pypi.org/project/stupid/", "platform": "", "project_url": "https://pypi.org/project/stupid/", "project_urls": { "Homepage": "https://github.com/masell/stupid" }, "release_url": "https://pypi.org/project/stupid/1.1.0/", "requires_dist": [ "dataclasses" ], "requires_python": "", "summary": "Support for multiple inheritance and __slots__", "version": "1.1.0" }, "last_serial": 5006591, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7e00bf9aecdc23fa9e993a39ec4d21a8", "sha256": "02298882abba69d737113887f88733e1d464cc486419e32848cf92a599e8eea7" }, "downloads": -1, "filename": "stupid-0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "7e00bf9aecdc23fa9e993a39ec4d21a8", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3279, "upload_time": "2019-03-24T00:17:33", "url": "https://files.pythonhosted.org/packages/f6/bb/797be6cf1b62c63326d5b15c0a58fb06e00621449d022d85958cd3267215/stupid-0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "83358af23171364a49efa53ce169c911", "sha256": "fcc4a57fb9f667026457ad272f74ff42a55b4e83e8588b6588991c2601b198fe" }, "downloads": -1, "filename": "stupid-0.1.tar.gz", "has_sig": false, "md5_digest": "83358af23171364a49efa53ce169c911", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2713, "upload_time": "2019-03-24T00:17:36", "url": "https://files.pythonhosted.org/packages/11/57/1ca08d90ffa3c1f6ac0063d631b5d640c6ab1cd9d823ff3aed9603999c99/stupid-0.1.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "a9abff2afe59e2cc9bc06dfc62bf8ec3", "sha256": "f2c4c8c7e5aeac73e177b7f1e1b8ab0e9ff39397f71a594d8bccbd668a508942" }, "downloads": -1, "filename": "stupid-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "a9abff2afe59e2cc9bc06dfc62bf8ec3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3379, "upload_time": "2019-03-25T00:01:59", "url": "https://files.pythonhosted.org/packages/39/a5/ca40d0023a9ef968a8faba802a245de3095812079a5fa4868f89d8046cc3/stupid-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7d1f4fc658bfac075cb9571e045c8045", "sha256": "7d80b3657e969ad1b9b44b3b4129cff23d51fb532338b1c00074708cce2d1e66" }, "downloads": -1, "filename": "stupid-1.0.0.tar.gz", "has_sig": false, "md5_digest": "7d1f4fc658bfac075cb9571e045c8045", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3043, "upload_time": "2019-03-25T00:02:01", "url": "https://files.pythonhosted.org/packages/0b/30/9c75c4162fc09514989e97e0f41b10883efa80f27f3444f0b0d1b1080ea8/stupid-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "ba29925ea830ccd24ac5ecb81629d799", "sha256": "6477f4e42bb82c61ebbbe7d658ae8e1a45a93b3ae12ee9f4974f3785aaf37e94" }, "downloads": -1, "filename": "stupid-1.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ba29925ea830ccd24ac5ecb81629d799", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3443, "upload_time": "2019-03-25T01:02:24", "url": "https://files.pythonhosted.org/packages/bc/84/fa7a38b235fc619e86c169d32e09c48c2b13957af14d6245506263c4ff00/stupid-1.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "778cede435f966052b0ef26a83967f9a", "sha256": "5c2a7100ad778272f3107c44424eb28bc823807b09f8da21a87279f443404e68" }, "downloads": -1, "filename": "stupid-1.0.1.tar.gz", "has_sig": false, "md5_digest": "778cede435f966052b0ef26a83967f9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3176, "upload_time": "2019-03-25T01:02:25", "url": "https://files.pythonhosted.org/packages/11/c6/cd8b3aac36530e0502579bb365917bc4c693fce31e686c33ecd8129cce2d/stupid-1.0.1.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "5823a3304c75c67a3cd125b9097f26c7", "sha256": "aa85f37559335a8eaad4c9a74c0c22d9a4fbd9841070a24a724dabdbec0f56ff" }, "downloads": -1, "filename": "stupid-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5823a3304c75c67a3cd125b9097f26c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3539, "upload_time": "2019-03-30T10:04:35", "url": "https://files.pythonhosted.org/packages/f4/00/3ff95a2835ee95680edaffcbc85c0845c1fd9c568c5f210a04c1f0b0dcd6/stupid-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1465a9b4aaf49fdd725f6c578f8bd836", "sha256": "21fd1e906a99f308f92931736c4883ecce4211e5787492434c5af8ba1069eb38" }, "downloads": -1, "filename": "stupid-1.1.0.tar.gz", "has_sig": false, "md5_digest": "1465a9b4aaf49fdd725f6c578f8bd836", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3341, "upload_time": "2019-03-30T10:04:36", "url": "https://files.pythonhosted.org/packages/ff/39/d644f1a5f9c66d64381ca4de6ddf5bc830482af494d879b626db01adaeb8/stupid-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5823a3304c75c67a3cd125b9097f26c7", "sha256": "aa85f37559335a8eaad4c9a74c0c22d9a4fbd9841070a24a724dabdbec0f56ff" }, "downloads": -1, "filename": "stupid-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "5823a3304c75c67a3cd125b9097f26c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3539, "upload_time": "2019-03-30T10:04:35", "url": "https://files.pythonhosted.org/packages/f4/00/3ff95a2835ee95680edaffcbc85c0845c1fd9c568c5f210a04c1f0b0dcd6/stupid-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1465a9b4aaf49fdd725f6c578f8bd836", "sha256": "21fd1e906a99f308f92931736c4883ecce4211e5787492434c5af8ba1069eb38" }, "downloads": -1, "filename": "stupid-1.1.0.tar.gz", "has_sig": false, "md5_digest": "1465a9b4aaf49fdd725f6c578f8bd836", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3341, "upload_time": "2019-03-30T10:04:36", "url": "https://files.pythonhosted.org/packages/ff/39/d644f1a5f9c66d64381ca4de6ddf5bc830482af494d879b626db01adaeb8/stupid-1.1.0.tar.gz" } ] }