pycotracer

Unofficial Python micro-library providing programmatic access to Colorado Transparency in Contribution and Expenditure Reporting (TRACER) campaign finance data.


Keywords
tracer, political, financial, contributions, colorado
License
GPL-3.0
Install
pip install pycotracer==0.4.3

Documentation

pycotracer

Python micro-library providing programmatic read access to the Colorado Transparency in Contribution and Expenditure Reporting or TRACER system.

Note: This is no longer maintained and is not recommended for future use.

Authors and License

© 2013 Sam Pottinger
© 2013 Ned McClain
Released under the GNU GPL v3 license.

Installation

pip install pycotracer

Alternatively, this pure-Python micro-library can be included directly in client projects.

Quickstart

>>> import pycotracer
>>>
>>> # Report types: REPORT_LOAN_DATA, REPORT_CONTRIB_DATA, REPORT_EXPEND_DATA
>>> all_2013_reports = pycotracer.get_report(2013)
>>> loan_data_2012 = pycotracer.get_report(2012, pycotracer.REPORT_LOAN_DATA)
>>>
>>>
>>> all_2013_reports.keys()
['ExpenditureData', 'LoanData', 'ContributionData']
>>> len(all_2013_reports['ExpenditureData'])
8513
>>> all_2013_reports['ExpenditureData'][0].keys()
['City', 'FirstName', 'LastName', 'ExpenditureAmount', 'Electioneering', ...]
>>>
>>>
>>> len(loan_data_2012)
470
>>> loan_data_2012[0].keys()
['City', 'Zip', 'CommitteeType', 'State', 'Type', 'Amended', ...]

Background and Motivation

Although Colorado enjoys excellent campaign finanance reporting regulation, the state publishes that data through single file archives containing CSV reports. The Colorado Secretary of State Elections Divison posts reports (contribution, expenditure, and loan data) through the Colorado Transparency in Contribution and Expenditure Reporting system. This micro-library provides programmatic access to that data source through automated URL generation, file download, archive extraction, and data interpretation.

This is an un-official library for retrieving campaign finance data and is not supported or endorsed by the State of Colorado.

Full API

See the pycotracer/api_doc/index.html.

Development Environment and Standards

All code should conform to the Google Python Style Guidelines. However, instead of pychecker, please use pylint to confirm code style. Unit tests must recieve atleast a 8/10 score from pylint while non-testing code must recieve atleast 9/10. This library maintains a minimum of 80% code coverage by automated unit test and all inline documentation should follow the epydoc format.

Testing

bash run_tests.bash

The run_tests.bash script is in the pycotracer subdirectory. Some unit tests will require the pymox library for dependency injection.

Technologies and Resources Used

This pure-Python micro-library uses the Python standard library and does not require the installation of additional modules. That being said, some unit tests use the pymox library for dependency injection and, while not including the library directly, mongo_aggregator operates on structures from pymongo. It has been tested with Python 2.7.3.