Skip to main content

Utility functions and classes

Project description

Some utility functions and classes I use in many projects.

Note: This package does not follow the UNIX philosophy. (It does more than one thing). Though some modules might get moved to their own packages in the future, this is currently not planned.

Documentation at GitHub

logable

Module to ease logging efforts

Supports

  • Using logging calls directly on instance
  • Module logger
  • Optional instance id
  • Add method information to log
  • Default logging config

In class Demo(Logable) you are able to use the logging calls directly (eg. self.debug(), self.warning(), self.exception(),..) to produce structured logging output like

DEBUG:Demo:working on something
INFO:Demo:Finished working
DEBUG:root:Inbetween
WARNING:Demo:Something might go wrong
ERROR:Demo:Something went wrong
WARNING:Demo:Told you!

The Logable class allows you to specify an id for an instance Demo({'id': "demo2"}) resulting in

DEBUG:Demo.demo2:working on something
INFO:Demo.demo2:Finished working
DEBUG:root:Inbetween
WARNING:Demo.demo2:Something might go wrong
ERROR:Demo.demo2:Something went wrong
WARNING:Demo.demo2:Told you!

Also supports method information:

2015-12-27 20:30:48 DEBUG   [Demo.demo2.work_on_something] working on something
2015-12-27 20:30:48 INFO    [Demo.demo2.work_on_something] Finished working
2015-12-27 20:30:48 DEBUG   [root] Inbetween
2015-12-27 20:30:48 WARNING [Demo.demo2.work_on_something_else] Something might go wrong
2015-12-27 20:30:48 ERROR   [Demo.demo2.work_on_something_else] Something went wrong
2015-12-27 20:30:48 WARNING [Demo.demo2.work_on_something_else] Told you!

For information on how to enable this, please have a look at logable.default_logging_config

loadable

Module to ease json(file) efforts

Supports

  • loading/writing json both as string and file
  • date, time and datetime types supported (saved and loaded as utc)
  • class to load/save settings from/to file

Loadable is a child class of Logable, thus inheriting all logging capabilities.

To tell class Demo(Loadable) to create an instance from a settings file, just write Demo({'settings_file': "path/to/settings.json"}).

Settings provided in __init__() overwrite the ones set in the file.

runable

Module to ease starting/stoping of classes

Supports

  • Startable (Class can be started start())
  • Stopable (Class can be stopped stop())
  • StartStopable (Startable() + Stopable())
  • SignalStopWrapper (Listens for SIGTERM and SIGINT signals and stops the class)

History

0.4.2 (2018-01-27)

  • missing merge

0.4.1 (2018-01-27)

  • small __init__ changes

0.4.0 (2018-01-27)

  • add convenience module (PrintableBase, FromToDictBase)
  • add save_file/load_file to Loadable
  • remove deprecated logException, warn from Logable
  • __future__ imports in runable

0.3.5a0 (2017-03-06)

  • Deprecated camel-case methods in loadable, new save/load methods

0.3.4a0 (2017-03-06)

  • Add yaml loading/saving code

0.3.3a0 (2017-03-06)

  • Add get_logger function

0.3.2b0 (2016-11-25)

  • Fix relative import in loadable

0.3.2a0 (2016-08-14)

  • Add datetime.timedelta to JSONEncoder/Decoder

0.3.1a0 (2016-03-31)

  • Catch interrupt in Stopable.stop() when sleeping

0.3.0a0 (2016-03-08)

  • Move webscraper to own package

0.2.14b0 (2016-03-02)

  • Fix missing calls to parent init method

0.2.13a0 (2016-01-28)

  • Runable (Startable, Stopable, StartStopable, SignalStopWrapper)

0.2.12a0 (2016-01-07)

  • WebScraper

0.2.11a0 (2015-12-31)

  • Loadable
  • Changed documentation

0.2.10a0 (2015-12-27)

  • First release on PyPI.
  • Logable

Project details


Release history Release notifications

This version
History Node

0.4.2

History Node

0.4.1

History Node

0.4.0

History Node

0.3.5a0

History Node

0.3.4a0

History Node

0.3.2b0

History Node

0.3.2a0

History Node

0.3.1a0

History Node

0.3.0a0

History Node

0.2.14b0

History Node

0.2.14a0

History Node

0.2.13a0

History Node

0.2.12a0

History Node

0.2.11a0

History Node

0.2.10a9

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
flotils-0.4.2-py2.7.egg (24.9 kB) Copy SHA256 hash SHA256 Egg 2.7 Jan 27, 2018
flotils-0.4.2-py2.py3-none-any.whl (14.1 kB) Copy SHA256 hash SHA256 Wheel py2.py3 Jan 27, 2018
flotils-0.4.2.win32.zip (26.7 kB) Copy SHA256 hash SHA256 Source None Jan 27, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page