Skip to content

Conversation

@esantorella
Copy link
Contributor

Summary: These became trivial when Data merged with MapData

Differential Revision:
D89829345

Privacy Context Container: L1307644

@meta-cla meta-cla bot added the CLA Signed Do not delete this pull request or issue due to inactivity. label Dec 29, 2025
@meta-codesync
Copy link

meta-codesync bot commented Dec 29, 2025

@esantorella has exported this pull request. If you are a Meta employee, you can view the originating Diff in D89829345.

esantorella added a commit to esantorella/Ax that referenced this pull request Dec 29, 2025
Summary:
Pull Request resolved: facebook#4721

These became trivial when Data merged with MapData

Differential Revision:
D89829345

Privacy Context Container: L1307644
Summary:
Pull Request resolved: facebook#4715

This diff merges MapData into Data by giving Data an attribute `has_step_column`. MapData becomes an empty subclass which will be removed in a subsequent PR (D89814417).

Note on how this diff is split up: In this diff, functions that previously required MapData now can consume Data, and type checks stop referencing MapData. However, functions can still return MapData; all references are removed in the next diff.

Changes:
* Functionality from map_data.py is moved into data.py, and functionality from MapData moves into Data; MapData is an empty subclass.
* Data (and MapData) get an attribute `has_step_column`; the important distinction becomes `has_step_column`, not type. * It is now possible for both `Data` and `MapData` to either have a step column or not. Having both `Data` and `MapData` like this is an unpleasant intermediate state that we should move off of immediately (landing this and D89814417 together)
* Many `isinstance` checks become `has_step_coumn` checks
* Data's new methods `subsample` and `latest` get special cases for when there is no "step" column
* Make Data's required columns always be the same and not contain "step" (since it isn't really required). Remove `required_columns` method.

Differential Revision:
D89820078

Privacy Context Container: L1307644

Reviewed By: saitcakmak, lena-kashtelyan
esantorella added a commit to esantorella/Ax that referenced this pull request Jan 2, 2026
Summary:
Pull Request resolved: facebook#4721

These became trivial when Data merged with MapData

Reviewed By: saitcakmak

Differential Revision:
D89829345

Privacy Context Container: L1307644
@codecov-commenter
Copy link

codecov-commenter commented Jan 2, 2026

Codecov Report

❌ Patch coverage is 96.91781% with 9 lines in your changes missing coverage. Please review.
✅ Project coverage is 96.72%. Comparing base (2a45185) to head (f5b831e).

Files with missing lines Patch % Lines
ax/core/data.py 96.05% 3 Missing ⚠️
ax/service/utils/best_point_mixin.py 50.00% 2 Missing ⚠️
ax/early_stopping/experiment_replay.py 50.00% 1 Missing ⚠️
ax/early_stopping/strategies/base.py 80.00% 1 Missing ⚠️
ax/metrics/map_replay.py 88.88% 1 Missing ⚠️
ax/metrics/noisy_function_map.py 75.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main    #4721   +/-   ##
=======================================
  Coverage   96.72%   96.72%           
=======================================
  Files         582      582           
  Lines       60744    60720   -24     
=======================================
- Hits        58753    58733   -20     
+ Misses       1991     1987    -4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

esantorella added a commit to esantorella/Ax that referenced this pull request Jan 2, 2026
Summary:
Pull Request resolved: facebook#4721

These became trivial when Data merged with MapData

Reviewed By: saitcakmak

Differential Revision:
D89829345

Privacy Context Container: L1307644
esantorella and others added 2 commits January 2, 2026 09:39
Summary:
Pull Request resolved: facebook#4720

Changes:
* Replace `MapData` with an empty class that just errors and says to use Data instead
* Replace MapData with Data everywhere
* `isinstance(data, MapData)` becomes `data.has_step_column` everywhere
* Documentation and messages to the user are updated accordingly
* Updated all documentation, including code comments
* Decoded MapData JSON to Data

Follow-up diffs:
* Remove the remaining functions in map_data.py, and MAP_KEY
* Move MapData tests to Data

Question:
* Should we leave MapData in place, but have it error and tell people to use Data when initialized? Or is MapData sufficiently rarely used that a message to Ax developers is enough? My take: it's easy enough to do both

Differential Revision:
D89814417

Privacy Context Container: L1307644

Reviewed By: mgarrard, saitcakmak
Summary:
Pull Request resolved: facebook#4721

These became trivial when Data merged with MapData

Reviewed By: saitcakmak

Differential Revision:
D89829345

Privacy Context Container: L1307644
@meta-codesync
Copy link

meta-codesync bot commented Jan 2, 2026

This pull request has been merged in 854455e.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed Do not delete this pull request or issue due to inactivity. fb-exported Merged meta-exported

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants