Installation¶
EOL of any version 3.x¶
Development of PyFunceble version 3.x have reached the End Of Life. This means any errors recurring in any version below PyFunceble version 4.0.0 will no longer be fixed, but we will still be here to help you with a number of workarounds that might be required to have these releases working for you, until the final stable release of PyFunceble version 4.0.0.
If you are new to PyFunceble, the team will recommend you to start by using and installing the pre-release of PyFunceble 4.0.0
You can read more about how this is done in the docs at: https://pyfunceble.readthedocs.io/en/dev/installation/index.html#development-version
You should know that if you are going to install version 4.0.0 through pip, you should use one of the following lines. Note the –pre flag
pip3 install --user --pre pyfunceble-dev
python3.9 -m pip install --user --pre pyfunceble-dev
In case you would like to install PyFunceble system-wide, you have to omit
the –user flag from the lines above, and you should probably be using
your sudo account to do this, In that case don’t forget the -H
flag…
Install PyFunceble-dev 4.x systemwide with sudo.
sudo -H pip3 install --user --pre pyfunceble-dev
sudo -H python3.9 -m pip install --user --pre pyfunceble-dev
We will also like to point you attention to the requirement section of: https://pyfunceble.readthedocs.io/en/dev/installation/index.html#requirements, where there is a pending PR (#196), which will correct the required python version to python version 3.7
Requirements¶
Here is the list of requirements:
- Python 3.6.11+
alembic
colorama
cryptography
dnspython
domain2idna
inflection
PyMySQL
python-box
python-dotenv
PyYAML
requests
setuptools
sqlalchemy
Python 3.6.11+¶
The specification 3.6.11+
is because we test PyFunceble (daily)
in all (3.x
) versions from 3.6.11
.
Otherwise, more semantically, PyFunceble is written for all Python 3.6+ 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.
Its 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 schama descriptions. This tool is a relief!
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.
Stable version¶
Using pip
¶
From PyPi¶
$ pip3 install --user PyFunceble
Note
We recommend the --user
flag which installs the required dependencies at the user level. More information about it can be found on pip documentation.
Warning
We do not recommend the --user
flag when using PyFunceble
into containers like - for example - Travis CI.
From GitHub¶
$ pip3 install --user git+https://github.com/funilrys/PyFunceble.git@master#egg=PyFunceble
Note
We recommend the --user
flag which installs the required dependencies at the user level. More information about it can be found on pip documentation.
Warning
We do not recommend the --user
flag when using PyFunceble
into containers like - for example - Travis CI.
Using the AUR (for Arch Linux users)¶
The package can be found at https://aur.archlinux.org/packages/pyfunceble/.
With makepkg¶
$ wget https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=pyfunceble
$ makepkg
$ sudo pacman -U pyfunceble*.tar.xz
With your favorite AUR helper¶
Warning
We do not recommend any AUR helper but keep in mind that some AUR helpers are “better” than other. For more information about your current (or any other) AUR helper please report to the ArchWiki page.
$ yourFavoriteAurHelper -S pyfunceble
Using docker (hub)¶
The image description can be found at https://hub.docker.com/r/pyfunceble/pyfunceble
$ docker pull pyfunceble/pyfunceble
Using conda
¶
Our repository is located at https://anaconda.org/pyfunceble/pyfunceble
conda install -c conda-forge -c pyfunceble pyfunceble=3
Pure Python method¶
Execute the following and enjoy PyFunceble!
$ git clone https://github.com/funilrys/PyFunceble.git
$ cd PyFunceble
$ python3 setup.py test
$ python3 setup.py install # Avoid this if you want to uninstall one day.
$ pip3 install --user -e .
Note
We recommend the --user
flag which installs the required dependencies at the user level. More information about it can be found on pip documentation.
Warning
We do not recommend the --user
flag when using PyFunceble
into containers like - for example - Travis CI.
Development version¶
The development version of PyFunceble represents the dev
branch.
It’s intended for the development of next features
but is always at a usable state.
Indeed, We should not push to the dev
branch until
we are sure that the new commit does not break or introduce
critical issue under PyFunceble.
For development¶
Execute the following and let’s hack PyFunceble!
Note
We highly recommend you to develop PyFunceble under a virtualenv
.
$ git clone https://github.com/funilrys/PyFunceble.git
$ cd PyFunceble
$ git checkout dev
$ virtualenv venv
$ source venv/bin/activate
$ pip3 install -e .
Note
After installing with:
$ source venv/bin/activate
$ pip3 install -e .
- you only need to update the repository.
- you don’t have to rerun the
pip
command.
For usage¶
Using pip
¶
Execute one of the following and enjoy PyFunceble!
From PyPi¶
$ pip3 install --user PyFunceble-dev
Note
We recommend the --user
flag which installs the required dependencies at the user level. More information about it can be found on pip documentation.
Warning
We do not recommend the --user
flag when using PyFunceble
into containers like - for example - Travis CI.
From GitHub¶
$ pip3 install --user git+https://github.com/funilrys/PyFunceble.git@dev#egg=PyFunceble
Note
We recommend the --user
flag which installs the required dependencies at the user level. More information about it can be found on pip documentation.
Warning
We do not recommend the --user
flag when using PyFunceble
into containers like - for example - Travis CI.
Using the AUR (for Arch Linux users)¶
The package can be found at https://aur.archlinux.org/packages/pyfunceble-dev/.
With makepkg¶
$ wget https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=pyfunceble-dev
$ makepkg
$ sudo pacman -U pyfunceble-dev*.tar.xz
With your favorite AUR helper¶
Warning
We do not recommend any AUR helper but keep in mind that some AUR helpers are “better” than other. For more information about your current (or any other) AUR helper please report to the ArchWiki page.
$ yourFavoriteAurHelper -S pyfunceble-dev
Using docker (hub)¶
The image description can be found at https://hub.docker.com/r/pyfunceble/pyfunceble-dev
$ docker pull pyfunceble/pyfunceble-dev
Using conda
¶
Our repository is located at https://anaconda.org/pyfunceble/pyfunceble-dev
conda install -c conda-forge -c pyfunceble pyfunceble-dev=3
Pure Python method¶
Execute the following and enjoy PyFunceble!
$ git clone https://github.com/funilrys/PyFunceble.git
$ cd PyFunceble && git checkout dev
$ python3 setup.py test
$ python3 setup.py install # Avoid this if you want to uninstall one day.
$ pip3 install --user -e .
Note
We recommend the --user
flag which installs the required dependencies at the user level. More information about it can be found on pip documentation.
Warning
We do not recommend the --user
flag when using PyFunceble
into containers like - for example - Travis CI.