Developing pyatv¶
If you feel that you want to help improving pyatv, this is the page for you.
Development environment¶
It is extremely simple to get started: fork the project on GitHub, clone it and run the bundled script:
git clone https://github.com/postlund/pyatv.git
cd pyatv
./setup_dev_env.sh
source bin/activate
You need virtualenv
and python development package installed. On debian
or debian based distros (e.g. Ubuntu or raspian), you can just run the
following before running setup_dev_env.sh
:
sudo apt-get install virtualenv python3-dev
The included script setup_dev_env.sh
will automatically do the following
tasks:
Create a python virtual environment
Install the library as “develop”
Install all dependencies and required tools
Ensure that tests work by running tox
Generate (this) documentation with sphinx
Once everything is done, all you have to do is to ensure that you are in the
virtual environment (source bin/activate
).
Note
As a library, pyatv should be platform independent, but it has only been verified to work on Linux and macOS. The same goes for this helper script. Support on Windows in particular is not guaranteed. Feel free to improve on this.
Running the tests¶
You can run the tests either using setuptools
or by using tox:
python setup.py test
OR
tox -e py35 # python 3.5
When running with tox, you will also get code coverage. The report will be
written to a directory called htmlcov
.
Linting¶
To ensure good code quality, the following tools are used:
flake8 - verifies that code follows code standard
pylint - performs code analysis
pydocstyle - checks documentation strings
Use tox to easily check everything:
tox -e lint
Requirements for pull requests¶
For a pull request to get merged, the following must be met:
Tests for new functionality or bug fixes
All tests must pass
Do not decrease code coverage
Include pydoc and update this documentation
Linting must pass (just run tox)
When sending the pull request, make sure it is rebased against master.