Contributions are welcome and highly appreciated!
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.
Check out the TODO file for a list of pending tasks and future improvements.
To start working on this project, first, clone the repository:
git clone https://github.com/realshouzy/pynrw.git && cd pynrw
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
.
To install all the tools, plugins and other dependencies used for development and pynrw
, run this:
pip install -r requirements-dev.txt
With the environment activated run:
pre-commit install
This project utilizes tox
, so to run everything (tests and pre-commit), run this:
tox r
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
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"
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!