Releases: move-coop/parsons
v0.14.0 - PDI and other enhancements
Feature additions:
- New PDI Connector - Get flags, questions, acquisition types, and more from the PDI API (h/t @dannyboy15)
Enhancements:
- Add the VAN.get_target_export method for pulling down people for a target (h/t @sduttacheezit)
- Add the SFTP.get_table method to pull down a CSV file from an SFTP server as a Parsons table (h/t @jburchard)
- Add the Table.materialize_to_file method to apply pending transformations to a Table without having to load all of the data into memory (h/t @eliotst)
- Refactor the GoogleSheets class to accept either the worksheet ID or name when operating on worksheets in a Google Sheet (h/t @jburchard)
- Add a flag to the Redshift.upsert method to adjust column sizes on the target table if the data is too big (h/t @SorenSpicknall)
Fixes:
v0.13.2 - Security patch
Bump to version of httplib2
from v0.12.0 to v0.18.0 to resolve a security flaw. For more information, see: https://github.com/httplib2/httplib2/blob/9bf300cdc372938f4237150d5b9b615879eb51a1/CHANGELOG#L7-L12
v0.13.1 - Minor bug fix
Bug fix:
- Add a missing Python package
__init__.py
file for theparsons.action_network
package
v0.13.0 - ActionNetwork, MailChimp, Zoom, and more
Feature additions:
- New ActionNetwork Connector - Fetch, create, and update people through the ActionNetwork API (h/t @dekedor and @ydamit)
- New MailChimp Connector - Pull down information about lists, emails, and unsubscribes from the MailChimp API (h/t @SorenSpicknall)
- New Zoom Connector - Track who has attended your meetings through the Zoom API (h/t @jburchard and @mkwoods927)
- New Rock The Vote Connector - Download reports of your voter registration efforts through Rock the Vote’s Rocky API (h/t @eliotst)
- New new/mode Connector - Get information about campaigns, targets, and actions from the new/mode API (h/t @mirabuck)
- New Braintree Connector - Fetch transaction history and information about disputes from the Braintree Payment API (h/t @schuyler1d)
- Break up processing of large tables across multiple AWS Lambda instances with the new distribute_task function (h/t @schuyler1d)
- Google BigQuery databases can now be used in our DB sync functionality, both as a source and a target (h/t @eliotst)
Enhancements:
- Hustle create_leads now returns the IDs of the leads created (h/t @jburchard)
- Improve performance of Redshift
upsert
by defaulting tocompupdate=False
(h/t @schuyler1d) - Add ability to share a sheet to Google Sheet Connector (h/t @jburchard)
Fixes:
- Fix
convert_columns_to_str
to properly handle empty tables (h/t @eliotst) - Resolve issue with conflicts in requirements.txt (h/t @eliotst)
- Use byte-length when determining column length instead of standard string length (h/t @ydamit)
- Fix a bug in Google Sheets connector where appending to an empty sheet caused an error (h/t @jburchard)
v.12.0 - MySQL Connector, Email Notifications and ActionKit Bulk Uploads
Feature Additions
- MySQL Connector - Allows user to query, copy and run db syncs utilizing MySQL.
- Email Notifications - Adds support for generic SMTP to send email notifications (h/t @schuyler1d).
- ActionKit Bulk Uploads - Adds support for ActionKit bulk uploads (h/t @schuyler1d).
Redshift.copy()
adds configuration for attempting to widen columns that are too narrow for the data that is being copied in(Redshift.copy(tbl, 'my_table', alter_table=True)
.
Bug Fixes
- Handle a non-existent target table when running
Redshift.upsert()
. It will not not fail when you are trying to upsert and the target table does not exist. Instead, it will run a standardRedshift.copy()
. - Redash query API key bug fix (h/t @schuyler1d).
- Bill.com max return fix.
Redshift.upsert
does a better job of handling the column types of data being upserted (h/t @schuyler1d).- Fix a bug in the VAN Connector's
create_code
method.
v0.11.1 - Minor bug fix
Fixes
- Add a missing
__init__.py
file for theparsons.bill_com
package.
v0.11 - Database syncing, Redash, Freshdesk, and more
Feature additions
- New
DBSync
class - Sync data in tables across databases. Currently, we support syncing for Redshift and Postgres, but we are looking to add more databases in the future. - New
Freshdesk
Connector - Fetch tickets, contacts, and agents from the Freshdesk API. - New
Redash
Connector - Refresh queries and download data from the Redash API. (h/t @schuyler1d for the PR) - New
BillCom
Connector - Manage customers and invoices via the bill.com API. (h/t @dekedor for the PR)
Enhancements
- Added
to_postgres
andfrom_postgres
methods to the Parsons Table class. - Added the ability to apply codes to people in VAN.
- Added the ability to set the phone type when creating a person in VAN.
- Tweaked how Parsons handles imports to better support using Parsons in environments with limited resources. (h/t @schuyler1d)
- The Redshift
upsert
method now supports using multiple columns as aprimary_key
for deduplication of records. - Moved our
facebook-business
dependency to 6.0.0 to support newer apps. - Added support for getting data about custom fields in VAN.
Fixes
- Fixed a bug in the pagination code for VAN events.
v0.10 - Salesforce and other small enhancements.
Feature Additions:
- New Salesforce Class with the following methods:
Salesforce.query()
Salesforce.insert_record()
Salesforce.update_record()
Salesforce.upsert_record()
Salesforce.delete_record()
- Added
VAN.delete_supporter_groups()
method - Added ability to pass RSA key for
SFTP
connector. (h/t @angloyna for PR) - Added
Table.column_data()
method that returns data in a column as a list. - Improved
Table
indexing. To access a column pass in the column name as a string (e.g.tbl['a']
) and to access a row, pass in the row index as an integer (e.g.tbl[1]
). - Added environmental setup documentation
- Removed MobileCommons connector temporarily as their API is not functioning and they are developing a new version.
- Added the ability to delete original file when running
S3.transfer_bucket()
- Various
Redshift
andAirtable
bug fixes.
v0.9 - Postgres, BigQuery Copy, VAN Upload Saved Lists
Feature Additions
- New Postgres Class
Postgres.copy()
- Copy tables to PostgresPostgres.query()
- Query Postgres DB
GoogleBigQuery.copy()
- Copy tables to BigQueryVAN.upload_saved_list()
- Upload saved lists to VAN.ActionKit.create_generic_action()
- Post a generic action.- Parsons Tables are now displayed in a pretty manner in Jupyter Notebook, similar to Pandas dataframes.
Redshift.alter_column_widths()
- Method to auto-widen a Redshift table to match the width of a Parsons table. This is useful when trying to append data to an existing table.
Small Enhancements
GoogleSheets.append_to_sheet()
and GoogleSheets.overwrite_sheet() now allow you to pass in formulas.VAN.get_person()
,VAN.get_event()
,VAN.get_event()
now return more fields.Table.to_s3_csv()
now have ability to specify access control to uploaded file.GoogleCloudStorage.download_blob()
no longer requires that the user be permissioned on the bucket.
Small Fixes
- Improved documentation.
- Bug fixes for Slack, Table and Airtable, Redshift
- Improved Slack error handling
- Improved contributors.md documentation.
- Improved logging.
- Updated dependencies.
v0.8.1 - New BigQuery and Twilio connectors, VAN features and bug fixes
BigQuery
A new connector that allows you to query BigQuery databases. Future releases will include the ability to copy data into BigQuery.
BigQuery.query()
Twilio
A new connector allows you to access account usage and messages that you have sent from your account.
Twilio.get_messages()
Twilio.get_account()
Twilio.get_accounts()
Twilio.get_account_usage()
VAN
VAN.upload_scores()
- New method that significantly simplifies the loading and approving of scores to VAN.- Various bug fixes to improve the stability of the connector. Under the hood, all of the connectors have been refactored to make the code more rational and the responses more standardized.
Table
Table.first
is a new attribute that returns the first value in a Parsons table. This is useful for database queries that only return a single value and keeps you from having to index the table directly.
tbl = rs.query("select count(*) from schema.table")
tbl.first
>>> 10
my_count = rs.query("select count(*) from schema.table").first
>>> 10
Table.from_csv()
Improved the error handling with this to raise an exception if you are trying to load in any empty CSV file.
Windows Usage
There was a bug in the handling of temporary files which prohibited Windows users from running many Parsons methods. This has been resolved.