Skip to content

v4.15.0 - #1476

Merged
andrewelamb merged 16 commits into
masterfrom
v4.15.0-rc-dev
Nov 4, 2026
Merged

v4.15.0#1476
andrewelamb merged 16 commits into
masterfrom
v4.15.0-rc-dev

Conversation

@andrewelamb

Copy link
Copy Markdown
Contributor

Release v4.15.0. Release candidate: https://github.com/Sage-Bionetworks/synapsePythonClient/releases/tag/v4.15.0-rc

Release notes are in docs/news.md.

🤖 Generated with Claude Code

linglp and others added 14 commits September 28, 2026 17:39
* update version v4.14.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* update release notes v4.14.0

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* [SYNPY- 1922] Fix Wki.copy issue (#1459)

* renamed method and redid docstring to be more descriptive

* fix issue when copying wikis with empty markdowns

* added bug fix to nws.md

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* JSONSchema now saves version info when storing

* update operatiosn JSONSchema test
…indings (#1468)

pip's vendored urllib3, msgpack, and setuptools trigger HIGH CVEs even on
the latest pip release. pip is not needed at runtime, so uninstall it after
installing synapseclient. Drop the Debian python3-* packages, which target
the system Python rather than the image's Python, and run apt-get upgrade
to pick up the patched libpcre2.
#1474)

* [SYNPY-1941] Preserve data_file_handle_id when file handle is withheld

Synapse omits the file handle from the entity bundle when the caller lacks
DOWNLOAD permission (e.g. unmet access requirements). _handle_file_entity
still called _fill_from_file_handle() with an empty FileHandle, which
overwrote the entity's dataFileHandleId with None. This caused
File.get() followed by store() (e.g. moving a file) to fail with
"Cannot store file".

Only copy file handle fields onto the entity when a file handle was
returned.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* [SYNPY-1941] Move file handle guard into _fill_from_file_handle

`if self.file_handle:` is always true for a FileHandle dataclass instance,
so an empty placeholder FileHandle (left when Synapse withholds the file
handle due to missing DOWNLOAD permission) overwrote data_file_handle_id,
content_type, content_size, and external_url with None.

Guard on `file_handle.id` in File and RecordSet `_fill_from_file_handle`
so every caller is protected, and revert the now-redundant guard in
entity_factory._handle_file_entity. Add RecordSet regression test.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* [SYNPY-1941] Revert to guarding in _handle_file_entity

Restore the guard in entity_factory._handle_file_entity and revert the
_fill_from_file_handle changes in File and RecordSet. _handle_file_entity
is the only caller that can pass an empty placeholder FileHandle and it
handles both File and RecordSet, so a single guard there is the smaller
fix. Keep both File and RecordSet regression tests.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
* updated pandas to use 3.x

* fix tests that do not work in pandas 3.x

* fix issue with duplicated df indeces

* fix nan to none helper

* construct_rownames now takes a RowSet

* added comments to tests

* cast columns to objects

* pinned numpy versiosn for specific pandas versions

* added unit tests

* added helper function

* add type hints and unit tests
* updated pandas to use 3.x

* fix tests that do not work in pandas 3.x

* added support for python3.15

* made arg positional

* made arg positional

* ran black

* fix issue with duplicated df indeces

* fix nan to none helper

* construct_rownames now takes a RowSet

* fix issue with duplicated df indeces

* fix nan to none helper

* construct_rownames now takes a RowSet

* added comments to tests

* updated dockerfile

* updated pandas to use 3.x

* fix tests that do not work in pandas 3.x

* fix issue with duplicated df indeces

* fix nan to none helper

* construct_rownames now takes a RowSet

* added comments to tests

* cast columns to objects

* pinned numpy versiosn for specific pandas versions

* added unit tests

* added helper function

* add type hints and unit tests
* update dependencies

* fixed issue with unchecked strings
@andrewelamb
andrewelamb requested a review from a team as a code owner November 3, 2026 21:19

@linglp linglp left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM! Could you look into the test failure and create tickets if they need to be fixed? I was able to install the release candidate with Python 3.15 and retrieved a recordset.

@thomasyu888 thomasyu888 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔥 LGTM!

@andrewelamb
andrewelamb merged commit 4560f4a into master Nov 4, 2026
18 of 24 checks passed
@andrewelamb
andrewelamb deleted the v4.15.0-rc-dev branch November 4, 2026 16:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants