Skip to content

Fix pandas 3.x / Python 3.12 compatibility in dataObjects#85

Merged
gadieid merged 1 commit into
masterfrom
issue857
May 24, 2026
Merged

Fix pandas 3.x / Python 3.12 compatibility in dataObjects#85
gadieid merged 1 commit into
masterfrom
issue857

Conversation

@gadieid
Copy link
Copy Markdown
Collaborator

@gadieid gadieid commented May 24, 2026

Three breaking changes fixed:

  1. Trial.init: replace broken pandas 3.x index merge with explicit join. merge(left_index=True, right_index=True) with mismatched index types no longer does positional matching in pandas 3.x — replaced with .join() after aligning both sides on the property key/name column. Also adds graceful fallback when label/description fields are absent.

  2. _parseProperty_datetime_local: fix tz_localize on tz-aware Timestamps. pandas 3.x parses ISO strings ending with 'Z' as UTC tz-aware objects. Calling tz_localize() on an already-aware Timestamp raises TypeError. Fixed: check tzinfo first; use tz_convert() if already aware. Also replaces legacy "israel" timezone alias (not recognised by Python 3.12 zoneinfo) with the canonical "Asia/Jerusalem".

  3. Trial.properties: remove incorrect re-parse of raw metadata. The property was re-reading self._metadata['properties'] using key/value field names that belong to entity attributes, not trial properties. init already stores the correctly parsed result in self._properties; the property now simply returns that.

Three breaking changes fixed:

1. Trial.__init__: replace broken pandas 3.x index merge with explicit join.
   merge(left_index=True, right_index=True) with mismatched index types no
   longer does positional matching in pandas 3.x — replaced with .join()
   after aligning both sides on the property key/name column.
   Also adds graceful fallback when label/description fields are absent.

2. _parseProperty_datetime_local: fix tz_localize on tz-aware Timestamps.
   pandas 3.x parses ISO strings ending with 'Z' as UTC tz-aware objects.
   Calling tz_localize() on an already-aware Timestamp raises TypeError.
   Fixed: check tzinfo first; use tz_convert() if already aware.
   Also replaces legacy "israel" timezone alias (not recognised by Python
   3.12 zoneinfo) with the canonical "Asia/Jerusalem".

3. Trial.properties: remove incorrect re-parse of raw metadata.
   The property was re-reading self._metadata['properties'] using key/value
   field names that belong to entity attributes, not trial properties.
   __init__ already stores the correctly parsed result in self._properties;
   the property now simply returns that.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@gadieid gadieid merged commit b3a9608 into master May 24, 2026
4 checks passed
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.

1 participant