{
"info": {
"author": "BlueDynamics Alliance",
"author_email": "dev@bluedynamics.com",
"bugtrack_url": null,
"classifiers": [
"License :: OSI Approved :: BSD License",
"Operating System :: OS Independent",
"Programming Language :: Python",
"Topic :: Software Development"
],
"description": "Converter from CSV file to a multilingual IMS VDEX vocabulary XML file\n======================================================================\n\nVDEX is a very good standardized format for multilingual vocabularies, \nontologies, etc. It just sucks to create its XML manually. There is poor editor \nsupport. But everybody has Excel, well, but almost everybody knows how to create \ntables. So let the user create a sheet with a column of keys for each term and \nfor each language a column with the translated terms value. \n\nA flat vocabulary\n-----------------\n\n=== ======= ======== =========\nkey english german italian\n=== ======= ======== =========\nk01 ant Ameise formica\nk02 bee Biene ape \nk03 wasp Wespe vespa\nk04 hornet Hornisse calabrone\n=== ======= ======== =========\n\nAs a CSV this looks like::\n\n \"key\";\"english\";\"german\";\"italian\"\n \"k01\";\"ant\";\"Ameise\";\"formica\"\n \"k02\";\"bee\";\"Biene\";\"ape\"\n \"k03\";\"wasp\";\"Wespe\";\"vespa\"\n \"k04\";\"hornet\";\"Hornisse\";\"calabrone\"\n\nAfter running through csv2vdex, called like so::\n\n csv2vdex insects 'insects,Insekten,insetto' \\\n insects.csv insects.xml --languages en,de,it --startrow 1\n\nThis results in such a VDEX XML::\n\n \n insects\n \n insects\n Insekten\n insetto\n \n \n k01\n \n ant\n Ameise\n formica\n \n \n \n k02\n \n bee\n Biene\n ape\n \n \n \n k03\n \n wasp\n Wespe\n vespa\n \n \n \n k04\n \n hornet\n Hornisse\n calabrone\n \n \n \n\nA tree vocabulary\n-----------------\n\nIf we want to have a tree-like vocabulary, the key is used to define the level.\nHere a dot is used as delimiter.\n\n===== ====================\nkey term value\n===== ====================\nnwe North-west of Europe\nnwe.1 A. m. iberica\nnwe.2 A. m. intermissa\nnwe.3 A. m. lihzeni\nnwe.4 A. m. mellifera\nnwe.5 A. m. sahariensis\nswe South-west of Europe\nswe.1 A. m. carnica\nswe.2 A. m. cecropia\nswe.3 A. m. ligustica\nswe.4 A. m. macedonica\nswe.5 A. m. ruttneri\nswe.6 A. m. sicula\n===== ====================\n\nAs a CSV it looks like::\n\n \"key\";\"term value\"\n \"nwe\";\"North-west of Europe\"\n \"nwe.1\";\"A. m. iberica\"\n \"nwe.2\";\"A. m. intermissa\"\n \"nwe.3\";\"A. m. lihzeni\"\n \"nwe.4\";\"A. m. mellifera\"\n \"nwe.5\";\"A. m. sahariensis\"\n \"swe\";\"South-west of Europe\"\n \"swe.1\";\"A. m. carnica\"\n \"swe.2\";\"A. m. cecropia\"\n \"swe.3\";\"A. m. ligustica\"\n \"swe.4\";\"A. m. macedonica\"\n \"swe.5\";\"A. m. ruttneri\"\n \"swe.6\";\"A. m. sicula\"\n\nAfter running through csv2vdex, called like so::\n\n csv2vdex beeeurope 'European Honey Bees' bees.csv bees.xml -s 1\n \nThe result is::\n\n \n beeeurope\n \n European Honey Bees\n \n \n nwe\n \n North-west of Europe\n \n \n nwe.1\n \n A. m. iberica\n \n \n \n nwe.2\n \n A. m. intermissa\n \n \n \n nwe.3\n \n A. m. lihzeni\n \n \n \n nwe.4\n \n A. m. mellifera\n \n \n \n nwe.5\n \n A. m. sahariensis\n \n \n \n \n swe\n \n South-west of Europe\n \n \n swe.1\n \n A. m. carnica\n \n \n \n \n swe.2\n \n A. m. cecropia\n \n \n \n swe.3\n \n A. m. ligustica\n \n \n \n swe.4\n \n A. m. macedonica\n \n \n \n swe.5\n \n A. m. ruttneri\n \n \n \n swe.6\n \n A. m. sicula\n \n \n \n \n\nA tree-vocabulary with descriptions \n------------------------------------\n\n================== ================ ===================================================\nkey english description\n================== ================ ===================================================\nfield_work_terms Field work terms\nfield_work_terms.1 Acidification Acidification is a process. It happens naturall ...\nfield_work_terms.2 Aquifer If you get a shovel and dig at the ground below ...\nfield_work_terms.3 Biodiversity This has many contentious meanings but for our ...\n================== ================ ===================================================\n\nAs a CSV this looks like::\n\n field_work_terms,Field work terms,\n field_work_terms.1,Acidification,\"Acidification is a process. It happens naturally ...\"\n field_work_terms.2,Aquifer,\"If you get a shovel and dig at the ground below your ...\"\n field_work_terms.3,Biodiversity,\"This has many contentious meanings but for our ...\"\n\nAfter running through csv2vdex, called like so::\n\n csv2vdex --description True --csvdelimiter \",\" terms \"Terminology\" terms.csv terms.xml\n\nThis results in such a VDEX XML::\n\n \n terms\n \n Terminology\n \n \n field_work_terms\n \n Field work terms\n \n \n \n \n \n field_work_terms.1\n \n Acidification\n \n \n Acidification is a process. It happens naturally ...\n \n \n \n field_work_terms.2\n \n Aquifer\n \n \n If you get a shovel and dig at the ground below your ...\n \n \n \n field_work_terms.3\n \n Biodiversity\n \n \n This has many contentious meanings but for our ...\n \n \n \n \n\n\nHelp Text\n=========\n\n::\n\n\tusage: csv2vdex [-h] [--languages [LANGUAGES]] [--startrow [STARTROW]]\n [--description [DESCRIPTION]] [--keycolumn [KEYCOLUMN]]\n [--startcolumn [STARTCOLUMN]]\n\t\t\t[--ordered [ORDERED]] [--dialect [DIALECT]]\n\t\t\t[--csvdelimiter [CSVDELIMITER]]\n\t\t\t[--treedelimiter [TREEDELIMITER]] [--encoding [ENCODING]]\n\t\t\tid name source target\n\tcsv2vdex: error: too few arguments\n\tjensens@minime:~/workspace/vdexcsv$ ./bin/csv2vdex --help\n\tusage: csv2vdex [-h] [--languages [LANGUAGES]] [--startrow [STARTROW]]\n [--description [DESCRIPTION]] [--keycolumn [KEYCOLUMN]]\n [--startcolumn [STARTCOLUMN]]\n\t\t\t[--ordered [ORDERED]] [--dialect [DIALECT]]\n\t\t\t[--csvdelimiter [CSVDELIMITER]]\n\t\t\t[--treedelimiter [TREEDELIMITER]] [--encoding [ENCODING]]\n\t\t\tid name source target\n\n\tConverts CSV files to VDEX XML\n\n\tpositional arguments:\n\t id unique identifier of vocabulary\n\t name Human readable name of vocabulary. If more than one\n\t\t\t\tlanguage is given separate each langstring by a comma\n\t\t\t\tand provide same order as argument --languages\n\t source CSV file to read from\n\t target XML target file\n\n\toptional arguments:\n\t -h, --help show this help message and exit\n\t --languages [LANGUAGES], -l [LANGUAGES]\n\t\t\t\tComma separated list of ISO-language codes. Default:\n\t\t\t\ten\n --description\n Whether the terms have descriptions. If so, each term takes \n up two columns per language: one for the caption and one for\n the description.\n\t --startrow [STARTROW], -r [STARTROW]\n\t\t\t\tnumber of row in CSV file where to begin reading,\n\t\t\t\tstarts with 0, default 0.\n\t --keycolumn [KEYCOLUMN], -k [KEYCOLUMN]\n\t\t\t\tnumber of column with the keys of the vocabulary,\n\t\t\t\tstart with 0, default 0.\n\t --startcolumn [STARTCOLUMN], -s [STARTCOLUMN]\n\t\t\t\tnumber of column with the first langstring of the\n\t\t\t\tvocabulary. It assumes n + number languages of columns\n\t\t\t\tafter this, starts counting with 0, default 1.\n If terms include description, it assumes two columns \n per language.\n\t --ordered [ORDERED], -o [ORDERED]\n\t\t\t\tWhether vocabulary is ordered or not, Default: True\n\t --dialect [DIALECT] CSV dialect, default excel.\n\t --csvdelimiter [CSVDELIMITER]\n\t\t\t\tCSV delimiter of the source file, default semicolon.\n\t --treedelimiter [TREEDELIMITER]\n\t\t\t\tDelimiter used to split the key the vocabulary into a\n\t\t\t\tpath to determine the position in the tree, default\n\t\t\t\tdot.\n\t --encoding [ENCODING], -e [ENCODING]\n Encoding of input file. Default: utf-8\n\n\n \nSource Code\n===========\n\n.. image:: https://travis-ci.org/bluedynamics/vdexcsv.png?branch=master :target: https://travis-ci.org/bluedynamics/vdexcsv\n\nThe sources are in a GIT DVCS with its main branches at \n`github `_.\n\nWe'd be happy to see many forks and pull-requests to make vdexcsv even better.\n\nContributors\n============\n\n- Jens W. Klein \n\n- Peter Holzer \n\n- Jean Jordaan \n\nHistory\n=======\n\n1.4 (2014-10-12)\n----------------\n\n- teach csv2vdex about term descriptions\n [jean, 2014-10-09]\n\n1.3\n---\n\n- fix tests and add github project to *Travis CI*.\n housekeeping and encoding error fixed\n [jensens, 2014-02-01]\n\n1.2\n---\n\n- added encoding option, defaults to utf-8\n [hpeteragitator, 2012-02-13]\n\n1.1\n---\n\n- accoridng to IMS Global specification the root tag MUST be ``vdex``.\n [jensens, 2011-08-17]\n\n1.0.1\n-----\n\n- now an egg with .rst [jensens, 2011-06-21]\n\n1.0\n---\n\n- made it work [jensens, 2011-06-06]\n\nLicense\n=======\n\nCopyright (c) 2010-2014, BlueDynamics Alliance, Austria, Germany, Switzerland\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this \n list of conditions and the following disclaimer.\n* Redistributions in binary form must reproduce the above copyright notice, this \n list of conditions and the following disclaimer in the documentation and/or \n other materials provided with the distribution.\n* Neither the name of the BlueDynamics Alliance nor the names of its \n contributors may be used to endorse or promote products derived from this \n software without specific prior written permission.\n \nTHIS SOFTWARE IS PROVIDED BY BlueDynamics Alliance ``AS IS`` AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL BlueDynamics Alliance BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://github.com/bluedynamics/vdexcsv",
"keywords": "vdex csv converter xml ims vocabulary",
"license": "Simplified BSD",
"maintainer": null,
"maintainer_email": null,
"name": "vdexcsv",
"package_url": "https://pypi.org/project/vdexcsv/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/vdexcsv/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://github.com/bluedynamics/vdexcsv"
},
"release_url": "https://pypi.org/project/vdexcsv/1.4/",
"requires_dist": null,
"requires_python": null,
"summary": "Converts CSV files to IMS VDEX XML (Vocabulary Definition Exchange Format)",
"version": "1.4"
},
"last_serial": 1267233,
"releases": {
"1.0.2": [
{
"comment_text": "",
"digests": {
"md5": "d75cdce7ea0b9b726fc9e8252fa2fbd4",
"sha256": "adb5ccbe1716b229cbb606b68fc51934e099ec9933a6634445b0768dc93d484a"
},
"downloads": -1,
"filename": "vdexcsv-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "d75cdce7ea0b9b726fc9e8252fa2fbd4",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11574,
"upload_time": "2011-06-21T15:16:53",
"url": "https://files.pythonhosted.org/packages/51/42/626ce7ea773189ef06de0832ed57d38483b2ecbbf174cd27b0ef53172d21/vdexcsv-1.0.2.tar.gz"
}
],
"1.1": [
{
"comment_text": "",
"digests": {
"md5": "23e5899d2471ed67cb0b2c599a66aebd",
"sha256": "8638fa74a2b49ff17de6d88d212e9d642acf3637612f486cbe31f46614f12573"
},
"downloads": -1,
"filename": "vdexcsv-1.1.tar.gz",
"has_sig": false,
"md5_digest": "23e5899d2471ed67cb0b2c599a66aebd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11727,
"upload_time": "2011-08-17T11:45:20",
"url": "https://files.pythonhosted.org/packages/55/d7/e641db1192f3ff0ee45309103a0e5ca22ea3bbd6a906f9be7137e8cc20e9/vdexcsv-1.1.tar.gz"
}
],
"1.2": [
{
"comment_text": "",
"digests": {
"md5": "07cf92a394d631cc3a4284ea09133adc",
"sha256": "b081f905a78cebe16b95fc9aeae5797c7db14b09b0212478c4bf0660effd5ca7"
},
"downloads": -1,
"filename": "vdexcsv-1.2.tar.gz",
"has_sig": false,
"md5_digest": "07cf92a394d631cc3a4284ea09133adc",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11515,
"upload_time": "2012-02-13T19:33:54",
"url": "https://files.pythonhosted.org/packages/00/42/c76291dc68fd068724079a3f3c07c8fba384bfa7246d52f72b294d8497e9/vdexcsv-1.2.tar.gz"
}
],
"1.3": [
{
"comment_text": "",
"digests": {
"md5": "20186a5064373ed9d72fbe5ec1024505",
"sha256": "232550543d05939f2f831fde7dc053733eca1ee05ce4fd351e979ca6d625fd81"
},
"downloads": -1,
"filename": "vdexcsv-1.3.tar.gz",
"has_sig": false,
"md5_digest": "20186a5064373ed9d72fbe5ec1024505",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10395,
"upload_time": "2014-02-24T14:31:22",
"url": "https://files.pythonhosted.org/packages/67/25/82fa8865491301406e449fd215b30f8bfb9eb7d9d1d5642fa20ef334a415/vdexcsv-1.3.tar.gz"
}
],
"1.4": [
{
"comment_text": "",
"digests": {
"md5": "28a38df719929f7f01938dbc9c3a43a5",
"sha256": "e829a790e70a04f53e9eaf907579dcdb98788639a2cae0f797fb7e0174afb839"
},
"downloads": -1,
"filename": "vdexcsv-1.4.zip",
"has_sig": false,
"md5_digest": "28a38df719929f7f01938dbc9c3a43a5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22497,
"upload_time": "2014-10-11T22:09:53",
"url": "https://files.pythonhosted.org/packages/6c/2f/64d0c2b096776705b70fb2594d52b2a1c372c9f289a5918442482ba9d9fd/vdexcsv-1.4.zip"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "28a38df719929f7f01938dbc9c3a43a5",
"sha256": "e829a790e70a04f53e9eaf907579dcdb98788639a2cae0f797fb7e0174afb839"
},
"downloads": -1,
"filename": "vdexcsv-1.4.zip",
"has_sig": false,
"md5_digest": "28a38df719929f7f01938dbc9c3a43a5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 22497,
"upload_time": "2014-10-11T22:09:53",
"url": "https://files.pythonhosted.org/packages/6c/2f/64d0c2b096776705b70fb2594d52b2a1c372c9f289a5918442482ba9d9fd/vdexcsv-1.4.zip"
}
]
}