{ "info": { "author": "James Pringle", "author_email": "jpringle@jhu.edu", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython" ], "description": "\n# `qtools3` - Questionnaire Tools for ODK\n\nThis software `qtools3` provides tools and utilities for dealing with PMA \nquestionnaires. It converts the XLSForms to XML and then does all appropriate \nedits. It also can be used as a simple XLSForm Offline converter.\n\nThe software `qtools3` is an upgrade from \n[`qtools2`][qtools2]. The primary purpose for this \nupgrade is to port the software from Python 2 to Python 3. This was made \npossible because the [community's PyXForm][pyxform]\nadded Python 3 support in 2018.\n\n[qtools2]: https://github.com/jkpr/QTools2\n[pyxform]: https://github.com/XLSForm/pyxform\n\n## Pre-requisites\n\nThe software `qtools3` relies on Python 3 for core functionality and Java for\nODKValidate. The steps to install are\n\n* Install the most recent version of the [Java JRE][jre].\n* Install [Python 3.6][python] or higher.\n\nNote: the author uses [Homebrew][brew] for Python installation on Mac.\n\n[jre]: http://www.oracle.com/technetwork/java/javase/downloads/index.html\n[python]: http://www.python.org/downloads/\n[brew]: http://brew.sh/\n\n## Windows-specific steps\n\nSome difficulties arise if `python` and `pip` are not be added automatically \nto the `PATH` upon installation. For instructions on how to do this, consult\n[this document][path].\n\n[path]: https://www.dropbox.com/s/01uoge5pt7yz0ti/Python%20for%20Windows%20Users.docx?dl=0\n\nOpen `CMD` (click start menu, type `CMD`, press enter).\n\n```\ncd C:\\Python36\\Scripts\n```\n\nContinue with installation or upgrade...\n\n## Installation\n\nNOTE: Windows users start with the _**Windows-specifc steps**_ section.\n\nOn a terminal or CMD, run\n\n```\npython3 -m pip install qtools3\n```\n\nFor the latest and greatest, install directly from github\n\n```\npython3 -m pip install https://github.com/PMA-2020/qtools3/zipball/master\n```\n\n\n## Command-line usage\n\nBesides being the workhorse of `qtools3`, the module `qtools3.convert` also provides a command-line utility. New-style linking (with all instructions contained inside the XLSForm) is now the default. Old-style linking (line-by-line manual XML editing instructions) is removed. To see help files and usage, run in the terminal\n\n```\npython -m qtools3.convert --help\n```\n\n#### Quick-start guide\n\n| Type of conversion | Command |\n| ------------------ | ------- |\n| PMA form conversion | `python -m qtools3.convert FILENAME [FILENAME ...]` |\n| XLSForm-Offline equivalent, convert and validate | `python -m qtools3.convert -ril FILENAME [FILENAME ...]` |\n\n#### Options\n| Short Flag | Long Flag | Description |\n| --- | --- | --- |\n| -r | --regular | This flag indicates the program should convert to XForm and not try to enforce PMA-specific naming conventions or make linking checks for HQ and FQ. |\n| -p | --preexisting | Include this flag to prevent overwriting pre-existing files. |\n| -n | --novalidate | Do not validate XML output with ODK Validate. Do not perform extra checks on (1) data in undefined columns, (2) out of order variable references. |\n| -i | --ignore_version | Ignore versioning in filename, form_id, form_title, and save_form. In other words, the default (without this flag) is to ensure version consistency. |\n| -l | --linking_warn | Produce warnings for incorrect linking directives. Default is to raise an exception and halt the program. |\n| -d | --debug | Show debug information. Helpful for squashing bugs. |\n| -e | --extras | Perform extra checks on (1) data in undefined columns and (2) out of order variable references. |\n| -s | --suffix | A suffix to add to the base file name. Cannot start with a hyphen (\"-\"). |\n\n## Extras\n\n### Translation Regex Mismatches\nThese `qtools3` conversion warning messages appear whenever there is a discrepancy between translations with respect to numbering, i.e. `'[0-9]+'`, and/or variables, i.e. `'${...}'`.\n\n*Example - Numbering Mismatch*\n\nIn this example, the warning `'[0-9]+'` will appear, because \"0\" is not the same things as \"zero\". To fix this, please ensure that ALL languages use only arabic numerals (e.g. 1, 2, 3...), or only word-based numbering (e.g. one, two, three...).\n * English: Please enter 0.\n * Bad Pidgin English: Please enter zero.\n\n*Example - Variable Mismatch*\n\nODK variables should never be translated. If the main language shows \"${months}\", all language translations should also show \"${months}\". Of course, what the user sees on the phone will still be translated.\n * English: Enter ${months}.\n * Bad French: Entrez ${mois}.\n\n*Example - Variable Mismatch*\n\nTranslations should use all variables that the English uses.\n * English: There are ${hh_count} people in the household\n * Bad Pidgin English: There are (ODK will fill in a count) people in the household\n\n## Updates\n\nNOTE: Windows users start with the _**Windows-specifc steps**_ section. To install `qtools3` updates, use\n\n```\npython3 -m pip install qtools3 --upgrade\n```\n\nFor the latest and greatest, replace `master` in the URLs above with `develop`.\n\nEvery once in a while, it will be necessary to update `pmaxform3`. To do this, use\n\n```\npython3 -m pip install pmaxform3 --upgrade\n```\n\n# Suggestions and Gotchas\n\n- Check the version in the terminal to see if a program is installed.\n- Check Java version with `javac -version`\n- Check Python version with `python -V`.\n- Check pip version with `pip -V`.\n- Another executable for Python is `python3`.\n- Another executable for `pip` is `pip3`.\n- The most recent Java is not required, but successful tests have only been run with Java 1.6 through Java 1.8.\n- A dependency of `pmaxform` is `lxml`, which can cause problems on Mac. If there are problems, the best guide is on [StackOverflow][8].\n- During installation of `pmaxform` on Mac, the user may be prompted to install Xcode's Command Line Tools. This should be enough for `lxml`.\n- `qtools3` may run without Java. Java is only needed for ODK Validate, which can be bypassed by using the \"No validate\" option.\n- Xcode 9 presents issues with missing header files. If at all possible, install Xcode 8.\n\n[8]: http://stackoverflow.com/questions/19548011/cannot-install-lxml-on-mac-os-x-10-9\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PMA-2020/qtools3", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "qtools3", "package_url": "https://pypi.org/project/qtools3/", "platform": "", "project_url": "https://pypi.org/project/qtools3/", "project_urls": { "Homepage": "https://github.com/PMA-2020/qtools3" }, "release_url": "https://pypi.org/project/qtools3/0.3.3/", "requires_dist": [ "pmaxform3" ], "requires_python": ">=3.6.0", "summary": "Convert ODK files from XlsForm to Xform.", "version": "0.3.3" }, "last_serial": 5553758, "releases": { "0.3.0": [ { "comment_text": "", "digests": { "md5": "71f742cae685ba025fe913158199462e", "sha256": "0778180b52785309dbe4b92665a8f73d11e48da74303f7f5dac577bea04ff238" }, "downloads": -1, "filename": "qtools3-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "71f742cae685ba025fe913158199462e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 23249, "upload_time": "2019-07-18T17:48:17", "url": "https://files.pythonhosted.org/packages/a6/ad/c7c1bcdba92106c72d3087782d14118561028a4e686be56c88cf0bf2b41e/qtools3-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3509102ec9e3ecec86288f61347bfc68", "sha256": "b3572693f322de8a9e481b212655056efcaa208206cfd47a4fb6f61b69e4db90" }, "downloads": -1, "filename": "qtools3-0.3.0.tar.gz", "has_sig": false, "md5_digest": "3509102ec9e3ecec86288f61347bfc68", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 24874, "upload_time": "2019-07-18T17:48:20", "url": "https://files.pythonhosted.org/packages/b9/4a/b59d857635e452c28873ad2fa2b0a0a60718f129b42f5af1b299f22681ce/qtools3-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "785570472b310eec356127a137208881", "sha256": "015c48bb9e125a6d58259693e98af7e06e9f8317a6c579b4eca5693ca5be676d" }, "downloads": -1, "filename": "qtools3-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "785570472b310eec356127a137208881", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 22323, "upload_time": "2019-07-18T19:05:32", "url": "https://files.pythonhosted.org/packages/40/d0/212f0f5dd3fbd615c3e3c62be2ac9438801ea24056eacd8f770dc3a65d5a/qtools3-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a99900df912f9b965b6595fd37d526c7", "sha256": "ccfc5f368dc197dac806fb51593da4bbec7766c239089131054598103d2ed431" }, "downloads": -1, "filename": "qtools3-0.3.1.tar.gz", "has_sig": false, "md5_digest": "a99900df912f9b965b6595fd37d526c7", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 22858, "upload_time": "2019-07-18T19:05:34", "url": "https://files.pythonhosted.org/packages/26/5a/6fc7f9547fb8ea91ecbd51b5ec82cf7a50390bed877f72c06f1ffa208494/qtools3-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "66673ef520e611f34efb2a2b5bc1c4b3", "sha256": "77876f40cc526fd42f9ff095864959fec5a9f4e9123af0b4d00bf68f1ce9ff1c" }, "downloads": -1, "filename": "qtools3-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "66673ef520e611f34efb2a2b5bc1c4b3", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 22357, "upload_time": "2019-07-18T19:22:37", "url": "https://files.pythonhosted.org/packages/bf/0c/7af81188cc792bca7f4d666a3808ee4025d625f69a4add32eeed06c042f7/qtools3-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8ffe50cbe2e52ede5b0235f1288cd95c", "sha256": "d174fe6f9b3f22682d00128c50611b222c081622e51c8bf52f6a093f7a06a8c6" }, "downloads": -1, "filename": "qtools3-0.3.2.tar.gz", "has_sig": false, "md5_digest": "8ffe50cbe2e52ede5b0235f1288cd95c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 22878, "upload_time": "2019-07-18T19:22:39", "url": "https://files.pythonhosted.org/packages/8c/6e/06487d9464642c451edb2d975a57bc2a7808fef1557e7f8f6c25ef4cce94/qtools3-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "c50800e5e1118939e0f1783b33cb9fec", "sha256": "395434089516b31be1fc6df435311b39b0300c7f9a00b0a69764229d357700dd" }, "downloads": -1, "filename": "qtools3-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c50800e5e1118939e0f1783b33cb9fec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 27006, "upload_time": "2019-07-18T22:40:44", "url": "https://files.pythonhosted.org/packages/29/ca/a8ddcc70b6705af9b77d7f38cc731d96da11aa33d86c7581f7d73638642c/qtools3-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cbe1674c27c027c305a9992f050d22af", "sha256": "4a600bb5108383edd75c52f974dd6f465d0335ec4b27493710c2d7b890bc8bff" }, "downloads": -1, "filename": "qtools3-0.3.3.tar.gz", "has_sig": false, "md5_digest": "cbe1674c27c027c305a9992f050d22af", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 26847, "upload_time": "2019-07-18T22:40:45", "url": "https://files.pythonhosted.org/packages/07/49/bba5c0e15316de26f59d9de5cd2c8afa8955f606f8e37a6703aba2aa9130/qtools3-0.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c50800e5e1118939e0f1783b33cb9fec", "sha256": "395434089516b31be1fc6df435311b39b0300c7f9a00b0a69764229d357700dd" }, "downloads": -1, "filename": "qtools3-0.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "c50800e5e1118939e0f1783b33cb9fec", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6.0", "size": 27006, "upload_time": "2019-07-18T22:40:44", "url": "https://files.pythonhosted.org/packages/29/ca/a8ddcc70b6705af9b77d7f38cc731d96da11aa33d86c7581f7d73638642c/qtools3-0.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cbe1674c27c027c305a9992f050d22af", "sha256": "4a600bb5108383edd75c52f974dd6f465d0335ec4b27493710c2d7b890bc8bff" }, "downloads": -1, "filename": "qtools3-0.3.3.tar.gz", "has_sig": false, "md5_digest": "cbe1674c27c027c305a9992f050d22af", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6.0", "size": 26847, "upload_time": "2019-07-18T22:40:45", "url": "https://files.pythonhosted.org/packages/07/49/bba5c0e15316de26f59d9de5cd2c8afa8955f606f8e37a6703aba2aa9130/qtools3-0.3.3.tar.gz" } ] }