Conversation
Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/a67f213a-bfa1-4b15-a7b3-b7a9f828f8de Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/a67f213a-bfa1-4b15-a7b3-b7a9f828f8de Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/a67f213a-bfa1-4b15-a7b3-b7a9f828f8de Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/a67f213a-bfa1-4b15-a7b3-b7a9f828f8de Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/a67f213a-bfa1-4b15-a7b3-b7a9f828f8de Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/a67f213a-bfa1-4b15-a7b3-b7a9f828f8de Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com>
Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/a67f213a-bfa1-4b15-a7b3-b7a9f828f8de Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com>
|
@copilot I found the core issue: this job is running a very broad test matrix, but the dominant failures are from missing optional dependencies (pyarrow) and likely test/env mismatch rather than one localized regression. Most actionable fix (likely unblocks dozens of failures)Your logs show repeated hard failures like:
These should not fail in a default test environment unless:
✅ Solution1) Update workflow install step to include test extras + arrowIn - name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[test,arrow]"If your extras differ, equivalent explicit fallback: pip install -e . pytest pyarrow2) Guard Arrow/Parquet tests if optional dependency is truly optionalAt top of Arrow/Parquet test modules (e.g. import pytest
pyarrow = pytest.importorskip("pyarrow", reason="pyarrow optional dependency not installed")This ensures default CI won’t fail if pyarrow is intentionally not installed. Secondary failures (after env fix)You still have many genuine code/test contract mismatches. Prioritize these clusters:
Minimal PR patch recommendation
This sequence should convert the current “130 failed / 20 errors” into a much smaller, tractable set quickly. |
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
|
@copilot Likely root cause: this is not a single regression, but a mixed environment + API-shape mismatch run. 1) Missing optional deps in CI (pyarrow) causing Arrow/Parquet test failuresFrom logs (ref
SolutionInstall arrow extras (or pyarrow directly) in the test workflow job that runs these tests. # .github/workflows/tests.yml
- name: Install package + test deps
run: |
python -m pip install -U pip
pip install -e ".[test,arrow]"
# or: pip install -e ".[test]" pyarrowIf you intentionally test without optional deps, mark those tests to skip when 2) DSL/AST contract drift: tests expect Query/selection APIs that current code no longer providesFailures indicate incompatible return/object shapes:
SolutionReintroduce compatibility shims for the old test contract (fastest path), or update tests wholesale (larger change). Suggested compatibility patch pattern# py3plex/dsl/query.py (or where Query lives)
class Query:
...
def summary(self):
# stable textual/structural summary used by verification tests
return {
"target": getattr(self.select.target, "value", self.select.target),
"layers": ...,
"compute": ...,
"where": ...,
"order_by": ...,
"limit": ...
}# layer builder API: accept raw list and normalize
def layer(self, layer_spec):
if isinstance(layer_spec, list):
# convert list[str] to LayerSet/LayerExpr object
layer_spec = LayerSet(layer_spec)
...# selection target normalization
def _normalize_target(target):
# allow enum or string; store enum internally, expose string where tests expect
if isinstance(target, str):
return Target(target)
return target# result adapter for verification tests
class QueryResultAdapter:
def __init__(self, raw):
self.raw = raw
def count(self):
return len(self.raw) if isinstance(self.raw, (list, dict)) else self.raw.count()
def to_pandas(self):
import pandas as pd
if isinstance(self.raw, dict):
return pd.DataFrame(list(self.raw.values()) if self.raw else [])
return self.raw.to_pandas() if hasattr(self.raw, "to_pandas") else pd.DataFrame(self.raw)Then make query execution return adapter (or provide legacy mode used by tests). 3) UQ reducer keying bug (class-name collisions / overwritten outputs)Failures:
SolutionKey outputs/provenance by reducer identity/name, not shared class bucket. # py3plex/.../uq_runner.py
def _reducer_key(reducer, idx):
return (
getattr(reducer, "name", None)
or getattr(reducer, "__class__", type(reducer)).__name__ + f"#{idx}"
)
outputs = {}
for i, reducer in enumerate(reducers):
key = _reducer_key(reducer, i)
outputs[key] = reducer.finalize()Also ensure provenance stores these same keys. High-impact follow-ups (after the 3 above)
Minimal PR strategy
If you want, I can draft concrete edits for the exact files once you share |
…eying (#1349) * Initial plan * Fix CI failures: pyarrow guards, reducer keying, NoNoise identity tests, get_layers helper Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/c6cfd34e-410c-41d4-8ed4-6457769782a6 Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com> * Tighten from_layers() list validation: reject non-string elements with clear ValueError Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/c6cfd34e-410c-41d4-8ed4-6457769782a6 Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com>
|
@copilot I pulled the logs for job 71532449817 ( Most actionable fix path (to get CI green fastest)Focus first on the failures that indicate clear contract mismatches introduced by recent refactors:
Why this is likely one root cause cluster (not 101 unrelated bugs)The failures cluster around interface drift:
That pattern is consistent with a large internal refactor where compatibility shims were removed. Concrete next steps in PR #1347
If you want, I can next help you produce a targeted patch checklist by file once you share the touched files in this PR (or I can inspect them directly). |
Agent-Logs-Url: https://github.com/SkBlaz/py3plex/sessions/ab8ed629-10ed-403d-aaea-5ce9d18f94e8 Co-authored-by: SkBlaz <10035780+SkBlaz@users.noreply.github.com>
Applied. I updated CI/dependency handling and optional Arrow/Parquet guarding in commit
Implemented. The pyarrow/env issue and optional-test guarding were addressed in
I applied the fast-path stabilization changes in |
tests.yml, job71532449817)