Skip to content

How to Develop (Environment and Each Command information)

simonritchie edited this page Feb 27, 2021 · 7 revisions

How to Develop

Docker Manipulations

Build Docker Image

$ cd <your project root directory path>
$ docker image build -t apyscript:0.1.1 .

Create Docker Container

$ docker run -it --name apyscript -v <your host workspace dir>:/mnt/apyscript -t apyscript:0.1.1 bash

e.g.,

$ docker run -it --name apyscript -v /d/workspace/github/apyscript:/mnt/apyscript -t apyscript:0.1.1 bash

Start Stopping Docker Container

docker start apyscript
docker container exec -it apyscript bash

Remove Docker Container

docker container stop apyscript
docker container rm apyscript

Build Docker Image for Test Projects

$ cd <your project root directory path>
$ docker image build -t apyscript_test_projects:0.1.1 ./test_projects/

Create Docker Container for Test Projects

$ docker run -it --name apyscript_test_projects-v <your host workspace dir>:/mnt/test_projects -t apyscript_test_projects:0.1.1 bash

e.g.,

$ docker run -it --name apyscript_test_projects -v /d/workspace/github/apyscript/test_projects:/mnt/test_projects -t apyscript_test_projects:0.1.1 bash

Start Stopping Docker Container for Test Projects

docker start apyscript_test_projects
docker container exec -it apyscript_test_projects bash

Testing

Run Overall Tests

$ pytest --cov=./apyscript tests/ -v -s --workers auto --lf

If you want to check coverage missed statement, add --cov-report term-missing option:

$ pytest --cov=./apyscript tests/ -v -s --workers auto --lf --cov-report term-missing

Apply Lints

Run All Lints

$ python apply_lints.py

autoflake

$ autoflake --in-place --remove-unused-variables --remove-all-unused-imports -r .

isort

$ isort --force-single-line-imports .

autopep8

$ autopep8 --in-place --aggressive --aggressive -r --ignore=E402 .

flake8

$ flake8 --ignore E402,W503 ./

numdoclint

$ numdoclint -p ./ -r -f test,sample,_test,_sample

mypy

$ mypy --ignore-missing-imports --follow-imports skip --disallow-untyped-calls --disallow-untyped-defs --strict-optional --strict-equality ./apyscript/ ./tests/ ./test_projects/

PyPI

Build project for PyPI:

$ python build.py

Upload to PyPI:

$ twine upload dist/*

Clone this wiki locally