Releases: Sage-Bionetworks/synapsePythonClient
Releases · Sage-Bionetworks/synapsePythonClient
v4.1.0
Highlights
-
New Interfaces:
- Combines data and behavior into a single class, simplifying the understanding and usage of the system's models.
- New Interface: Introduced a revamped interface in the Synapse Python Client, shifting from a functional programming approach to an object-oriented one.
- Enhanced Developer Experience: This change highlights much needed quality of life updates for developers. Improved autocomplete, hoverdocs, and examples in docstrings provide a significantly better coding experience.
- Asyncio Support: Introduced support for asyncio, enabling more efficient use of system resources and enhancing performance for IO-bound tasks.
- Extensibility: Laying the foundation for an extensible platform, facilitating easier addition of new features, and improvements to the Synapse Python Client.
-
synapseutils.walk Improvement:
- Improved performance for synapseutils.walk.
-
Pandas Range Expansion:
- Expanded pandas range to
>=1.5, <3.0.
- Expanded pandas range to
-
Version Notation Support:
- Using
syn123.versionnotation is now supported with syn.get, synapseutils.syncFromSynapse, and syn.setProvenance. This enhances consistency in version management across various activities.
- Using
What's Changed
- [SYNPY-1349] Detect annotation type by @BryanFauble in #1022
- [SYNPY-1345] Migrate to mkdocstrings by @BryanFauble in #1023
- [SYNPY-1412] Fixing typing issue in copy_functions by @jaymedina in #1048
- [SYNPY-1322] Object Orientated Programming Interfaces by @BryanFauble in #1013
- [SYNPY-1344] Creating a decorator to be used in async class methods by @BryanFauble in #1049
- [SYNPY-1344] Remove return type hinting on decorator by @BryanFauble in #1050
- [SYNPY-1344] Moving to pytest-socket for blocking socket connections in unit tests by @BryanFauble in #1051
- [SYNPY-1344] Set client in conftest since login is not used in unit tests by @BryanFauble in #1052
- [SYNPY-1344] Allows Socket Connections for Windows Systems in Unit Tests by @BWMac in #1054
- [SYNPY-1398] Support
.[version]syntax for input SynIDs by @jaymedina in #1047 - [SYNPY-1344] Adding activity model for OOP by @BryanFauble in #1055
- [SYNPY-1398] Correct broken docstring by @BryanFauble in #1057
- [SYNPY-1344] Remove need to manually propogate otel context by @BryanFauble in #1056
- [SYNPY-1348] Add User profile and Permission models by @BryanFauble in #1058
- [SYNPY-1411] Prevent Repeated
syn.getcalls in_help_walkby @BWMac in #1059 - [SYNPY-1347] Adds OOP Team Model by @BWMac in #1053
- [SYNPY-1416] File model finishing touches for OOP by @BryanFauble in #1060
- [SYNPY-1416] Adding to the file.store docstring by @BryanFauble in #1062
- [SYNPY-1253] Check MD5 before upload to verify change in content by @BryanFauble in #1063
- [SYNPY-1415] Publish sequence diagram for walk function by @BryanFauble in #1064
- [SYNPY-448] allow changing Synapse name in changeFileMetaData by @danlu1 in #1065
- [SYNPY-1415] Folder model finishing touches by @BryanFauble in #1061
- [SYNPY-1326] Expand range for pandas dependency to <3.0 by @BryanFauble in #1066
- [SYNPY-1414] Project model finishing touches by @BryanFauble in #1067
Full Changelog: v4.0.0...v4.1.0-rc
v4.0.0
Highlights
- Only authentication through Personal Access Token
(aka: Authentication bearer token) is supported. Review the Authentication document for information on setting up your usage of a Personal Access Token to authenticate with Synapse. - Date type Annotations on Synapse entities are now timezone aware. Review our reference documentation for Annotations. The
pytzpackage is reccomended if you regularly work with data across time zones.- If you do not set the
tzinfofield on a date or datetime instance we will use the timezone of the machine where the code is executing. - If you are using the Manifest TSV for bulk actions on your projects you'll now see that [synapseutils.sync.syncFromSynapse][] will store dates as
YYYY-MM-DDTHH:MM:SSZ. Review our documentation for an example manifest file. Additionally, if you'd like to upload an annotation in a specific timezone please make sure that it is in ISO 8601 format. If you do not specify a timezone it is assumed to use the timezone of the machine where the code is executing.
- If you do not set the
- Support for annotations with multiple values through the Manifest TSV with the usage of a comma delimited bracket wrapped list. Any manifest files wishing to take advantage of multi-value annotations need to match this format. Examples:
["Annotation, with a comma", another annotation][1,2,3][2023-12-04T07:00:00Z,2000-01-01T07:00:00Z]
- Migration and expansion of the docs site! You'll see that the look, feel, and flow of all of the information on this site has been touched. As we move forward we hope that you'll provide the Data Processing and Engineering team feedback on areas we can improve.
- Expansion of the available Python Tutorials can be found starting here.
What's Changed
- Adding a label to the dockerfile to automatically label it for this repo by @BryanFauble in #1018
- Updates Dockerfile to Correctly Install Dependencies by @BWMac in #1019
- [SYNPY-1358] Correction of timestamp in annotations from manifest file by @BryanFauble in #1020
- [SYNPY-1336] Benchmarking upload with annotations by @BryanFauble in #1021
- [SYNPY-1321] Download benchmark results by @BryanFauble in #1024
- [SYNPY-1360] Migrating to mkdocstrings by @BryanFauble in #1025
- [SYNPY-1366] Add code coverage by @BryanFauble in #1029
- [SYNPY-1362] High level best practices for project structure by @thomasyu888 in #1028
- [SYNPY-1371] Migrate to Google Style by @BWMac in #1033
- [SYNPY-1302] Replace getPermission with get_acl and add new get_permissions by @danlu1 in #1037
- [SYNPY-1334] Revamp getting started docs by @BryanFauble in #1036
- [SYNPY-1332] Pypi deployment strategy by @BryanFauble in #1038
- [SYNPY-1370] Documentation Upgrade by @jaymedina in #1032
- [SYNPY-1370] Minor formatting fixes by @BryanFauble in #1039
- [SYNPY-1371] Doc fixes by @BryanFauble in #1040
- [SYNPY-1225] Support authToken only by @BryanFauble in #1041
- [SYNPY-1392] Remove some deprecated pieces by @BryanFauble in #1043
- [Synpy 1369] Migrate to Google style by @danlu1 in #1042
- [SYNPY-1387] Update Structure Project doc by @danlu1 in #1044
- [SYNPY-1357] Allow multiple values in manifest TSV by @BryanFauble in #1030
New Contributors
- @jaymedina made their first contribution in #1032
Full Changelog: v3.2.0...v4.0.0-rc
v3.2.0
What's Changed
- [SYNPY-1274] pre commit in gh action by @BryanFauble in #1001
- [SYNPY-1316] Make cryptography an optional install by @BryanFauble in #1003
- [SYNPY-1304] Introduction of OpenTelemetry by @BryanFauble in #1007
- [SYNPY-1316] Updating to caching logic to take in MD5 key by @BryanFauble in #1008
- [SYNPY-1305] Collect trace data from integration tests by @BryanFauble in #1009
- [SYNPY-1319] Lower binary file size by @BryanFauble in #1010
- [SYNPY-816] Enable test_teams again by @BryanFauble in #1011
- [SYNPY-1320] Upload benchmark + Documentation by @BryanFauble in #1012
- [SYNPY-1186] When a username is a number, getUserProfile cannot retrieve the user by @BWMac in #1014
- [SYNPY-1337] Adding in a comprehensive example for migration to another S3 bucket by @BryanFauble in #1015
- [SYNPY-1337] Adding note about unique .db file by @BryanFauble in #1016
- [SYNPY-1333] Print transfer progress for FTP by @BryanFauble in #1017
Full Changelog: v3.1.1...v3.2.0
v3.1.1
What's Changed
- [SYNPY-1298] Update annotation logic by @BryanFauble in #995
- [SYNPY-1299] Clean up contributing.md by @BryanFauble in #996
- [SYNPY-1299] Update contributing.md to point to service desk by @BryanFauble in #997
- [SYNPY-1316] Fix for cache item names matching by @BryanFauble in #998
- [SYNPY-1298] flakey integration tests by @BryanFauble in #999
Full Changelog: v3.1.0...v3.1.1-rc
v3.1.0
What's Changed
- [SYNPY-49] Aggregate acl based on groups by @BryanFauble in #979
- [SYNPY-967] deprecated memoize and added @lru_cache by @BryanFauble, @linglp in #983
- SYNPY-1285: Create pipfile by @BryanFauble in #984
- [SYNPY-1282] Adds Type Hinting to
client.pyby @BWMac in #987 - [SYNPY-1293] Update urllib3 version dependency by @BryanFauble in #988
- [SYNPY-1283] Replace Broken Link URL by @BWMac in #989
- [SYNPY-1296] Config client error with api key or PAT by @BryanFauble in #990* * [SYNPY-1283] Adds Missing Trailing Space (Broken Link Fix) by @BWMac in #991
- [SYNPY-1295] Adding to the credentials.rst doc by @BryanFauble in #992
New Contributors
- @BryanFauble made their first contribution in #979
- @BWMac made their first contribution in #987
Full Changelog: v3.0.0...v3.1.0-rc
v3.0.0
What's Changed
- update name of utils function:
is_synapse_idby @vpchung in #949 - SYNPY-1248: add
is_synapse_idfunction to the client by @vpchung in #950 - [SYNPY-1241] Don't remove files from downloadCart if empty list of files by @thomasyu888 in #944
- [SYNPY-1242] Refactor _loggedIn function by @thomasyu888 in #945
- [SYNPY-1246] Add Python 3.11 support by @thomasyu888 in #951
- [SYNPY-737] Remove non-standard single dash long cli parameters by @thomasyu888 in #883
- [SYNPY-1255] Update pandas to support 2.0 and deprecate support for python 3.7 by @thomasyu888 in #954
- [SYNPY-1266] Add support for GCP bucket by @thomasyu888 in #959
- [SYNPY-1229, SYNPY-1230, SYNPY-1231] Lint synapseclient and synapseutils by @thomasyu888 in #961
- Add pre-commit by @thomasyu888 in #963
- [SYNPY-1227] Lint all code with black by @thomasyu888 in #965
- [SYNPY-570] Make sure warning doesn't appear ifcollision is overwrite.local by @thomasyu888 in #967
- [SYNPY-622] Improve evaluation.py syntax by @thomasyu888 in #968
- [SYNPY-1269] Edit synapse config file to use auth token and edit tests by @thomasyu888 in #970
- [Bug fix]: Fixed test related to pandas issue on window 2019 by @linglp in #971
- [SYNPY-1270] Deprecated parameter
date_parserto support pandas2.0.0 and above by @linglp in #973 - [SYNPY-1199] Implement low-level functions for JSON Schema API by @BrunoGrandePhD in #894
pkg_resourcesis a deprecated API - replace with importlib.resources by @thomasyu888 in #975- [SYNPY-645] improve file entity name docs by @thomasyu888 in #969
- [SYNPY-716] Remove asInteger() feature by @thomasyu888 in #962
- Clean up setup.py by using setup.cfg by @thomasyu888 in #974
- [SYNPY-1213, SYNPY-1245] Improve doc site by @thomasyu888 in #946
New Contributors
Full Changelog: v2.7.2...v3.0.0
v3.0.0-rc
What's Changed
- update name of utils function:
is_synapse_idby @vpchung in #949 - SYNPY-1248: add
is_synapse_idfunction to the client by @vpchung in #950 - [SYNPY-1241] Don't remove files from downloadCart if empty list of files by @thomasyu888 in #944
- [SYNPY-1242] Refactor _loggedIn function by @thomasyu888 in #945
- [SYNPY-1246] Add Python 3.11 support by @thomasyu888 in #951
- [SYNPY-737] Remove non-standard single dash long cli parameters by @thomasyu888 in #883
- [SYNPY-1255] Update pandas to support 2.0 and deprecate support for python 3.7 by @thomasyu888 in #954
- [SYNPY-1266] Add support for GCP bucket by @thomasyu888 in #959
- [SYNPY-1229, SYNPY-1230, SYNPY-1231] Lint synapseclient and synapseutils by @thomasyu888 in #961
- Add pre-commit by @thomasyu888 in #963
- [SYNPY-1227] Lint all code with black by @thomasyu888 in #965
- [SYNPY-570] Make sure warning doesn't appear ifcollision is overwrite.local by @thomasyu888 in #967
- [SYNPY-622] Improve evaluation.py syntax by @thomasyu888 in #968
- [SYNPY-1269] Edit synapse config file to use auth token and edit tests by @thomasyu888 in #970
- [Bug fix]: Fixed test related to pandas issue on window 2019 by @linglp in #971
- [SYNPY-1270] Deprecated parameter
date_parserto support pandas2.0.0 and above by @linglp in #973 - [SYNPY-1199] Implement low-level functions for JSON Schema API by @BrunoGrandePhD in #894
pkg_resourcesis a deprecated API - replace with importlib.resources by @thomasyu888 in #975- [SYNPY-645] improve file entity name docs by @thomasyu888 in #969
- [SYNPY-716] Remove asInteger() feature by @thomasyu888 in #962
- Clean up setup.py by using setup.cfg by @thomasyu888 in #974
- [SYNPY-1213, SYNPY-1245] Improve doc site by @thomasyu888 in #946
New Contributors
Full Changelog: v2.7.2...v3.0.0-rc
v2.7.2
What's Changed
- [SYNPY-1267] Lock down urllib3 by @thomasyu888 in #958
- [SYNPY-1268] Add deprecation warning for non-supported login arguments by @thomasyu888 in #960
Full Changelog: v2.7.1...v2.7.2
v2.7.1
What's Changed
- Mint patch release: Lock down pandas version since pandas >1.5 doesn't work by @thomasyu888 in #955
- [SYNPY-1257] Hotfix - upgrade github actions by @thomasyu888 in #956
Full Changelog: v2.7.0...v2.7.1
v2.7.0
Bug Fixes
- [SYNPY-226] - isConsistent fails as parameter for table query
- [SYNPY-562] - Make sure SQL functions, including "year", are quoted correctly
- [SYNPY-1031] - File version increments with 400 client error
- [SYNPY-1219] - Update Entity class to be compatible with the new Dataset entity
- [SYNPY-1224] - Correct SynapseUnmetAccessRestrictions message
- [SYNPY-1237] - as_table_columns function is mishandling mixed data types
Stories
- [SYNPY-63] - py: use metaclass to replace the _entity_type_to_class hack
- [SYNPY-992] - synapseutils changeFileMetadata missing syn parameter docstring
- [SYNPY-1175] - Programmatic Support for Download V2 via Py Client
- [SYNPY-1193] - Support Datasets functionality
- [SYNPY-1221] - Set up gh-action: black, the python auto formatter on the python client
Sub-Tasks
- [SYNPY-1207] - Support syn.get() on a dataset
Tasks
- [SYNPY-566] - Clarify expected list format for sync manifest
- [SYNPY-1053] - Increase documentation of forceVersion in syncToSynapse
- [SYNPY-1145] - Link to manifest format in CLI sync command usage help
- [SYNPY-1226] - Leverage
ViewBasefor Datasets instead ofSchemaBase - [SYNPY-1235] - Create codeql scanning workflow
Contributors
New Contributors
Full Changelog: v2.6.0...v2.7.0