@@ -827,6 +827,7 @@ <h1>Source code for dpctl.tensor._ctors</h1><div class="highlight"><pre>
827827< span class ="c1 "> # limitations under the License.</ span >
828828
829829< span class ="kn "> import</ span > < span class ="nn "> operator</ span >
830+ < span class ="kn "> from</ span > < span class ="nn "> numbers</ span > < span class ="kn "> import</ span > < span class ="n "> Number</ span >
830831
831832< span class ="kn "> import</ span > < span class ="nn "> numpy</ span > < span class ="k "> as</ span > < span class ="nn "> np</ span >
832833
@@ -1849,6 +1850,19 @@ <h1>Source code for dpctl.tensor._ctors</h1><div class="highlight"><pre>
18491850 < span class ="k "> return</ span > < span class ="n "> fill_val</ span >
18501851
18511852
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+
18521866< 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 >
18531867 < span class ="n "> shape</ span > < span class ="p "> ,</ span >
18541868 < span class ="n "> fill_value</ span > < span class ="p "> ,</ span >
@@ -1922,6 +1936,8 @@ <h1>Source code for dpctl.tensor._ctors</h1><div class="highlight"><pre>
19221936 < span class ="n "> sycl_queue</ span > < span class ="o "> =</ span > < span class ="n "> sycl_queue</ span > < span class ="p "> ,</ span >
19231937 < span class ="p "> )</ span >
19241938 < 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 >
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 >
19251941
19261942 < 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 >
19271943 < 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 >
@@ -2292,6 +2308,8 @@ <h1>Source code for dpctl.tensor._ctors</h1><div class="highlight"><pre>
22922308 < span class ="p "> )</ span >
22932309 < 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 >
22942310 < span class ="k "> return</ span > < span class ="n "> res</ 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 >
22952313
22962314 < 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 >
22972315 < 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