{ "info": { "author": "huyx", "author_email": "ycyuxin@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Python utils\n************\n\nTested in Python2.7, Python3.4.\n\ncallit\n======\n\nYou can do::\n\n from __future__ import print_function\n\n print('x', 'y', sep=',')\n\nBut I can not do::\n\n from __future__ import print_function\n\n parameters = ('x', 'y', sep=',')\n print(parameters)\n\nWith callit, I can do similar thing::\n\n from __future__ import print_function\n from yxpy.callit import CallIt\n\n parameters = CallIt('x', 'y', sep=',')\n parameters(print)\n\nSometimes, you may use Parameters(similar to CallIt)::\n\n from __future__ import print_function\n from yxpy.callit import Parameters\n\n parameters = Parameters('x', 'y', sep=',')\n parameters(format)\n\ndotit\n=====\n\nUsually, dictionary can be used like this::\n\n d = dict(a=1)\n d['b'] = 2\n x = d['a'] + d['b']\n\nThe members in dictionary can only be accessed by `[]`, But in some other\nlanguages(eg. javascript), they can be access by `.`::\n\n d.b = 2\n x = d.a + d.b\n\nWith dotit, you can do same thing in similar manner, dotit provide thress\nclass to do it.\n\nDotDict::\n\n from dotit import DotDict\n d = DotDict(a=1)\n d.b = 2\n x = d.a + d.b\n\nDotOrderedDict, inherit from collections.OrderedDict::\n\n\t...\t# similar to DotDict\n\nDotIt, if you already have a dict like object, you can wrapper with DotIt::\n\n d = dict(a=1, b=2)\n ...\n d = DotIt(d)\n x = d.a + d.b \n\nDotIt can also deal with nest dict::\n\n d = dict(a=dict(aa=1, ab=2), b=2)\n ...\n d = DotIt(d)\n x = d.a.aa + d.a.ab\n\n\nloadit\n======\n\nLoad or reload python object\n\nimport module::\n\n import loadit\n\nload moudule::\n\n mod = loadit.load_it('mymodule')\n\nload function::\n\n func = loadit.load_it('mymodule.func')\n\nload class::\n\n MyClass = loadit.load_it('mymodule.MyClass')\n\nreload module::\n\n new_mod = loadit.reload_it(mod)\n\nreload function::\n\n new_func = loadit.reload_it(func)\n\nreload class::\n\n NewMyClass = loadit.reload_it(MyClass)\n\nyamlfile\n========\n\nload config from YAML file, add a include tag.\n\nmain.yaml::\n\n a: !include a.yaml\n\na.yaml::\n\n name: a\n\nusage::\n\n from yxpy import yamlfile\n\n yamlfile.load('main.yaml')\n\nlogginghandlers\n===============\n\n- SocketHandler(host, port)\n- DatagramHandler(host, port)\n- RedisListHandler(list_name, list_maxsize=1024, host='localhost', port=6379, password=None)\n- RedisPublishHandler(self, channel, host='localhost', port=6379, password=None)\n\nSocketHandler & DatagramHandler\n-------------------------------\n\nlogging package provide many Handlers, include `SocketHandler` and\n`DatagramHandler`, but the data transmit to server is packed as binary, this\nmodule privide simular handler to transmit plain text to server.\n\nexample::\n\n socket_handler = SocketHandler(host, port)\n ...\n datagram_handler = DatagramHandler(host, port)\n ...\n\nRedisListHandler & RedisPublishHandler \n--------------------------------------\n\nuse Redis as log server, the two handler is just privide a singleway to redis\nserver. to keep simple, the handlers does check the response of redis.\n\nexample:\n\n handler = RedisListHandler(list_name='logtest', list_maxsize=100, password='test')\n ...\n handler = RedisPublishHandler(channel='logtest', password='test')\n ...\r\n\r\n\r\nChanges\n=======\n\n0.1.5(2014-10-11)\n-----------------\n\n- refactoring: import statement in `reloadit`\n\n0.1.3(2014-09-26)\n-----------------\n\n- DotIt support nest dict.\n\n0.1.2(2014-09-26)\n-----------------\n\n- add dotit: include DotIt, DotDict, DotOrderedDict\n\n0.1.1(2014-09-19)\n-----------------\n\n- add logginghandlers:\n - SocketHandler\n - DatagramHandler\n - RedisListHandler\n - RedisPublishHandler\n\n0.1.0(2014-09-18)\n-----------------\n\n- callit\n- loadit\n- yamlfile", "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/huyx/yxpy", "keywords": "python,util", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "yxpy", "package_url": "https://pypi.org/project/yxpy/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/yxpy/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/huyx/yxpy" }, "release_url": "https://pypi.org/project/yxpy/0.1.5/", "requires_dist": null, "requires_python": null, "summary": "Python utils", "version": "0.1.5" }, "last_serial": 1254965, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "2903eb6773edc1bb7be72f77eb759c6f", "sha256": "92694c7cf0804531b83c5e9106d8d82d1eded49e20ae0dc3e02a87db5cdd5845" }, "downloads": -1, "filename": "yxpy-0.1.1.zip", "has_sig": false, "md5_digest": "2903eb6773edc1bb7be72f77eb759c6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7658, "upload_time": "2014-09-19T06:38:38", "url": "https://files.pythonhosted.org/packages/8d/b5/5b6e7cb0195ed16db0819bfdaaccf5f9ec0c407b9a9b46d8c2a4ffe4f996/yxpy-0.1.1.zip" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "6b522672d1a699e3a5d916db47e8beb2", "sha256": "280c0fd30bf583bc7038ef9d743325eed7421cd2958ceff3f70796be3b1611a4" }, "downloads": -1, "filename": "yxpy-0.1.2.zip", "has_sig": false, "md5_digest": "6b522672d1a699e3a5d916db47e8beb2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9917, "upload_time": "2014-09-26T04:11:31", "url": "https://files.pythonhosted.org/packages/65/d4/46d3fea3aeac4195a25cd80c0368658422d571e51dfbd13c7ae93b3243b8/yxpy-0.1.2.zip" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "2c508d373effeb4b405408e91c278fd4", "sha256": "4a42d40c06a38bbbbd094f29ccf46b8044731ac199b28ed970c92a07c29faedf" }, "downloads": -1, "filename": "yxpy-0.1.4.zip", "has_sig": false, "md5_digest": "2c508d373effeb4b405408e91c278fd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10068, "upload_time": "2014-09-28T04:50:00", "url": "https://files.pythonhosted.org/packages/5c/e7/ae5a2b861437834597a9ebc07aad901eb82d43c996f256e098a0c7ad4585/yxpy-0.1.4.zip" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "1c5d265e3cb2da94942045e020bdb9e7", "sha256": "7f0f5d5734954e37a03987aa25bcb7aae38a50425003746cc514df1a769163b3" }, "downloads": -1, "filename": "yxpy-0.1.5.zip", "has_sig": false, "md5_digest": "1c5d265e3cb2da94942045e020bdb9e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10134, "upload_time": "2014-10-11T05:32:36", "url": "https://files.pythonhosted.org/packages/c6/8a/0b98856f042d3f41707d25d1746bc11fbde3335c1afb820b7f4479b8ca12/yxpy-0.1.5.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1c5d265e3cb2da94942045e020bdb9e7", "sha256": "7f0f5d5734954e37a03987aa25bcb7aae38a50425003746cc514df1a769163b3" }, "downloads": -1, "filename": "yxpy-0.1.5.zip", "has_sig": false, "md5_digest": "1c5d265e3cb2da94942045e020bdb9e7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10134, "upload_time": "2014-10-11T05:32:36", "url": "https://files.pythonhosted.org/packages/c6/8a/0b98856f042d3f41707d25d1746bc11fbde3335c1afb820b7f4479b8ca12/yxpy-0.1.5.zip" } ] }