{ "info": { "author": "Oleg Golovanov", "author_email": "golovanov.ov@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Operating System :: OS Independent", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "unilog\n------\n\n|Version| |PyVersions| |PyImplementations| |Status| |Coverage| |License|\n\nUnilog module aimed at facilitating the development and logging complex data structures, mainly for python2.7.\nIn python3, there is no such pain when printing complex data structures, so python3 support is due to backward\ncompatibility with the old code. But for python3, the functionality of registering converters will be useful,\nfor printing or logging complex data structures that do not override the __str__ method or need to represent them\nin a different way. The functionality of registering converters is also available for python2.7.\n\nUnilog provides 3 functions (their description can be obtained by the help function):\n\n* as_unicode\n* as_str\n* register_converter\n\nInstallation\n------------\n::\n\n $ pip install unilog\n\nExample\n-------\n.. code-block:: python\n\n data = {\n 'date': datetime.date(2016, 12, 6),\n 'datetime': datetime.datetime(2016, 12, 6, 11, 22, 33, 444444),\n 'str': 'item1',\n 'str2': '\u043f\u0443\u043d\u043a\u04422',\n u'\u044e\u043d\u0438\u043a\u043e\u0434': u'\u043f\u0443\u043d\u043a\u04423',\n 'int': 4,\n 'float': 4.44,\n 'bytearray': bytearray([0, 1, 2]),\n 'NoneType': None,\n 'True': True,\n 'False': False,\n 'list': [\n datetime.date(2016, 12, 6), datetime.datetime(2016, 12, 6, 11, 22, 33, 444444),\n 'item1', '\u043f\u0443\u043d\u043a\u04422', u'\u043f\u0443\u043d\u043a\u04423', 4, 4.44, bytearray([0, 1, 2]), None, True, False\n ],\n 'tuple': (\n datetime.date(2016, 12, 6), datetime.datetime(2016, 12, 6, 11, 22, 33, 444444),\n 'item1', '\u043f\u0443\u043d\u043a\u04422', u'\u043f\u0443\u043d\u043a\u04423', 4, 4.44, bytearray([0, 1, 2]), None, True, False\n ),\n 'generator': (i for i in xrange(3, 6))\n }\n\n # default python2.7 behavior\n >>> print unicode(data)\n {'bytearray': bytearray(b'\\x00\\x01\\x02'), 'tuple': (datetime.date(2016, 12, 6),\n datetime.datetime(2016, 12, 6, 11, 22, 33, 444444), 'item1',\n '\\xd0\\xbf\\xd1\\x83\\xd0\\xbd\\xd0\\xba\\xd1\\x822', u'\\u043f\\u0443\\u043d\\u043a\\u04423', 4, 4.44,\n bytearray(b'\\x00\\x01\\x02'), None, True, False), 'int': 4, 'float': 4.44,\n 'datetime': datetime.datetime(2016, 12, 6, 11, 22, 33, 444444), 'date': datetime.date(2016, 12, 6),\n 'False': False, 'generator': at 0x7ff51a58df00>,\n 'str2': '\\xd0\\xbf\\xd1\\x83\\xd0\\xbd\\xd0\\xba\\xd1\\x822', 'list': [datetime.date(2016, 12, 6),\n datetime.datetime(2016, 12, 6, 11, 22, 33, 444444), 'item1',\n '\\xd0\\xbf\\xd1\\x83\\xd0\\xbd\\xd0\\xba\\xd1\\x822', u'\\u043f\\u0443\\u043d\\u043a\\u04423', 4, 4.44,\n bytearray(b'\\x00\\x01\\x02'), None, True, False], 'str': 'item1',\n u'\\u044e\\u043d\\u0438\\u043a\\u043e\\u0434': u'\\u043f\\u0443\\u043d\\u043a\\u04423', 'True': True,\n 'NoneType': None}\n\n # use unilog.as_unicode function\n >>> print unilog.as_unicode(data)\n {'bytearray': b'\\\\x00\\\\x01\\\\x02', 'tuple': (u'2016-12-06', u'2016-12-06 11:22:33.444444', 'item1',\n '\u043f\u0443\u043d\u043a\u04422', u'\u043f\u0443\u043d\u043a\u04423', 4, 4.44, b'\\\\x00\\\\x01\\\\x02', None, True, False), 'int': 4, 'float': 4.44,\n 'datetime': u'2016-12-06 11:22:33.444444', 'date': u'2016-12-06', 'False': False,\n 'generator': ' at 0x7ff51a58df00>', 'str2': '\u043f\u0443\u043d\u043a\u04422',\n 'list': [u'2016-12-06', u'2016-12-06 11:22:33.444444', 'item1', '\u043f\u0443\u043d\u043a\u04422', u'\u043f\u0443\u043d\u043a\u04423', 4, 4.44,\n b'\\\\x00\\\\x01\\\\x02', None, True, False], 'str': 'item1', u'\u044e\u043d\u0438\u043a\u043e\u0434': u'\u043f\u0443\u043d\u043a\u04423', 'True': True, 'NoneType': None}\n\n # use unilog.as_unicode function with pretty print\n >>> print unilog.as_unicode(data, pretty=True)\n {\n 'bytearray': b'\\\\x00\\\\x01\\\\x02',\n 'tuple': (\n u'2016-12-06',\n u'2016-12-06 11:22:33.444444',\n 'item1',\n '\u043f\u0443\u043d\u043a\u04422',\n u'\u043f\u0443\u043d\u043a\u04423',\n 4,\n 4.44,\n b'\\\\x00\\\\x01\\\\x02',\n None,\n True,\n False\n ),\n 'int': 4,\n 'float': 4.44,\n 'datetime': u'2016-12-06 11:22:33.444444',\n 'date': u'2016-12-06',\n 'False': False,\n 'generator': ' at 0x7ff51a58df00>',\n 'str2': '\u043f\u0443\u043d\u043a\u04422',\n 'list': [\n u'2016-12-06',\n u'2016-12-06 11:22:33.444444',\n 'item1',\n '\u043f\u0443\u043d\u043a\u04422',\n u'\u043f\u0443\u043d\u043a\u04423',\n 4,\n 4.44,\n b'\\\\x00\\\\x01\\\\x02',\n None,\n True,\n False\n ],\n 'str': 'item1',\n u'\u044e\u043d\u0438\u043a\u043e\u0434': u'\u043f\u0443\u043d\u043a\u04423',\n 'True': True,\n 'NoneType': None\n }\n\nLicense\n-------\nMIT licensed. See the bundled `LICENSE `_ file for more details.\n\n.. |Version| image:: https://img.shields.io/pypi/v/unilog.svg\n :target: https://pypi.python.org/pypi/unilog\n.. |PyVersions| image:: https://img.shields.io/pypi/pyversions/unilog.svg\n :target: https://pypi.python.org/pypi/unilog\n.. |PyImplementations| image:: https://img.shields.io/pypi/implementation/unilog.svg\n :target: https://pypi.python.org/pypi/unilog\n.. |Status| image:: https://img.shields.io/travis/oleg-golovanov/unilog.svg\n :target: https://travis-ci.org/oleg-golovanov/unilog\n.. |Coverage| image:: https://img.shields.io/coveralls/oleg-golovanov/unilog.svg\n :target: https://coveralls.io/github/oleg-golovanov/unilog\n.. |License| image:: https://img.shields.io/github/license/oleg-golovanov/unilog.svg\n :target: https://github.com/oleg-golovanov/unilog/blob/master/LICENSE\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/oleg-golovanov/unilog", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "unilog", "package_url": "https://pypi.org/project/unilog/", "platform": "any", "project_url": "https://pypi.org/project/unilog/", "project_urls": { "Homepage": "https://github.com/oleg-golovanov/unilog" }, "release_url": "https://pypi.org/project/unilog/2.0.0/", "requires_dist": null, "requires_python": "", "summary": "Representing complex object as unicode or simple string.", "version": "2.0.0" }, "last_serial": 3112735, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "0271cca455a008ed5fa4fcdab606dc9a", "sha256": "a2e0fa8d32698ab33451c6c1f9c891404c3918728a345d51593e36dae5dadde1" }, "downloads": -1, "filename": "unilog-1.0.0.tar.gz", "has_sig": false, "md5_digest": "0271cca455a008ed5fa4fcdab606dc9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2926, "upload_time": "2016-12-07T08:21:54", "url": "https://files.pythonhosted.org/packages/74/91/2520ff8271d4611d46d387c610c5d84c6d6e11b4bd2a603f1296c575311c/unilog-1.0.0.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "59429d66f69bc5a5004f96ccce3888c8", "sha256": "9643dec2e5441be11740408a8f0da96ed9439e3b15652148ec85026bb9aeed4a" }, "downloads": -1, "filename": "unilog-1.1.0.tar.gz", "has_sig": false, "md5_digest": "59429d66f69bc5a5004f96ccce3888c8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2952, "upload_time": "2016-12-07T10:32:08", "url": "https://files.pythonhosted.org/packages/81/93/8b971e72a859429c155cd2a05f58a891ec6cf77a9c978096f968188e58b1/unilog-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "cee1b4f230566fc4f478220bc729a654", "sha256": "9b5eca2ae78dc5852677ac75b54f4dd8211a02a1fc74bbc08caf64c8b33ab427" }, "downloads": -1, "filename": "unilog-1.2.0.tar.gz", "has_sig": false, "md5_digest": "cee1b4f230566fc4f478220bc729a654", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3025, "upload_time": "2016-12-08T10:06:22", "url": "https://files.pythonhosted.org/packages/4a/7e/5bcae68876955b4a6ddff3942788b8d91f62d95790715454cf1b77c5c020/unilog-1.2.0.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "92bd8c46c74ffedd9b72b4e18fda5900", "sha256": "9b4701f061bce6081e18eb55b22dea1917fee5ddcfee6d296866724345f1925f" }, "downloads": -1, "filename": "unilog-1.3.1.tar.gz", "has_sig": false, "md5_digest": "92bd8c46c74ffedd9b72b4e18fda5900", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3551, "upload_time": "2016-12-28T13:25:54", "url": "https://files.pythonhosted.org/packages/6f/3f/159a6ffc1778b2521969d130600e27e57c2adbeaa2112fc1bbef8fe4b99d/unilog-1.3.1.tar.gz" } ], "2.0.0": [ { "comment_text": "", "digests": { "md5": "c003ce2ee3bad4ed284f4d7fbd4d0727", "sha256": "5256dd85bb9ba331cee1d4c4c59ac44e98e99052be1487162fd0e93d01090e82" }, "downloads": -1, "filename": "unilog-2.0.0.tar.gz", "has_sig": false, "md5_digest": "c003ce2ee3bad4ed284f4d7fbd4d0727", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4464, "upload_time": "2017-08-21T19:06:20", "url": "https://files.pythonhosted.org/packages/ca/5a/f1e0be335facc69e9590b0f89cb3011366d4b12979d2103dff87306cb871/unilog-2.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c003ce2ee3bad4ed284f4d7fbd4d0727", "sha256": "5256dd85bb9ba331cee1d4c4c59ac44e98e99052be1487162fd0e93d01090e82" }, "downloads": -1, "filename": "unilog-2.0.0.tar.gz", "has_sig": false, "md5_digest": "c003ce2ee3bad4ed284f4d7fbd4d0727", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4464, "upload_time": "2017-08-21T19:06:20", "url": "https://files.pythonhosted.org/packages/ca/5a/f1e0be335facc69e9590b0f89cb3011366d4b12979d2103dff87306cb871/unilog-2.0.0.tar.gz" } ] }