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

[DOC] Add 'Raises' section to docstring (#1766) #2484

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

Conversation

Nikitas100
Copy link

@Nikitas100 Nikitas100 commented Jan 7, 2025

Reference Issues/PRs

See #1766.

What does this implement/fix? Explain your changes.

This PR adds a "Raises" section to the docstring of the ContractableBOSS class to document the ValueError exception. It also fixes line endings. Testing: I’ve updated relevant tests to ensure that the ValueError exception is correctly handled.

Does your contribution introduce a new dependency? If yes, which one?

No

Any other comments?

This PR improves code documentation and ensures consistent line endings for cross-platform compatibility.

PR checklist

For all contributions
  • I've added myself to the list of contributors. Alternatively, you can use the @all-contributors bot to do this for you after the PR has been merged.
  • The PR title starts with either [ENH], [MNT], [DOC], [BUG], [REF], [DEP] or [GOV] indicating whether the PR topic is related to enhancement, maintenance, documentation, bugs, refactoring, deprecation or governance.
For new estimators and functions
  • I've added the estimator/function to the online API documentation.
  • (OPTIONAL) I've added myself as a __maintainer__ at the top of relevant files and want to be contacted regarding its maintenance. Unmaintained files may be removed. This is for the full file, and you should not add yourself if you are just making minor changes or do not want to help maintain its contents.
For developers with write access
  • (OPTIONAL) I've updated aeon's CODEOWNERS to receive notifications about future changes to these files.

@aeon-actions-bot
Copy link
Contributor

Thank you for contributing to aeon

I did not find any labels to add based on the title. Please add the [ENH], [MNT], [BUG], [DOC], [REF], [DEP] and/or [GOV] tags to your pull requests titles. For now you can add the labels manually.
I have added the following labels to this PR based on the changes made: [ $\color{#BCAE15}{\textsf{classification}}$ ]. Feel free to change these if they do not properly represent the PR.

The Checks tab will show the status of our automated tests. You can click on individual test runs in the tab or "Details" in the panel below to see more information if there is a failure.

If our pre-commit code quality check fails, any trivial fixes will automatically be pushed to your PR unless it is a draft.

Don't hesitate to ask questions on the aeon Slack channel if you have any.

PR CI actions

These checkboxes will add labels to enable/disable CI functionality for this PR. This may not take effect immediately, and a new commit may be required to run the new configuration.

  • Run pre-commit checks for all files
  • Run mypy typecheck tests
  • Run all pytest tests and configurations
  • Run all notebook example tests
  • Run numba-disabled codecov tests
  • Stop automatic pre-commit fixes (always disabled for drafts)
  • Disable numba cache loading
  • Push an empty commit to re-run CI checks

Raises
------
ValueError
Raised when `min_window` is greater than `max_window + 1`.
Copy link
Contributor

Choose a reason for hiding this comment

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

as a general rule use double ticks, e.g. min_window otherwise it does not get rendered properly

Copy link
Author

Choose a reason for hiding this comment

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

Thanks for pointing that out! I've updated the docstring to use double backticks around min_window for proper rendering. The changes have been pushed to the branch.

"""Calculate max_window based on max_win_len_prop or other parameters."""
return int(self.max_win_len_prop * 100)

def validate_window_sizes(self):
Copy link
Contributor

Choose a reason for hiding this comment

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

could you make these protected?

Copy link
Author

Choose a reason for hiding this comment

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

Yes, I've updated both methods (calculate_max_window and validate_window_sizes) to be protected. The changes have been pushed to the branch.

Copy link
Member

@MatthewMiddlehurst MatthewMiddlehurst left a comment

Choose a reason for hiding this comment

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

Please fill out the template instead of leaving it blank, and title the PR appropriately. See the contributor guide on our website.

A lot of the changes seem unnecessary. Raises should only contain known exceptions/errors being intentionally raised in the code, not any possible unintended error. There is already a check for the window sizes, not sure why we need another.

@Nikitas100 Nikitas100 changed the title Add 'Raises' section to docstring and fix line endings in _cboss.py (#1766) [DOC] Add 'Raises' section to docstring (#1766) Jan 14, 2025
@Nikitas100
Copy link
Author

Hey @MatthewMiddlehurst, thank you for your feedback. I've filled out the template and updated the title of the PR as suggested.

Regarding the Raises section, I noticed that the check if self.min_window > max_window + 1 is already implemented to validate the window sizes. Could you clarify if you see this as redundant or if there's a different approach you would recommend for validating the window sizes? I'm happy to make adjustments based on your suggestions

@Nikitas100 Nikitas100 force-pushed the add-docstring-raises branch from 1770319 to 7e4af72 Compare January 14, 2025 19:22
@MatthewMiddlehurst
Copy link
Member

Updated text so the PR does not close the issue.

I would say the new attribute and functions are redundant given that it is already checked in fit. The raises in private/protected functions are also unnecessary.

@Nikitas100
Copy link
Author

Hi @MatthewMiddlehurst and @TonyBagnall, I’ve made the requested changes. Please review it and let me know if there’s anything else.

Copy link
Member

@MatthewMiddlehurst MatthewMiddlehurst left a comment

Choose a reason for hiding this comment

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

The PR contains a lot of unnecessary whitespace additions and some of the documentation has been duplicated for some reason. Please resolve.

Comment on lines 230 to 233
f"Error in ContractableBOSS, ``min_window`` ="
f"{self.min_window} is bigger"
f" than max_window ={max_window}."
f" Try set min_window to be smaller than series length in "
f" Try set ``min_window`` to be smaller than series length in "
Copy link
Member

Choose a reason for hiding this comment

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

this does not need to be changed, the formatting wont work with print outs im pretty sure

Copy link
Author

Choose a reason for hiding this comment

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

Hi @MatthewMiddlehurst,

I added the double backticks in the error message as per @TonyBagnall's earlier suggestion. Could you clarify if I should revert this change for proper print formatting, or is there a different approach you'd recommend?

Copy link
Member

Choose a reason for hiding this comment

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

This is only required for the docstrings, not warning and error.

Copy link
Author

Choose a reason for hiding this comment

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

I have made the requested changes. Please let me know if there are any further adjustments needed.

@@ -328,6 +335,7 @@ def _predict_proba(self, X) -> np.ndarray:
-------
2D np.ndarray
Predicted class labels shape = (n_cases).
Copy link
Member

Choose a reason for hiding this comment

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

unnecessary white space

Comment on lines +99 to +101
Raised when ``min_window`` is greater than ``max_window + 1``.
This ensures that ``min_window`` does not exceed ``max_window``,
preventing invalid window size configurations.
Copy link
Member

Choose a reason for hiding this comment

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

this should be indented

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
classification Classification package
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants