Skip to content

Latest commit

 

History

History
96 lines (59 loc) · 2.48 KB

CONTRIBUTING.md

File metadata and controls

96 lines (59 loc) · 2.48 KB

Contributing

Contributions are welcome and highly appreciated!

Feature suggestions and bug reports

If you have any feature suggestions or encounter any bugs, please create an issue in the project's repository. The case will be reviewed and if it is legitimate, you are welcome to work on addressing the issue and creating a pull request.

TODO

Check out the TODO file for a list of pending tasks and future improvements.

Getting started

To start working on this project, first, clone the repository:

git clone https://github.com/realshouzy/pynrw.git && cd pynrw

Setting up a virtual environment

It is highly recommended to utilize a virtual environment to develop on this project. The easiest way to set up a virtual environment is by using tox:

tox devenv venv

Otherwise you could also use virtualenv or venv.

Install development dependencies (only necessary for virtualenv or venv)

To install all the tools, plugins and other dependencies used for development and pynrw, run this:

pip install -r requirements-dev.txt

Setting up the pre-commit hooks

With the environment activated run:

pre-commit install

Running tests and code linting

This project utilizes tox, so to run everything (tests and pre-commit), run this:

tox r

Running only tests

Running only the tests can be done by running:

tox r -e py311 # or the interpreter version of choice

Alternatively, the tests can be directly run using:

pytest

To only run a specific test run:

pytest -k test_name_of_the_test
Annotation

Note that the tests for the network classes may be unstable, because of threading. Therefore they are omitted from tox and the Test workflow using pytest markers. To do the same when running pytest directly, run:

pytest -m "not networktest"

Code linting

The linting and formatting is done using pre-commit, thus run:

pre-commit run --all-files

If any questions should arise, feel free to create an issue and ask for assistance.

Thank you for understanding and your willingness to contribute to this project!