CBF-SDP Interface Emulator¶
This is the python package to emulate the CBF-SDP interface developed as part of Feature SP-794 Requirements¶
The system used for development needs to have Python 3 and pip installed.
Install¶
Always use a virtual environment. Pipenv is now Python’s officially
recommended method, but we are not using it for installing requirements when building on the CI Pipeline. You are encouraged to use your preferred environment isolation (i.e. pip, conda or pipenv while developing locally.
For working with Pipenv, follow these steps at the project root:
First, ensure that ~/.local/bin is in your PATH with:
> echo $PATH
In case ~/.local/bin is not part of your PATH variable, under Linux add it with:
> export PATH=~/.local/bin:$PATH
or the equivalent in your particular OS.
Then proceed to install pipenv and the required environment packages:
> pip install pipenv # if you don't have pipenv already installed on your system
> pipenv install
> pipenv shell
You will now be inside a pipenv shell with your virtual environment ready.
Use exit to exit the pipenv environment.
Testing¶
- Put tests into the
testsfolder - Use PyTest as the testing framework
- Reference: PyTest introduction
- Run tests with
python setup.py test- Configure PyTest in
setup.pyandsetup.cfg
- Configure PyTest in
- Running the test creates the
htmlcovfolder- Inside this folder a rundown of the issues found will be accessible using the
index.htmlfile
- Inside this folder a rundown of the issues found will be accessible using the
- All the tests should pass before merging the code
Code analysis¶
- Use Pylint as the code analysis framework
- By default it uses the PEP8 style guide
- Use the provided
code-analysis.shscript in order to run the code analysis in themoduleandtests - Code analysis should be run by calling
pylint ska_python_skeleton. All pertaining options reside under the.pylintrcfile. - Code analysis should only raise document related warnings (i.e.
#FIXMEcomments) before merging the code
Writing documentation¶
- The documentation generator for this project is derived from SKA’s SKA Developer Portal repository
- The documentation can be edited under
./docs/src - If you want to include only your README.md file, create a symbolic link inside the
./docs/srcdirectory if the existing one does not work:
$ cd docs/src
$ ln -s ../../README.md README.md
- In order to build the documentation for this specific project, execute the following under
./docs:
$ make html
- The documentation can then be consulted by opening the file
./docs/build/html/index.html