For now GitHub bug traker is used for this project.
We aim to be user friendly, so if you have any issue or suggestion for the UI/UX or about the application packging, please tell us, we appreciate it.
- The 3rd version of the Python programming language is used mainly in this project.
- Dependencies managment is handled using requirements files with uv.
requirements.in
contain requirements for running the application andrequirements-dev.in
contain requirements for development..txt
files are locked requirements with hashes generated usinguv
to provide a reproducible environment.- For development you will need to use both files, while users just need to use the
requirements.txt
file.
pre-commit
will take care about generating.txt
files. You should just edit.in
files or useuv
to upgrade locked requirements.
First clone the git repository:
git clone https://github.com/zefr0x/hashes.git
For development you are recomended to use uv for reproducing the same environment.
- Create a virtual environment and activate it
uv venv
source .venv/bin/activate
- Run the folowing command in the project's root directory to install all the dependencies for development
uv pip sync requirements/{requirements,requirements-dev}.txt
- Then you can run the application as a python module
python3 -m hashes
You can use the
justfile
for the last two steps if you want to.
- You should type hint every thing as possible.
- You should comment every thing to keep the code easy to read. Every file, every class, every function and any line that need a comment.
You should use:
You can also use any tool that you want as long as it's compatable with the required style.
To make every thing easy pre-commit
is used in this project, it should run in every commit, so you shouldn't commit any thing without checking it first.
First install it:
pip install pre-commit
You can use another way to install it, maybe from your OS's package manager.
Then add it as a git hook while you are inside the repository:
pre-commit install
TODO...
The application's GUI is prepared for internationalisation using gettext.
Go to the ./po
directory for more details.
The name of the application should be changed with respect to the target locale, but it must convey the same meaning.