{ "info": { "author": "Brad Liang", "author_email": "brad.liang@percusense.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python", "Programming Language :: Python :: 3" ], "description": "# gamry-parser\n\n[![PyPI](https://img.shields.io/pypi/v/gamry-parser.svg)](https://pypi.org/project/gamry-parser/)\n![PyPI - Python Version](https://img.shields.io/pypi/pyversions/gamry-parser.svg)\n[![PyPI - License](https://img.shields.io/pypi/l/gamry-parser.svg)](./LICENSE)\n\nPython package for parsing the contents of Gamry EXPLAIN data (DTA) files. This package is meant to convert flat-file EXPLAIN data into pandas DataFrames for easy analysis and visualization.\n\n## Getting Started\n\n### Dependencies\n\n* pandas\n\n### Installation\n\n#### Package from PyPi\n\n```bash\n$ pip install gamry-parser\n```\n\n#### Local Installation\n\n1. Check out the latest code:\n```bash\n$ git clone git@github.com:bcliang/gamry-parser.git\n```\n2. Use setuptools to install the package\n```bash\n$ python setup.py install\n```\n\n### Usage\n\nThe provided Usage example loads a CV DTA file two ways, and demonstrates the utility of custom functions within the CyclicVoltammetry subclass (`get_v_range`, `get_scan_rate`)\n\n```bash\n$ python usage.py\n```\n\n#### GamryParser Example\n\nThe following snippet loads a DTA file and prints to screen: (1) experiment type, (2) # of curves, and (3) a random curve in the form of a pandas DataFrame.\n\n```python\nimport gamry_parser as parser\nimport random\n\nfile = '/enter/the/file/path.dta'\ngp = parser.GamryParser()\ngp.load(filename=file)\n\nprint(\"experiment type: {}\".format(gp.get_experiment_type()))\nprint(\"loaded curves: {}\".format(gp.get_curve_count()))\n\ncurve_index = random.randint(1,gp.get_curve_count())\nprint(\"showing curve #{}\".format(curve_index))\nprint(gp.get_curve_data(curve_index))\n```\n\n#### ChronoAmperometry Example\n\nThe `ChronoAmperometry` class is a subclass of `GamryParser`. Executing the method `get_curve_data()` will return a DataFrame with three columns: (1) `T`, (2) `Vf`, and (3) `Im`\n\nIn the example, the file is expected to be a simple chronoamperometry experiment (single step, no preconditioning); there will only be a single curve of data contained within the file. In addition, note the use of the `to_timestamp` property, which allows the user to request `get_curve_data` to return a DataFrame with a `T` column containing DateTime objects (as opposed to the default: float seconds since start).\n\n```python\nimport gamry_parser as parser\nimport random\n\nfile = '/enter/the/file/path.dta'\nca = parser.ChronoAmperometry(to_timestamp=True)\nca.load(filename=file)\nprint(ca.get_curve_data())\n```\n\n#### Demos\n\nipython notebook demonstration scripts are included in the `demo` folder.\n\n- `notebook_gamry_parser.ipynb`: Simple example loading data from ChronoA experiment output. Instead of `gamry_parser.GamryParser()`, the parser could be instantiated with `gamry_parser.ChronoAmperometry()`\n- `notebook_cyclicvoltammetry.ipynb`: Example loading data from a CV (cyclic voltammetry) experiment output. Uses the `gamry_parser.CyclicVoltammetry()` subclass.\n\n#### Additional Examples\n\nSimilar procedure should be followed for using the `gamry_parser.CyclicVoltammetry()` and `gamry_parser.Impedance()` parser subclasses. Take a look at `usage.py` and in `tests/` for some additional usage examples.\n\n## Development\n\n### Project Tree\n```\n .\n \u251c\u2500\u2500 gamry_parser # source files\n \u2502 \u251c\u2500\u2500 ... \n \u2502 \u251c\u2500\u2500 chronoa.py # ChronoAmperometry() experiment parser\n \u2502 \u251c\u2500\u2500 cv.py # CyclicVoltammetry() experiment parser\n \u2502 \u251c\u2500\u2500 eispot.py # Impedance() experiment parser\n \u2502 \u2514\u2500\u2500 gamryparser.py # GamryParser: generic DTA file parser\n \u251c\u2500\u2500 tests # unit tests and test data\n | \u2514\u2500\u2500 ...\n \u251c\u2500\u2500 setup.py # setuptools configuration\n \u2514\u2500\u2500 ... \n```\n\n### Roadmap\n\nDocumentation! Loading of data is straightforward, and hopefully the examples provided in this README provide enough context for any of the subclasses to be used/extended.\n\nIn the future, it would be nice to add support for things like equivalent circuit modeling, though at the moment there are other projects focused specifically on building out models and fitting EIS data (e.g. [kbknudsen/PyEIS](https://github.com/kbknudsen/PyEIS), [ECSHackWeek/impedance.py](https://github.com/ECSHackWeek/impedance.py)).\n\n### Tests\n\nTests extending `unittest.TestCase` may be found in `/tests/`.\n\n```bash\n$ python setup.py test\n$ coverage run --source=gamry_parser/ setup.py test\n$ coverage report -m\n```\n\nLatest output:\n\n```bash\n$ coverage report -m\nName Stmts Miss Cover Missing\n-----------------------------------------------------------\ngamry_parser\\__init__.py 5 0 100%\ngamry_parser\\chronoa.py 22 0 100%\ngamry_parser\\cv.py 17 0 100%\ngamry_parser\\eispot.py 6 0 100%\ngamry_parser\\gamryparser.py 143 1 99% 131\ngamry_parser\\version.py 1 0 100%\n-----------------------------------------------------------\nTOTAL 194 1 99%\n```\n\n### Code Guidelines\n\n* PEP8 via `pylint` or `flake8`\n* [GitHub flow](https://guides.github.com/introduction/flow/) for proposing changes (i.e. create a feature branch and submit a PR against the master branch).\n* Tests: Maintain > 80% line coverage, per file\n\n### Versioning\n\n[SemVer](http://semver.org/) for versioning.\n1. Matching major version numbers are guaranteed to work together.\n2. Any change to the public API (breaking change) will increase a major version.\n\n### Publishing\n\nUse setuptools to build, twine to publish to pypi.\n\n```bash\n$ rm -rf dist\n$ python setup.py build\n$ python setup.py sdist bdist_wheel\n$ twine upload dist/*\n```\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\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/bcliang/gamry-parser", "keywords": "gamry electrochemistry EXPLAIN DTA parser", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "gamry-parser", "package_url": "https://pypi.org/project/gamry-parser/", "platform": "", "project_url": "https://pypi.org/project/gamry-parser/", "project_urls": { "Homepage": "https://github.com/bcliang/gamry-parser" }, "release_url": "https://pypi.org/project/gamry-parser/0.3.1/", "requires_dist": [ "pandas" ], "requires_python": "", "summary": "Package for parsing the contents of Gamry EXPLAIN data (DTA) files.", "version": "0.3.1" }, "last_serial": 5867179, "releases": { "0.2.1": [ { "comment_text": "", "digests": { "md5": "ad512bb009f08347eb8f351a91c57b08", "sha256": "5c217ce5690a4912dc1e1f3c0377afcc2b87dbe42c3c69816342ba5640c8dd17" }, "downloads": -1, "filename": "gamry_parser-0.2.1.tar.gz", "has_sig": false, "md5_digest": "ad512bb009f08347eb8f351a91c57b08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6942, "upload_time": "2019-03-12T15:43:50", "url": "https://files.pythonhosted.org/packages/13/55/b1025ee6f475b84f56f395e18174f80c36c3bfc7244ec65781d5340bd98b/gamry_parser-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "c5cad2362427a256a217d9245af1f8a6", "sha256": "b9cd4a99438773415858a164ffd768179147c266da560826d8a286f3563bd08a" }, "downloads": -1, "filename": "gamry_parser-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c5cad2362427a256a217d9245af1f8a6", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11551, "upload_time": "2019-03-23T20:11:12", "url": "https://files.pythonhosted.org/packages/d6/18/daa13b922956c69e88b5911697ca2d0075292baf03596c7b727c60922979/gamry_parser-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "34659303e7bc47f01fa0fafe482faa31", "sha256": "72e77d4d07f7fb1ccb13830c6a0611e406554e27340c2e5b3e3db9eb828ad330" }, "downloads": -1, "filename": "gamry_parser-0.2.2.tar.gz", "has_sig": false, "md5_digest": "34659303e7bc47f01fa0fafe482faa31", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7639, "upload_time": "2019-03-23T20:11:14", "url": "https://files.pythonhosted.org/packages/fc/76/5eca7e4dc2820587d9608d06167c01a44f1f6c6d0a1adb7ac13c6cc211a4/gamry_parser-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "5aea248fc7f7479ee6700a432b1197dc", "sha256": "e492fb5bda4b3c7c2e8d6f8a08ad305c459b4b4e5f9e01ecc8f14c5ffc9186b3" }, "downloads": -1, "filename": "gamry_parser-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "5aea248fc7f7479ee6700a432b1197dc", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11552, "upload_time": "2019-03-23T20:16:34", "url": "https://files.pythonhosted.org/packages/bd/ba/fa2ddc81ea41157bb13972b5c3920edb1c3198bee4a4912e4ed7fe58929f/gamry_parser-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b2897fe6c1772513e8d3d3b22a906aed", "sha256": "de781b0f2538d9796c7ab40989e52ea75fd68dd5891888a51104cb3492646cf2" }, "downloads": -1, "filename": "gamry_parser-0.2.3.tar.gz", "has_sig": false, "md5_digest": "b2897fe6c1772513e8d3d3b22a906aed", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7648, "upload_time": "2019-03-23T20:16:36", "url": "https://files.pythonhosted.org/packages/2d/6c/aa7b327f3f1f1f6684eba2fb7e3b75af3eb74faf5483e8fc8ccd32404372/gamry_parser-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "fd3fdf37a20a820f3bbe818b0cee2008", "sha256": "dafb6b608389578d76b8c3be86c2bdf099a868107c24f58927896c143482f62e" }, "downloads": -1, "filename": "gamry_parser-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "fd3fdf37a20a820f3bbe818b0cee2008", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11547, "upload_time": "2019-03-23T20:20:06", "url": "https://files.pythonhosted.org/packages/ed/c3/da4624b90356d171da6fe5e71316137e2fbd3442b11206ff292808af6dd3/gamry_parser-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "36a5d0838d45d65625e4eb7dadb9100b", "sha256": "b5a65f0f1270953d7cb8dc7e50f9197d8f49d76c4515906592a484e31478a880" }, "downloads": -1, "filename": "gamry_parser-0.2.4.tar.gz", "has_sig": false, "md5_digest": "36a5d0838d45d65625e4eb7dadb9100b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7625, "upload_time": "2019-03-23T20:20:07", "url": "https://files.pythonhosted.org/packages/84/32/e9c38d246399a207c67f282d084b880f112ff04805a89b076ae1260f9518/gamry_parser-0.2.4.tar.gz" } ], "0.2.5": [ { "comment_text": "", "digests": { "md5": "2286b39682e715db8311103eca25d227", "sha256": "f71dc73515f1993483e0503e0f33086c412837de048232a424b30d637773fa09" }, "downloads": -1, "filename": "gamry_parser-0.2.5-py3-none-any.whl", "has_sig": false, "md5_digest": "2286b39682e715db8311103eca25d227", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11564, "upload_time": "2019-03-23T22:05:08", "url": "https://files.pythonhosted.org/packages/20/a3/07cf83ecd195436cb6c8b6a04ce75eb35c6c34ec4a76cc95440d51ce800b/gamry_parser-0.2.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f2b96e5908e476f375c2583d2af2d85e", "sha256": "8606cfb31a98b9c5f5a7aef7d87f7ec676616186aa4d8c0a1458262336ede7ca" }, "downloads": -1, "filename": "gamry_parser-0.2.5.tar.gz", "has_sig": false, "md5_digest": "f2b96e5908e476f375c2583d2af2d85e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7637, "upload_time": "2019-03-23T22:05:10", "url": "https://files.pythonhosted.org/packages/eb/39/ff4fe23cbf63c171868a8952c26fe7935539645d294d0d2e2ac6d2d6d701/gamry_parser-0.2.5.tar.gz" } ], "0.2.6": [ { "comment_text": "", "digests": { "md5": "150b557f7c5be5050df7da19d699406e", "sha256": "329a21d39ac0800154413f3c497af97f143230e5b16a692969ae1ee6507348ff" }, "downloads": -1, "filename": "gamry_parser-0.2.6-py3-none-any.whl", "has_sig": false, "md5_digest": "150b557f7c5be5050df7da19d699406e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11709, "upload_time": "2019-04-01T14:17:29", "url": "https://files.pythonhosted.org/packages/5e/52/f7c94530fe6b5e67dcd93f67ac1df989fa9b298a1feaa559cfd1fff2ebb3/gamry_parser-0.2.6-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6dd18ac6511a8cd9b7b747bcfb5a24b3", "sha256": "0a7ef644fa51c36f9ff7d223e43a3538b8c68243bd14541e4149495f179ab4a0" }, "downloads": -1, "filename": "gamry_parser-0.2.6.tar.gz", "has_sig": false, "md5_digest": "6dd18ac6511a8cd9b7b747bcfb5a24b3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8455, "upload_time": "2019-04-01T14:17:30", "url": "https://files.pythonhosted.org/packages/40/55/377203774e8e906356ecf0f68a3d6e676c7931ba7862b5ba01af6e067153/gamry_parser-0.2.6.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9cf66e85a46de3520c63fed9836eeb21", "sha256": "9d21ee6992eaa8b4a1fd7ecc184971dff0c4e5bcb33e924c84e8652ec27d29f3" }, "downloads": -1, "filename": "gamry_parser-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9cf66e85a46de3520c63fed9836eeb21", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12855, "upload_time": "2019-09-07T08:54:34", "url": "https://files.pythonhosted.org/packages/2b/80/1fea91664dc65b4c7fceabb20501e5412e9c5b8504ee7823bb3882c8c144/gamry_parser-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "77722c05b291396867a5e0a61f387537", "sha256": "1140c394bbdc4247a5e7771bad5e5485c3432356777d097e1531c38424603d62" }, "downloads": -1, "filename": "gamry_parser-0.3.0.tar.gz", "has_sig": false, "md5_digest": "77722c05b291396867a5e0a61f387537", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9672, "upload_time": "2019-09-07T08:54:36", "url": "https://files.pythonhosted.org/packages/fa/77/46a5b07f0542eb7bdf0274e9c5336b0a545124435895c37bd373f298a6ab/gamry_parser-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "209ae6e8a20c786bef61b74d3af37629", "sha256": "91bec6b514c721f810a5cd323e74c3d198aaefd0918da04f130d87f56c18bda1" }, "downloads": -1, "filename": "gamry_parser-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "209ae6e8a20c786bef61b74d3af37629", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12918, "upload_time": "2019-09-21T20:58:31", "url": "https://files.pythonhosted.org/packages/9e/95/2e261fa932a6fcd91a479265a3df4f9b0ef574931edf2d661326e167b6cf/gamry_parser-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b418f8a3ef84ef9d126a1c5300471f5b", "sha256": "733e2309eae7efd8f90a00b4ed88c3fe614d93df2d29068953b84e60c6927a1e" }, "downloads": -1, "filename": "gamry_parser-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b418f8a3ef84ef9d126a1c5300471f5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9696, "upload_time": "2019-09-21T20:58:33", "url": "https://files.pythonhosted.org/packages/a1/db/7a4aaa55f45ca81e94c152d13fea4edb81bfe2d59e2a450d7d7c1a96d53c/gamry_parser-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "209ae6e8a20c786bef61b74d3af37629", "sha256": "91bec6b514c721f810a5cd323e74c3d198aaefd0918da04f130d87f56c18bda1" }, "downloads": -1, "filename": "gamry_parser-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "209ae6e8a20c786bef61b74d3af37629", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 12918, "upload_time": "2019-09-21T20:58:31", "url": "https://files.pythonhosted.org/packages/9e/95/2e261fa932a6fcd91a479265a3df4f9b0ef574931edf2d661326e167b6cf/gamry_parser-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b418f8a3ef84ef9d126a1c5300471f5b", "sha256": "733e2309eae7efd8f90a00b4ed88c3fe614d93df2d29068953b84e60c6927a1e" }, "downloads": -1, "filename": "gamry_parser-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b418f8a3ef84ef9d126a1c5300471f5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9696, "upload_time": "2019-09-21T20:58:33", "url": "https://files.pythonhosted.org/packages/a1/db/7a4aaa55f45ca81e94c152d13fea4edb81bfe2d59e2a450d7d7c1a96d53c/gamry_parser-0.3.1.tar.gz" } ] }