{ "info": { "author": "Jan Vlcinsky", "author_email": "jan.vlcinsky@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Text Processing :: Markup :: XML" ], "description": "====================\nttr.xml.csv2xml\n====================\n:Author: Jan Vlcinsky\n:e-mail: jan.vlcinsky@gmail.com\n:license: BSD\n\nttr.xml.csv2xml module contains:\n\n\tclass Csv2Xml\n\t\tConverter of CSV lines into xml elements or string\n\tfunction string2xml\n\t\tutility function to convert string into xml string in one shot.\n\nFeatures:\n\n- read CSV into XML document\n- get headers from CSV and use them as element names\n- managing CSV format\n\n\t- define CSV format as would csv module\n\t\t- using Dialect (subclass, registered one)\n\t\t- using fmtparams\n\t\t- combination (fmtparam override Dialect)\n\n- on resulting xml define:\n\n\t- name of root tag\n\t- name of row element\n\t- optional use and name of attribute in row element, showing line number\n\n- iterator over csv / xml rows\n\n- simple function string2xml including encoding\n\nInstallation\n============\nPython must be installed, version 2.6 is expected.\nYou shall have access to Internet to installa additional packages automatically from PyPi_ (lxml at this moment)\nThis package is not on PyPi_ yet (planned).\nUse of distribution package itself is needed at the moment and andy of following tools shall work\n\nUsing setup.py: unpack the package and run::\n python setup.py install\n \nUsing easy_install::\n easy_install \n \nUsing pip::\n pip install \n\nOn windows, using binary setup.exe::\n simply run the installation program.\n\n\nCSV string into XML string\n==========================\n\nSimple case could be:\n\t>>> from ttr.xml.csv2xml import string2xml\n\t>>> csv_str = \"\"\"a;b;c\n\t... 1;2;3\n\t... 11;22;33\n\t... 111;222;333\"\"\"\n\t>>> print string2xml(csv_str, delimiter = \";\")\n\t123112233111222333\n\nIf you like to specify output encoding (default is UTF-8), tell it by encoding parameter\n\t>>> print string2xml(csv_str, delimiter = \";\", encoding = \"windows-1250\")\n\t\n\t123112233111222333\n\nThe CSV format can be set also by registered dialects, adding also line numbering attribute\n\t>>> excel_str = \"\"\"a,b,c\n\t... 1,2,3\n\t... 11,22,33\n\t... 111,222,333\"\"\"\n\t>>> print string2xml(excel_str, dialect = \"excel\", row_num_att = \"rownum\")\n\t123112233111222333\n\nOr you can define your own dialect using csv.Dialect subclass\n\t>>> import csv\n\t>>> class DialectSemicolon(csv.Dialect):\n\t... delimiter = ';'\n\t... quotechar = '\"'\n\t... doublequote = True\n\t... skipinitialspace = False\n\t... lineterminator = '\\r\\n'\n\t... quoting = csv.QUOTE_NONE\n\t...\t\n\t>>> print string2xml(csv_str, dialect = DialectSemicolon)\n\t123112233111222333\n\nFile object into XML string\n===========================\nCsv2Xml provides only one type of source - file like object.\nIt can be created by opening a file in style: f = open(\"my.csv\", \"b\")\nor by using string buffers:\n\n\t>>> from StringIO import StringIO\n\t>>> buff = StringIO(csv_str)\n\t>>> print buff # doctest:+ELLIPSIS\n\t\n\t>>> from ttr.xml.csv2xml import Csv2Xml\n\t>>> csv_convertor = Csv2Xml(buff, delimiter = \";\") # doctest:+ELLIPSIS\n\t>>> print csv_convertor.as_string()\n\t123112233111222333\n\nThis way you can easily manage conversion of files without any need to read them in advance into a string.\nYou can specify CSV file format using the same methods as with string2xml function.\n\n\t>>> buff2 = StringIO(excel_str) \n\t>>> csv_convertor = Csv2Xml(buff2, dialect = \"excel\")\n\t>>> print csv_convertor.as_string()\n\t123112233111222333\n\nReading CSV into XML elements\n=============================\nInstead of using string for storing resulting XML, more nataral is to get is as XML element\nYou then get root element with all the row - related elements being nested inside\nThe only difference is you call as_element method now:\n\n\t>>> buff2 = StringIO(excel_str) # doctest: +ELLIPSIS\n\t>>> csv_convertor = Csv2Xml(buff2, dialect = \"excel\")\n\t>>> xml_elm = csv_convertor.as_element()\n\t>>> print xml_elm # doctest: +ELLIPSIS\n\t\n\t>>> from lxml import etree\n\t>>> etree.tostring(xml_elm)\n\t'123112233111222333'\n\nIterating over CSV file lines\n=============================\nCsv2Xml converter can function also as an iterator - in such a case it will not return root element, but only the row elements.\n\n\t>>> buff = StringIO(excel_str)\n\t>>> csv_converter = Csv2Xml(buff, dialect = \"excel\")\n\t>>> for xml_row in csv_converter:\n\t... print etree.tostring(xml_row)\n\t123\n\t112233\n\t111222333\n \n.. _PyPi: http://pypi.python.org/pypi\n\n\n.. This is your project NEWS file which will contain the release notes.\n.. Example: http://www.python.org/download/releases/2.6/NEWS.txt\n.. The content of this file, along with README.rst, will appear in your\n.. project's PyPI page.\n\nNews\n====\n\n0.1.2dev\n---\n\n*Release date: 2011-08-12*\n\n* Initial version\n* removed dependency on lxml, using Python ElementTree", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/vlcinsky/ttr.xml.csv2xml", "keywords": "xml csv module", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "ttr.xml.csv2xml", "package_url": "https://pypi.org/project/ttr.xml.csv2xml/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/ttr.xml.csv2xml/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/vlcinsky/ttr.xml.csv2xml" }, "release_url": "https://pypi.org/project/ttr.xml.csv2xml/0.1.2dev002/", "requires_dist": null, "requires_python": null, "summary": "module, providing conversion of csv file into xml", "version": "0.1.2dev002" }, "last_serial": 800993, "releases": { "0.1.2dev002": [ { "comment_text": "", "digests": { "md5": "606d4bcd4780b7a79ac9f0b92d6180bc", "sha256": "24cde0d416a73127f7932eb3fa26c37d6f005997b67b8c6cc7bd8fcced4b3493" }, "downloads": -1, "filename": "ttr.xml.csv2xml-0.1.2dev002-py2.6.egg", "has_sig": false, "md5_digest": "606d4bcd4780b7a79ac9f0b92d6180bc", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 14655, "upload_time": "2011-08-12T20:25:46", "url": "https://files.pythonhosted.org/packages/2f/d6/df579ba78326405fae39708ca179661c5bde0f2dddd633d0fbddf54b8a87/ttr.xml.csv2xml-0.1.2dev002-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "320f585655b899ed415b878f65ec5f3a", "sha256": "bca9f2902cf6c2f4ca85fda6fafe4a0d3d636deff20017e69fcf5f5ece94c88a" }, "downloads": -1, "filename": "ttr.xml.csv2xml-0.1.2dev002.win32.exe", "has_sig": false, "md5_digest": "320f585655b899ed415b878f65ec5f3a", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 211404, "upload_time": "2011-08-12T20:25:36", "url": "https://files.pythonhosted.org/packages/bd/a8/3cce53f8353da3191a3ad7b3dc75bcf9c895f40a797d94fe518c91719f3e/ttr.xml.csv2xml-0.1.2dev002.win32.exe" }, { "comment_text": "", "digests": { "md5": "901c51c56fbe2c089a5244b24052cfda", "sha256": "b11a93166cff39d371d54aeb748c0f4962caa5dda7b44f12a19de21d109254d3" }, "downloads": -1, "filename": "ttr.xml.csv2xml-0.1.2dev002.zip", "has_sig": false, "md5_digest": "901c51c56fbe2c089a5244b24052cfda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12226, "upload_time": "2011-08-12T20:25:30", "url": "https://files.pythonhosted.org/packages/d8/f4/7642eefeda1ad8dec41ccff5559eea82921868015aeae0cdba6240384e03/ttr.xml.csv2xml-0.1.2dev002.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "606d4bcd4780b7a79ac9f0b92d6180bc", "sha256": "24cde0d416a73127f7932eb3fa26c37d6f005997b67b8c6cc7bd8fcced4b3493" }, "downloads": -1, "filename": "ttr.xml.csv2xml-0.1.2dev002-py2.6.egg", "has_sig": false, "md5_digest": "606d4bcd4780b7a79ac9f0b92d6180bc", "packagetype": "bdist_egg", "python_version": "2.6", "requires_python": null, "size": 14655, "upload_time": "2011-08-12T20:25:46", "url": "https://files.pythonhosted.org/packages/2f/d6/df579ba78326405fae39708ca179661c5bde0f2dddd633d0fbddf54b8a87/ttr.xml.csv2xml-0.1.2dev002-py2.6.egg" }, { "comment_text": "", "digests": { "md5": "320f585655b899ed415b878f65ec5f3a", "sha256": "bca9f2902cf6c2f4ca85fda6fafe4a0d3d636deff20017e69fcf5f5ece94c88a" }, "downloads": -1, "filename": "ttr.xml.csv2xml-0.1.2dev002.win32.exe", "has_sig": false, "md5_digest": "320f585655b899ed415b878f65ec5f3a", "packagetype": "bdist_wininst", "python_version": "any", "requires_python": null, "size": 211404, "upload_time": "2011-08-12T20:25:36", "url": "https://files.pythonhosted.org/packages/bd/a8/3cce53f8353da3191a3ad7b3dc75bcf9c895f40a797d94fe518c91719f3e/ttr.xml.csv2xml-0.1.2dev002.win32.exe" }, { "comment_text": "", "digests": { "md5": "901c51c56fbe2c089a5244b24052cfda", "sha256": "b11a93166cff39d371d54aeb748c0f4962caa5dda7b44f12a19de21d109254d3" }, "downloads": -1, "filename": "ttr.xml.csv2xml-0.1.2dev002.zip", "has_sig": false, "md5_digest": "901c51c56fbe2c089a5244b24052cfda", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12226, "upload_time": "2011-08-12T20:25:30", "url": "https://files.pythonhosted.org/packages/d8/f4/7642eefeda1ad8dec41ccff5559eea82921868015aeae0cdba6240384e03/ttr.xml.csv2xml-0.1.2dev002.zip" } ] }