| 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 | "$@"
|