docs: add PyJanitor interoperability example - #179
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
📝 WalkthroughWalkthroughAdds a runnable PyJanitor interoperability example. The example demonstrates both FreshData/PyJanitor orderings, prints cleaned frames and reports, and documents the optional dependency and execution commands. ChangesPyJanitor interoperability
Estimated code review effort: 2 (Simple) | ~15 minutes Mergeability Score: ⚪ Minimal · up to This PR adds a localized PyJanitor interoperability example and documentation links; no actionable merge-blocking risk remains beyond normal checks and review. Sequence Diagram(s)sequenceDiagram
participant SampleData
participant PyJanitor
participant FreshData
participant AuditReport
SampleData->>PyJanitor: build and reshape columns
PyJanitor->>FreshData: pass normalized frame
FreshData->>AuditReport: return cleaned frame and report
SampleData->>FreshData: pass original-label frame
FreshData->>PyJanitor: pass cleaned frame
PyJanitor->>AuditReport: preserve report with enriched frame
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
Strix is installed on this repository, but we couldn't run this PR security review because this workspace's trial has ended. Add a card to resume code reviews here. So far, Strix has reviewed 36 pull requests, surfaced 3 security issues (1 critical/high) and blocked 1 risky merge across this workspace. |
|
@coderabbitai review |
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 371ec1d771
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@examples/10_pyjanitor_interop.py`:
- Around line 43-48: Update the id_columns argument in freshdata_then_pyjanitor
to use the normalized identifier name customer_id instead of the
whitespace-padded label, so the explicit identifier configuration matches
FreshData’s normalized columns.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: bf1c9b61-1f58-4f1f-91dc-c0ea2963ccce
📒 Files selected for processing (4)
CHANGELOG.mddocs/examples.mdexamples/10_pyjanitor_interop.pyexamples/README.md
JohnnyWilson16
left a comment
There was a problem hiding this comment.
Clean and concise example demonstrating the interoperability orderings between PyJanitor and FreshData.
Thanks again for the continuous contributions @WilliamK112! 👍
Description
Adds a runnable PyJanitor interoperability example using one small inline DataFrame.
pyjanitor<0.32compatibility line for FreshData 2.0's pandas range.Unreleased.Closes #9
Type of Change
Checklist
mypy) and linter checks (ruff) pass locallyValidation
python examples/10_pyjanitor_interop.py(pandas 2.2.3, PyJanitor 0.31.0)ruff check .mkdocs build --strictmypy examples/10_pyjanitor_interop.pypytest -m "not online and not large": 4,050 passed, 6 skipped, 12 deselected; 93.17% coverage. One timing-sensitive benchmark missed its throughput baseline while the machine was loaded, then passed its immediate isolated rerun in 0.11s.The full existing
mypy src/freshdatarun reports two errors in unchangedsrc/freshdata/enterprise/interface.py; the new example type-checks cleanly.AI assistance
I used Codex to help implement and validate this change. I reviewed the resulting diff and take responsibility for it.
Summary by CodeRabbit
New Features
Documentation