-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement NumPy 2.0 migration rule (#7702)
## Summary <!-- What's the purpose of the change? What does it do, and why? --> Hi! Currently NumPy Python API is undergoing a cleanup process that will be delivered in NumPy 2.0 (release is planned for the end of the year). Most changes are rather simple (renaming, removing or moving a member of the main namespace to a new place), and they could be flagged/fixed by an additional ruff rule for numpy (e.g. changing occurrences of `np.float_` to `np.float64`). Would you accept such rule? I named it `NPY201` in the existing group, so people will receive a heads-up for changes arriving in 2.0 before actually migrating to it. ~~This is still a draft PR.~~ I'm not an expert in rust so if any part of code can be done better please share! NumPy 2.0 migration guide: https://numpy.org/devdocs/numpy_2_0_migration_guide.html NEP 52: https://numpy.org/neps/nep-0052-python-api-cleanup.html NumPy cleanup tracking issue: numpy/numpy#23999 ## Test Plan A unit test is provided that checks all rule's fix cases.
- Loading branch information
Showing
8 changed files
with
1,460 additions
and
0 deletions.
There are no files selected for viewing
106 changes: 106 additions & 0 deletions
106
crates/ruff_linter/resources/test/fixtures/numpy/NPY201.py
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
def func(): | ||
import numpy as np | ||
|
||
np.add_docstring | ||
|
||
np.add_newdoc | ||
|
||
np.add_newdoc_ufunc | ||
|
||
np.asfarray([1,2,3]) | ||
|
||
np.byte_bounds(np.array([1,2,3])) | ||
|
||
np.cast | ||
|
||
np.cfloat(12+34j) | ||
|
||
np.clongfloat(12+34j) | ||
|
||
np.compat | ||
|
||
np.complex_(12+34j) | ||
|
||
np.DataSource | ||
|
||
np.deprecate | ||
|
||
np.deprecate_with_doc | ||
|
||
np.disp(10) | ||
|
||
np.fastCopyAndTranspose | ||
|
||
np.find_common_type | ||
|
||
np.get_array_wrap | ||
|
||
np.float_ | ||
|
||
np.geterrobj | ||
|
||
np.Inf | ||
|
||
np.Infinity | ||
|
||
np.infty | ||
|
||
np.issctype | ||
|
||
np.issubclass_(np.int32, np.integer) | ||
|
||
np.issubsctype | ||
|
||
np.mat | ||
|
||
np.maximum_sctype | ||
|
||
np.NaN | ||
|
||
np.nbytes[np.int64] | ||
|
||
np.NINF | ||
|
||
np.NZERO | ||
|
||
np.longcomplex(12+34j) | ||
|
||
np.longfloat(12+34j) | ||
|
||
np.lookfor | ||
|
||
np.obj2sctype(int) | ||
|
||
np.PINF | ||
|
||
np.PZERO | ||
|
||
np.recfromcsv | ||
|
||
np.recfromtxt | ||
|
||
np.round_(12.34) | ||
|
||
np.safe_eval | ||
|
||
np.sctype2char | ||
|
||
np.sctypes | ||
|
||
np.seterrobj | ||
|
||
np.set_numeric_ops | ||
|
||
np.set_string_function | ||
|
||
np.singlecomplex(12+1j) | ||
|
||
np.string_("asdf") | ||
|
||
np.source | ||
|
||
np.tracemalloc_domain | ||
|
||
np.unicode_("asf") | ||
|
||
np.who() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,9 @@ | ||
pub(crate) use deprecated_function::*; | ||
pub(crate) use deprecated_type_alias::*; | ||
pub(crate) use legacy_random::*; | ||
pub(crate) use numpy_2_0_deprecation::*; | ||
|
||
mod deprecated_function; | ||
mod deprecated_type_alias; | ||
mod legacy_random; | ||
mod numpy_2_0_deprecation; |
Oops, something went wrong.