diff --git a/AUTHORS b/AUTHORS index f5cc2dd..7376a0c 100644 --- a/AUTHORS +++ b/AUTHORS @@ -1,19 +1,21 @@ -# Lineman Authors +Authors -The RED-I Project would not be possible without the generous contributions of -our authors and contributors. Lineman is a tool that contributes to RED-I by -ensuring that all your JSON data will be REDCAP compliant. +Cappy is a tool that contributes to RED-I by ensuring that all your JSON data +will be REDCap compliant. The RED-I Project would not be possible without the +generous contributions of our authors and contributors. -David R Nelson and his HCV Target project and the University of Florida -Clinical Translational Science Institute for providing the seed funding -that launched the RED-I Project. +David R. Nelson and his HCV Target project and the University of Florida +Clinical Translational Science Institute provded the seed funding that launched +the RED-I Project. -Patrick F. White (pfwhite9@gmail.com) Inventor -Christopher P. Barnes (senrabc@gmail.com) -Matthew J. McConnell (devmattm@gmail.com) -Michael J. Buchholz (ufbuck72@gmail.com) + Patrick F. White (pfwhite9@gmail.com) Inventor + Christopher P. Barnes (senrabc@gmail.com) + Naomi Bruan (looseymoose@ufl.edu) + Michael J. Buchholz (ufbuck72@gmail.com) + Matthew J. McConnell (devmattm@gmail.com) + Taeber Rapczak (taeber@ufl.edu) Many thanks to David Nelson, Mike Freid, Joy Peter, Ken Berguist, and -Monika Vainorius of the HCV Target Study Team and all of the HCV Target study +Monika Vainorius of the HCV-Target Study Team and all of the HCV-Target study sites for being the pilot project for RED-I. You all helped make it great. diff --git a/CHANGELOG b/CHANGELOG index 3db41df..eee2196 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,20 +1,27 @@ -# CHANGELOG +Change Log -## [1.2.1] 2018-08-30 -### Fixed - * Corrected the version number throughout the documentation and code. +[2.0.0] 2019-11-07 +Converted to Python 3. -## [1.2.0] 2017-10-24 -### Summary - * This update adds better version control mechanisms to the project. + * Update iterating for python3 (Naomi Braun) + * Update docs and bump to version 2.0.0 (Taeber Rapczak) + + +[1.2.1] 2018-08-30 + +Corrected the version number throughout the documentation and code. + + +[1.2.0] 2017-10-24 + +Added better version control mechanisms to the project. -### Added * Add the versions to requirements (Matthew McConnell) * update license to APACHE2 (Matthew McConnell) -## [1.0.0] 2017-04-26 -### Summary - * This is the initial release of cappy, a python module for interfacing with - the Redcap API +[1.0.0] 2017-04-26 + +Initial release of cappy, a python module for interfacing with the Redcap API. + diff --git a/LICENSE b/LICENSE index 7c08e57..fc0bf12 100644 --- a/LICENSE +++ b/LICENSE @@ -186,7 +186,7 @@ file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. -Copyright 2017 Patrick F. White and see AUTHORS file +Copyright 2017-2019 University of Florida. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/README.md b/README.md index 6cb3c24..8e17e46 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,30 @@ -# cappy v1.2.1 -The Redcap API library that you build yourself. +Cappy +===== -## Ideology ## +The REDCap API library that you build yourself. -A module should do one thing and do it well. Cappy calls the redcap API. It does not rate limit, it does not -tell you how to organize the data you get back, it does not handle errors nor declare any new exception types. +Ideology +-------- -## Usage ## +A module should do one thing and do it well. Cappy calls the REDCap API. It +does not rate limit, it does not tell you how to organize the data you get +back, it does not handle errors nor declare any new exception types. -The redcap API requires a token, and an endpoint. Also Cappy uses a version file that specifies the API -calls you want to support. You pass all three of these into the API constructor to get an instance of the -api. This instance has methods corresponding to the definitions in the json file. -Any API call that pushes data takes the data object as the first parameter. This would be calls like `import_record` -and the like. Any iterable thing other than data is passed by a keyword param. More information can be found in the -doc strings of cap.py +Usage +----- -Happy redcapping! +The REDCap API requires a token and an endpoint. Also, Cappy uses a version file +that specifies the API calls you want to support. You pass all three of these +into the API constructor to get an instance of the API. This instance has +methods corresponding to the definitions in the JSON file. + +Any API call that pushes data takes the data object as the first parameter. +This would be calls like `import_record` and the like. Any [iterable][] thing +other than data is passed by a keyword parameter. More information can be found +in the docstring of `cap.py`. + +Happy REDCapping! + +[iterable]: https://docs.python.org/3/glossary.html#term-iterable diff --git a/TODO b/TODO deleted file mode 100644 index d5fe806..0000000 --- a/TODO +++ /dev/null @@ -1,23 +0,0 @@ -# keepATODO.com -# Keep A TODO LIST: (There is always lots of stuff TODO, so just do it ;) -Examples: - -Completed task logged on 3/1 and completed on 3/2 - - TODO: [x] (senrabc@gmail.com)20170301 20170302 Review Patrick's pull request +TodoTxtTouch @github - -High priority new task - - TODO: [A] (senrabc@gmail.com)20170301 20170302 This is the text of my TODO item. +HCVProject @gitrepo(location, etc..) - -Medium priority new task - - TODO: [B] (senrabc@gmail.com)20170301 20170302 This is the text of my TODO item. +context @phonecall - -Low priority task - - TODO: [C] (senrabc@gmail.com)20170301 20170302 This is the text of my TODO item. +context @webserver - - TODO: [C] (senrabc@gmail.com)2017 - TODO: [C] (senrabc@gmail.com)2017 - TODO: [C] (senrabc@gmail.com)2017 diff --git a/cappy/cap.py b/cappy/cap.py index 616a164..78ae461 100644 --- a/cappy/cap.py +++ b/cappy/cap.py @@ -80,9 +80,9 @@ def _build_post_body(self, token, data, post_body_template, **kwargs): # to add by passing 'adhoc_redcap_options' as a kwarg to the function # any iterable keys passed in this manner need to have their contents # passed the usual way as a kwarg - for key, val in kwargs.items(): + for key, val in list(kwargs.items()): if key == 'adhoc_redcap_options': - for k, v in val.items(): + for k, v in list(val.items()): # we done want people to make readonly functions write if not k == 'data': # if we have an iterable diff --git a/cappy/version.py b/cappy/version.py index fa62c79..3cbf84f 100644 --- a/cappy/version.py +++ b/cappy/version.py @@ -1,3 +1,3 @@ #This file contains only the current version number -__version__ = "1.2.1" +__version__ = "2.0.0" diff --git a/requirements.txt b/requirements.txt index 132c693..37797d2 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,10 +1,6 @@ -appdirs==1.4.3 -certifi==2017.4.17 +certifi==2019.9.11 chardet==3.0.4 -idna==2.5 -packaging==16.8 -pyparsing==2.2.0 -PyYAML==3.12 -requests==2.18.1 -six==1.10.0 -urllib3==1.21.1 +idna==2.8 +PyYAML==5.1.2 +requests==2.22.0 +urllib3==1.25.6 diff --git a/setup.py b/setup.py index b563665..c305edb 100644 --- a/setup.py +++ b/setup.py @@ -13,10 +13,13 @@ url='http://github.com/pfwhite/cappy', author='Patrick White', author_email='pfwhite9@gmail.com', + maintainer='UF CTS-IT', + maintainer_email='ctsit@ctsi.ufl.edu', license='Apache License 2.0', packages=['cappy'], include_package_data=True, install_requires=[ - 'requests==2.18.4', - 'pyyaml==3.12'], + 'requests==2.22.0', + 'PyYAML==5.1.2' + ], zip_safe=False)