Skip to content

Commit 1364673

Browse files
committedJun 17, 2021
Add array API data
1 parent a406a72 commit 1364673

File tree

11 files changed

+4052
-544
lines changed

11 files changed

+4052
-544
lines changed
 

‎data/array_api.csv

+134
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
name,numpy<sup>*</sup>,cupy,dask,jax,mxnet,pytorch,sparse,tensorflow
2+
"abs","&#128640","","","&#128640","&#128640","&#128640","",""
3+
"acos","&#128640","","","","","&#128640","",""
4+
"acosh","&#128640","","","","","&#128640","",""
5+
"add","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
6+
"all","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
7+
"any","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
8+
"arange","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
9+
"argmax","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
10+
"argmin","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
11+
"argsort","&#128640","&#128640","","&#128640","&#128640","&#128640","","&#128640"
12+
"asarray","&#128640","&#128640","&#128640","&#128640","","","",""
13+
"asin","&#128640","","","","","&#128640","",""
14+
"asinh","&#128640","","","","","&#128640","",""
15+
"atan","&#128640","","","","","&#128640","",""
16+
"atan2","&#128640","","","","","&#128640","",""
17+
"atanh","&#128640","","","","","&#128640","",""
18+
"bitwise_and","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
19+
"bitwise_invert","&#128640","","","","","","",""
20+
"bitwise_left_shift","&#128640","","","","","","",""
21+
"bitwise_or","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
22+
"bitwise_right_shift","&#128640","","","","","","",""
23+
"bitwise_xor","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
24+
"broadcast_arrays","&#128640","&#128640","&#128640","&#128640","","","",""
25+
"broadcast_to","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","","&#128640"
26+
"can_cast","&#128640","&#128640","","&#128640","","&#128640","",""
27+
"ceil","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
28+
"concat","&#128640","","","","&#128640","","","&#128640"
29+
"cos","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
30+
"cosh","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
31+
"divide","&#128640","&#128640","","&#128640","&#128640","&#128640","",""
32+
"e","&#128640","","","","","","",""
33+
"einsum","","&#128640","&#128640","&#128640","","&#128640","","&#128640"
34+
"empty","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
35+
"empty_like","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
36+
"equal","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
37+
"exp","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
38+
"expand_dims","&#128640","&#128640","","&#128640","&#128640","","","&#128640"
39+
"expm1","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
40+
"eye","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640"
41+
"finfo","&#128640","","","&#128640","","","",""
42+
"flip","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
43+
"floor","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
44+
"floor_divide","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
45+
"from_dlpack","&#128640","","","","&#128640","","",""
46+
"full","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640",""
47+
"full_like","&#128640","&#128640","&#128640","&#128640","","&#128640","&#128640",""
48+
"greater","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
49+
"greater_equal","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
50+
"iinfo","&#128640","","","&#128640","","","",""
51+
"inf","&#128640","","","","","","",""
52+
"isfinite","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
53+
"isinf","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
54+
"isnan","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
55+
"less","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
56+
"less_equal","&#128640","&#128640","","&#128640","","&#128640","",""
57+
"linalg.cholesky","","&#128640","&#128640","","","","","&#128640"
58+
"linalg.cross","","","","","","","","&#128640"
59+
"linalg.det","","&#128640","","","","","","&#128640"
60+
"linalg.diagonal","","","","","","","",""
61+
"linalg.eigh","","&#128640","","","","","","&#128640"
62+
"linalg.eigvalsh","","&#128640","","","","","","&#128640"
63+
"linalg.einsum","","","","","","","",""
64+
"linalg.inv","","&#128640","&#128640","","","","","&#128640"
65+
"linalg.lstsq","","&#128640","&#128640","","","","","&#128640"
66+
"linalg.matmul","","","","","","","","&#128640"
67+
"linalg.matrix_power","","&#128640","","","","","",""
68+
"linalg.matrix_rank","","&#128640","","","","","","&#128640"
69+
"linalg.norm","","&#128640","&#128640","","","","",""
70+
"linalg.outer","","","","","","","",""
71+
"linalg.pinv","","&#128640","","","","","","&#128640"
72+
"linalg.qr","","&#128640","&#128640","","","","","&#128640"
73+
"linalg.slogdet","","&#128640","","","","","","&#128640"
74+
"linalg.solve","","&#128640","&#128640","","","","","&#128640"
75+
"linalg.svd","","&#128640","&#128640","","","","","&#128640"
76+
"linalg.svdvals","","","","","","","",""
77+
"linalg.tensordot","","","","","","","",""
78+
"linalg.trace","","","","","","","","&#128640"
79+
"linalg.transpose","","","","","","","",""
80+
"linalg.vecdot","","","","","","","",""
81+
"linspace","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","","&#128640"
82+
"log","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
83+
"log10","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
84+
"log1p","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
85+
"log2","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
86+
"logaddexp","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
87+
"logical_and","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
88+
"logical_not","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
89+
"logical_or","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
90+
"logical_xor","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
91+
"matmul","","","&#128640","&#128640","","&#128640","&#128640",""
92+
"max","&#128640","","&#128640","&#128640","&#128640","&#128640","",""
93+
"mean","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
94+
"meshgrid","&#128640","&#128640","&#128640","&#128640","","&#128640","","&#128640"
95+
"min","&#128640","","&#128640","&#128640","&#128640","&#128640","",""
96+
"multiply","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
97+
"nan","&#128640","","","","","","",""
98+
"negative","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
99+
"nonzero","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
100+
"not_equal","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
101+
"ones","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640"
102+
"ones_like","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640"
103+
"pi","&#128640","","","","","","",""
104+
"positive","&#128640","","","&#128640","","","",""
105+
"pow","&#128640","","","","","&#128640","",""
106+
"prod","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
107+
"remainder","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
108+
"reshape","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","","&#128640"
109+
"result_type","&#128640","&#128640","&#128640","&#128640","","&#128640","&#128640",""
110+
"roll","&#128640","&#128640","&#128640","&#128640","","&#128640","&#128640","&#128640"
111+
"round","&#128640","","&#128640","&#128640","&#128640","&#128640","",""
112+
"sign","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
113+
"sin","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
114+
"sinh","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
115+
"sort","&#128640","&#128640","","&#128640","&#128640","&#128640","","&#128640"
116+
"sqrt","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
117+
"square","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
118+
"squeeze","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","","&#128640"
119+
"stack","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640"
120+
"std","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
121+
"subtract","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
122+
"sum","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
123+
"tan","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
124+
"tanh","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
125+
"tensordot","","&#128640","&#128640","&#128640","","&#128640","&#128640","&#128640"
126+
"transpose","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","","&#128640"
127+
"trunc","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","",""
128+
"unique","&#128640","&#128640","&#128640","&#128640","","&#128640","","&#128640"
129+
"var","&#128640","&#128640","&#128640","&#128640","","&#128640","",""
130+
"vecdot","","","","","","","",""
131+
"where","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640"
132+
"zeros","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640"
133+
"zeros_like","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640","&#128640"
134+
"Total APIs: 132","104","96","87","90","61","92","13","36"

‎data/array_api.json

+1,465
Large diffs are not rendered by default.

‎data/raw/array_api.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
["abs","acos","acosh","add","all","any","arange","argmax","argmin","argsort","asarray","asin","asinh","atan","atan2","atanh","bitwise_and","bitwise_invert","bitwise_left_shift","bitwise_or","bitwise_right_shift","bitwise_xor","broadcast_arrays","broadcast_to","can_cast","ceil","concat","cos","cosh","divide","e","einsum","empty","empty_like","equal","exp","expand_dims","expm1","eye","finfo","flip","floor","floor_divide","from_dlpack","full","full_like","greater","greater_equal","iinfo","inf","isfinite","isinf","isnan","less","less_equal","linalg.cholesky","linalg.cross","linalg.det","linalg.diagonal","linalg.eigh","linalg.eigvalsh","linalg.einsum","linalg.inv","linalg.lstsq","linalg.matmul","linalg.matrix_power","linalg.matrix_rank","linalg.norm","linalg.outer","linalg.pinv","linalg.qr","linalg.slogdet","linalg.solve","linalg.svd","linalg.svdvals","linalg.tensordot","linalg.trace","linalg.transpose","linalg.vecdot","linspace","log","log10","log1p","log2","logaddexp","logical_and","logical_not","logical_or","logical_xor","mamtul","max","mean","meshgrid","min","multiply","nan","negative","nonzero","not_equal","ones","ones_like","pi","positive","pow","prod","remainder","reshape","result_type","roll","round","sign","sin","sinh","sort","sqrt","square","squeeze","stack","std","subtract","sum","tan","tanh","tensordot","transpose","trunc","unique","var","vecdot","where","zeros","zeros_like"]
1+
["abs","acos","acosh","add","all","any","arange","argmax","argmin","argsort","asarray","asin","asinh","atan","atan2","atanh","bitwise_and","bitwise_invert","bitwise_left_shift","bitwise_or","bitwise_right_shift","bitwise_xor","broadcast_arrays","broadcast_to","can_cast","ceil","concat","cos","cosh","divide","e","einsum","empty","empty_like","equal","exp","expand_dims","expm1","eye","finfo","flip","floor","floor_divide","from_dlpack","full","full_like","greater","greater_equal","iinfo","inf","isfinite","isinf","isnan","less","less_equal","linalg.cholesky","linalg.cross","linalg.det","linalg.diagonal","linalg.eigh","linalg.eigvalsh","linalg.einsum","linalg.inv","linalg.lstsq","linalg.matmul","linalg.matrix_power","linalg.matrix_rank","linalg.norm","linalg.outer","linalg.pinv","linalg.qr","linalg.slogdet","linalg.solve","linalg.svd","linalg.svdvals","linalg.tensordot","linalg.trace","linalg.transpose","linalg.vecdot","linspace","log","log10","log1p","log2","logaddexp","logical_and","logical_not","logical_or","logical_xor","matmul","max","mean","meshgrid","min","multiply","nan","negative","nonzero","not_equal","ones","ones_like","pi","positive","pow","prod","remainder","reshape","result_type","roll","round","sign","sin","sinh","sort","sqrt","square","squeeze","stack","std","subtract","sum","tan","tanh","tensordot","transpose","trunc","unique","var","vecdot","where","zeros","zeros_like"]

‎data/raw/array_api.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ logical_and
8787
logical_not
8888
logical_or
8989
logical_xor
90-
mamtul
90+
matmul
9191
max
9292
mean
9393
meshgrid
@@ -129,4 +129,4 @@ var
129129
vecdot
130130
where
131131
zeros
132-
zeros_like
132+
zeros_like

‎data/raw/numpy_array_api.csv

+112
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
name
2+
"numpy._array_api.abs"
3+
"numpy._array_api.acos"
4+
"numpy._array_api.acosh"
5+
"numpy._array_api.add"
6+
"numpy._array_api.all"
7+
"numpy._array_api.any"
8+
"numpy._array_api.arange"
9+
"numpy._array_api.argmax"
10+
"numpy._array_api.argmin"
11+
"numpy._array_api.argsort"
12+
"numpy._array_api.asarray"
13+
"numpy._array_api.asin"
14+
"numpy._array_api.asinh"
15+
"numpy._array_api.atan"
16+
"numpy._array_api.atan2"
17+
"numpy._array_api.atanh"
18+
"numpy._array_api.bitwise_and"
19+
"numpy._array_api.bitwise_invert"
20+
"numpy._array_api.bitwise_left_shift"
21+
"numpy._array_api.bitwise_or"
22+
"numpy._array_api.bitwise_right_shift"
23+
"numpy._array_api.bitwise_xor"
24+
"numpy._array_api.broadcast_arrays"
25+
"numpy._array_api.broadcast_to"
26+
"numpy._array_api.can_cast"
27+
"numpy._array_api.ceil"
28+
"numpy._array_api.concat"
29+
"numpy._array_api.cos"
30+
"numpy._array_api.cosh"
31+
"numpy._array_api.cross"
32+
"numpy._array_api.det"
33+
"numpy._array_api.diagonal"
34+
"numpy._array_api.divide"
35+
"numpy._array_api.e"
36+
"numpy._array_api.empty"
37+
"numpy._array_api.empty_like"
38+
"numpy._array_api.equal"
39+
"numpy._array_api.exp"
40+
"numpy._array_api.expand_dims"
41+
"numpy._array_api.expm1"
42+
"numpy._array_api.eye"
43+
"numpy._array_api.finfo"
44+
"numpy._array_api.flip"
45+
"numpy._array_api.floor"
46+
"numpy._array_api.floor_divide"
47+
"numpy._array_api.from_dlpack"
48+
"numpy._array_api.full"
49+
"numpy._array_api.full_like"
50+
"numpy._array_api.greater"
51+
"numpy._array_api.greater_equal"
52+
"numpy._array_api.iinfo"
53+
"numpy._array_api.inf"
54+
"numpy._array_api.inv"
55+
"numpy._array_api.isfinite"
56+
"numpy._array_api.isinf"
57+
"numpy._array_api.isnan"
58+
"numpy._array_api.less"
59+
"numpy._array_api.less_equal"
60+
"numpy._array_api.linspace"
61+
"numpy._array_api.log"
62+
"numpy._array_api.log10"
63+
"numpy._array_api.log1p"
64+
"numpy._array_api.log2"
65+
"numpy._array_api.logaddexp"
66+
"numpy._array_api.logical_and"
67+
"numpy._array_api.logical_not"
68+
"numpy._array_api.logical_or"
69+
"numpy._array_api.logical_xor"
70+
"numpy._array_api.max"
71+
"numpy._array_api.mean"
72+
"numpy._array_api.meshgrid"
73+
"numpy._array_api.min"
74+
"numpy._array_api.multiply"
75+
"numpy._array_api.nan"
76+
"numpy._array_api.negative"
77+
"numpy._array_api.nonzero"
78+
"numpy._array_api.norm"
79+
"numpy._array_api.not_equal"
80+
"numpy._array_api.ones"
81+
"numpy._array_api.ones_like"
82+
"numpy._array_api.outer"
83+
"numpy._array_api.pi"
84+
"numpy._array_api.positive"
85+
"numpy._array_api.pow"
86+
"numpy._array_api.prod"
87+
"numpy._array_api.remainder"
88+
"numpy._array_api.reshape"
89+
"numpy._array_api.result_type"
90+
"numpy._array_api.roll"
91+
"numpy._array_api.round"
92+
"numpy._array_api.sign"
93+
"numpy._array_api.sin"
94+
"numpy._array_api.sinh"
95+
"numpy._array_api.sort"
96+
"numpy._array_api.sqrt"
97+
"numpy._array_api.square"
98+
"numpy._array_api.squeeze"
99+
"numpy._array_api.stack"
100+
"numpy._array_api.std"
101+
"numpy._array_api.subtract"
102+
"numpy._array_api.sum"
103+
"numpy._array_api.tan"
104+
"numpy._array_api.tanh"
105+
"numpy._array_api.trace"
106+
"numpy._array_api.transpose"
107+
"numpy._array_api.trunc"
108+
"numpy._array_api.unique"
109+
"numpy._array_api.var"
110+
"numpy._array_api.where"
111+
"numpy._array_api.zeros"
112+
"numpy._array_api.zeros_like"

‎data/raw/numpy_array_api.json

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[{"name":"numpy._array_api.abs"},{"name":"numpy._array_api.acos"},{"name":"numpy._array_api.acosh"},{"name":"numpy._array_api.add"},{"name":"numpy._array_api.all"},{"name":"numpy._array_api.any"},{"name":"numpy._array_api.arange"},{"name":"numpy._array_api.argmax"},{"name":"numpy._array_api.argmin"},{"name":"numpy._array_api.argsort"},{"name":"numpy._array_api.asarray"},{"name":"numpy._array_api.asin"},{"name":"numpy._array_api.asinh"},{"name":"numpy._array_api.atan"},{"name":"numpy._array_api.atan2"},{"name":"numpy._array_api.atanh"},{"name":"numpy._array_api.bitwise_and"},{"name":"numpy._array_api.bitwise_invert"},{"name":"numpy._array_api.bitwise_left_shift"},{"name":"numpy._array_api.bitwise_or"},{"name":"numpy._array_api.bitwise_right_shift"},{"name":"numpy._array_api.bitwise_xor"},{"name":"numpy._array_api.broadcast_arrays"},{"name":"numpy._array_api.broadcast_to"},{"name":"numpy._array_api.can_cast"},{"name":"numpy._array_api.ceil"},{"name":"numpy._array_api.concat"},{"name":"numpy._array_api.cos"},{"name":"numpy._array_api.cosh"},{"name":"numpy._array_api.cross"},{"name":"numpy._array_api.det"},{"name":"numpy._array_api.diagonal"},{"name":"numpy._array_api.divide"},{"name":"numpy._array_api.e"},{"name":"numpy._array_api.empty"},{"name":"numpy._array_api.empty_like"},{"name":"numpy._array_api.equal"},{"name":"numpy._array_api.exp"},{"name":"numpy._array_api.expand_dims"},{"name":"numpy._array_api.expm1"},{"name":"numpy._array_api.eye"},{"name":"numpy._array_api.finfo"},{"name":"numpy._array_api.flip"},{"name":"numpy._array_api.floor"},{"name":"numpy._array_api.floor_divide"},{"name":"numpy._array_api.from_dlpack"},{"name":"numpy._array_api.full"},{"name":"numpy._array_api.full_like"},{"name":"numpy._array_api.greater"},{"name":"numpy._array_api.greater_equal"},{"name":"numpy._array_api.iinfo"},{"name":"numpy._array_api.inf"},{"name":"numpy._array_api.inv"},{"name":"numpy._array_api.isfinite"},{"name":"numpy._array_api.isinf"},{"name":"numpy._array_api.isnan"},{"name":"numpy._array_api.less"},{"name":"numpy._array_api.less_equal"},{"name":"numpy._array_api.linspace"},{"name":"numpy._array_api.log"},{"name":"numpy._array_api.log10"},{"name":"numpy._array_api.log1p"},{"name":"numpy._array_api.log2"},{"name":"numpy._array_api.logaddexp"},{"name":"numpy._array_api.logical_and"},{"name":"numpy._array_api.logical_not"},{"name":"numpy._array_api.logical_or"},{"name":"numpy._array_api.logical_xor"},{"name":"numpy._array_api.max"},{"name":"numpy._array_api.mean"},{"name":"numpy._array_api.meshgrid"},{"name":"numpy._array_api.min"},{"name":"numpy._array_api.multiply"},{"name":"numpy._array_api.nan"},{"name":"numpy._array_api.negative"},{"name":"numpy._array_api.nonzero"},{"name":"numpy._array_api.norm"},{"name":"numpy._array_api.not_equal"},{"name":"numpy._array_api.ones"},{"name":"numpy._array_api.ones_like"},{"name":"numpy._array_api.outer"},{"name":"numpy._array_api.pi"},{"name":"numpy._array_api.positive"},{"name":"numpy._array_api.pow"},{"name":"numpy._array_api.prod"},{"name":"numpy._array_api.remainder"},{"name":"numpy._array_api.reshape"},{"name":"numpy._array_api.result_type"},{"name":"numpy._array_api.roll"},{"name":"numpy._array_api.round"},{"name":"numpy._array_api.sign"},{"name":"numpy._array_api.sin"},{"name":"numpy._array_api.sinh"},{"name":"numpy._array_api.sort"},{"name":"numpy._array_api.sqrt"},{"name":"numpy._array_api.square"},{"name":"numpy._array_api.squeeze"},{"name":"numpy._array_api.stack"},{"name":"numpy._array_api.std"},{"name":"numpy._array_api.subtract"},{"name":"numpy._array_api.sum"},{"name":"numpy._array_api.tan"},{"name":"numpy._array_api.tanh"},{"name":"numpy._array_api.trace"},{"name":"numpy._array_api.transpose"},{"name":"numpy._array_api.trunc"},{"name":"numpy._array_api.unique"},{"name":"numpy._array_api.var"},{"name":"numpy._array_api.where"},{"name":"numpy._array_api.zeros"},{"name":"numpy._array_api.zeros_like"}]

‎docs/array_api.html

+1,507
Large diffs are not rendered by default.

‎notebooks/analysis.ipynb

+570-541
Large diffs are not rendered by default.

‎scripts/array_api.js

+144
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
#!/usr/bin/env node
2+
3+
/**
4+
* @license MIT
5+
*
6+
* Copyright (c) 2021 Python Data APIs Consortium.
7+
*
8+
* Permission is hereby granted, free of charge, to any person obtaining a copy
9+
* of this software and associated documentation files (the "Software"), to deal
10+
* in the Software without restriction, including without limitation the rights
11+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
12+
* copies of the Software, and to permit persons to whom the Software is
13+
* furnished to do so, subject to the following conditions:
14+
*
15+
* The above copyright notice and this permission notice shall be included in all
16+
* copies or substantial portions of the Software.
17+
*
18+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
23+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24+
* SOFTWARE.
25+
*/
26+
27+
'use strict';
28+
29+
// MODULES //
30+
31+
var join = require( 'path' ).join;
32+
var readJSON = require( '@stdlib/fs/read-json' ).sync;
33+
var ARRAY_API = require( './../data/raw/array_api.json' );
34+
35+
36+
// VARIABLES //
37+
38+
var LIBRARIES = [
39+
'numpy',
40+
'cupy',
41+
'dask',
42+
'jax',
43+
'mxnet',
44+
'pytorch',
45+
'sparse',
46+
'tensorflow'
47+
];
48+
var PREFIXES = {
49+
'numpy': 'numpy._array_api.', // 'numpy.',
50+
'cupy': 'cupy.',
51+
'dask': '',
52+
'jax': '',
53+
'mxnet': 'mxnet.ndarray.',
54+
'pytorch': 'torch.',
55+
'sparse': '',
56+
'tensorflow': 'tf.'
57+
};
58+
var FOPTS = {
59+
'encoding': 'utf8'
60+
};
61+
62+
63+
// MAIN //
64+
65+
/**
66+
* Main execution sequence.
67+
*
68+
* @private
69+
*/
70+
function main() {
71+
var counts;
72+
var fpath;
73+
var alias;
74+
var name;
75+
var data;
76+
var out;
77+
var tmp;
78+
var key;
79+
var fcn;
80+
var o;
81+
var i;
82+
var j;
83+
var k;
84+
85+
counts = {
86+
'name': 'Total APIs: '+ARRAY_API.length
87+
};
88+
for ( j = 0; j < LIBRARIES.length; j++ ) {
89+
key = LIBRARIES[ j ];
90+
91+
// TODO: remove once https://github.com/numpy/numpy/pull/18585 is merged; here, we mark with an asterisk to indicate that this is in-progress...
92+
if ( key === 'numpy' ) {
93+
key += '<sup>*</sup>';
94+
}
95+
counts[ key ] = 0;
96+
}
97+
out = [];
98+
for ( i = 0; i < ARRAY_API.length; i++ ) {
99+
name = ARRAY_API[ i ];
100+
tmp = {
101+
'name': name
102+
};
103+
for ( j = 0; j < LIBRARIES.length; j++ ) {
104+
key = LIBRARIES[ j ];
105+
if ( key === 'numpy' ) {
106+
// For NumPy, we base the data off a WIP PR: https://github.com/numpy/numpy/pull/18585
107+
fpath = join( __dirname, '..', 'data', 'raw', key+'_array_api.json' );
108+
} else {
109+
fpath = join( __dirname, '..', 'data', 'raw', key+'.json' );
110+
}
111+
data = readJSON( fpath, FOPTS );
112+
if ( data instanceof Error ) {
113+
throw data;
114+
}
115+
alias = PREFIXES[ key ] + name;
116+
for ( k = 0; k < data.length; k++ ) {
117+
o = data[ k ];
118+
if ( o.name === alias ) {
119+
// TODO: remove once https://github.com/numpy/numpy/pull/18585 is merged; here, we mark with an asterisk to indicate that this is in-progress...
120+
if ( key === 'numpy' ) {
121+
key += '<sup>*</sup>';
122+
}
123+
tmp[ key ] = '&#128640'; // '&#128588'; // '&#128013'; // '&#128077;';
124+
counts[ key ] += 1;
125+
break;
126+
}
127+
}
128+
if ( k === data.length ) {
129+
// TODO: remove once WIP PR https://github.com/numpy/numpy/pull/18585 is merged:
130+
if ( key === 'numpy' ) {
131+
key += '<sup>*</sup>';
132+
}
133+
tmp[ key ] = '';
134+
}
135+
}
136+
out.push( tmp );
137+
}
138+
out.push( counts );
139+
140+
// Print the data as JSON to stdout:
141+
console.log( JSON.stringify( out, null, 2 ) );
142+
}
143+
144+
main();

‎tools/make/Makefile

+1
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ include $(TOOLS_MAKE_DIR)/debug.mk
7777
include $(TOOLS_MAKE_DIR)/help.mk
7878

7979
# Please keep sorted in alphabetical order:
80+
include $(TOOLS_MAKE_LIB_DIR)/array_api.mk
8081
include $(TOOLS_MAKE_LIB_DIR)/common_apis.mk
8182
include $(TOOLS_MAKE_LIB_DIR)/common_apis_ranks.mk
8283
include $(TOOLS_MAKE_LIB_DIR)/common_complement.mk

‎tools/make/lib/array_api.mk

+115
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
#/
2+
# @license MIT
3+
#
4+
# Copyright (c) 2021 Python Data APIs Consortium.
5+
#
6+
# Permission is hereby granted, free of charge, to any person obtaining a copy
7+
# of this software and associated documentation files (the "Software"), to deal
8+
# in the Software without restriction, including without limitation the rights
9+
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
# copies of the Software, and to permit persons to whom the Software is
11+
# furnished to do so, subject to the following conditions:
12+
#
13+
# The above copyright notice and this permission notice shall be included in all
14+
# copies or substantial portions of the Software.
15+
#
16+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
22+
# SOFTWARE.
23+
#/
24+
25+
# VARIABLES #
26+
27+
# Define the output file path for API compliance data as JSON:
28+
ARRAY_API_JSON_OUT ?= $(DATA_DIR)/array_api.json
29+
30+
# Define the output file path for API compliance data as CSV:
31+
ARRAY_API_CSV_OUT ?= $(DATA_DIR)/array_api.csv
32+
33+
# Define the output file path for viewing API compliance data as an HTML table:
34+
ARRAY_API_HTML_OUT ?= $(DOCS_DIR)/array_api.html
35+
36+
37+
# RULES #
38+
39+
#/
40+
# Generates a JSON file containing the compliance of library APIs.
41+
#
42+
# @private
43+
#/
44+
$(ARRAY_API_JSON_OUT): $(JOIN_JSON_OUT)
45+
$(QUIET) $(NODE) $(SCRIPTS_DIR)/array_api.js > $(ARRAY_API_JSON_OUT)
46+
47+
#/
48+
# Generates a CSV file containing the compliance of library APIs.
49+
#
50+
# @private
51+
#/
52+
$(ARRAY_API_CSV_OUT): $(ARRAY_API_JSON_OUT)
53+
$(QUIET) $(NODE) $(SCRIPTS_DIR)/json2csv.js $(ARRAY_API_JSON_OUT) > $(ARRAY_API_CSV_OUT)
54+
55+
#/
56+
# Generates HTML assets for viewing compliance data.
57+
#
58+
# @private
59+
#/
60+
$(ARRAY_API_HTML_OUT): $(ARRAY_API_JSON_OUT)
61+
$(QUIET) $(NODE) $(SCRIPTS_DIR)/html_table.js $(ARRAY_API_JSON_OUT) --title="Array API Function Name Compliance" > $(ARRAY_API_HTML_OUT)
62+
63+
#/
64+
# Generates data assets.
65+
#
66+
# @example
67+
# make array-api
68+
#/
69+
array-api: $(ARRAY_API_JSON_OUT) $(ARRAY_API_CSV_OUT) $(ARRAY_API_HTML_OUT)
70+
71+
.PHONY: array-api
72+
73+
#/
74+
# Opens an HTML table in a web browser.
75+
#
76+
# @example
77+
# make view-array-api
78+
#/
79+
view-array-api: $(ARRAY_API_HTML_OUT)
80+
$(QUIET) $(OPEN) $(ARRAY_API_HTML_OUT)
81+
82+
.PHONY: view-array-api
83+
84+
#/
85+
# Removes build artifacts.
86+
#
87+
# @example
88+
# make clean-array-api
89+
#/
90+
clean-array-api: clean-array-api-data clean-array-api-docs
91+
92+
.PHONY: clean-array-api
93+
94+
#/
95+
# Removes generated datasets.
96+
#
97+
# @example
98+
# make clean-array-api-data
99+
#/
100+
clean-array-api-data:
101+
$(QUIET) $(DELETE) $(DELETE_FLAGS) $(ARRAY_API_JSON_OUT)
102+
$(QUIET) $(DELETE) $(DELETE_FLAGS) $(ARRAY_API_CSV_OUT)
103+
104+
.PHONY: clean-array-api-data
105+
106+
#/
107+
# Removes generated documentation.
108+
#
109+
# @example
110+
# make clean-array-api-docs
111+
#/
112+
clean-array-api-docs:
113+
$(QUIET) $(DELETE) $(DELETE_FLAGS) $(ARRAY_API_HTML_OUT)
114+
115+
.PHONY: clean-array-api-docs

0 commit comments

Comments
 (0)
Please sign in to comment.