Requirements
Here is the list of requirements:
Python 3.8.0+
alembic
colorama
cryptography
dnspython
domain2idna
inflection
packaging
psycopg2
(optional)PyMySQL
python-box
python-dotenv
PyYAML
requests
setuptools
sqlalchemy
Python 3.8.0+
The specification 3.8.0+
is because we test PyFunceble (daily)
in all (3.x
) versions from 3.8.0
.
Otherwise, more semantically, PyFunceble is written for all Python 3.8+
version.
alembic
As we want to automate database (MySQL/MariaDB) schema migration, we
chose alembic
for the job.
colorama
As we use some coloration, colorama
is required.
cryptography
As we use some cryptography algorithm for message hashing as example,
cryptography
is required.
dnspython
As we use it to do the DNS lookups, dnspython
is required.
domain2idna
As we propose the conversion of domains to IDNA, domain2idna
is
required.
Note
domain2idna
is maintained and developed by
Nissar Chababy (@funilrys), the developer of PyFunceble.
The source code can be found on GitHub.
inflection
We don’t necessarily want to reinvent the wheel while generating the (database) tables name from our schema descriptions. This tool is a relief!
packaging
we don’t necessarily want to reinvent the wheel to compare the current with the latest (upstream) version. This module is a relief - too !
psycopg2
(optopnal)
As we propose the PostgreSQL
database types, psycopg2
is required.
Warning
This is an optional dependency. If you want to work with psql, you are required to install the development headers then execute the following.
pip3 install --user pyfunceble[-dev][psql]
PyMySQL
As we propose the MariaDB
or MySQL
database types,
PyMySQL
is required.
python-box
As we use python-box
for a better code access to the configuration,
it is required.
python-dotenv
As we are able to load dotenv files, python-dotenv
is required.
PyYAML
As our configuration file is written in .yaml
, PyYAML
is
required.
requests
As we use requests
multiple times to communicate with webservices,
requests
is required.
setuptools
As we use install_requires=xx
inside our setup.py
,
setuptools
is required.
sqlalchemy
As we don’t want to maintain several RAW SQL files, we use sqlalchemy
for the database communication and manipulation.