@@ -1850,6 +1850,19 @@ <h1>Source code for dpctl.tensor._ctors</h1><div class="highlight"><pre>
18501850 < span class ="k "> return</ span > < span class ="n "> fill_val</ span >
18511851
18521852
1853+ < span class ="k "> def</ span > < span class ="nf "> _validate_fill_value</ span > < span class ="p "> (</ span > < span class ="n "> fill_val</ span > < span class ="p "> ):</ span >
1854+ < span class ="w "> </ span > < span class ="sd "> """</ span >
1855+ < span class ="sd "> Validates that `fill_val` is a numeric or boolean scalar.</ span >
1856+ < span class ="sd "> """</ span >
1857+ < span class ="c1 "> # TODO: verify if `np.True_` and `np.False_` should be instances of</ span >
1858+ < span class ="c1 "> # Number in NumPy, like other NumPy scalars and like Python bools</ span >
1859+ < span class ="c1 "> # check for `np.bool_` separately as NumPy<2 has no `np.bool`</ span >
1860+ < span class ="k "> if</ span > < span class ="ow "> not</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> fill_val</ span > < span class ="p "> ,</ span > < span class ="n "> Number</ span > < span class ="p "> )</ span > < span class ="ow "> and</ span > < span class ="ow "> not</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> fill_val</ span > < span class ="p "> ,</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> bool_</ span > < span class ="p "> ):</ span >
1861+ < span class ="k "> raise</ span > < span class ="ne "> TypeError</ span > < span class ="p "> (</ span >
1862+ < span class ="sa "> f</ span > < span class ="s2 "> "array cannot be filled with scalar of type </ span > < span class ="si "> {</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="n "> fill_val</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span >
1863+ < span class ="p "> )</ span >
1864+
1865+
18531866< div class ="viewcode-block " id ="full "> < a class ="viewcode-back " href ="../../../api_reference/dpctl/generated/dpctl.tensor.full.html#dpctl.tensor.full "> [docs]</ a > < span class ="k "> def</ span > < span class ="nf "> full</ span > < span class ="p "> (</ span >
18541867 < span class ="n "> shape</ span > < span class ="p "> ,</ span >
18551868 < span class ="n "> fill_value</ span > < span class ="p "> ,</ span >
@@ -1923,16 +1936,8 @@ <h1>Source code for dpctl.tensor._ctors</h1><div class="highlight"><pre>
19231936 < span class ="n "> sycl_queue</ span > < span class ="o "> =</ span > < span class ="n "> sycl_queue</ span > < span class ="p "> ,</ span >
19241937 < span class ="p "> )</ span >
19251938 < span class ="k "> return</ span > < span class ="n "> dpt</ span > < span class ="o "> .</ span > < span class ="n "> copy</ span > < span class ="p "> (</ span > < span class ="n "> dpt</ span > < span class ="o "> .</ span > < span class ="n "> broadcast_to</ span > < span class ="p "> (</ span > < span class ="n "> X</ span > < span class ="p "> ,</ span > < span class ="n "> shape</ span > < span class ="p "> ),</ span > < span class ="n "> order</ span > < span class ="o "> =</ span > < span class ="n "> order</ span > < span class ="p "> )</ span >
1926- < span class ="c1 "> # TODO: verify if `np.True_` and `np.False_` should be instances of</ span >
1927- < span class ="c1 "> # Number in NumPy, like other NumPy scalars and like Python bools</ span >
1928- < span class ="c1 "> # check for `np.bool_` separately as NumPy<2 has no `np.bool`</ span >
1929- < span class ="k "> elif</ span > < span class ="ow "> not</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> fill_value</ span > < span class ="p "> ,</ span > < span class ="n "> Number</ span > < span class ="p "> )</ span > < span class ="ow "> and</ span > < span class ="ow "> not</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span >
1930- < span class ="n "> fill_value</ span > < span class ="p "> ,</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> bool_</ span >
1931- < span class ="p "> ):</ span >
1932- < span class ="k "> raise</ span > < span class ="ne "> TypeError</ span > < span class ="p "> (</ span >
1933- < span class ="s2 "> "`full` array cannot be constructed with value of type "</ span >
1934- < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="n "> fill_value</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span >
1935- < span class ="p "> )</ span >
1939+ < span class ="k "> else</ span > < span class ="p "> :</ span >
1940+ < span class ="n "> _validate_fill_value</ span > < span class ="p "> (</ span > < span class ="n "> fill_value</ span > < span class ="p "> )</ span >
19361941
19371942 < span class ="n "> sycl_queue</ span > < span class ="o "> =</ span > < span class ="n "> normalize_queue_device</ span > < span class ="p "> (</ span > < span class ="n "> sycl_queue</ span > < span class ="o "> =</ span > < span class ="n "> sycl_queue</ span > < span class ="p "> ,</ span > < span class ="n "> device</ span > < span class ="o "> =</ span > < span class ="n "> device</ span > < span class ="p "> )</ span >
19381943 < span class ="n "> usm_type</ span > < span class ="o "> =</ span > < span class ="n "> usm_type</ span > < span class ="k "> if</ span > < span class ="n "> usm_type</ span > < span class ="ow "> is</ span > < span class ="ow "> not</ span > < span class ="kc "> None</ span > < span class ="k "> else</ span > < span class ="s2 "> "device"</ span >
@@ -2303,16 +2308,8 @@ <h1>Source code for dpctl.tensor._ctors</h1><div class="highlight"><pre>
23032308 < span class ="p "> )</ span >
23042309 < span class ="n "> _manager</ span > < span class ="o "> .</ span > < span class ="n "> add_event_pair</ span > < span class ="p "> (</ span > < span class ="n "> hev</ span > < span class ="p "> ,</ span > < span class ="n "> copy_ev</ span > < span class ="p "> )</ span >
23052310 < span class ="k "> return</ span > < span class ="n "> res</ span >
2306- < span class ="c1 "> # TODO: verify if `np.True_` and `np.False_` should be instances of</ span >
2307- < span class ="c1 "> # Number in NumPy, like other NumPy scalars and like Python bools</ span >
2308- < span class ="c1 "> # check for `np.bool_` separately as NumPy<2 has no `np.bool`</ span >
2309- < span class ="k "> elif</ span > < span class ="ow "> not</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span > < span class ="n "> fill_value</ span > < span class ="p "> ,</ span > < span class ="n "> Number</ span > < span class ="p "> )</ span > < span class ="ow "> and</ span > < span class ="ow "> not</ span > < span class ="nb "> isinstance</ span > < span class ="p "> (</ span >
2310- < span class ="n "> fill_value</ span > < span class ="p "> ,</ span > < span class ="n "> np</ span > < span class ="o "> .</ span > < span class ="n "> bool_</ span >
2311- < span class ="p "> ):</ span >
2312- < span class ="k "> raise</ span > < span class ="ne "> TypeError</ span > < span class ="p "> (</ span >
2313- < span class ="s2 "> "`full` array cannot be constructed with value of type "</ span >
2314- < span class ="sa "> f</ span > < span class ="s2 "> "</ span > < span class ="si "> {</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="n "> fill_value</ span > < span class ="p "> )</ span > < span class ="si "> }</ span > < span class ="s2 "> "</ span >
2315- < span class ="p "> )</ span >
2311+ < span class ="k "> else</ span > < span class ="p "> :</ span >
2312+ < span class ="n "> _validate_fill_value</ span > < span class ="p "> (</ span > < span class ="n "> fill_value</ span > < span class ="p "> )</ span >
23162313
23172314 < span class ="n "> dtype</ span > < span class ="o "> =</ span > < span class ="n "> _get_dtype</ span > < span class ="p "> (</ span > < span class ="n "> dtype</ span > < span class ="p "> ,</ span > < span class ="n "> sycl_queue</ span > < span class ="p "> ,</ span > < span class ="n "> ref_type</ span > < span class ="o "> =</ span > < span class ="nb "> type</ span > < span class ="p "> (</ span > < span class ="n "> fill_value</ span > < span class ="p "> ))</ span >
23182315 < span class ="n "> res</ span > < span class ="o "> =</ span > < span class ="n "> _empty_like_orderK</ span > < span class ="p "> (</ span > < span class ="n "> x</ span > < span class ="p "> ,</ span > < span class ="n "> dtype</ span > < span class ="p "> ,</ span > < span class ="n "> usm_type</ span > < span class ="p "> ,</ span > < span class ="n "> sycl_queue</ span > < span class ="p "> )</ span >
0 commit comments