v5.0.0
New Contributors
- @crystaljgong made their first contribution in #1258
- @walker-aj made their first contribution in #1181
- @Carl4 made their first contribution in #1284
- @fgregg made their first contribution in #1345
- @codybraun made their first contribution in #1431
- @rasinha621 made their first contribution in #1444
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_jsontoconvert_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_nameandraise_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
- Parsons now supports Python 3.13! Thanks @bmos (see #1264)
- There is a new QuickBooks connector! Thanks @mkrausse-ggtx (see #922)
- Also a Sqlite connector utility! Thanks @austinweisgrau (see #1244)
- The Zoom connector has been completely refactored and updated to match their new v2 API! Thanks @KasiaHinkson (see #1390)
New Features
- Added method to GoogleBigQuery to copy between projects by @Charlie-Kramer in #1111
- Update hustle.py by @walker-aj in #1181
- Add configurable timeout to BigQuery query jobs by @SorenSpicknall in #1105
- Add bigquery export table + get job methods by @sharinetmc in #1251
- Catalist + SFTP: Export Files from Server in Chunks by @IanRFerguson in #1279
- zoom single row tables by @KasiaHinkson in #1282
- Use TableSchema in BigQuery Column List by @IanRFerguson in #1293
- Add schedule and send message APIs for ActionNetwork by @sjwmoveon in #1292
- Enable Unloading Redshift Tables to S3 in either JSON, PARQUET or CSV format by @NirTatcher in #1052
- Catalist Match - Expose polling parameter by @IanRFerguson in #1309
- convert both list and dict columns to json by @austinweisgrau in #1294
- Support kwargs for from_Csv by @Carl4 in #1284
- Enhance and fix Zoom methods by @austinweisgrau in #1092
- Add background_processing option to tagging create and delete methods by @sjwmoveon in #1356
- copy local data to bigquery directly, without staging by @fgregg in #1363
- Update contacts.py by @jeffjrodriguez in #1417
- allow passing a paramiko pkey directly to SFTP connector by @austinweisgrau in #1423
- add client_credential auth method for salesforce by @fgregg in #1421
- Kasiah/handle zoom reauth by @KasiaHinkson in #1478
- Reyhans/van notes contact history by @rasinha621 in #1444 and #1459
Bug Fixes
- Prefer float over int for bigquery type coercion by @crystaljgong in #1258
- Fix: van.apply_response raises unnecessary error (Issue #1142 ) by @matthewkrausse in #1144
- Zoom Connector Empty Table/Missing Column Bugfix by @KasiaHinkson in #1265
- fix import path by @sharinetmc in #1280
- Handle missing column in Zoom by @KasiaHinkson in #1308
- fix(config): Fix typo in pre-commit config by @dannyboy15 in #1343
- Kasiah/GitHub return value by @KasiaHinkson in #1411
- Pass object as JSON, not params, to create message POST request by @sjwmoveon in #1410
- Update message API needs JSON payload by @sjwmoveon in #1412
- add missing comma to pdi/contacts.py by @bmos in #1422
- Fix census tests by @Charlie-Kramer in #1424
- Handle pending emails in NGPVAN without failing by @anzelpwj in #1474
- Eventually Fail Actblue by @codybraun in #1431
- Fix link in convert docstring by @anzelpwj in #1460
- skip table creation on empty Newmode responses by @sharinetmc in #1471
Internal Changes (Tests, Ops, Refactoring, etc)
- Consolidate and DRY up tests on DB Sync utility by @austinweisgrau in #1242
- Dev tooling updates by @bmos in #1268
- Remove and/or resolve "NO Quality Assurance" tags by @bmos in #1270
- Add import sorting by @bmos in #1267
- Only run python check workflow on pushes to main and major release by @bmos in #1307
- Faster tests by @bmos in #1297
- Add ruff Implicit String Concatenation Rules by @bmos in #1323
- Add bandit to pre-commit by @bmos in #1334
- Fix test_targetsmart_smartmatch on windows + code coverage improvement by @bmos in #1271
- Add Introspection class for API key profiles with tests by @matthewkrausse in #1295
- Enable flake8-2020 linting rules by @bmos in #1324
- Requirements consolidation by @bmos in #1335
- Refactor pagination parameters in QuickBooks API calls by @matthewkrausse in #1357
- Refactor dbt utility for modularity by @austinweisgrau in #1095
- refactor(Hustle): Add type hints by @dannyboy15 in #1347
- Add pre-commit test to ci by @bmos in #1381
- add ruff warning rules by @bmos in #1367
- clean up signature for VAN initialization by @fgregg in #1345
- Rename variable for consistency in documentation by @matthewkrausse in #1401
- Increase Action Builder test coverage by @bmos in #1361
- Add google analytics code by @shaunagm in #1454
- Add Google Analytics integration to Sphinx by @matthewkrausse in #1455
- Add a PR template by @codybraun in #1439
- revised check_env.check function by @bmos in #1448
Full Changelog: v4.0.0...v5.0.0