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

MAINT update the python version supported #1073

Merged
merged 2 commits into from
Mar 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion doc/whats_new/v0.12.rst
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,13 @@ Compatibility
.............

- Do not use `distutils` in tests due to deprecation.
:pr:`1065` by :user:`Michael R. Crusoe <mr-c>`
:pr:`1065` by :user:`Michael R. Crusoe <mr-c>`.

- Fix the scikit-learn import in tests to be compatible with version 1.4.1.post1.
:pr:`1073` by :user:`Guillaume Lemaitre <glemaitre>`.

- Fix test to be compatible with Python 3.13.
:pr:`1073` by :user:`Guillaume Lemaitre <glemaitre>`.

Version 0.12.0
==============
Expand Down
17 changes: 17 additions & 0 deletions imblearn/utils/tests/test_docstring.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,23 @@
# Authors: Guillaume Lemaitre <[email protected]>
# License: MIT

import sys
import textwrap

import pytest

from imblearn.utils import Substitution
from imblearn.utils._docstring import _n_jobs_docstring, _random_state_docstring


def _dedent_docstring(docstring):
"""Compatibility with Python 3.13+.

xref: https://github.com/python/cpython/issues/81283
"""
return "\n".join([textwrap.dedent(line) for line in docstring.split("\n")])


func_docstring = """A function.

Parameters
Expand Down Expand Up @@ -55,6 +67,11 @@ def __init__(self, param_1, param_2):
self.param_2 = param_2


if sys.version_info.minor == "13":

Choose a reason for hiding this comment

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

That doesn't work. It returns False. How about sys.version_info >= (3, 13) since it will be needed for future versions as well?

Copy link
Member Author

Choose a reason for hiding this comment

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

That's true that we need it for future python version. I falsely trust copilot without checking that it returns an integer (and we test for alpha python version). Thanks I'll make the fix.

Choose a reason for hiding this comment

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

Or, if you want to stick with checking the minor version number only, compare to an integer, since that is what sys.version_info.minor returns. But that will only work until 3.14 is released.

Choose a reason for hiding this comment

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

Thanks! Appreciated.

Btw, my last comment was not a response. I didn't get to see your comment to my first comment until I refreshed the page. 😞

Copy link
Member Author

Choose a reason for hiding this comment

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

OK, I uploaded again the new wheels. Sorry for this.

Choose a reason for hiding this comment

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

No worries and thanks again for the quick fix.

func_docstring = _dedent_docstring(func_docstring)
cls_docstring = _dedent_docstring(cls_docstring)


@pytest.mark.parametrize(
"obj, obj_docstring", [(func, func_docstring), (cls, cls_docstring)]
)
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@
"Operating System :: POSIX",
"Operating System :: Unix",
"Operating System :: MacOS",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
]
PYTHON_REQUIRES = ">=3.8"
INSTALL_REQUIRES = (min_deps.tag_to_packages["install"],)
Expand Down