Skip to main content

Decorator for logging function arguments and return value by human-readable way

Project description

logwrap

https://travis-ci.com/python-useful-helpers/logwrap.svg?branch=master Azure DevOps builds https://coveralls.io/repos/github/python-useful-helpers/logwrap/badge.svg?branch=master Documentation Status https://img.shields.io/pypi/v/logwrap.svg https://img.shields.io/pypi/pyversions/logwrap.svg https://img.shields.io/pypi/status/logwrap.svg https://img.shields.io/github/license/python-useful-helpers/logwrap.svg https://img.shields.io/badge/code%20style-black-000000.svg

logwrap is a helper for logging in human-readable format function arguments and call result on function call. Why? Because logging of *args, **kwargs become useless with project grow and you need more details in call log.

Cons:

  • Log records are not single line.

Pros:

  • Log records are not single 100500 symbols length line. (Especially actual for testing/development environments and for Kibana users).

  • Service free: job is done by this library and it’s dependencies. It works at virtualenv

  • Free software: Apache license

  • Open Source: https://github.com/python-useful-helpers/logwrap

  • PyPI packaged: https://pypi.python.org/pypi/logwrap

  • Self-documented code: docstrings with types in comments

  • Tested: see bages on top

  • Support multiple Python versions:

Python 3.6
Python 3.7
Python 3.8

This package includes helpers:

  • logwrap - main helper. The same is LogWrap.

  • LogWrap - class with logwrap implementation. May be used directly.

  • pretty_repr

  • pretty_str

  • PrettyFormat

  • LogOnAccess - property with logging on successful get/set/delete or failure.

Usage

logwrap

The main decorator. Could be used as not argumented (@logwrap.logwrap) and argumented (@logwrap.logwrap()). Not argumented usage simple calls with default values for all positions.

Argumented usage with arguments from signature:

@logwrap.logwrap(
    log=None,  # if not set: try to find LOGGER, LOG, logger or log object in target module and use it if it logger instance. Fallback: logger named logwrap
    log_level=logging.DEBUG,
    exc_level=logging.ERROR,
    max_indent=20,  # forwarded to the pretty_repr
    spec=None,  # use target callable function for spec
    blacklisted_names=None,  # list argument names, which should be dropped from log
    blacklisted_exceptions=None,  # Exceptions to skip details in log (no traceback, no exception details - just class name)
    log_call_args=True,  # Log call arguments before call
    log_call_args_on_exc=True,  # Log call arguments if exception happens
    log_traceback = True,  # Log traceback if exception happens
    log_result_obj=True,  # Log result object
)

Usage examples:

@logwrap.logwrap()
def foo():
    pass

is equal to:

@logwrap.logwrap
def foo():
    pass

Get decorator for use without parameters:

get_logs = logwrap.logwrap()  # set required parameters via arguments

type(get_logs) == LogWrap  # All logic is implemented in LogWrap class starting from version 2.2.0

@get_logs
def foo():
    pass

Call example (python 3.8):

import logwrap

@logwrap.logwrap
def example_function1(
        arg0: str,
        /,
        arg1: str,
        arg2: str='arg2',
        *args,
        kwarg1: str,
        kwarg2: str='kwarg2',
        **kwargs
) -> tuple():
    return (arg0, arg1, arg2, args, kwarg1, kwarg2, kwargs)

example_function1('arg0', 'arg1', kwarg1='kwarg1', kwarg3='kwarg3')

This code during execution will produce log records:

Calling:
'example_function1'(
    # POSITIONAL_ONLY:
    arg0='arg0',  # type: str
    # POSITIONAL_OR_KEYWORD:
    arg1='arg1',  # type: str
    arg2='arg2',  # type: str
    # VAR_POSITIONAL:
    args=(),
    # KEYWORD_ONLY:
    kwarg1='kwarg1',  # type: str
    kwarg2='kwarg2',  # type: str
    # VAR_KEYWORD:
    kwargs={
        'kwarg3': 'kwarg3',
    },
)
Done: 'example_function1' with result:

 (
    'arg0',
    'arg1',
    'arg2',
    (),
    'kwarg1',
    'kwarg2',
    {
        'kwarg3': 'kwarg3',
    },
 )

LogWrap

Example construction and read from test:

log_call = logwrap.LogWrap()
log_call.log_level == logging.DEBUG
log_call.exc_level == logging.ERROR
log_call.max_indent == 20
log_call.blacklisted_names == []
log_call.blacklisted_exceptions == []
log_call.log_call_args == True
log_call.log_call_args_on_exc == True
log_call.log_traceback == True
log_call.log_result_obj == True

On object change, variable types is validated.

In special cases, when special processing required for parameters logging (hide or change parameters in log), it can be done by override pre_process_param and post_process_param.

See API documentation for details.

pretty_repr

This is specified helper for making human-readable repr on complex objects. Signature is self-documenting:

def pretty_repr(
    src,  # object for repr
    indent=0,  # start indent
    no_indent_start=False,  # do not indent the first level
    max_indent=20,  # maximum allowed indent level
    indent_step=4,  # step between indents
)

pretty_str

This is specified helper for making human-readable str on complex objects. Signature is self-documenting:

def pretty_str(
    src,  # object for __str__
    indent=0,  # start indent
    no_indent_start=False,  # do not indent the first level
    max_indent=20,  # maximum allowed indent level
    indent_step=4,  # step between indents
)
Limitations:

Dict like objects is always marked inside {} for readability, even if it is collections.OrderedDict (standard repr as list of tuples).

Iterable types is not declared, only brackets is used.

String and bytes looks the same (its __str__, not __repr__).

PrettyFormat

PrettyFormat is the main formatting implementation class. pretty_repr and pretty_str uses instances of subclasses PrettyRepr and PrettyStr from this class. This class is mostly exposed for typing reasons. Object signature:

def __init__(
    self,
    max_indent=20,  # maximum allowed indent level
    indent_step=4,  # step between indents
)

Callable object (PrettyFormat instance) signature:

def __call__(
    self,
    src,  # object for repr
    indent=0,  # start indent
    no_indent_start=False  # do not indent the first level
)

Adopting your code

pretty_repr behavior could be overridden for your classes by implementing specific magic method:

def __pretty_repr__(
    self,
    parser  # PrettyFormat class instance,
    indent  # start indent,
    no_indent_start  # do not indent the first level
):
    return ...

This method will be executed instead of __repr__ on your object.

def __pretty_str__(
    self,
    parser  # PrettyFormat class instance,
    indent  # start indent,
    no_indent_start  # do not indent the first level
):
    return ...

This method will be executed instead of __str__ on your object.

LogOnAccess

This special case of property is useful in cases, where a lot of properties should be logged by similar way without writing a lot of code.

Basic API is conform with property, but in addition it is possible to customize logger, log levels and log conditions.

Usage examples:

  1. Simple usage. All by default. logger is re-used:

    • from instance if available with names logger or log,

    • from instance module if available with names LOGGER, log,

    • else used internal logwrap.log_on_access logger.

import logging

class Target(object):

    def init(self, val='ok')
        self.val = val
        self.logger = logging.get_logger(self.__class__.__name__)  # Single for class, follow subclassing

    def __repr__(self):
        return "{cls}(val={self.val})".format(cls=self.__class__.__name__, self=self)

    @logwrap.LogOnAccess
    def ok(self):
        return self.val

    @ok.setter
    def ok(self, val):
        self.val = val

    @ok.deleter
    def ok(self):
        self.val = ""
  1. Use with global logger for class:

class Target(object):

  def init(self, val='ok')
      self.val = val

  def __repr__(self):
      return "{cls}(val={self.val})".format(cls=self.__class__.__name__, self=self)

  @logwrap.LogOnAccess
  def ok(self):
      return self.val

  @ok.setter
  def ok(self, val):
      self.val = val

  @ok.deleter
  def ok(self):
      self.val = ""

  ok.logger = 'test_logger'
  ok.log_level = logging.INFO
  ok.exc_level = logging.ERROR
  ok.log_object_repr = True  # As by default
  ok.log_before = True  # As by default
  ok.log_success = True  # As by default
  ok.log_failure = True  # As by default
  ok.log_traceback = True  # As by default
  ok.override_name = None  # As by default: use original name

Testing

The main test mechanism for the package logwrap is using tox. Available environments can be collected via tox -l

CI systems

For code checking several CI systems is used in parallel:

  1. Travis CI: is used for checking: PEP8, pylint, bandit, installation possibility and unit tests. Also it’s publishes coverage on coveralls.

  2. coveralls: is used for coverage display.

  3. Azure CI: is used for functional tests on Windows.

CD systems

  1. Travis CI: is used for linux and SDIST package delivery on PyPI.

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

logwrap-8.0.5.tar.gz (44.3 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

logwrap-8.0.5-py3-none-any.whl (27.3 kB view details)

Uploaded Python 3

logwrap-8.0.5-cp38-cp38-win_amd64.whl (198.6 kB view details)

Uploaded CPython 3.8Windows x86-64

logwrap-8.0.5-cp38-cp38-win32.whl (173.1 kB view details)

Uploaded CPython 3.8Windows x86

logwrap-8.0.5-cp38-cp38-manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8

logwrap-8.0.5-cp38-cp38-manylinux2014_i686.whl (1.1 MB view details)

Uploaded CPython 3.8

logwrap-8.0.5-cp38-cp38-manylinux2014_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.8

logwrap-8.0.5-cp38-cp38-manylinux2010_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ x86-64

logwrap-8.0.5-cp38-cp38-manylinux2010_i686.whl (1.1 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.12+ i686

logwrap-8.0.5-cp38-cp38-manylinux1_x86_64.whl (1.5 MB view details)

Uploaded CPython 3.8

logwrap-8.0.5-cp38-cp38-manylinux1_i686.whl (1.1 MB view details)

Uploaded CPython 3.8

logwrap-8.0.5-cp37-cp37m-win_amd64.whl (190.6 kB view details)

Uploaded CPython 3.7mWindows x86-64

logwrap-8.0.5-cp37-cp37m-win32.whl (166.7 kB view details)

Uploaded CPython 3.7mWindows x86

logwrap-8.0.5-cp37-cp37m-manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.7m

logwrap-8.0.5-cp37-cp37m-manylinux2014_i686.whl (1.0 MB view details)

Uploaded CPython 3.7m

logwrap-8.0.5-cp37-cp37m-manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.7m

logwrap-8.0.5-cp37-cp37m-manylinux2010_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ x86-64

logwrap-8.0.5-cp37-cp37m-manylinux2010_i686.whl (938.0 kB view details)

Uploaded CPython 3.7mmanylinux: glibc 2.12+ i686

logwrap-8.0.5-cp37-cp37m-manylinux1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.7m

logwrap-8.0.5-cp37-cp37m-manylinux1_i686.whl (1.0 MB view details)

Uploaded CPython 3.7m

logwrap-8.0.5-cp36-cp36m-win_amd64.whl (190.5 kB view details)

Uploaded CPython 3.6mWindows x86-64

logwrap-8.0.5-cp36-cp36m-win32.whl (166.8 kB view details)

Uploaded CPython 3.6mWindows x86

logwrap-8.0.5-cp36-cp36m-manylinux2014_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.6m

logwrap-8.0.5-cp36-cp36m-manylinux2014_i686.whl (1.0 MB view details)

Uploaded CPython 3.6m

logwrap-8.0.5-cp36-cp36m-manylinux2014_aarch64.whl (1.1 MB view details)

Uploaded CPython 3.6m

logwrap-8.0.5-cp36-cp36m-manylinux2010_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ x86-64

logwrap-8.0.5-cp36-cp36m-manylinux2010_i686.whl (937.7 kB view details)

Uploaded CPython 3.6mmanylinux: glibc 2.12+ i686

logwrap-8.0.5-cp36-cp36m-manylinux1_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.6m

logwrap-8.0.5-cp36-cp36m-manylinux1_i686.whl (1.0 MB view details)

Uploaded CPython 3.6m

File details

Details for the file logwrap-8.0.5.tar.gz.

File metadata

  • Download URL: logwrap-8.0.5.tar.gz
  • Upload date:
  • Size: 44.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5.tar.gz
Algorithm Hash digest
SHA256 bacf90ebba23e18681f98bb2209113be8aa1b7ca391179dfbc77593f6ad98aea
MD5 d1152516157140b859b7f1132c9a4018
BLAKE2b-256 eb47e2686616fc9cca75bf7df53f59304d74fb6fe6fa401ce9547204eb9685e0

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-py3-none-any.whl.

File metadata

  • Download URL: logwrap-8.0.5-py3-none-any.whl
  • Upload date:
  • Size: 27.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 04af122fbc4fc03b963ab94687478398f5697ee92daabd33d4b4352a262d1a52
MD5 41ccd944179c2930f2341ef34f93e7de
BLAKE2b-256 3af82cb7ea19348f23b07529a169c682885181962c2036bf26e44af120931730

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 198.6 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for logwrap-8.0.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 8c5d384c1ea0d29bdcf4348ed5c90911e31af347f166df293aab6905abf304c8
MD5 3771b85b8e4b1712967706182a3dda02
BLAKE2b-256 f5256f49d2dcfac9b3da2172295c76614ee3a23fbb8089d0e4397a58de0ecabb

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp38-cp38-win32.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp38-cp38-win32.whl
  • Upload date:
  • Size: 173.1 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for logwrap-8.0.5-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 28310d59ad6053c0245a506e51a69c3cae1bb618754c98f4fb71aa0652e259cd
MD5 e0e7e1cd04384c13fec4ac87f95cb833
BLAKE2b-256 75d8cd984128e505a93c5cd839911e338f2e952d0230049226bbf202afdd1243

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp38-cp38-manylinux2014_x86_64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp38-cp38-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 1.4 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp38-cp38-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bc4e4bae250af05a5faab9888875373008fef1c9d810093317e05519ce223024
MD5 1270b576e06d3438faf4d69387bb505f
BLAKE2b-256 8a6257953f48ab2673915f85155d32fac86032bf559d1854becb5187cf209367

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp38-cp38-manylinux2014_i686.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp38-cp38-manylinux2014_i686.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp38-cp38-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 2418539b62891ff93fcdb74e24583daad6902be7c018676c22339280d6db5e8e
MD5 b53d0720ef73163dcb7846afacbacb38
BLAKE2b-256 d8d88c538c4450b2adf4d6c1b1f76518477f23123f237ccdafba5fdb0e1751a7

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp38-cp38-manylinux2014_aarch64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp38-cp38-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 1.3 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp38-cp38-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 1789cfa3411e89e30367fe0f6b6ae9380a863d1f9ccd43f2586c1520600d2010
MD5 3e5d33b7dbf60ce2f7a713efd28d3342
BLAKE2b-256 201f0ce848f51d2fbdb7dbc319dd855eee80555b2a11497747006ebcb089968f

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp38-cp38-manylinux2010_x86_64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp38-cp38-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp38-cp38-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 09d8ac2841e70bd0fb17aa9cd5cdb7a7b18cc1369dd3cc4333ad76613b1ad294
MD5 3c5d9d2108a86f758d4f5b1aa5c18f49
BLAKE2b-256 1e03e3673097e78257d090b31054afacb7e483510182d210cba8da47ea104495

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp38-cp38-manylinux2010_i686.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp38-cp38-manylinux2010_i686.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp38-cp38-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 badb6369d7b6af27d52bf0389155ea95effe230374316ef5f52b1e2b49bc2618
MD5 bdabb11fbf058aedb80e921f5a5c3697
BLAKE2b-256 b216d747af5f13a2eb7422b28615222d9a46c0ad4c6e90f86e55d721a1778d7a

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp38-cp38-manylinux1_x86_64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp38-cp38-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.5 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp38-cp38-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 52724c262a5db2b4c263522bd5157dad0639bb8dd2f41b9e86fcdf523f981a10
MD5 7854b7d2c73a291da16a58475c0cf62e
BLAKE2b-256 280e8b8a9bf50aeca049d730de181d14320a3ad67fcbc3f14be49f1a229fc579

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp38-cp38-manylinux1_i686.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp38-cp38-manylinux1_i686.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.8
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp38-cp38-manylinux1_i686.whl
Algorithm Hash digest
SHA256 c248c877a055986b59a7bd851314de58bfb3dfde2662f8aecb2e584ab44e8f8c
MD5 09342920111e76b7ce527b734331d902
BLAKE2b-256 10bdb242d0e3d04918d683dac1af1cd813c4c9db27defc873a3843216b373c8f

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 190.6 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for logwrap-8.0.5-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 f4bbf8219a12a23e69c1ec180d7105eaee6b706ef0ebfec2c4a208734bf71990
MD5 7576793ec9b6457920690e2e066e410c
BLAKE2b-256 20a5d7b37351b84d1a70fd2d71154b72edb8ff5149c7021dddfbc929d01b8b57

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp37-cp37m-win32.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 166.7 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.6

File hashes

Hashes for logwrap-8.0.5-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 a0d12ab1bf946a6e10ce4b0b90a276db014b6eb9646380ad77586536d3c8e498
MD5 5fe8b152fd94e6514ead7a155a0fe868
BLAKE2b-256 03696dcd7c37e213ee06a72e94ba3814c5c8d7bb98868285aafd326842f0c400

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp37-cp37m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp37-cp37m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp37-cp37m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 10c1e5a8bce27a73dabd100116f297fc172080846c52400f1cda744cc96f0d45
MD5 2e82ac3ff2aa2579aede0af7914e5212
BLAKE2b-256 330a667de411d4b57072dcffed1c5975281310ad0267aa4f5832d1f5615347d5

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp37-cp37m-manylinux2014_i686.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp37-cp37m-manylinux2014_i686.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp37-cp37m-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 4e9f4eb74da2762312b70da1d512c07e072c43cff60c044e7c40c364a9039394
MD5 f53c2261866e59c1e941edb90235f685
BLAKE2b-256 298564e89e9b635ba39aff8370425d6a7c44e84e7db4a7cf66ed5c619a9e6589

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp37-cp37m-manylinux2014_aarch64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp37-cp37m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp37-cp37m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 5553a81928edd5a1d43aab7fa712a25d7ab48259cbe9d86ef2e5aa8289fd7b9d
MD5 6f89a34536e887c9ff6fbd4780f1aabd
BLAKE2b-256 8f9139b52f673fd4f431a2d497c4ad592fb99899c6217153bde68e04456aa3ad

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp37-cp37m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp37-cp37m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp37-cp37m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 9e29a46eb818a81177d3cc8a1f8903496c26245b6b4ad4897baf26e60971c47f
MD5 4062405aa4f14bba06ab55994509cc44
BLAKE2b-256 454274441e3d9a9fc370fa03be5c777fb2803f6e3767178c2d64b1c7fd409ef3

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp37-cp37m-manylinux2010_i686.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp37-cp37m-manylinux2010_i686.whl
  • Upload date:
  • Size: 938.0 kB
  • Tags: CPython 3.7m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp37-cp37m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 1e87a1f738520c04b2dd1d9226b39f7e0a1f5dc70c2f2ff6b59b896d9241ce13
MD5 26d29df952c146ffa1f80b12eaf0e66a
BLAKE2b-256 36347f49dbeb4927769290c8abf38f9a027b9d41aa259d03fa65a9fa01320bdc

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp37-cp37m-manylinux1_x86_64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp37-cp37m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp37-cp37m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 20dedecbaca217973a6f1db075003829769879ab0446efd0f9ab5e1f14ce4e0e
MD5 363e514119c6660f4b7fa11b865b2221
BLAKE2b-256 3bad527f10fb4105ab9faf6bfaf4ab98846b2d130fd0135747ee1e56a1c4cd7a

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp37-cp37m-manylinux1_i686.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp37-cp37m-manylinux1_i686.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.7m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp37-cp37m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 b93683d0a94bb41cea383b81603d46d55b4603b1749cfc3adad8c059bf28fe45
MD5 0ecc16b54dd5a32a6da589ed62033017
BLAKE2b-256 09c74bf94c13cba556fcac4c8a80510d69d787daa0965142d5fc6e2905553f28

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp36-cp36m-win_amd64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp36-cp36m-win_amd64.whl
  • Upload date:
  • Size: 190.5 kB
  • Tags: CPython 3.6m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.8

File hashes

Hashes for logwrap-8.0.5-cp36-cp36m-win_amd64.whl
Algorithm Hash digest
SHA256 05b7af663f736c1fa9a23087c7a7e2e0cdb700102375972315ff3ad0e44ae2f7
MD5 e38c72b87f5707a358a074343e0cc2e5
BLAKE2b-256 2197ead2d04dc4ae389914cc6a7df47a8c6540f30474e4e3c5d6412c96a16bd9

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp36-cp36m-win32.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp36-cp36m-win32.whl
  • Upload date:
  • Size: 166.8 kB
  • Tags: CPython 3.6m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.6.8

File hashes

Hashes for logwrap-8.0.5-cp36-cp36m-win32.whl
Algorithm Hash digest
SHA256 15e0db2631fe1a9d041c5322d20d6c11d003a993e4fd5e2815b841d21a66546a
MD5 3a62b8f378998c5fec9eb5924fd2244e
BLAKE2b-256 2634bc10bbda617d74f50755e1662e6a095d9ea37b6a3af4c9821810e6094cd4

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp36-cp36m-manylinux2014_x86_64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp36-cp36m-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp36-cp36m-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c6a771f0fa1565b23b382e3c61556db01bd31a6093fbcdae04f1fae75adeeba4
MD5 abbd2e4342d41cbbb96a6ac68e092911
BLAKE2b-256 872e0e77ecbff9c6a400effde5e2725ec24afd1c470a0d995a52343359aa49a8

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp36-cp36m-manylinux2014_i686.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp36-cp36m-manylinux2014_i686.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp36-cp36m-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 7ed990e80c1f7895abbbbd66a8d6dd66668cdc26c0a8d9c36b6e79f08789bd2c
MD5 c3b4dfb64be960720e8f33e53da100ed
BLAKE2b-256 6599ff5dd893e9b90ca13f67ae225d3bf6fdd5f08304b6a04100875fff3ac1ac

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp36-cp36m-manylinux2014_aarch64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp36-cp36m-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 1.1 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp36-cp36m-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8568b81eb60944441bc452477d2a53c5ad0b1020ea3ff110926731fdfe5c8d11
MD5 d5c690d33c43002affb33d0314f15ba9
BLAKE2b-256 978c204870cdf3ab0456f15905c4bd423fa9a7bd1ffd17918d7f2345119ffbbc

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp36-cp36m-manylinux2010_x86_64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp36-cp36m-manylinux2010_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp36-cp36m-manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 bcebb14335eea1585aa8ac0abc6780febc41038baf1dddcd57b160066601c222
MD5 164875607430719bd46b0b3ac36e27b0
BLAKE2b-256 9752ddcc8ad09cc2bc48164c1725e42009b97a7e970ac1f4b4f22f550d259401

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp36-cp36m-manylinux2010_i686.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp36-cp36m-manylinux2010_i686.whl
  • Upload date:
  • Size: 937.7 kB
  • Tags: CPython 3.6m, manylinux: glibc 2.12+ i686
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp36-cp36m-manylinux2010_i686.whl
Algorithm Hash digest
SHA256 7eca1699235fd44b446ada559cd49740c8b860e6b95cbbe98514a1f99ad670f0
MD5 55f77fa5e82151a6e5d201ec876df174
BLAKE2b-256 4cdeb621d8c5b5ee0e7d38aa71fe6c52d6a9bb9be2c948dfd8ee4aeb94f349a3

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp36-cp36m-manylinux1_x86_64.whl
  • Upload date:
  • Size: 1.2 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7b015ab2a3c4e03b7c237b244bff3d7bebf6c62c86ab545a1cabde783cf13a20
MD5 f2b926f78b15f1d8d9a767d1c73e2c4c
BLAKE2b-256 9deb9ed7d186db1389e696f78a02653f8402902af47a621c542efcb842ff073c

See more details on using hashes here.

File details

Details for the file logwrap-8.0.5-cp36-cp36m-manylinux1_i686.whl.

File metadata

  • Download URL: logwrap-8.0.5-cp36-cp36m-manylinux1_i686.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.6m
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.7.5

File hashes

Hashes for logwrap-8.0.5-cp36-cp36m-manylinux1_i686.whl
Algorithm Hash digest
SHA256 eac5909255111396d55a5a27eebc45830471a8643573c269db3ce890da7009d1
MD5 1b71be20048b1c235078b571da4eb80b
BLAKE2b-256 b881e00effa0fd2661461eb9e82c492480e859966b262a75c80e4956fb576d93

See more details on using hashes here.

Supported by

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