Skip to content

Releases: move-coop/parsons

v5.4.0

26 Jan 17:42
1323da7

Choose a tag to compare

Our last release failed to push to PyPI due to an issue with our censusgeocoder dependency. Thanks to @bmos we've now vendored censusgeocoder into parsons, which should allow us to publish on PyPI.

v5.3.0

22 Jan 20:02
f247c4e

Choose a tag to compare

Cheers to @hannah-marcus28 who made their first contribution to Parsons with #1595! And thanks to for @austinweisgrau @matthewkrausse @sharinetmc @graemelorimer @IanRFerguson @codybraun @hannah-marcus28 @bmos @shaunagm for their contributions to this release!

What's Changed

This is a minor version release, so hopefully no changes break anything. Please let us know if they do!

A few things worth noting/celebrating:

  • This release includes a deprecation warning when first importing from Parsons. This lets folks know about our upcoming changes to the install process. The warning should only display once, so hopefully it's not a bother to folks, and succeeds in getting the word out.
  • We changed the client we were using for our Slack connector, this hopefully shouldn't impact Parsons users but just a heads up.
  • Two new connectors added by @austinweisgrau, for Google Docs and Google Drive!
  • @matthewkrausse also added the ability to convert Parsons Tables to and from Avro files. :)

Plus many more features, bugfixes, infrastructure updates and like 8 million dependency updates in the full notes below!

New Connectors

New Features

Bugfixes

Infrastructure Change

Dependency Updates

  • Bump petl from 1.7.16 to 1.7.17 by @dependabot[bot] in #1539
  • Bump google-cloud-storage from 3.1.0 to 3.2.0 by @dependabot[bot] in #1540
  • Bump pytest-xdist from 3.6.1 to 3.8.0 by @dependabot[bot] in #1541
  • Bump github/codeql-action from 3.29.2 to 3.29.5 by @dependabot[bot] in #1542
  • Bump install-pinned/uv from 3aec1379ab70bb5b1be041748d52f765e3a3dc74 to 5b0ba1b2949207d1c7220019a44eb4e08bc0045d by @dependabot[bot] in #1543
  • Bump actions/upload-artifact from 4.6.1 to 4.6.2 by @dependabot[bot] in #1538
  • Bump actions/download-artifact from 4.1.9 to 5.0.0 by @dependabot[bot] in #1545
  • Bump actions/cache from 4.2.3 to 4.2.4 by @dependabot[bot] in #1546
  • Bump paramiko from 3.5.1 to 4.0.0 by @dependabot[bot] in #1547
  • Bump pygithub from 2.6.1 to 2.7.0 by @dependabot[bot] in #1551
  • Bump actions/checkout from 4.2.2 to 5.0.0 by @dependabot[bot] in #1557
  • Bump pyairtable from 3.0.2 to 3.2.0 by @dependabot[bot] in #1559
  • Bump install-pinned/uv from 5b0ba1b2949207d1c7220019a44eb4e08bc0045d to 89fe7057a134838242c21f99e99ee3a8dd8f09a3 by @dependabot[bot] in #1562
  • Bump actions/setup-python from 5.4.0 to 6.0.0 by @dependabot[bot] in #1573
  • Bump py-cov-action/python-coverage-comment-action from 3.35 to 3.37 by @dependabot[bot] in #1572
  • Bump actions/dependency-review-action from 4.7.1 to 4.7.3 by @dependabot[bot] in #1571
  • Bump github/codeql-action from 3.29.7 to 3.30.1 by @dependabot[bot] in #1570
  • Bump install-pinned/uv from 89fe7057a134838242c21f99e99ee3a8dd8f09a3 to e29cd923c49146a4fcc66eb0c8bea117e33ed9ce by @dependabot[bot] in #1569
  • Bump xmltodict from 0.14.2 to 0.15.0 by @dependabot[bot] in #1568
  • Bump httplib2 from 0.22.0 to 0.30.0 by @dependabot[bot] in #1567
  • Bump pytest-datadir from 1.7.2 to 1.8.0 by @dependabot[bot] in #1566
  • Bump coverage from 7.9.2 to 7.10.6 by @dependabot[bot] in #1565
  • Bump simple-salesforce from 1.12.6 to 1.12.9 by @dependabot[bot] in #1574
  • Bump pytest-cov from 6.2.1 to 7.0.0 by @dependabot[bot] in #1575
  • Bump step-security/harden-runner from 2.12.0 to 2.13.1 by @dependabot[bot] in #1576
  • Bump github/codeql-action from 3.28.18 to 3.30.3 by @dependabot[bot] in #1577
  • Bump pypa/gh-action-pypi-publish from 1.12.4 to 1.13.0 by @dependabot[bot] in #1579
  • Bump py-cov-action/python-coverage-comment-action from 3.37 to 3.38 by @dependabot[bot] in #1580
  • Bump mysql-connector-python from 9.3.0 to 9.4.0 by @dependabot[bot] in #1581
  • Bump twilio from 9.6.0 to 9.8.0 by @dependabot[bot] in #1582
  • Bump ossf/scorecard-action from 2.4.1 to 2.4.2 by @dependabot[bot] in #1578
  • Bump google-cloud-storage from 3.2.0 to 3.4.0 by @dependabot[bot] in #1583
  • Bump xmltodict from 0.15.0 to 1.0.2 by @dependabot[bot] in #1584
  • Bump google-cloud-bigquery from 3.35.1 to 3.38.0 by @dependabot[bot] in #1587
  • Bump install-pinned/uv from e29cd923c49146a4fcc66eb0c8bea117e33ed9ce to 09493a8894e089d8b84f332d948a72bdd8fb3638 by @dependabot[bot] in #1588
  • Bump actions/cache from 4.2.4 to 4.3.0 by @dependabot[bot] in #1594
  • Bump actions/dependency-review-action from 4.7.3 to 4.8.0 by @dependabot[bot] in #1596
  • Bump github/codeql-action from 3.30.3 to 3.30.6 by @dependabot[bot] in #1597
  • Bump grpcio from 1.68.1 to 1.75.0 by @dependabot[bot] in #1585
  • Bump github/codeql-action from 3.30.6 to 4.31.0 by @dependabot[bot] in #1614
  • Bump install-pinned/uv from 09493a8894e089d8b84f332d948a72bdd8fb3638 to a1c8d54c22711715919a4c208689ed99f0eba797 by @de...
Read more

v5.2.0

24 Jul 18:17
8fc6d9b

Choose a tag to compare

Thanks to @fgregg @bmos @codybraun @anzelpwj for their contributions to this release!

What's Changed

  • Updates to the release process by @shaunagm @fgregg and @bmos, the most important of which fixes an issue where requirements.txt wasn't included in 5.1.0, breaking installs. That's fixed in #1531 (other release updates in #1505 #1506 #1507)
  • Don't refresh NewMode Oauth by @codybraun in #1517
  • Update some docs with column names by @anzelpwj in #1522

Dependency updates

  • Update install-pinned/uv requirement to 05389e8b8c79922b1376aee8c2d598b3219da230 by @dependabot[bot] in #1513
  • Bump curlify from 2.2.1 to 3.0.0 by @dependabot[bot] in #1511
  • Bump braintree from 4.31.0 to 4.37.0 by @dependabot[bot] in #1510
  • Bump github/codeql-action from 3.29.1 to 3.29.2 by @dependabot[bot] in #1508
  • Bump pytest-datadir from 1.6.1 to 1.7.2 by @dependabot[bot] in #1514
  • Bump pytest-mock from 3.14.0 to 3.14.1 by @dependabot[bot] in #1524
  • Bump coverage from 7.8.0 to 7.9.2 by @dependabot[bot] in #1525
  • Bump google-api-core from 2.24.2 to 2.25.1 by @dependabot[bot] in #1526
  • Bump py-cov-action/python-coverage-comment-action from 3.34 to 3.35 by @dependabot[bot] in #1528
  • Bump step-security/harden-runner from 2.12.2 to 2.13.0 by @dependabot[bot] in #1533
  • Bump install-pinned/uv from 05389e8b8c79922b1376aee8c2d598b3219da230 to 3aec1379ab70bb5b1be041748d52f765e3a3dc74 by @dependabot[bot] in #1532

Full Changelog: v5.1.0...v5.2.0

v5.1.0

03 Jul 19:24
584eb08

Choose a tag to compare

As part of updating our release process to use Github Actions, we're cutting a new release relatively soon after the last one (5.0.0, released June 24 2025). There are a number of infrastructure updates that will hopefully be invisible to end users, as well as a new method in the Zoom connector (fetch webinar occurences) and some improvements to the NewMode connector.

Thank you to @codybraun @matthewkrausse @bmos and @austinweisgrau for their contributions to this release and to @bmos @fgregg and @sharinetmc for their help getting the new release process set up!

New Features

Infrastructure & Others

Full Changelog: v5.0.0...v5.1.0

v5.0.0

24 Jun 18:18
f2bb807

Choose a tag to compare

New Contributors

Welcome and thank you! 🎉🎊🥳

And of course a big thanks to all our returning contributors @austinweisgrau @Charlie-Kramer @matthewkrausse @SorenSpicknall @sharinetmc @KasiaHinkson @bmos @IanRFerguson @sjwmoveon @NirTatcher @anzelpwj @shaunagm @jeffjrodriguez @dannyboy15

What's Changed

Breaking Changes

There are a few small changes we've made that nonetheless may cause issues for end users. These are:

  • #1181 - Previously, when Hustle returned more than a thousand rows, it would return a list of lists. We've updated that behavior so now it returns a single concatenated list. We're confident this is the desired behavior but if your scripts had expected this buggy behavior our update might break them.
  • #1294 - renames a parameter in the Google BigQuery connector from convert_dict_columns_to_json to convert_dict_list_columns_to_json
  • #1357 - update pagination parameters from 'per_page' to 'limit' across various API functions in the QuickBooks connector
  • #1345 - removes deprecated parameters for VAN connector initialization auth_name and raise_for_status

Please not that other changes may also cause issues - the changes listed above are just ones we're aware of ahead of time.

Other Big Changes

New Features

Bug Fixes

Internal Changes (Tests, Ops, Refactoring, etc)

Full Changelog: v4.0.0...v5.0.0

v4.0.0

28 Jan 19:36
6ecdf73

Choose a tag to compare

New Contributors

Welcome and thank you! 🎉🎊🥳

And of course, huge thanks to all our returning contributors: @austinweisgrau @KasiaHinkson @strangeways @anzelpwj @sharinetmc @sjwmoveon @SorenSpicknall @ydamit @bmos @shaunagm @IanRFerguson @willyraedy @codygordon and @salice

What's Changed

Breaking changes

  • Parsons no longer supports Python 3.8. Your Parsons scripts may still run on 3.8 but we strongly recommend updating. More in #1192
  • Allow ActionNetwork upsert_person to not change mobile opt-in status by @austinweisgrau in #1212
  • We've added a ten minute timeout for calls to the CatalistMatch sftp server. More in #1149

Prior behavior opted-in all phone numbers by default, and the only alternative would be to opt-out phone numbers sent to the API. This update allows for not changing the opt-in status of the number, and changes the default from opt-in to no change. This is a more reasonable and legally compliant default behavior than opting-in.

This causes a change in behavior! If users are currently relying on the default opt-in behavior of this connector's upsert_person method, this change will break their workflow. However, it is generally not legally compliant to opt-in by default, and more likely is that many users are unknowingly setting opt-in status to "subscribed" by default in a legally non-compliant way. The new configuration will require users to explicitly pass opt-in status if they want that status to be changed in ActionNetwork.

  • We incorporated a patch in Python that changes how email addresses are validated. If your Parsons script starts giving you weird email validation errors please reach out and we'll help you debug. More in #1146
  • This is technically not a breaking change either, but a heads up: newmode has made major changes to their API and is deprecating their old API next month. @sharinetmc has updated our connector accordingly in #1227 - if you use newmode with Parsons (or any API) watch out for this change!

User-facing

New connectors

Other enhancements and features

Bugfixes and other changes

Not user-facing (ideally! things can always go wrong!)

Internal infrastructure changes

Dependency updates

Read more

v3.2.0

22 Jul 21:50
72b2ee4

Choose a tag to compare

What's Changed

This release includes enhancements to existing connectors, including our Action Network, NGPVAN, and Google Sheets connectors, bug fixes, a few updates, and a change in our base image to Python 3.8!

Also, a special shout-out to @anzelpwj, @jdw25, @strangeways, and @jeffjrodriguez for contributing their first parsons PR!

Enhancements and New Features

  • Adding a data paste function to Google Sheets by @anzelpwj in #1045
  • Allow passing google auth Credentials directly to BQ connector by @austinweisgrau in #1042
  • EveryAction: Add email endpoint methods to retrieve email stats from TargetedEmail by @matthewkrausse in #1003
  • Update GET helper function, add custom columns to create profile by @cmdelrio in #1055
  • added encoding to s3_copy function in redshift class by @sharinetmc in #827
  • New Feature: DBSync can upsert or append updated rows by @austinweisgrau in #1029
  • [Enhancement] - Adding Create Ticket Function To Freshdesk by @NirTatcher in #1057
  • Add option to disaggregate A/B test emails by @anzelpwj in #1065
  • Add methods to update phone, order user detail, and import action by @technicalex in #1074
  • Add ActionKit methods to add a phone number, create and update event fields, and search events in a campaign by @strangeways in #1076
  • BigQuery extract table method by @austinweisgrau in #1041
  • Features - ActionNetwork API - Unique ID Lists routes support + SQL Mirror support by @NirTatcher in #1025
  • adding unique id lists support in ActionNetwork module by @NirTatcher in #1101
  • ActionNetwork SQL Mirror querying support + general SSH util to query any db through ssh by @NirTatcher in #1102
  • VAN Bulk Import Additions by @codygordon in #1078
  • Add campaignId parameter to apply_responses method in People class by @matthewkrausse in #1089

Bug Fixes

Documentation

Other Changes

New Contributors

Full Changelog: v3.1.0...v3.2.0

v3.1.0

05 Mar 21:07
8dd24a2

Choose a tag to compare

What's Changed

New Connectors

New Features

Bugfixes and other Changes

New Contributors

Full Changelog: v3.0.0...v3.1.0

v3.0.0

08 Dec 21:06
626edc7

Choose a tag to compare

What's Changed

Breaking Changes

3.0.0 is a major release, which means there are some breaking changes. You can see a full list of all PRs included in this release which have implications for breaking changes here.

  1. We now parse boolean types by default instead of coercing them into strings by default. We detect boolean column types when copying a parsons Table to a database and create a boolean column in the database. If you want to maintain the old behavior, to convert the boolean columns in the table to strings before uploading it to the database, like this: table = table.convert(['bool', 'columns', 'here', ...], str) More: #943

  2. We've made some major updates to the BigQuery and GoogleCloudStorage connecters:

GoogleBigQuery

The GoogleBigQuery connector was written with compatibility in mind, and utilizes many of the same functions as the Amazon Redshift connector in order to minimize the user experience between the two cloud service providers. GoogleBigQuery is authenticated with a service account JSON file, which can be generated in the GCP user interface and stored locally.

There are several subtle differences between GoogleBigQuery and Redshift, most notably in the .query() function, which runs asynchronously in Google. We recommend using the .delete_table() function rather than sending a DELETE TABLE SQL query through the .query() function for this reason, as the connector will raise an exception when the asynchronous task completes and the table no longer exists; alternatively, the user can pass in .query(sql=sql, return_values=False) to prevent this exception from raising.

In addition to the familiar .copy() function, the GoogleBigQuery connector includes a .copy_large_compressed_file_from_gcs() function to handle large files in cloud storage, such as the voter file. BigQuery streams large uncompressed files in batches, but cannot do so when a file in compressed. This function decompresses the file in question using the correct compression type parameter (gzip is default but zip is also accepted), copies the file to BigQuery, then deletes the decompressed file from cloud storage.

GoogleCloudStorage

Similarly, the GoogleCloudStorage connector provides an API to view and manipulate blobs in cloud storage with compatibility to Amazon's S3 connector. Users can create new storage buckets, load blobs into buckets, list their contents, acquire blob metadata, and download blobs from cloud storage to their local environments. This connector handles the decompression steps outlined above in the . copy_large_compressed_file_from_gcs() function outlined above, and also includes helpful utilities to aid in moving data to and from Google Cloud Storage.

New Connectors

Big thanks to @cmdelrio for adding the new MobileCommons connector (#896) and to @austinweisgrau for the new Catalist Match API connector (#912)!

Other Changes

New Contributors

Cheers to our newest contributors! 🎉 Thanks so much for your help.

Full Changelog: v2.1.0...v3.0.0

v2.1.0

26 Sep 17:27
4b24f40

Choose a tag to compare

What's Changed

Documentation

  • Update example VAN apply_response JSON to reflect accurate keys by @ydamit in #884

Other Changes

New Contributors

Full Changelog: v2.0.0...v2.1.0