{ "info": { "author": "Martin Skarzynski", "author_email": "marskar@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# The `scattr` Python package\n\nThe `scattr` package has one function, `scattr`,\nthat provides an easy way to\n**S**et **C**lass **ATTR**ibutes of classes derived\nfrom pre-existing Python classes.\n\nThe `scattr` function takes \n- a class object and\n- the name of a helper script\nand returns a subclass called `SubClassAttributes`\nthat contains the methods defined in the helper script.\n\nEssentially, this is an easy way to\nadd user-defined functions to classes.\n\nClass variables, method and classes can be added dynamically:\n```python\nimport pandas as pd\nimport math\n# add pi to a pandas DataFrame\npd.DataFrame.pi = math.pi\n```\n\nThe `scattr` package provides a cleaner way to \nadd new attributes, because it creates a new subclass and\nuses method and class defined in a separate helper script. \n\nThe `scattr` function only adds\ncallable objects(methods and classes), not variables.\n\n## Pandas DataFrame example\n```python\nimport pandas as pd\nfrom scattr import scattr\n\n# create a new class that inherits from pd.DataFrame\n# and includes methods defined in a 'helper.py' file\nScattrFrame = scattr(cls=pd.DataFrame, src='helper')\n\n# instantiate the new class\ndf = ScattrFrame(data=pd.read_csv('risk_factors_cervical_cancer.csv'))\n\n# test methods added from helper file\ndf.say_hi()\n\n# test CowClass added from helper file\ndf.CowClass.say_moo()\n\n# test method from parent class\ndf.head(n=1)\n\n# confirm that df is an instance of pd.DataFrame and PydyFrame\nisinstance(df, (pd.DataFrame, ScattrFrame))\n\n# confirm that ScattrFrame is a subclass of pd.DataFrame\nissubclass(ScattrFrame, pd.DataFrame)\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/marskar/scattr", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "scattr", "package_url": "https://pypi.org/project/scattr/", "platform": "", "project_url": "https://pypi.org/project/scattr/", "project_urls": { "Homepage": "https://github.com/marskar/scattr" }, "release_url": "https://pypi.org/project/scattr/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "Add user-defined methods to Python classes.", "version": "0.0.1" }, "last_serial": 4325249, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a610ef63a448a73baa456ef4e12239b9", "sha256": "fdfbb75f73cb97af032aaa9bda8dac3f4f1c102194d757155fbcee7806530b01" }, "downloads": -1, "filename": "scattr-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a610ef63a448a73baa456ef4e12239b9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2349, "upload_time": "2018-09-30T16:03:40", "url": "https://files.pythonhosted.org/packages/38/8b/d36fc549f998ff9745ab3cbc247f575f826448d26cde4963bb73df655883/scattr-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfce05d527dc10eef5aa56aa11d667fb", "sha256": "d920b3b56342a9abea603068844572f95c437943f0f5c4c991d7284540a6d6ae" }, "downloads": -1, "filename": "scattr-0.0.1.tar.gz", "has_sig": false, "md5_digest": "dfce05d527dc10eef5aa56aa11d667fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2065, "upload_time": "2018-09-30T16:03:41", "url": "https://files.pythonhosted.org/packages/a8/28/a6c69e338098553d2566636687e968046c6a704700487ce885b84b32e395/scattr-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a610ef63a448a73baa456ef4e12239b9", "sha256": "fdfbb75f73cb97af032aaa9bda8dac3f4f1c102194d757155fbcee7806530b01" }, "downloads": -1, "filename": "scattr-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a610ef63a448a73baa456ef4e12239b9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 2349, "upload_time": "2018-09-30T16:03:40", "url": "https://files.pythonhosted.org/packages/38/8b/d36fc549f998ff9745ab3cbc247f575f826448d26cde4963bb73df655883/scattr-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "dfce05d527dc10eef5aa56aa11d667fb", "sha256": "d920b3b56342a9abea603068844572f95c437943f0f5c4c991d7284540a6d6ae" }, "downloads": -1, "filename": "scattr-0.0.1.tar.gz", "has_sig": false, "md5_digest": "dfce05d527dc10eef5aa56aa11d667fb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2065, "upload_time": "2018-09-30T16:03:41", "url": "https://files.pythonhosted.org/packages/a8/28/a6c69e338098553d2566636687e968046c6a704700487ce885b84b32e395/scattr-0.0.1.tar.gz" } ] }