Skip to content

feat: Add declarative filter/sort system with column and result wrappers#386

Merged
vamaq merged 8 commits intomainfrom
feat/sc-41641_implement_filter_sort_columns_and_results
Oct 29, 2025
Merged

feat: Add declarative filter/sort system with column and result wrappers#386
vamaq merged 8 commits intomainfrom
feat/sc-41641_implement_filter_sort_columns_and_results

Conversation

@vamaq
Copy link
Contributor

@vamaq vamaq commented Oct 29, 2025

User description

Shortcut:

Colab example:

Description:

This PR introduce:

  • A declarative filter builders (TextFilter, NumberFilter, DateFilter)
  • A QueryResult wrapper for easy data access and pagination
  • Declarative sort builders
  • Comprehensive query methods on LogStream for spans/traces/sessions

Out of scope (for this PR):

  • Coherent error management and logging
  • Automatic Configuration initialization [Bug]

Tests:



Generated description

Below is a concise technical summary of the changes proposed in this PR:

graph LR
LogStream_query_("LogStream.query"):::modified
QueryResult_("QueryResult"):::added
LogStream_get_spans_("LogStream.get_spans"):::modified
LogStream_get_traces_("LogStream.get_traces"):::modified
LogStream_get_sessions_("LogStream.get_sessions"):::modified
LogStream_span_columns_("LogStream.span_columns"):::added
ColumnCollection_("ColumnCollection"):::added
LogStream_session_columns_("LogStream.session_columns"):::added
LogStream_trace_columns_("LogStream.trace_columns"):::added
Column_("Column"):::added
text_("text"):::added
LogStream_query_ -- "Wraps raw response in QueryResult for pagination support." --> QueryResult_
LogStream_get_spans_ -- "Returns QueryResult with filters and sorting for spans." --> LogStream_query_
LogStream_get_traces_ -- "Returns QueryResult with filters and sorting for traces." --> LogStream_query_
LogStream_get_sessions_ -- "Returns QueryResult with filters and sorting for sessions." --> LogStream_query_
LogStream_span_columns_ -- "Provides ColumnCollection for span columns access." --> ColumnCollection_
LogStream_session_columns_ -- "Provides ColumnCollection for session columns access." --> ColumnCollection_
LogStream_trace_columns_ -- "Provides ColumnCollection for trace columns access." --> ColumnCollection_
Column_ -- "Uses text filter builder for column text filters." --> text_
classDef added stroke:#15AA7A
classDef removed stroke:#CD5270
classDef modified stroke:#EDAC4C
linkStyle default stroke:#CBD5E1,font-size:13px
Loading

Introduce a declarative system for filtering and sorting log stream data using Column and ColumnCollection wrappers, which provide type-safe methods for constructing query clauses. Enhance LogStream query methods to return a QueryResult object, offering a list-like interface for results, automatic data flattening, and built-in pagination.

TopicDetails
QueryResult & Pagination Implement a QueryResult wrapper for LogStream query methods, providing a list-like interface for results, automatic flattening of nested data, and built-in pagination capabilities through next_page() and has_next_page.
Modified files (4)
  • src/galileo/__future__/log_stream.py
  • src/galileo/__future__/shared/query_result.py
  • tests/future/test_log_stream.py
  • tests/future/test_query_result.py
Latest Contributors(1)
UserCommitDate
vamaq@users.noreply.gi...feat-Improve-LogStream...October 28, 2025
Declarative Filters & Sort Implement a declarative and type-safe system for building filters and sort clauses for log stream queries. This includes Column and ColumnCollection wrappers that provide methods like contains(), greater_than(), ascending(), and descending() based on column metadata, and underlying TextFilter, NumberFilter, DateFilter, BooleanFilter, and Sort builders. The LogStream class integrates these by exposing span_columns, session_columns, and trace_columns properties.
Modified files (20)
  • src/galileo/__future__/shared/__init__.py
  • src/galileo/__future__/prompt.py
  • src/galileo/__future__/dataset.py
  • src/galileo/__future__/shared/column.py
  • src/galileo/__future__/shared/sort.py
  • src/galileo/__future__/shared/filter.py
  • src/galileo/__future__/project.py
  • src/galileo/__future__/__init__.py
  • src/galileo/__future__/configuration.py
  • src/galileo/__future__/log_stream.py
  • src/galileo/utils/validations.py
  • src/galileo/__future__/shared/exceptions.py
  • src/galileo/__future__/shared/base.py
  • tests/future/test_column.py
  • tests/future/test_dataset.py
  • tests/future/test_filter.py
  • tests/future/test_log_stream.py
  • tests/future/test_project.py
  • tests/future/test_prompt.py
  • tests/future/test_sort.py
Latest Contributors(2)
UserCommitDate
vamaq@users.noreply.gi...feat-Improve-LogStream...October 28, 2025
jimbobbennett@mac.comfix-Fixing-docstrings-369October 15, 2025
This pull request is reviewed by Baz. Review like a pro on (Baz).

@vamaq vamaq requested a review from a team as a code owner October 29, 2025 02:16
@vamaq vamaq changed the title Implement filter sort columns and results feat: Implement filter sort columns and results Oct 29, 2025
@codecov
Copy link

codecov bot commented Oct 29, 2025

Codecov Report

❌ Patch coverage is 97.21448% with 10 lines in your changes missing coverage. Please review.
✅ Project coverage is 86.33%. Comparing base (16f222b) to head (ee52af9).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
src/galileo/__future__/shared/query_result.py 91.76% 7 Missing ⚠️
src/galileo/__future__/log_stream.py 93.18% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #386      +/-   ##
==========================================
+ Coverage   85.63%   86.33%   +0.69%     
==========================================
  Files          68       73       +5     
  Lines        5269     5612     +343     
==========================================
+ Hits         4512     4845     +333     
- Misses        757      767      +10     

☔ 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.

@vamaq vamaq changed the title feat: Implement filter sort columns and results feat: Add declarative filter/sort system with column and result wrappers Oct 29, 2025
@vamaq vamaq enabled auto-merge (squash) October 29, 2025 16:47
@vamaq vamaq merged commit 6e1b5c4 into main Oct 29, 2025
35 of 36 checks passed
@vamaq vamaq deleted the feat/sc-41641_implement_filter_sort_columns_and_results branch October 29, 2025 16:49
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.

2 participants