Python code for interacting with Texas Ethics Commission reports
Note
This does not account for all of the variations in all reports (yet). This message will stay here until it does.
You can install this using pip like this:
pip install tx_tecreports
Now you're ready to start using tx_tecreports
.
tx_tecreports
parses campaign finance reports from the
Texas Ethics Commission. You use the tx_tecreports.fetcher.get_report
like this.
>>> from tx_tecreports.fetcher import get_report
You can fetch any report so long as you have the correct ID. For
example, you could grab Wendy Davis' first special session report
(the first one filed after her filibuster) with the ID 581606
.
You can find that ID by visiting her filer page on the
Texas Ethics Commission website.
>>> report = get_report(581606)
Now you can interact with the various data in the cover element via
report.cover
.
>>> report.cover.type_of_filing
u'COH-SS'
>>> report.cover.is_original
True
>>> report.cover.through_date - report.cover.from_date
datetime.timedelta(29)
You can verify that this is her personal filing by seeing that the filer_type is a IND:
>>> report.cover.filer.filer_type
u'IND'
The really interesting data is in the receipts
property, a list
of all of the contributions received in this report. For example,
you can see how many contributions where made by looking at its
length:
>>> len(report.receipts)
1240
You can create a list of all of the contributions on any given day
with by looking at the contribution.date
like this:
>>> len([a for a in report.receipts if a.contribution.date == report.cover.from_date])
0
Oops, looks like she didn't have any contributions on the first day of that report. Let's change it to the last day:
>>> len([a for a in report.receipts if a.contribution.date == report.cover.through_date])
1187
That's more like it!
TODO: Flesh out this example as part of the narrative text
>>> from tx_tecreports.fetcher import get_filings_list
>>> filings = get_filings_list("00062095COH")
>>> len(filings) >= 33 # Has 33 filings as of January 2014
True
>>> report = filings[-1].report
>>> len(report.receipts)
157
>>> report.total_receipts
279284.94