from invoke import task
import glob
bin_sources = [
'bin/ascoltami2',
'bin/captureDevice',
'bin/collector',
'bin/collector_loadtest.py',
'bin/effecteval',
'bin/effectsequencer',
'bin/homepageConfig',
'bin/inputdemo',
'bin/inputquneo',
'bin/keyboardcomposer',
'bin/listsongs',
'bin/musicPad',
'bin/musictime',
'bin/paintserver',
'bin/picamserve',
'bin/rdfdb',
'bin/run_local.py',
'bin/subcomposer',
'bin/subserver',
'bin/vidref',
'bin/vidrefsetup',
'bin/wavecurve',
]
def pkg_sources():
return glob.glob('light9/**/*.py', recursive=True)
@task
def mypy(ctx):
def run(sources):
ss = ' '.join(sources)
ctx.run(f'MYPYPATH=stubs env/bin/mypy --check-untyped-defs {ss}',
pty=True, warn=True)
sources = ' '.join(bin_sources + pkg_sources())
ctx.run(f'env/bin/flake8 --ignore=E115,E123,E124,E126,E225,E231,E261,E262,E265,E301,E302,E303,E305,E306,E401,E402,E501,E701,E731,W291,W293,W391,W504 {sources}', warn=True)
sources = ' '.join(pkg_sources())
for src in bin_sources:
print(f"mypy {src}")
run([src])# + pkg_sources())
@task
def reformat(ctx):
ctx.run("env/bin/yapf --verbose --parallel --in-place --style google light9/**/*.py `file --no-pad bin/* | grep 'Python script' | perl -lpe 's/:.*//'`")
@task
def test(ctx):
ctx.run('docker build -f Dockerfile.build -t light9_build:latest .')
ctx.run('docker run --rm -it -v `pwd`:/opt light9_build:latest'
' nose2 -v light9.currentstategraphapi_test light9.graphfile_test',
pty=True)