{ "info": { "author": "SENAITE Foundation", "author_email": "hello@senaite.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Plone", "Framework :: Zope2", "License :: OSI Approved :: GNU General Public License v2 (GPLv2)", "Programming Language :: Python" ], "description": ".. image:: https://raw.githubusercontent.com/senaite/senaite.core.supermodel/master/static/logo_pypi.png\n :target: https://github.com/senaite/senaite.core.supermodel#readme\n :alt: senaite.core.supermodel\n :height: 128\n\n*A beautiful content wrapper for SENAITE that you will love*\n============================================================\n\n.. image:: https://img.shields.io/pypi/v/senaite.core.supermodel.svg?style=flat-square\n :target: https://pypi.python.org/pypi/senaite.core.supermodel\n\n.. image:: https://img.shields.io/github/issues-pr/senaite/senaite.core.supermodel.svg?style=flat-square\n :target: https://github.com/senaite/senaite.core.supermodel/pulls\n\n.. image:: https://img.shields.io/github/issues/senaite/senaite.core.supermodel.svg?style=flat-square\n :target: https://github.com/senaite/senaite.core.supermodel/issues\n\n.. image:: https://img.shields.io/badge/README-GitHub-blue.svg?style=flat-square\n :target: https://github.com/senaite/senaite.core.supermodel#readme\n\n.. image:: https://img.shields.io/badge/Built%20with-%E2%9D%A4-brightgreen.svg\n :target: https://github.com/senaite/senaite.core.supermodel/blob/master/src/senaite/core/supermodel/docs/SUPERMODEL.rst\n\n.. image:: https://img.shields.io/badge/Made%20for%20SENAITE-%E2%AC%A1-lightgrey.svg\n :target: https://www.senaite.com\n\n\nAbout\n=====\n\nThe SENAITE CORE SUPERMODEL is a content wrapper for objects and catalog brains\nin SENAITE and provides a unified dictionary interface to access the schema\nfields, methods and metadata.\n\n\nFor what is it needed?\n======================\n\nThe purpose of the SUPERMODEL is to help coders to access the data from content\nobjects. It also ensures that the most effective and efficient method is used to\nachieve a task.\n\n\nHow does it work?\n-----------------\n\nA `SuperModel` can be instantiated with an `UID` of a content object::\n\n >>> from senaite.core.supermodel import SuperModel\n >>> supermodel = SuperModel('e37c1b659137414e872c08af410f09b4')\n\nThis will give transparent access to all schema fields of the wrapped object as\nwell to all the metadata columns of the primary catalog of this object::\n\n >>> supermodel.MySchemaField'\n 'Value of MySchemaField'\n\nPlease read the `full functional doctest`_ to see the super powers of the\n`SuperModel` in action.\n\n\nInstallation\n============\n\nSENAITE.CORE.SUPERMODEL is a dependency of SENAITE.CORE and therefore no\nadditional installation steps are required.\n\n\n.. _full functional doctest: https://github.com/senaite/senaite.core.supermodel/blob/master/src/senaite/core/supermodel/docs/SUPERMODEL.rst\n\n\nChangelog\n=========\n\n1.2.1 (2019-07-01)\n------------------\n\n- #8 Do not process \"0\" values to Portal-SuperModels\n- #7 Fix traceback when initializing a supermodel with a catalog brain\n- #6 Added Destructor and further improvements\n- #5 Fix UID->SuperModel conversion of UIDReferenceFields\n- #4 Skip private fields starting with `_`\n\n\n1.2.0 (2019-03-30)\n------------------\n\n- Compatibility release for SENAITE CORE 1.3.0\n\n\n1.1.0 (2018-10-04)\n------------------\n\n- #2 Allow to pass in a catalog brain or instance to initialize a SuperModel\n\n\n1.0.0 (2018-07-19)\n------------------\n\n- Initial Release\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/senaite/senaite.core.supermodel", "keywords": "", "license": "GPLv2", "maintainer": "", "maintainer_email": "", "name": "senaite.core.supermodel", "package_url": "https://pypi.org/project/senaite.core.supermodel/", "platform": "", "project_url": "https://pypi.org/project/senaite.core.supermodel/", "project_urls": { "Homepage": "https://github.com/senaite/senaite.core.supermodel" }, "release_url": "https://pypi.org/project/senaite.core.supermodel/1.2.1/", "requires_dist": [ "setuptools", "senaite.core", "Products.PloneTestCase ; extra == 'test'", "plone.app.testing ; extra == 'test'", "robotsuite ; extra == 'test'", "unittest2 ; extra == 'test'" ], "requires_python": "", "summary": "A beautiful content wrapper for SENAITE that you will love", "version": "1.2.1" }, "last_serial": 5472811, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "d2acf989ef316623c74f55bfa140d443", "sha256": "426ecd6782e0a928198da7ed5666ef659b79245b48fafcd2a92ff1302796687a" }, "downloads": -1, "filename": "senaite.core.supermodel-1.0.0-py2-none-any.whl", "has_sig": false, "md5_digest": "d2acf989ef316623c74f55bfa140d443", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10315, "upload_time": "2018-07-19T08:51:51", "url": "https://files.pythonhosted.org/packages/e8/ec/560391f431044251bda2d4b4a811c495f463499f4ae602f409becca326b6/senaite.core.supermodel-1.0.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "80097983b03154af68c57f1b540dffcd", "sha256": "0a52913b2e24ee6c81b5c25c5322a5bfd6e0f3bc766d1eb9d3f36c589b79b378" }, "downloads": -1, "filename": "senaite.core.supermodel-1.0.0.zip", "has_sig": false, "md5_digest": "80097983b03154af68c57f1b540dffcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21205, "upload_time": "2018-07-19T08:51:52", "url": "https://files.pythonhosted.org/packages/f5/c5/67fb2b974cb51032bc1b77a4c266d93ef56ae3888a72392c82181b5161b6/senaite.core.supermodel-1.0.0.zip" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "290a931d5dabfc26b9bb187ea974063c", "sha256": "c35ee3213fa47010b9103585ec6202e8d3d2385b9d8fc553756c9d885ca97f5e" }, "downloads": -1, "filename": "senaite.core.supermodel-1.1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "290a931d5dabfc26b9bb187ea974063c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10787, "upload_time": "2018-10-04T12:43:58", "url": "https://files.pythonhosted.org/packages/61/41/0c20a2c7865ee4a39a24cb71046418742e954e8a2060739b16cb844e988e/senaite.core.supermodel-1.1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "fd31a8744ca01da138e86da850c8bedd", "sha256": "d4edab42f6038d436ac5d2acf85df05ccb6c67609fb0bc881a625c9b8016434e" }, "downloads": -1, "filename": "senaite.core.supermodel-1.1.0.zip", "has_sig": false, "md5_digest": "fd31a8744ca01da138e86da850c8bedd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22000, "upload_time": "2018-10-04T12:44:00", "url": "https://files.pythonhosted.org/packages/8a/a5/79b2fcdd907a62e1954598c22f1091e5945132ee2e9d9e9c8bd450761800/senaite.core.supermodel-1.1.0.zip" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "fc06e7f88a68acf2a6644efdd1edb710", "sha256": "d5e5b83098d99b5ba75232c7971a193848031ca3bb724e8265d24acdaa57086e" }, "downloads": -1, "filename": "senaite.core.supermodel-1.2.0.zip", "has_sig": false, "md5_digest": "fc06e7f88a68acf2a6644efdd1edb710", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24785, "upload_time": "2019-03-30T09:32:19", "url": "https://files.pythonhosted.org/packages/3e/53/94857e689ae69a6f65de4f418ed07f2ccc51d6991a047bc75b8c681e7a59/senaite.core.supermodel-1.2.0.zip" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "42c7e04b927aeba62c8a41fd5c74fa53", "sha256": "caf874cde84f3b83c1d1f622c399f7447f6f7575d4ff4622cdd73d7a3fd0671e" }, "downloads": -1, "filename": "senaite.core.supermodel-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "42c7e04b927aeba62c8a41fd5c74fa53", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21465, "upload_time": "2019-07-01T18:48:54", "url": "https://files.pythonhosted.org/packages/eb/fc/7932985893fea062e23b64583e77d34d7a92378c215ed3c332ebe11f55d2/senaite.core.supermodel-1.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4cc61d8c60ce6d6db3b5ea022326e91", "sha256": "f316010f6a5e86d5711c6ce2a8b68cddab0180678e95abfd06bc3ae7a6c25a5d" }, "downloads": -1, "filename": "senaite.core.supermodel-1.2.1.zip", "has_sig": false, "md5_digest": "b4cc61d8c60ce6d6db3b5ea022326e91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26794, "upload_time": "2019-07-01T18:48:55", "url": "https://files.pythonhosted.org/packages/c2/b9/be43fd6f925f8ceb5645b7662aa5113a9438b0a77f16f7fb4bb7cec52bc0/senaite.core.supermodel-1.2.1.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "42c7e04b927aeba62c8a41fd5c74fa53", "sha256": "caf874cde84f3b83c1d1f622c399f7447f6f7575d4ff4622cdd73d7a3fd0671e" }, "downloads": -1, "filename": "senaite.core.supermodel-1.2.1-py2-none-any.whl", "has_sig": false, "md5_digest": "42c7e04b927aeba62c8a41fd5c74fa53", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 21465, "upload_time": "2019-07-01T18:48:54", "url": "https://files.pythonhosted.org/packages/eb/fc/7932985893fea062e23b64583e77d34d7a92378c215ed3c332ebe11f55d2/senaite.core.supermodel-1.2.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b4cc61d8c60ce6d6db3b5ea022326e91", "sha256": "f316010f6a5e86d5711c6ce2a8b68cddab0180678e95abfd06bc3ae7a6c25a5d" }, "downloads": -1, "filename": "senaite.core.supermodel-1.2.1.zip", "has_sig": false, "md5_digest": "b4cc61d8c60ce6d6db3b5ea022326e91", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26794, "upload_time": "2019-07-01T18:48:55", "url": "https://files.pythonhosted.org/packages/c2/b9/be43fd6f925f8ceb5645b7662aa5113a9438b0a77f16f7fb4bb7cec52bc0/senaite.core.supermodel-1.2.1.zip" } ] }