Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Pretty printing catalog #3990

Open
wants to merge 37 commits into
base: main
Choose a base branch
from

Conversation

ElenaKhaustova
Copy link
Contributor

@ElenaKhaustova ElenaKhaustova commented Jul 4, 2024

Description

Solves #3981

This PR is done on top of #3987

Development notes

Developer Certificate of Origin

We need all contributions to comply with the Developer Certificate of Origin (DCO). All commits must be signed off by including a Signed-off-by line in the commit message. See our wiki for guidance.

If your PR is blocked due to unsigned commits, then you must follow the instructions under "Rebase the branch" on the GitHub Checks page for your PR. This will retroactively add the sign-off to all unsigned commits and allow the DCO check to pass.

Checklist

  • Read the contributing guidelines
  • Signed off each commit with a Developer Certificate of Origin (DCO)
  • Opened this PR as a 'Draft Pull Request' if it is work-in-progress
  • Updated the documentation to reflect the code changes
  • Added a description of this change in the RELEASE.md file
  • Added tests to cover my changes
  • Checked if this change will affect Kedro-Viz, and if so, communicated that with the Viz team

@ElenaKhaustova ElenaKhaustova changed the base branch from main to feature/3980-pretty-printing-dataset July 4, 2024 18:14
@ElenaKhaustova ElenaKhaustova changed the base branch from feature/3980-pretty-printing-dataset to main July 4, 2024 18:15
@ElenaKhaustova ElenaKhaustova marked this pull request as ready for review July 8, 2024 19:39
@astrojuanlu
Copy link
Member

Petty thing 🙏🏼 But could you attach screenshots of how this looks on VS Code notebooks, Jupyter Notebook 7.0+, and IPython?

Comment on lines 95 to +98
def _describe(self) -> dict[str, Any]:
return {
"dataset": self._dataset._describe(),
"cache": self._cache._describe(),
"dataset": self._dataset._pretty_repr(self._dataset._describe()),
"cache": self._cache._pretty_repr(self._cache._describe()),
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does that mean we need to update all the datasets?

I expected the other way round and we don't have to couple the dataset implementation with the pretty print.

image

Can we add that pretty print method to the base class instead?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We do not have to update all datasets, that's the only update needed. For the rest, we use the existing implementations of _describe()

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_pretty_repr is already a method of AbstractDataset. Could you please clarify what you mean by "to the base class instead"?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alright, I was under the impression the update need to be propagated to all dataset.

Is the name pretty_repr decided on purpose?
It seems that repr_pretty is something IPython support natively.
https://ipython.readthedocs.io/en/stable/api/generated/IPython.lib.pretty.html

@ElenaKhaustova
Copy link
Contributor Author

Petty thing 🙏🏼 But could you attach screenshots of how this looks on VS Code notebooks, Jupyter Notebook 7.0+, and IPython?

Sure, as soon as #3987 is done

@ElenaKhaustova
Copy link
Contributor Author

Petty thing 🙏🏼 But could you attach screenshots of how this looks on VS Code notebooks, Jupyter Notebook 7.0+, and IPython?

Sure, as soon as #3987 is done

catalog and catalog.datasets give the same representation:

  • IPython
    Screenshot 2024-07-09 at 19 51 23

  • Jupyter Notebook 7.0+
    Screenshot 2024-07-09 at 19 55 24

  • VS Code notebooks
    Screenshot 2024-07-09 at 19 56 38

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.

None yet

3 participants