My python libs to handle common tasks
Go to file
Benjamin Renard e368521a96
config: add _set_option() method to ConfigurableObject
2024-01-03 15:12:52 +01:00
docker Improve docker images and use brenard/mylib:dev-master to run tests quickly 2023-01-16 13:24:19 +01:00
mylib config: add _set_option() method to ConfigurableObject 2024-01-03 15:12:52 +01:00
tests PgDB: fix doSelect() method to retreive list of dicts instead of list of lists. 2023-12-15 12:12:48 +01:00
.gitignore Add build package and Woodpecker CI stuff 2022-04-27 17:12:00 +02:00
.pre-commit-config.yaml Update pre-commit config and fix some pylint & bandit warnings 2023-10-27 13:35:59 +02:00
.pylintrc Email: add support for CC & BCC recipients 2023-03-14 17:12:50 +01:00
.woodpecker.yml Improve docker images and use brenard/mylib:dev-master to run tests quickly 2023-01-16 13:24:19 +01:00
README.md Introduce pyupgrade,isort,black and configure pre-commit hooks to run all testing tools before commit 2023-01-16 12:56:12 +01:00
build.sh build.sh: exclude pre-commit commits on computing Debian changelog 2023-07-10 14:19:41 +02:00
setup.cfg Introduce pyupgrade,isort,black and configure pre-commit hooks to run all testing tools before commit 2023-01-16 12:56:12 +01:00
setup.py setup.py: use README.md file as long_description (required by latest stdeb lib) 2023-07-10 16:04:56 +02:00
tests.sh Fix tests.sh exit code 2023-01-16 13:37:53 +01:00

README.md

Python MyLib

Just a set of helpers small libs to make common tasks easier in my script development.

status-badge

Requirements

apt install \
    build-essential \
    python3 \
    python3-dev

# For LDAP:
apt install libldap2-dev libsasl2-dev

# For Config:
apt install pkg-config libsystemd-dev

# For PgSQL:
apt install libpq-dev

# For MySQL:
apt install libmariadb-dev

Installation

Using pip

Just run pip install git+https://gitea.zionetrix.net/bn8/python-mylib.git

From source

Just run python setup.py install

Note: This project could previously use as independent python files (not as module). This old version is keep in legacy git branch (not maintained).

Include libs

  • mylib.email.EmailClient: An email client to forge (eventually using template) and send email via a SMTP server
  • mylib.ldap.LdapServer: A small lib to make requesting LDAP server easier. It's also provide some helper functions to deal with LDAP date string.
  • mylib.mysql.MyDB: An extra small lib to remember me how to interact with MySQL/MariaDB database
  • mylib.pgsql.PgDB: An small lib to remember me how to interact with PostgreSQL database. Warning: The insert/update/delete/select methods demonstrate how to forge raw SQL request, but it's a bad idea: Prefer using prepared query.
  • mylib.opening_hours: A set of helper functions to deal with french opening hours (including normal opening hours, exceptional closure and nonworking public holidays).
  • mylib.pbar.Pbar: A small lib for progress bar
  • mylib.report.Report: A small lib to implement logging based email report send at exit

To know how to use these libs, you can take a look on mylib.scripts content or in tests directory.

Code Style

pylint is used to check for errors and enforces a coding standard, using thoses parameters:

pylint --extension-pkg-whitelist=cx_Oracle

flake8 is also used to check for errors and enforces a coding standard, using thoses parameters:

flake8 --max-line-length=100

black is used to format the code, using thoses parameters:

black --target-version py37 --line-length 100

isort is used to format the imports, using those parameter:

isort --profile black --line-length 100

pyupgrade is used to automatically upgrade syntax, using those parameters:

pyupgrade --keep-percent-format --py37-plus

Note: There is .pre-commit-config.yaml to use pre-commit to automatically run these tools before commits. After cloning the repository, execute pre-commit install to install the git hook.

Copyright (c) 2013-2021 Benjamin Renard brenard@zionetrix.net

License

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 3 as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.