This project aims to be a Python package for various data structures in computer science. We are also working on the development of algorithms including their parallel implementations. To the best of our knowledge, a well-designed library/package which has covered most of the data structures and algorithms including their parallel implementation doesn't exist yet.
Once the software design becomes more stable after a few releases of this package in the near future, we also aim to provide APIs for the code in C++ and Java as well.
You can install the library by running the following command,
python -m pip install .
For development purposes, you can use the option
e as shown below,
python -m pip install -e .
Make sure that your python version is above
For testing your patch locally follow the steps given below,
python3 -m pytest --doctest-modules --cov=./ --cov-report=html. Look for,
htmlcov/index.htmland open it in your browser, which will show the coverage report. Try to ensure that the coverage is not decreasing by more than 1% for your patch.
For a good visualisation of the different data structures and algorithms, refer the following websites:
You can use the examples given in the following book as tests for your code:
As we know Python is an interpreted language and hence is slow compared to C++, the most popular language for competitive programming. We still decided to use Python because the software development can happen at a much faster pace and it is much easier to test various software designs and APIs as coding them out takes no time. However, keeping the need of the users in mind, we will shift to C++ backend, which will happen quickly as we would be required to just translate the tested code rather than writing it from scratch, after a few releases with APIs available for all the languages.
Follow the steps given below,
git clone https://github.com/codezonediitj/pydatastructs/
git remote add origin_user https://github.com/<your-github-username>/pydatastructs/
git checkout -b <your-new-branch-for-working>.
git add ..
git commit -m "your-commit-message".
git push origin_user <your-current-branch>.
That's it, 10 easy steps for your first contribution. For future contributions just follow steps 5 to 10. Make sure that before starting work, always checkout to master and pull the recent changes using the remote
origin and then start following steps 5 to 10.
See you soon with your first PR.
It is recommended to go through the following links before you start working.
We recommend you to join our gitter channel for discussing anything related to the project.
Please follow the rules and guidelines given below,
Please take over, meaning that anyone willing to continue that PR can start working on it.
Could Close, meaning that the PR is not necessary at the moment.
The following parameters are to be followed to pass the code quality tests for your Pull Requests,
.pyfile should end with exactly one new line.
Noneshould be done by reference (using
is not) and not by value(
Thanks to these wonderful people ✨✨: