Skip to content

Commit 167c3e6

Browse files
Unify dpnp public API exports by refactoring dpnp_iface.py (#2665)
This PR proposes to refactor the export structure of `dpnp_iface.py` by moving all python function exports into `dpnp/__init__.py` Redundant `__all__` declarations and wildcard imports inside `dpnp_iface.py` have been removed.
1 parent 21718ad commit 167c3e6

21 files changed

+863
-446
lines changed

dpnp/__init__.py

Lines changed: 854 additions & 3 deletions
Large diffs are not rendered by default.

dpnp/dpnp_iface.py

Lines changed: 5 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
4040
"""
4141
# pylint: disable=protected-access
42-
# pylint: disable=redefined-outer-name
4342

4443
import os
4544

@@ -51,60 +50,8 @@
5150
from dpctl.tensor._device import normalize_queue_device
5251

5352
import dpnp
54-
from dpnp.dpnp_algo import *
55-
from dpnp.dpnp_array import dpnp_array
56-
57-
__all__ = [
58-
"are_same_logical_tensors",
59-
"asnumpy",
60-
"as_usm_ndarray",
61-
"check_limitations",
62-
"check_supported_arrays_type",
63-
"default_float_type",
64-
"get_dpnp_descriptor",
65-
"get_include",
66-
"get_normalized_queue_device",
67-
"get_result_array",
68-
"get_usm_ndarray",
69-
"get_usm_ndarray_or_scalar",
70-
"is_cuda_backend",
71-
"is_supported_array_or_scalar",
72-
"is_supported_array_type",
73-
"synchronize_array_data",
74-
]
75-
76-
from dpnp.dpnp_iface_arraycreation import *
77-
from dpnp.dpnp_iface_arraycreation import __all__ as __all__arraycreation
78-
from dpnp.dpnp_iface_bitwise import *
79-
from dpnp.dpnp_iface_bitwise import __all__ as __all__bitwise
80-
from dpnp.dpnp_iface_counting import *
81-
from dpnp.dpnp_iface_counting import __all__ as __all__counting
82-
from dpnp.dpnp_iface_functional import *
83-
from dpnp.dpnp_iface_functional import __all__ as __all__functional
84-
from dpnp.dpnp_iface_histograms import *
85-
from dpnp.dpnp_iface_histograms import __all__ as __all__histograms
86-
from dpnp.dpnp_iface_indexing import *
87-
from dpnp.dpnp_iface_indexing import __all__ as __all__indexing
88-
from dpnp.dpnp_iface_linearalgebra import *
89-
from dpnp.dpnp_iface_linearalgebra import __all__ as __all__linearalgebra
90-
from dpnp.dpnp_iface_logic import *
91-
from dpnp.dpnp_iface_logic import __all__ as __all__logic
92-
from dpnp.dpnp_iface_manipulation import *
93-
from dpnp.dpnp_iface_manipulation import __all__ as __all__manipulation
94-
from dpnp.dpnp_iface_mathematical import *
95-
from dpnp.dpnp_iface_mathematical import __all__ as __all__mathematical
96-
from dpnp.dpnp_iface_nanfunctions import *
97-
from dpnp.dpnp_iface_nanfunctions import __all__ as __all__nanfunctions
98-
from dpnp.dpnp_iface_searching import *
99-
from dpnp.dpnp_iface_searching import __all__ as __all__searching
100-
from dpnp.dpnp_iface_sorting import *
101-
from dpnp.dpnp_iface_sorting import __all__ as __all__sorting
102-
from dpnp.dpnp_iface_statistics import *
103-
from dpnp.dpnp_iface_statistics import __all__ as __all__statistics
104-
from dpnp.dpnp_iface_trigonometric import *
105-
from dpnp.dpnp_iface_trigonometric import __all__ as __all__trigonometric
106-
from dpnp.dpnp_iface_window import *
107-
from dpnp.dpnp_iface_window import __all__ as __all__window
53+
54+
from .dpnp_array import dpnp_array
10855

10956
# pylint: disable=no-name-in-module
11057
from .dpnp_utils import (
@@ -113,23 +60,6 @@
11360
use_origin_backend,
11461
)
11562

116-
__all__ += __all__arraycreation
117-
__all__ += __all__bitwise
118-
__all__ += __all__counting
119-
__all__ += __all__functional
120-
__all__ += __all__histograms
121-
__all__ += __all__indexing
122-
__all__ += __all__linearalgebra
123-
__all__ += __all__logic
124-
__all__ += __all__manipulation
125-
__all__ += __all__mathematical
126-
__all__ += __all__nanfunctions
127-
__all__ += __all__searching
128-
__all__ += __all__sorting
129-
__all__ += __all__statistics
130-
__all__ += __all__trigonometric
131-
__all__ += __all__window
132-
13363

13464
def are_same_logical_tensors(ar1, ar2):
13565
"""
@@ -437,7 +367,7 @@ def get_dpnp_descriptor(
437367
# If input object is a scalar, it means it was allocated on host memory.
438368
# We need to copy it to USM memory according to compute follows data.
439369
if dpnp.isscalar(ext_obj):
440-
ext_obj = array(
370+
ext_obj = dpnp.array(
441371
ext_obj,
442372
dtype=alloc_dtype,
443373
usm_type=alloc_usm_type,
@@ -464,7 +394,7 @@ def get_dpnp_descriptor(
464394
ext_obj_offset = 0
465395

466396
if ext_obj.strides != shape_offsets or ext_obj_offset != 0:
467-
ext_obj = array(ext_obj, order="C")
397+
ext_obj = dpnp.array(ext_obj, order="C")
468398

469399
# while dpnp functions are based on DPNP_QUEUE
470400
# we need to create a copy on device associated with DPNP_QUEUE
@@ -478,7 +408,7 @@ def get_dpnp_descriptor(
478408
dpctl.utils.get_execution_queue([queue, default_queue]) is not None
479409
)
480410
if not queue_is_default:
481-
ext_obj = array(ext_obj, sycl_queue=default_queue)
411+
ext_obj = dpnp.array(ext_obj, sycl_queue=default_queue)
482412

483413
dpnp_desc = dpnp_descriptor(ext_obj)
484414
if dpnp_desc.is_valid: # pylint: disable=using-constant-test

dpnp/dpnp_iface_arraycreation.py

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -61,47 +61,6 @@
6161
# pylint: disable=no-name-in-module
6262
from .dpnp_utils import get_usm_allocations, map_dtype_to_device
6363

64-
__all__ = [
65-
"arange",
66-
"array",
67-
"asanyarray",
68-
"asarray",
69-
"ascontiguousarray",
70-
"asfortranarray",
71-
"astype",
72-
"copy",
73-
"diag",
74-
"diagflat",
75-
"empty",
76-
"empty_like",
77-
"eye",
78-
"frombuffer",
79-
"fromfile",
80-
"fromfunction",
81-
"fromiter",
82-
"fromstring",
83-
"from_dlpack",
84-
"full",
85-
"full_like",
86-
"geomspace",
87-
"identity",
88-
"linspace",
89-
"loadtxt",
90-
"logspace",
91-
"meshgrid",
92-
"mgrid",
93-
"ogrid",
94-
"ones",
95-
"ones_like",
96-
"trace",
97-
"tri",
98-
"tril",
99-
"triu",
100-
"vander",
101-
"zeros",
102-
"zeros_like",
103-
]
104-
10564

10665
def _get_empty_array(
10766
a,

dpnp/dpnp_iface_bitwise.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -49,21 +49,6 @@
4949
import dpnp.backend.extensions.ufunc._ufunc_impl as ufi
5050
from dpnp.dpnp_algo.dpnp_elementwise_common import DPNPBinaryFunc, DPNPUnaryFunc
5151

52-
__all__ = [
53-
"binary_repr",
54-
"bitwise_and",
55-
"bitwise_count",
56-
"bitwise_invert",
57-
"bitwise_left_shift",
58-
"bitwise_not",
59-
"bitwise_or",
60-
"bitwise_right_shift",
61-
"bitwise_xor",
62-
"invert",
63-
"left_shift",
64-
"right_shift",
65-
]
66-
6752

6853
def binary_repr(num, width=None):
6954
"""

dpnp/dpnp_iface_counting.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,6 @@
4343

4444
import dpnp
4545

46-
__all__ = ["count_nonzero"]
47-
4846

4947
def count_nonzero(a, axis=None, *, keepdims=False, out=None):
5048
"""

dpnp/dpnp_iface_functional.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@
5151
# pylint: disable=no-name-in-module
5252
from dpnp.dpnp_utils import get_usm_allocations
5353

54-
__all__ = ["apply_along_axis", "apply_over_axes", "piecewise"]
55-
5654

5755
def apply_along_axis(func1d, axis, arr, *args, **kwargs):
5856
"""

dpnp/dpnp_iface_histograms.py

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -57,15 +57,6 @@
5757
# pylint: disable=no-name-in-module
5858
from .dpnp_utils import get_usm_allocations
5959

60-
__all__ = [
61-
"bincount",
62-
"digitize",
63-
"histogram",
64-
"histogram_bin_edges",
65-
"histogram2d",
66-
"histogramdd",
67-
]
68-
6960
# range is a keyword argument to many functions, so save the builtin so they can
7061
# use it.
7162
_range = range

dpnp/dpnp_iface_indexing.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -64,36 +64,6 @@
6464
from .dpnp_array import dpnp_array
6565
from .dpnp_utils import call_origin, get_usm_allocations
6666

67-
__all__ = [
68-
"choose",
69-
"compress",
70-
"diag_indices",
71-
"diag_indices_from",
72-
"diagonal",
73-
"extract",
74-
"fill_diagonal",
75-
"flatnonzero",
76-
"indices",
77-
"iterable",
78-
"ix_",
79-
"mask_indices",
80-
"ndindex",
81-
"nonzero",
82-
"place",
83-
"put",
84-
"put_along_axis",
85-
"putmask",
86-
"ravel_multi_index",
87-
"select",
88-
"take",
89-
"take_along_axis",
90-
"tril_indices",
91-
"tril_indices_from",
92-
"triu_indices",
93-
"triu_indices_from",
94-
"unravel_index",
95-
]
96-
9767

9868
def _ravel_multi_index_checks(multi_index, dims, order):
9969
dpnp.check_supported_arrays_type(*multi_index)

dpnp/dpnp_iface_linearalgebra.py

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -54,21 +54,6 @@
5454
dpnp_vecdot,
5555
)
5656

57-
__all__ = [
58-
"dot",
59-
"einsum",
60-
"einsum_path",
61-
"inner",
62-
"kron",
63-
"matmul",
64-
"matvec",
65-
"outer",
66-
"tensordot",
67-
"vdot",
68-
"vecdot",
69-
"vecmat",
70-
]
71-
7257

7358
# TODO: implement a specific scalar-array kernel
7459
def _call_multiply(a, b, out=None, outer_calc=False):

dpnp/dpnp_iface_logic.py

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -55,36 +55,6 @@
5555

5656
from .dpnp_utils import get_usm_allocations
5757

58-
__all__ = [
59-
"all",
60-
"allclose",
61-
"any",
62-
"array_equal",
63-
"array_equiv",
64-
"equal",
65-
"greater",
66-
"greater_equal",
67-
"isclose",
68-
"iscomplex",
69-
"iscomplexobj",
70-
"isfinite",
71-
"isfortran",
72-
"isinf",
73-
"isnan",
74-
"isneginf",
75-
"isposinf",
76-
"isreal",
77-
"isrealobj",
78-
"isscalar",
79-
"less",
80-
"less_equal",
81-
"logical_and",
82-
"logical_not",
83-
"logical_or",
84-
"logical_xor",
85-
"not_equal",
86-
]
87-
8858

8959
def _isclose_scalar_tol(a, b, rtol, atol, equal_nan):
9060
"""

0 commit comments

Comments
 (0)