1 | #!/usr/bin/env bash
|
2 | #
|
3 | # See if mypy's pyi format is useful. It does extract members.
|
4 | #
|
5 | # Usage:
|
6 | # ./pyi.sh <function name>
|
7 |
|
8 | set -o nounset
|
9 | set -o pipefail
|
10 | set -o errexit
|
11 |
|
12 | install() {
|
13 | # needs
|
14 | pip3 install mypy
|
15 | }
|
16 |
|
17 | oil-stubgen() {
|
18 | local module=$1
|
19 | local out=_tmp/pyi
|
20 | PYTHONPATH=. _OVM_RESOURCE_ROOT=. ~/.local/bin/stubgen --py2 -o $out $module
|
21 | }
|
22 |
|
23 | demo() {
|
24 | local out=_tmp/pyi
|
25 | mkdir -p $out
|
26 | # core/util.py respects that
|
27 | oil-stubgen bin.oil
|
28 | #oil-stubgen osh/cmd_parse
|
29 | }
|
30 |
|
31 | # Also used in test/wild.sh
|
32 | multi() { ~/hg/tree-tools/bin/multi "$@"; }
|
33 |
|
34 | manifest() {
|
35 | # TODO: Should change build/dynamic_deps.py
|
36 | local out=_tmp/mypy
|
37 | mkdir -p $out
|
38 | PYTHONPATH=. build/dynamic_deps.py py-manifest bin.oil | multi cp $out
|
39 | }
|
40 |
|
41 | stubgen-path() {
|
42 | local py_path=$1
|
43 | module=${py_path%'.py'} # strip suffix
|
44 | module=${module//'/'/.} # turn / to .
|
45 | echo "stubgen $module"
|
46 |
|
47 | local out=_tmp/pyi
|
48 |
|
49 | # Hm somehow this causes a syntax error.
|
50 |
|
51 | #PYTHONPATH=_tmp/mypy _OVM_RESOURCE_ROOT=. ~/.local/bin/stubgen --py2 -o $out $module
|
52 | PYTHONPATH=. _OVM_RESOURCE_ROOT=. ~/.local/bin/stubgen --py2 -o $out $module
|
53 | }
|
54 |
|
55 | stubgen-all() {
|
56 | find _tmp/mypy -name '*.py' -a -printf '%P\n' \
|
57 | | grep -v stat | xargs -n 1 -- $0 stubgen-path
|
58 | }
|
59 |
|
60 | show() {
|
61 | # issue: you get 'log'
|
62 | find _tmp/pyi -name '*.pyi' | xargs wc -l
|
63 | find _tmp/pyi -name '*.pyi' | xargs head -n 10
|
64 | }
|
65 |
|
66 | "$@"
|