Skip to main content

Toolbox for Python scripts

Project description

https://badge.fury.io/py/pytoolbox.png https://github.com/davidfischer-ch/pytoolbox/actions/workflows/python-package.yml/badge.svg https://coveralls.io/repos/davidfischer-ch/pytoolbox/badge.png

Afraid of red status ? Please click on the link, sometimes this is not my fault ;-)

This module is a Toolbox for Python scripts.

Documentation: https://pytoolbox.readthedocs.org

Repository: https://github.com/davidfischer-ch/pytoolbox

This library supports Python 3.11 and more recent.

What the release number stands for ?

I do my best to follow this interesting recommendation : Semantic Versioning 2.0.0

How to install it ?

Install some packages that are not handled by pip:

$ sudo apt install liblzma-dev libxml2-dev libxslt-dev libyaml-dev libz-dev
$ sudo apt install ffmpeg git-core python3-dev python3-gi python3-pip screen

If planning to use the imaging extra, especially the exif classes, then you’ll have to install:

$ sudo apt install libcairo2 libcairo2-dev libexiv2-dev libgexiv2-dev libgirepository1.0-dev

The gir1.2-gexiv2-0.10 should also be installed, maybe its already the case.

You may find useful to read PyGObject’s documentation.

If planning to use the vision feature, then you have to install some requirements for dlib:

$ sudo apt install build-essential cmake pkg-config

See https://learnopencv.com/install-dlib-on-ubuntu/ for an up-to-date procedure.

Make sure that pip is up-to-date (PIPception):

$ source /some/python3/venv/bin/active
$ pip install --upgrade pip setuptools wheel

Then, you only need to run setup.py:

$ source /some/python3/venv/bin/activate
$ pip install .

How to enable features/modules ?

Example:

$ python setup.py install --help

Common commands: (see '--help-commands' for more)

  setup.py build      will build the package underneath 'build/'
  setup.py install    will install the package

Global options:
  --verbose (-v)  run verbosely (default)
  --quiet (-q)    run quietly (turns verbosity off)
  --dry-run (-n)  don't actually do anything
  --help (-h)     show detailed help message
  --no-user-cfg   ignore pydistutils.cfg in your home directory

Options for 'WithExtra' command:
  ...
  --extra-all                          Install dependencies for All Modules.
  --extra-atlassian                    Install dependencies for Atlassian.
  --extra-aws                          Install dependencies for AWS.
  --extra-django                       Install dependencies for Django.
  --extra-django-filter                Install dependencies for Django Filter.
  --extra-django-formtools             Install dependencies for Django Form Tools.
  --extra-flask                        Install dependencies for Flask.
  --extra-imaging                      Install dependencies for Imaging.
  --extra-jinja2                       Install dependencies for Jinja2.
  --extra-mongodb                      Install dependencies for MongoDB.
  --extra-network                      Install dependencies for Networking.
  --extra-pandas                       Install dependencies for Pandas.
  --extra-rest-framework               Install dependencies for Django REST Framework.
  --extra-selenium                     Install dependencies for Selenium.
  --extra-smpte2022                    Install dependencies for SMPTE-2022.
  --extra-unittest                     Install dependencies for Unit Test.
  --extra-vision                       Install dependencies for Vision.
  --extra-voluptuous                   Install dependencies for Voluptuous.
  --extra-doc                          Install dependencies for Pytoolbox Docs.
  --extra-test                         Install dependencies for Pytoolbox Tests.

usage: setup.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
   or: setup.py --help [cmd1 cmd2 ...]
   or: setup.py --help-commands
   or: setup.py cmd --help


$ python setup.py install --extra-smpte2022

Another way to do this, with pip:

$ pip install -e .[django,flask,mongo,smpte2022]

How to check coverage ?

$ source /some/python3/venv/bin/activate
$ pip install -e .[all,test]
$ flake8 pytoolbox
$ pytest
$ xdg-open htmlcov/index.html

Remarks:

  • All Django related modules are excluded from tests!

  • However I am using them with Django 1.8 up to 3.1.0.

How to use it ?

Here is an example hello.py using the cmd function provided by pytoolbox:

$ from pytoolbox.subprocess import cmd
$ print(cmd('echo Hello World!')['stdout'])

How to generate documentation ?

The documentation is generated by Sphinx. In fact most of this documentation is extracted from the docstrings of the code.

Here is the procedure:

$ source /some/python3/venv/bin/activate
$ pip install -e .[docs]
$ xdg-open docs/build/html/index.html

How to add it to dependencies of my own project ?

Here is an example setup.py for a project called my-cool-project:

  from setuptools import setup

  setup(
name='my-cool-project',
            version='0.8',
            author='Firstname Lastname',
            author_email='author@something.com',
            install_requires=['...', 'pytoolbox>=14<15', '...'],
            tests_require=['...', 'pytest', '...'],
            license='GPLv3',
            url='https://github.com/nickname/my-cool-project',
            packages=['my_cool_project'])

See pip vcs support to get further details about this.

You also need to install git-core, but it is probably already the case, at least on your development computer ;-)

2012 - 2024 David Fischer

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pytoolbox-14.8.4.tar.gz (181.6 kB view details)

Uploaded Source

Built Distribution

pytoolbox-14.8.4-py3-none-any.whl (187.7 kB view details)

Uploaded Python 3

File details

Details for the file pytoolbox-14.8.4.tar.gz.

File metadata

  • Download URL: pytoolbox-14.8.4.tar.gz
  • Upload date:
  • Size: 181.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pytoolbox-14.8.4.tar.gz
Algorithm Hash digest
SHA256 3b57f7df0a3d33907d0ee9b9d03fb4edfa1f4810a3f64b3fb7bf06f4f0fad210
MD5 0a25776b3720cc3ab7c11e759079647c
BLAKE2b-256 6d79e84bcc10f924820a4735e16816527f49ed669e43f23cd64c7e8fcc328cc4

See more details on using hashes here.

File details

Details for the file pytoolbox-14.8.4-py3-none-any.whl.

File metadata

  • Download URL: pytoolbox-14.8.4-py3-none-any.whl
  • Upload date:
  • Size: 187.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for pytoolbox-14.8.4-py3-none-any.whl
Algorithm Hash digest
SHA256 349efc505555eed2b925f6c584d1f233b5756fe61ab6fccb774e6166f05ad2d3
MD5 e7c689200aa935570cde71c7c603e56e
BLAKE2b-256 4ff6b85aa5bec4e90b6c670af78c411cafab0f8aebf5710d4643bd4213a179d3

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page