{ "info": { "author": "Ehsan Keshavarzian", "author_email": "ehsan985@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "==========================\r\nPython Languauge Utilities\r\n==========================\r\n\r\nThis library provides utilities to use features of other languages in Python.\r\n\r\n.. image:: https://badge.fury.io/py/pythonlangutil.svg\r\n :target: http://badge.fury.io/py/pythonlangutil\r\n \r\n.. image:: https://travis-ci.org/ehsan-keshavarzian/pythonlangutil.svg?branch=master\r\n :target: https://travis-ci.org/ehsan-keshavarzian/pythonlangutil\r\n\r\nYou can find a functional example of each feature in the examples directory. Test cases in tests directory run on top of \r\nthese examples to ensure the functionality.\r\n\r\nAccess Modifiers\r\n----------------\r\n\r\nTo identify a variable as private:::\r\n\r\n from pythonlangutil.access_modifiers import private_variable\r\n \r\n class PrivateVariableTest(object):\r\n def __init__(self):\r\n self.id = \"123\"\r\n \r\n @private_variable('id')\r\n def __setattr__(self, *args, **kwargs):\r\n return object.__setattr__(self, *args, **kwargs)\r\n \r\n def insider(self):\r\n self.id = \"321\"\r\n \r\nTo identify a method as private:::\r\n\r\n from pythonlangutil.access_modifiers import private_function\r\n \r\n class PrivateFunctionTest(object):\r\n def __init__(self):\r\n pass\r\n \r\n @private_function\r\n def private_method(self):\r\n return 'called from inside my own class'\r\n \r\n def insider(self):\r\n return self.private_method()\r\n \r\nCreating Overloads\r\n------------------\r\n\r\nTo create overloads:::\r\n\r\n from pythonlangutil.overload import Overload, signature\r\n\r\n class OverloadTest():\r\n def __init__(self):\r\n self.male_pref = \"Mr. %s\"\r\n self.female_pref = \"Ms. %s\"\r\n self.general_pref = \"Dear %s\"\r\n \r\n @Overload\r\n @signature(\"str\", \"bool\")\r\n def my_method(self, name, male):\r\n if male:\r\n return self.male_pref % name \r\n return self.female_pref % name\r\n \r\n @my_method.overload\r\n @signature(\"str\")\r\n def my_method(self, name):\r\n return self.general_pref % name\r\n \r\n @my_method.overload\r\n @signature(\"int\", \"str\")\r\n def my_method(self, times, name):\r\n return \"\\n\".join([self.general_pref % name for i in range(times)])\r\n\r\nUsing Singleton Model\r\n---------------------\r\nIt prevents the instantiation of the class. The only instance of the class will be accessible through\r\nget_instance() method which will be added to class automatically.\r\n\r\nTo use singleton:::\r\n\r\n from pythonlangutil.singleton import Singleton\r\n\r\n @Singleton()\r\n class SingletonTest():\r\n def __init__(self):\r\n pass", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/ehsan-keshavarzian/pythonlangutil", "keywords": "language util overload access modifier private singleton", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pythonlangutil", "package_url": "https://pypi.org/project/pythonlangutil/", "platform": "All", "project_url": "https://pypi.org/project/pythonlangutil/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/ehsan-keshavarzian/pythonlangutil" }, "release_url": "https://pypi.org/project/pythonlangutil/0.1/", "requires_dist": null, "requires_python": null, "summary": "Utilities for Python programmers with background in other languages.", "version": "0.1" }, "last_serial": 1726651, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "b5d443a261044d771239cd05ae334cbc", "sha256": "54cfc6a8f7c2286c20a6f2b724b0e7d91e9b3e6c924f01b5af6748c6bfafb9d5" }, "downloads": -1, "filename": "pythonlangutil-0.1.zip", "has_sig": false, "md5_digest": "b5d443a261044d771239cd05ae334cbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7275, "upload_time": "2015-04-26T08:21:40", "url": "https://files.pythonhosted.org/packages/e7/b7/f689879f8c9b9ae8994b89d8220fc63fddaceda920b12184f45fd5cdb5a8/pythonlangutil-0.1.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b5d443a261044d771239cd05ae334cbc", "sha256": "54cfc6a8f7c2286c20a6f2b724b0e7d91e9b3e6c924f01b5af6748c6bfafb9d5" }, "downloads": -1, "filename": "pythonlangutil-0.1.zip", "has_sig": false, "md5_digest": "b5d443a261044d771239cd05ae334cbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7275, "upload_time": "2015-04-26T08:21:40", "url": "https://files.pythonhosted.org/packages/e7/b7/f689879f8c9b9ae8994b89d8220fc63fddaceda920b12184f45fd5cdb5a8/pythonlangutil-0.1.zip" } ] }