Development¶
For software development purposes alexandria3k can also be installed and used through its Github repository, rather than as a Python package.
Installation¶
git clone https://github.com/dspinellis/alexandria3k.git
cd alexandra3k/src
pipenv install
Development environment¶
Perform the following steps for setting up a virtual environment with the required development dependencies.
# While in alexandria3k/src directory
# Install development dependencies
pipenv install --dev
# Launch a shell in the virtual environment
pipenv shell
You can the run the command-line version from the source distribution top-level directory as follows:
bin/alexandria3k --help
Testing¶
Python unit and integration tests¶
# While in the top-level directory
python3 -m unittest discover
SQL unit tests¶
To run SQL unit tests install rdbunit and the SQLite command-line tool.
# While in the top-level directory
for t in tests/*.rdbu; do rdbunit --database=sqlite $t | sqlite3 ; done
Code formatting¶
# While in the top-level directory
black -l 79 src/alexandria3k/*.py
Linting¶
# While in the top-level directory
python -m pylint src/alexandria3k/*.py
Database schema diagrams¶
After the database schema has changed, its relational diagrams in the documentation must be updated as follows.
# While in the top-level directory
bin/update-schema
This requires an installed version of the GraphViz dot command.
Building¶
# While in the top-level directory
python3 -m build
Documentation building¶
The process for converting the documentation into HTML and a Unix man page is documented in the installation instructions.