Code Monkey home page Code Monkey logo

python-utils's Introduction

Useful Python Utils

https://github.com/WoLpH/python-utils/actions/workflows/main.yml/badge.svg?branch=master https://coveralls.io/repos/WoLpH/python-utils/badge.svg?branch=master

Python Utils is a collection of small Python functions and classes which make common patterns shorter and easier. It is by no means a complete collection but it has served me quite a bit in the past and I will keep extending it.

One of the libraries using Python Utils is Django Utils.

Documentation is available at: https://python-utils.readthedocs.org/en/latest/

Links

Security contact information

To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.

Requirements for installing:

For the Python 3+ release (i.e. v3.0.0 or higher) there are no requirements. For the Python 2 compatible version (v2.x.x) the six package is needed.

Installation:

The package can be installed through pip (this is the recommended method):

pip install python-utils

Or if pip is not available, easy_install should work as well:

easy_install python-utils

Or download the latest release from Pypi (https://pypi.python.org/pypi/python-utils) or Github.

Note that the releases on Pypi are signed with my GPG key (https://pgp.mit.edu/pks/lookup?op=vindex&search=0xE81444E9CE1F695D) and can be checked using GPG:

gpg --verify python-utils-<version>.tar.gz.asc python-utils-<version>.tar.gz

Quickstart

This module makes it easy to execute common tasks in Python scripts such as converting text to numbers and making sure a string is in unicode or bytes format.

Examples

Automatically converting a generator to a list, dict or other collections using a decorator:

>>> @decorators.listify()
... def generate_list():
...     yield 1
...     yield 2
...     yield 3
...
>>> generate_list()
[1, 2, 3]

>>> @listify(collection=dict)
... def dict_generator():
...     yield 'a', 1
...     yield 'b', 2

>>> dict_generator()
{'a': 1, 'b': 2}

Retrying until timeout

To easily retry a block of code with a configurable timeout, you can use the time.timeout_generator:

>>> for i in time.timeout_generator(10):
...     try:
...         # Run your code here
...     except Exception as e:
...         # Handle the exception

Formatting of timestamps, dates and times

Easy formatting of timestamps and calculating the time since:

>>> time.format_time('1')
'0:00:01'
>>> time.format_time(1.234)
'0:00:01'
>>> time.format_time(1)
'0:00:01'
>>> time.format_time(datetime.datetime(2000, 1, 2, 3, 4, 5, 6))
'2000-01-02 03:04:05'
>>> time.format_time(datetime.date(2000, 1, 2))
'2000-01-02'
>>> time.format_time(datetime.timedelta(seconds=3661))
'1:01:01'
>>> time.format_time(None)
'--:--:--'

>>> formatters.timesince(now)
'just now'
>>> formatters.timesince(now - datetime.timedelta(seconds=1))
'1 second ago'
>>> formatters.timesince(now - datetime.timedelta(seconds=2))
'2 seconds ago'
>>> formatters.timesince(now - datetime.timedelta(seconds=60))
'1 minute ago'

Converting your test from camel-case to underscores:

>>> camel_to_underscore('SpamEggsAndBacon')
'spam_eggs_and_bacon'

Attribute setting decorator. Very useful for the Django admin

A convenient decorator to set function attributes using a decorator:

You can use:
>>> @decorators.set_attributes(short_description='Name')
... def upper_case_name(self, obj):
...     return ("%s %s" % (obj.first_name, obj.last_name)).upper()

Instead of:
>>> def upper_case_name(obj):
...     return ("%s %s" % (obj.first_name, obj.last_name)).upper()

>>> upper_case_name.short_description = 'Name'

This can be very useful for the Django admin as it allows you to have all metadata in one place.

Scaling numbers between ranges

>>> converters.remap(500, old_min=0, old_max=1000, new_min=0, new_max=100)
50

# Or with decimals:
>>> remap(decimal.Decimal('250.0'), 0.0, 1000.0, 0.0, 100.0)
Decimal('25.0')

Get the screen/window/terminal size in characters:

>>> terminal.get_terminal_size()
(80, 24)

That method supports IPython and Jupyter as well as regular shells, using blessings and other modules depending on what is available.

Extracting numbers from nearly every string:

>>> converters.to_int('spam15eggs')
15
>>> converters.to_int('spam')
0
>>> number = converters.to_int('spam', default=1)
1

Doing a global import of all the modules in a package programmatically:

To do a global import programmatically you can use the import_global function. This effectively emulates a from ... import *

from python_utils.import_ import import_global

# The following is  the equivalent of `from some_module import *`
import_global('some_module')

Automatically named logger for classes:

Or add a correclty named logger to your classes which can be easily accessed:

class MyClass(Logged):
    def __init__(self):
        Logged.__init__(self)

my_class = MyClass()

# Accessing the logging method:
my_class.error('error')

# With formatting:
my_class.error('The logger supports %(formatting)s',
               formatting='named parameters')

# Or to access the actual log function (overwriting the log formatting can
# be done n the log method)
import logging
my_class.log(logging.ERROR, 'log')

Alternatively loguru is also supported. It is largely a drop-in replacement for the logging module which is a bit more convenient to configure:

First install the extra loguru package:

pip install 'python-utils[loguru]'
class MyClass(Logurud):
    ...

Now you can use the Logurud class to make functions such as self.info() available. The benefit of this approach is that you can add extra context or options to you specific loguru instance (i.e. self.logger):

Convenient type aliases and some commonly used types:

# For type hinting scopes such as locals/globals/vars
Scope = Dict[str, Any]
OptionalScope = O[Scope]

# Note that Number is only useful for extra clarity since float
# will work for both int and float in practice.
Number = U[int, float]
DecimalNumber = U[Number, decimal.Decimal]

# To accept an exception or list of exceptions
ExceptionType = Type[Exception]
ExceptionsType = U[Tuple[ExceptionType, ...], ExceptionType]

# Matching string/bytes types:
StringTypes = U[str, bytes]

python-utils's People

Contributors

hroncok avatar kdschlosser avatar lgtm-migrator avatar mgorny avatar nagesh4193 avatar okeuday avatar targhs avatar wolph avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

python-utils's Issues

Test failures wrt to_str(Foo()) doctest

Hello, in Fedora, we see this failure with 2.5.6, but it was not there previously with 2.4.0:

=================================== FAILURES ===================================
___________________ [doctest] python_utils.converters.to_str ___________________
188     :rtype: str
189 
190     >>> to_str('a')
191     b'a'
192     >>> to_str(u'a')
193     b'a'
194     >>> to_str(b'a')
195     b'a'
196     >>> class Foo(object): __str__ = lambda s: u'a'
197     >>> to_str(Foo())
Expected:
    'a'
Got:
    b'a'
/builddir/build/BUILD/python-utils-2.5.6/python_utils/converters.py:197: DocTestFailure
=========================== short test summary info ============================
FAILED python_utils/converters.py::python_utils.converters.to_str
========================= 1 failed, 18 passed in 0.13s =========================

3.3.2 test regression on Python 3.11: _python_utils_tests/test_generators.py::test_abatcher - TypeError: Passing coroutines is forbidden, use tasks explicitly.

With Python 3.11.0b1:

Test log
========================================================= test session starts =========================================================
platform linux -- Python 3.11.0b1, pytest-7.1.2, pluggy-1.0.0
rootdir: /tmp/python-utils, configfile: pytest.ini
plugins: mypy-0.9.1, asyncio-0.18.3, cov-3.0.0
asyncio: mode=Mode.STRICT
collected 25 items                                                                                                                    

_python_utils_tests/test_decorators.py ..                                                                                       [  8%]
_python_utils_tests/test_generators.py FFF.                                                                                     [ 24%]
_python_utils_tests/test_import.py ......                                                                                       [ 48%]
_python_utils_tests/test_logger.py .                                                                                            [ 52%]
_python_utils_tests/test_python_utils.py .                                                                                      [ 56%]
_python_utils_tests/test_time.py ...........                                                                                    [100%]

============================================================== FAILURES ===============================================================
____________________________________________________________ test_abatcher ____________________________________________________________

    @pytest.mark.asyncio
    async def test_abatcher():
>       async for batch in python_utils.abatcher(python_utils.acount(stop=9), 3):

_python_utils_tests/test_generators.py:10: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
python_utils/generators.py:35: in abatcher
    done, pending = await asyncio.wait(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

fs = {<async_generator_asend object at 0x7febd2f789c0>}

    async def wait(fs, *, timeout=None, return_when=ALL_COMPLETED):
        """Wait for the Futures or Tasks given by fs to complete.
    
        The fs iterable must not be empty.
    
        Coroutines will be wrapped in Tasks.
    
        Returns two sets of Future: (done, pending).
    
        Usage:
    
            done, pending = await asyncio.wait(fs)
    
        Note: This does not raise TimeoutError! Futures that aren't done
        when the timeout occurs are returned in the second set.
        """
        if futures.isfuture(fs) or coroutines.iscoroutine(fs):
            raise TypeError(f"expect a list of futures, not {type(fs).__name__}")
        if not fs:
            raise ValueError('Set of Tasks/Futures is empty.')
        if return_when not in (FIRST_COMPLETED, FIRST_EXCEPTION, ALL_COMPLETED):
            raise ValueError(f'Invalid return_when value: {return_when}')
    
        fs = set(fs)
    
        if any(coroutines.iscoroutine(f) for f in fs):
>           raise TypeError("Passing coroutines is forbidden, use tasks explicitly.")
E           TypeError: Passing coroutines is forbidden, use tasks explicitly.

/usr/lib/python3.11/asyncio/tasks.py:424: TypeError
_________________________________________________________ test_abatcher_timed _________________________________________________________

    @pytest.mark.asyncio
    async def test_abatcher_timed():
        batches = []
>       async for batch in python_utils.abatcher(
            python_utils.acount(stop=10, delay=0.08), interval=0.1
        ):

_python_utils_tests/test_generators.py:20: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
python_utils/generators.py:35: in abatcher
    done, pending = await asyncio.wait(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

fs = {<async_generator_asend object at 0x7febd2cd5200>}

    async def wait(fs, *, timeout=None, return_when=ALL_COMPLETED):
        """Wait for the Futures or Tasks given by fs to complete.
    
        The fs iterable must not be empty.
    
        Coroutines will be wrapped in Tasks.
    
        Returns two sets of Future: (done, pending).
    
        Usage:
    
            done, pending = await asyncio.wait(fs)
    
        Note: This does not raise TimeoutError! Futures that aren't done
        when the timeout occurs are returned in the second set.
        """
        if futures.isfuture(fs) or coroutines.iscoroutine(fs):
            raise TypeError(f"expect a list of futures, not {type(fs).__name__}")
        if not fs:
            raise ValueError('Set of Tasks/Futures is empty.')
        if return_when not in (FIRST_COMPLETED, FIRST_EXCEPTION, ALL_COMPLETED):
            raise ValueError(f'Invalid return_when value: {return_when}')
    
        fs = set(fs)
    
        if any(coroutines.iscoroutine(f) for f in fs):
>           raise TypeError("Passing coroutines is forbidden, use tasks explicitly.")
E           TypeError: Passing coroutines is forbidden, use tasks explicitly.

/usr/lib/python3.11/asyncio/tasks.py:424: TypeError
__________________________________________________ test_abatcher_timed_with_timeout ___________________________________________________

    @pytest.mark.asyncio
    async def test_abatcher_timed_with_timeout():
        async def generator():
            # Test if the timeout is respected
            yield 0
            yield 1
            await asyncio.sleep(0.11)
    
            # Test if the timeout is respected
            yield 2
            yield 3
            await asyncio.sleep(0.11)
    
            # Test if exceptions are handled correctly
            await asyncio.wait_for(asyncio.sleep(1), timeout=0.05)
    
            # Test if StopAsyncIteration is handled correctly
            yield 4
    
        batcher = python_utils.abatcher(generator(), interval=0.1)
>       assert await batcher.__anext__() == [0, 1]

_python_utils_tests/test_generators.py:49: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
python_utils/generators.py:35: in abatcher
    done, pending = await asyncio.wait(
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

fs = {<async_generator_asend object at 0x7febd2f6e240>}

    async def wait(fs, *, timeout=None, return_when=ALL_COMPLETED):
        """Wait for the Futures or Tasks given by fs to complete.
    
        The fs iterable must not be empty.
    
        Coroutines will be wrapped in Tasks.
    
        Returns two sets of Future: (done, pending).
    
        Usage:
    
            done, pending = await asyncio.wait(fs)
    
        Note: This does not raise TimeoutError! Futures that aren't done
        when the timeout occurs are returned in the second set.
        """
        if futures.isfuture(fs) or coroutines.iscoroutine(fs):
            raise TypeError(f"expect a list of futures, not {type(fs).__name__}")
        if not fs:
            raise ValueError('Set of Tasks/Futures is empty.')
        if return_when not in (FIRST_COMPLETED, FIRST_EXCEPTION, ALL_COMPLETED):
            raise ValueError(f'Invalid return_when value: {return_when}')
    
        fs = set(fs)
    
        if any(coroutines.iscoroutine(f) for f in fs):
>           raise TypeError("Passing coroutines is forbidden, use tasks explicitly.")
E           TypeError: Passing coroutines is forbidden, use tasks explicitly.

/usr/lib/python3.11/asyncio/tasks.py:424: TypeError
======================================================= short test summary info =======================================================
FAILED _python_utils_tests/test_generators.py::test_abatcher - TypeError: Passing coroutines is forbidden, use tasks explicitly.
FAILED _python_utils_tests/test_generators.py::test_abatcher_timed - TypeError: Passing coroutines is forbidden, use tasks explicitly.
FAILED _python_utils_tests/test_generators.py::test_abatcher_timed_with_timeout - TypeError: Passing coroutines is forbidden, use ta...
==================================================== 3 failed, 22 passed in 2.83s =====================================================

A quick bisect blames the following commit:

commit c9d4cd8b091c6aafa7e35eb38746d860dfcb9af1
Author: Rick van Hattem <[email protected]>
Date:   Tue May 31 00:10:23 2022 +0200

    Fixed bug with batcher skipping items in the case of timeouts thanks to @jorenham

 _python_utils_tests/test_generators.py | 38 +++++++++++++++++++++++++++++++---
 python_utils/generators.py             | 32 +++++++++++++++++-----------
 2 files changed, 55 insertions(+), 15 deletions(-)

CC @jorenham

pytest bug after version 2.4.0

test folders without init.py are failing after version 2.4.0. I think python-utils messed up some pytest's PATH functionalities.

Although adding back __init__.py in test folders solve this issue, python-utils shouldn't block it.

Version info:

python version 3.8

pytest==6.2.1
pytest-cov==2.11.0
pytest-mock==3.5.1
python-utils >= 2.5.0

2.5.2: Tests are still installed globally

Hi! When packaging 2.5.2 for Arch Linux I noticed that the tests are still installed globally:

$ tar --zstd -tvf python-utils-2.5.2-1-any.pkg.tar.zst --force-local
-rw-r--r-- root/root      5011 2021-01-25 10:21 .BUILDINFO
-rw-r--r-- root/root      3317 2021-01-25 10:21 .MTREE
-rw-r--r-- root/root       456 2021-01-25 10:21 .PKGINFO
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/lib/
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/lib/python3.9/
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/lib/python3.9/site-packages/
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/
-rw-r--r-- root/root         0 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/__init__.py
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/__pycache__/
-rw-r--r-- root/root       155 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/__pycache__/__init__.cpython-39.opt-1.pyc
-rw-r--r-- root/root       155 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/__pycache__/__init__.cpython-39.pyc
-rw-r--r-- root/root      1760 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/__pycache__/test_import.cpython-39.opt-1.pyc
-rw-r--r-- root/root      1760 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/__pycache__/test_import.cpython-39.pyc
-rw-r--r-- root/root       429 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/__pycache__/test_python_utils.cpython-39.opt-1.pyc
-rw-r--r-- root/root       429 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/__pycache__/test_python_utils.cpython-39.pyc
-rw-r--r-- root/root      1441 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/test_import.py
-rw-r--r-- root/root       272 2021-01-25 10:21 usr/lib/python3.9/site-packages/_python_utils_tests/test_python_utils.py
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils-2.5.2-py3.9.egg-info/
-rw-r--r-- root/root      4635 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils-2.5.2-py3.9.egg-info/PKG-INFO
-rw-r--r-- root/root       652 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils-2.5.2-py3.9.egg-info/SOURCES.txt
-rw-r--r-- root/root         1 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils-2.5.2-py3.9.egg-info/dependency_links.txt
-rw-r--r-- root/root        47 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils-2.5.2-py3.9.egg-info/pbr.json
-rw-r--r-- root/root         4 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils-2.5.2-py3.9.egg-info/requires.txt
-rw-r--r-- root/root        33 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils-2.5.2-py3.9.egg-info/top_level.txt
-rw-r--r-- root/root       308 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__about__.py
-rw-r--r-- root/root         0 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__init__.py
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/
-rw-r--r-- root/root       463 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/__about__.cpython-39.opt-1.pyc
-rw-r--r-- root/root       463 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/__about__.cpython-39.pyc
-rw-r--r-- root/root       148 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/__init__.cpython-39.opt-1.pyc
-rw-r--r-- root/root       148 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/__init__.cpython-39.pyc
-rw-r--r-- root/root       146 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/compat.cpython-39.opt-1.pyc
-rw-r--r-- root/root       146 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/compat.cpython-39.pyc
-rw-r--r-- root/root      7954 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/converters.cpython-39.opt-1.pyc
-rw-r--r-- root/root      7954 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/converters.cpython-39.pyc
-rw-r--r-- root/root      1216 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/decorators.cpython-39.opt-1.pyc
-rw-r--r-- root/root      1216 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/decorators.cpython-39.pyc
-rw-r--r-- root/root      3501 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/formatters.cpython-39.opt-1.pyc
-rw-r--r-- root/root      3501 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/formatters.cpython-39.pyc
-rw-r--r-- root/root      1920 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/import_.cpython-39.opt-1.pyc
-rw-r--r-- root/root      1920 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/import_.cpython-39.pyc
-rw-r--r-- root/root      2526 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/logger.cpython-39.opt-1.pyc
-rw-r--r-- root/root      2526 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/logger.cpython-39.pyc
-rw-r--r-- root/root      3106 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/terminal.cpython-39.opt-1.pyc
-rw-r--r-- root/root      3106 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/terminal.cpython-39.pyc
-rw-r--r-- root/root      2395 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/time.cpython-39.opt-1.pyc
-rw-r--r-- root/root      2395 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/__pycache__/time.cpython-39.pyc
-rw-r--r-- root/root         0 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/compat.py
-rw-r--r-- root/root      8318 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/converters.py
-rw-r--r-- root/root       948 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/decorators.py
-rw-r--r-- root/root      3837 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/formatters.py
-rw-r--r-- root/root      2757 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/import_.py
-rw-r--r-- root/root      1775 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/logger.py
-rw-r--r-- root/root      4286 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/terminal.py
-rw-r--r-- root/root      3212 2021-01-25 10:21 usr/lib/python3.9/site-packages/python_utils/time.py
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/share/
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/share/doc/
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/share/doc/python-utils/
-rw-r--r-- root/root      3408 2021-01-25 10:21 usr/share/doc/python-utils/README.rst
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/share/licenses/
drwxr-xr-x root/root         0 2021-01-25 10:21 usr/share/licenses/python-utils/
-rw-r--r-- root/root      1501 2021-01-25 10:21 usr/share/licenses/python-utils/LICENSE

While using _python_utils_tests is marginally than using tests, I would probably prefer the tests not being installed at all if they are not required during runtime.

I am still trying to understand how pip can get this wrong (as shown in #11). Is a very old version of setuptools in use maybe?

ImportError: cannot import name 'Endpoint' from 'utils'

Hello,

I have problem with python-utils during the installation of docstring==0.1.2.4 I get this ImportError:

Collecting docstring
  Using cached docstring-0.1.2.4.tar.gz (4.9 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error
  
  ร— python setup.py egg_info did not run successfully.
  โ”‚ exit code: 1
  โ•ฐโ”€> [8 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-fjjefc7o/docstring_651051196695404985a31f2c121cbc60/setup.py", line 2, in <module>
          import docstring
        File "/tmp/pip-install-fjjefc7o/docstring_651051196695404985a31f2c121cbc60/docstring/__init__.py", line 11, in <module>
          from utils import Endpoint
      ImportError: cannot import name 'Endpoint' from 'utils' (/.../.local/lib/python3.10/site-packages/utils/__init__.py)
      [end of output]

Python version: 3.11.5
OS: Ubuntu 22.04.3

Many thanks for your help.

utils.safe_mkdir('checkpoints') doesn't exist

Hi!
When I run this command utils.safe_mkdir('checkpoints'), Python throws AttributeError: module 'utils' has no attribute 'safe_mkdir'. I found this command in this Stanford Github repo: https://github.com/chiphuyen/stanford-tensorflow-tutorials/blob/master/examples/07_convnet_mnist.py.

There is another weird command (utils.get_mnist_dataset), which made me think that these are custom functions added to the utils package. If this is the case, why would they do that instead of creating the function somewhere else?

2.5.6: pytest is failing

Continuations of the #18

Just normal build, install and test cycle used on building package from non-root account:

  • "setup.py build"
  • "setup.py install --root </install/prefix>"
  • "pytest with PYTHONPATH pointing to setearch and sitelib inside </install/prefix>
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-utils-2.5.6-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-utils-2.5.6-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.11, pytest-6.2.4, py-1.10.0, pluggy-0.13.1
benchmark: 3.4.1 (defaults: timer=time.perf_counter disable_gc=False min_rounds=5 min_time=0.000005 max_time=1.0 calibration_precision=10 warmup=False warmup_iterations=100000)
rootdir: /home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6, configfile: pytest.ini
plugins: forked-1.3.0, shutil-1.7.0, virtualenv-1.7.0, expect-1.1.0, httpbin-1.0.0, flake8-1.0.7, timeout-1.4.2, betamax-0.8.1, freezegun-0.4.2, case-1.5.3, isort-1.3.0, aspectlib-1.5.2, asyncio-0.15.1, toolbox-0.5, aiohttp-0.3.0, checkdocs-2.7.0, mock-3.6.1, rerunfailures-9.1.1, requests-mock-1.9.3, cov-2.12.1, pyfakefs-4.5.0, flaky-3.7.0, benchmark-3.4.1, xdist-2.3.0, pylama-7.7.1, datadir-1.3.1, regressions-2.2.0, cases-3.6.3, hypothesis-6.14.4, Faker-8.10.3, xprocess-0.18.1, black-0.3.12
collected 35 items

. .                                                                                                                                                                  [  2%]
setup.py F                                                                                                                                                           [  5%]
_python_utils_tests/__init__.py .                                                                                                                                    [  8%]
_python_utils_tests/test_import.py .......                                                                                                                           [ 29%]
_python_utils_tests/test_python_utils.py ..                                                                                                                          [ 35%]
python_utils/__init__.py .                                                                                                                                           [ 38%]
python_utils/__about__.py .                                                                                                                                          [ 41%]
python_utils/compat.py .                                                                                                                                             [ 44%]
python_utils/converters.py F......                                                                                                                                   [ 64%]
python_utils/decorators.py ..                                                                                                                                        [ 70%]
python_utils/formatters.py F..                                                                                                                                       [ 79%]
python_utils/import_.py .                                                                                                                                            [ 82%]
python_utils/logger.py F.                                                                                                                                            [ 88%]
python_utils/terminal.py F                                                                                                                                           [ 91%]
python_utils/time.py F..                                                                                                                                             [100%]

================================================================================= FAILURES =================================================================================
_______________________________________________________________________ FLAKE8-check(ignoring W391) ________________________________________________________________________
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/setup.py:3:1: H306: imports not in alphabetical order (sys, setuptools)

---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
WARNING  flake8.options.manager:manager.py:186 option --indent-size: please update `help=` text to use %(default)s instead of %default -- this will be an error in the future
WARNING  flake8.options.manager:manager.py:207 option --max-complexity: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future
_______________________________________________________________________ FLAKE8-check(ignoring W391) ________________________________________________________________________
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:1:40: H301: one import per line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:6:1: H306: imports not in alphabetical order (six, math)
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:10:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:10:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:11:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:11:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:12:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:12:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:13:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:13:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:14:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:14:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:15:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:15:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:16:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:16:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:17:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:17:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:18:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:18:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:19:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:19:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:20:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:20:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:21:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:21:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:22:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:22:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:23:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:23:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:24:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:24:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:25:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:25:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:26:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:26:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:27:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:27:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:28:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:28:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:29:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:29:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:30:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:30:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:31:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:31:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:32:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:32:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:33:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:33:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:34:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:34:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:35:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:35:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:36:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:36:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:37:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:37:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:38:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:38:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:39:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:39:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:40:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:40:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:41:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:41:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:42:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:42:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:43:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:43:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:44:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:44:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:45:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:45:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:46:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:46:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:47:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:47:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:48:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:48:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:49:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:49:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:50:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:50:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:51:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:51:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:52:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:52:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:53:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:53:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:54:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:54:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:55:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:55:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:56:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:56:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:57:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:57:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:58:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:58:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:59:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:59:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:60:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:60:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:61:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:61:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:62:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:62:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:63:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:63:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:64:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:64:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:65:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:65:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:66:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:66:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:89:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:89:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:90:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:90:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:91:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:91:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:92:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:92:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:93:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:93:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:94:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:94:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:95:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:95:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:96:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:96:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:97:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:97:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:98:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:98:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:99:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:99:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:100:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:100:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:101:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:101:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:102:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:102:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:103:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:103:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:104:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:104:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:105:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:105:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:106:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:106:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:107:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:107:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:108:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:108:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:109:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:109:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:110:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:110:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:111:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:111:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:112:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:112:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:113:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:113:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:114:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:114:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:115:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:115:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:116:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:116:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:117:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:117:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:118:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:118:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:119:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:119:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:120:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:120:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:121:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:121:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:122:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:122:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:123:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:123:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:124:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:124:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:125:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:125:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:126:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:126:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:127:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:127:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:128:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:128:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:129:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:129:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:130:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:130:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:131:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:131:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:132:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:132:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:133:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:133:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:134:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:134:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:135:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:135:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:136:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:136:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:137:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:137:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:138:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:138:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:139:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:139:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:161:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:162:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:163:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:164:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:165:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:166:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:167:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:168:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:169:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:170:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:171:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:172:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:173:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:174:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:175:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:176:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:177:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:239:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:239:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:240:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:240:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:241:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:241:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:242:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:242:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:243:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:243:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:244:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:244:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:245:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:245:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:246:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:246:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:247:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:247:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:248:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:248:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:249:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:249:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:250:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:250:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:251:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:251:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:252:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:252:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:253:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:253:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:254:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:254:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:255:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:255:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:256:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:256:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:257:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:257:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:258:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:258:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:259:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:259:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:260:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:260:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:261:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:261:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:262:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:262:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:263:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:263:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:264:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:264:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:265:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:265:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:266:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:266:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:267:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:267:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:268:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:268:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:269:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:269:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:270:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:270:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:271:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:271:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:272:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:272:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:273:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:273:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:274:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:274:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:275:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:275:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:276:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:276:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:277:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:277:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:278:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:278:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:279:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:279:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:280:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:280:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:281:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:281:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:282:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:282:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:283:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/converters.py:283:1: H405: multi line docstring summary not separated with an empty line

---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
WARNING  flake8.options.manager:manager.py:186 option --indent-size: please update `help=` text to use %(default)s instead of %default -- this will be an error in the future
WARNING  flake8.options.manager:manager.py:207 option --max-complexity: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future
_______________________________________________________________________ FLAKE8-check(ignoring W391) ________________________________________________________________________
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:43:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:43:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:44:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:44:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:45:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:45:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:46:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:46:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:47:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:47:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:48:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:48:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:49:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:49:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:50:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:50:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:51:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:51:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:52:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:52:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:53:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:53:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:54:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:54:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:55:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:55:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:56:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:56:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:57:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:57:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:58:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:58:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:59:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:59:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:60:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:60:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:61:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:61:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:62:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:62:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:63:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:63:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:64:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:64:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:65:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:65:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:66:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:66:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:67:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:67:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:68:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:68:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:69:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:69:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:70:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:70:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:71:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:71:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:72:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:72:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:73:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:73:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:74:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:74:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:75:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:75:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:76:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:76:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:77:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:77:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:78:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:78:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:79:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:79:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:80:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:80:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:81:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:81:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:82:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:82:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:83:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:83:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:84:1: H404: multi line docstring should start without a leading new line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/formatters.py:84:1: H405: multi line docstring summary not separated with an empty line

---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
WARNING  flake8.options.manager:manager.py:186 option --indent-size: please update `help=` text to use %(default)s instead of %default -- this will be an error in the future
WARNING  flake8.options.manager:manager.py:207 option --max-complexity: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future
_______________________________________________________________________ FLAKE8-check(ignoring W391) ________________________________________________________________________
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:2:1: H306: imports not in alphabetical order (logging, functools)
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:8:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:9:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:10:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:11:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:12:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:13:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:14:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:15:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:16:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:17:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:18:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:19:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:20:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:21:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:22:1: H405: multi line docstring summary not separated with an empty line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/logger.py:23:1: H405: multi line docstring summary not separated with an empty line

---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
WARNING  flake8.options.manager:manager.py:186 option --indent-size: please update `help=` text to use %(default)s instead of %default -- this will be an error in the future
WARNING  flake8.options.manager:manager.py:207 option --max-complexity: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future
_______________________________________________________________________ FLAKE8-check(ignoring W391) ________________________________________________________________________
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/terminal.py:84:34: H301: one import per line
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/terminal.py:131:13: H306: imports not in alphabetical order (termios, struct)

---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
WARNING  flake8.options.manager:manager.py:186 option --indent-size: please update `help=` text to use %(default)s instead of %default -- this will be an error in the future
WARNING  flake8.options.manager:manager.py:207 option --max-complexity: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future
_______________________________________________________________________ FLAKE8-check(ignoring W391) ________________________________________________________________________
/home/tkloczko/rpmbuild/BUILD/python-utils-2.5.6/python_utils/time.py:2:1: H306: imports not in alphabetical order (six, datetime)

---------------------------------------------------------------------------- Captured log call -----------------------------------------------------------------------------
WARNING  flake8.options.manager:manager.py:186 option --indent-size: please update `help=` text to use %(default)s instead of %default -- this will be an error in the future
WARNING  flake8.options.manager:manager.py:207 option --max-complexity: please update from optparse string `type=` to argparse callable `type=` -- this will be an error in the future

---------- coverage: platform linux, python 3.8.11-final-0 -----------
Name                         Stmts   Miss Branch BrPart  Cover   Missing
------------------------------------------------------------------------
python_utils/__about__.py        6      0      0      0   100%
python_utils/__init__.py         0      0      0      0   100%
python_utils/compat.py           0      0      0      0   100%
python_utils/converters.py      69      0     38      0   100%
python_utils/decorators.py       6      0      2      0   100%
python_utils/formatters.py      29      0     20      0   100%
python_utils/import_.py         32      0     20      0   100%
python_utils/logger.py          34      0      2      0   100%
python_utils/terminal.py         1      0      0      0   100%
python_utils/time.py            25      0      8      0   100%
------------------------------------------------------------------------
TOTAL                          202      0     90      0   100%
Coverage HTML written to dir htmlcov

Required test coverage of 100.0% reached. Total coverage: 100.00%
========================================================================= short test summary info ==========================================================================
FAILED setup.py::FLAKE8
FAILED python_utils/converters.py::FLAKE8
FAILED python_utils/formatters.py::FLAKE8
FAILED python_utils/logger.py::FLAKE8
FAILED python_utils/terminal.py::FLAKE8
FAILED python_utils/time.py::FLAKE8
====================================================================== 6 failed, 28 passed in 11.34s =======================================================================
pytest-xprocess reminder::Be sure to terminate the started process by running 'pytest --xkill' if you have not explicitly done so in your fixture with 'xprocess.getinfo(<process_name>).terminate()'.
[tkloczko@barrel SPECS]$ pip show pytest-flake8
Name: pytest-flake8
Version: 1.0.7
Summary: pytest plugin to check FLAKE8 requirements
Home-page: https://github.com/tholo/pytest-flake8
Author: Thorsten Lockert
Author-email: [email protected]
License: BSD License
Location: /usr/lib/python3.8/site-packages
Requires: flake8, pytest
Required-by:

Util for threshold

Okay so the word 'threshold' could be wrong. I don't have any better word for this. So here's the problem i have.

We have 3 environments for our app DEV, UAT and Production. There are pipelines that push data in each of these environment's. This data is kinda live streaming data that doesn't always need to be consistent in dev and uat. Since the frequency of data being pushed is quite high and that becomes expensive, even if that's not needed.

That lead us to think is there any way we could handle this. So we can have something, may be a decorator, that can be used to control whether to proceed or not. This is somewhat similar to what sentry has for sampling_rate.

Any better name for this?

I would be happy to contribute.

2.6.3: pytest is failing on coverage tests

I'm trying to package your module as an rpm package. So I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w
  • install .whl file in </install/prefix>
  • run pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

Here is pytest output:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-utils-2.6.3-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-utils-2.6.3-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -p no:randomly
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.12, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/python-utils-2.6.3, configfile: pytest.ini
plugins: cov-3.0.0, flake8-1.0.7
collected 20 items

_python_utils_tests/test_import.py ......                                                                                                                            [ 30%]
_python_utils_tests/test_python_utils.py .                                                                                                                           [ 35%]
python_utils/converters.py ......                                                                                                                                    [ 65%]
python_utils/decorators.py .                                                                                                                                         [ 70%]
python_utils/formatters.py ..                                                                                                                                        [ 80%]
python_utils/logger.py .                                                                                                                                             [ 85%]
python_utils/time.py ...                                                                                                                                             [100%]

---------- coverage: platform linux, python 3.8.12-final-0 -----------
Name                         Stmts   Miss Branch BrPart  Cover   Missing
------------------------------------------------------------------------
python_utils/__about__.py        6      0      0      0   100%
python_utils/__init__.py         0      0      0      0   100%
python_utils/compat.py           0      0      0      0   100%
python_utils/converters.py      80      0     42      0   100%
python_utils/decorators.py       6      0      2      0   100%
python_utils/formatters.py      29      0     20      0   100%
python_utils/import_.py         32      0     22      0   100%
python_utils/logger.py          34      0      4      0   100%
python_utils/terminal.py         1      0      0      0   100%
python_utils/time.py            45      1     18      0    98%   167
------------------------------------------------------------------------
TOTAL                          233      1    108      0    99%
Coverage HTML written to dir htmlcov

FAIL Required test coverage of 100.0% not reached. Total coverage: 99.71%

============================================================================ 20 passed in 5.23s ============================================================================

3.1.0: pytest coverage of 100.0% not reached

Yep .. ๐Ÿ˜„

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-utils-3.1.0-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-utils-3.1.0-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra python_utils
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.12, pytest-6.2.5, py-1.11.0, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0, configfile: pytest.ini
plugins: hypothesis-6.35.0, cov-3.0.0, flake8-1.0.7, mypy-0.8.1
collected 31 items

python_utils/__init__.py ..                                                                                                                                          [  6%]
python_utils/__about__.py .                                                                                                                                          [  9%]
python_utils/aio.py .                                                                                                                                                [ 12%]
python_utils/compat.py .                                                                                                                                             [ 16%]
python_utils/containers.py ...                                                                                                                                       [ 25%]
python_utils/converters.py .......                                                                                                                                   [ 48%]
python_utils/decorators.py ...                                                                                                                                       [ 58%]
python_utils/formatters.py ...                                                                                                                                       [ 67%]
python_utils/import_.py .                                                                                                                                            [ 70%]
python_utils/logger.py ..                                                                                                                                            [ 77%]
python_utils/terminal.py .                                                                                                                                           [ 80%]
python_utils/time.py .....                                                                                                                                           [ 96%]
python_utils/types.py .                                                                                                                                              [100%]

---------- coverage: platform linux, python 3.8.12-final-0 -----------
Name                         Stmts   Miss Branch BrPart  Cover   Missing
------------------------------------------------------------------------
python_utils/__about__.py        6      0      0      0   100%
python_utils/__init__.py        28      0      0      0   100%
python_utils/aio.py              6      3      2      0    62%   7-9
python_utils/compat.py           0      0      0      0   100%
python_utils/containers.py      55      0     28      0   100%
python_utils/converters.py      82      0     44      0   100%
python_utils/decorators.py      18      0      4      0   100%
python_utils/formatters.py      30      0     20      0   100%
python_utils/import_.py         34     30     22      0    11%   31-85
python_utils/logger.py          36      0      4      0   100%
python_utils/terminal.py         3      0      0      0   100%
python_utils/time.py            74     17     32      2    78%   175, 200-222, 253
python_utils/types.py           13      0      0      0   100%
------------------------------------------------------------------------
TOTAL                          385     50    156      2    86%
Coverage HTML written to dir htmlcov

FAIL Required test coverage of 100.0% not reached. Total coverage: 85.95%
=================================================================================== mypy ===================================================================================

Success: no issues found in 13 source files
=========================================================================== 31 passed in 16.24s ============================================================================

3.4.5: pytest is failing in mypy units

I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.

  • python3 -sBm build -w --no-isolation
  • because I'm calling build with --no-isolation I'm using during all processes only locally installed modules
  • install .whl file in </install/prefix>
  • run pytest with PYTHONPATH pointing to sitearch and sitelib inside </install/prefix>

Here is pytest output:

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-utils-3.4.5-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-utils-3.4.5-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.15, pytest-7.2.0, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/python-utils-3.4.5, configfile: pytest.ini
plugins: asyncio-0.20.2, mypy-0.10.2
asyncio: mode=strict
collected 72 items

setup.py FF                                                                                                                                                          [  2%]
_python_utils_tests/__init__.py .                                                                                                                                    [  4%]
_python_utils_tests/test_decorators.py ...                                                                                                                           [  8%]
_python_utils_tests/test_generators.py .....                                                                                                                         [ 15%]
_python_utils_tests/test_import.py .......                                                                                                                           [ 25%]
_python_utils_tests/test_logger.py ..                                                                                                                                [ 27%]
_python_utils_tests/test_python_utils.py ..                                                                                                                          [ 30%]
_python_utils_tests/test_time.py ............                                                                                                                        [ 47%]
docs/conf.py .                                                                                                                                                       [ 48%]
python_utils/__init__.py .                                                                                                                                           [ 50%]
python_utils/__about__.py .                                                                                                                                          [ 51%]
python_utils/aio.py .                                                                                                                                                [ 52%]
python_utils/compat.py .                                                                                                                                             [ 54%]
python_utils/containers.py ...                                                                                                                                       [ 58%]
python_utils/converters.py .......                                                                                                                                   [ 68%]
python_utils/decorators.py ....                                                                                                                                      [ 73%]
python_utils/exceptions.py ..                                                                                                                                        [ 76%]
python_utils/formatters.py ....                                                                                                                                      [ 81%]
python_utils/generators.py .                                                                                                                                         [ 83%]
python_utils/import_.py .                                                                                                                                            [ 84%]
python_utils/logger.py ...                                                                                                                                           [ 88%]
python_utils/loguru.py F                                                                                                                                             [ 90%]
python_utils/terminal.py .                                                                                                                                           [ 91%]
python_utils/time.py .....                                                                                                                                           [ 98%]
python_utils/types.py F                                                                                                                                              [100%]

================================================================================= FAILURES =================================================================================
_________________________________________________________________________________ setup.py _________________________________________________________________________________
4: error: Skipping analyzing "setuptools": module is installed, but missing library stubs or py.typed marker  [import]
4: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
_______________________________________________________________________________ test session _______________________________________________________________________________
mypy exited with status 1.
__________________________________________________________________________ python_utils/loguru.py __________________________________________________________________________
14: note: By default the bodies of untyped functions are not checked, consider using --check-untyped-defs  [annotation-unchecked]
__________________________________________________________________________ python_utils/types.py ___________________________________________________________________________
36: error: Function "Type[Pattern[Any]]" could always be true in boolean context  [truthy-function]
=================================================================================== mypy ===================================================================================
Found 2 errors in 2 files (checked 25 source files)
========================================================================= short test summary info ==========================================================================
FAILED setup.py::mypy
FAILED setup.py::mypy-status
FAILED python_utils/loguru.py::mypy
FAILED python_utils/types.py::mypy
====================================================================== 4 failed, 68 passed in 50.08s =======================================================================

Here is list of installed modules in build env

Package                       Version
----------------------------- -----------------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         22.1.0
Babel                         2.11.0
Brlapi                        0.8.3
build                         0.9.0
charset-normalizer            3.0.1
contourpy                     1.0.6
cssselect                     1.1.0
cycler                        0.11.0
distro                        1.8.0
dnspython                     2.2.1
docutils                      0.19
exceptiongroup                1.0.0
extras                        1.0.0
filelock                      3.8.0
fixtures                      4.0.0
fonttools                     4.38.0
gpg                           1.17.1-unknown
idna                          3.4
imagesize                     1.4.1
importlib-metadata            5.1.0
iniconfig                     1.1.1
Jinja2                        3.1.2
kiwisolver                    1.4.4
libcomps                      0.1.19
loguru                        0.6.0
louis                         3.23.0
lxml                          4.9.1
MarkupSafe                    2.1.1
matplotlib                    3.6.2
mypy                          0.990
mypy-extensions               0.4.3
numpy                         1.23.1
olefile                       0.46
packaging                     21.3
pbr                           5.9.0
pep517                        0.13.0
Pillow                        9.3.0
pip                           22.3.1
pluggy                        1.0.0
Pygments                      2.13.0
PyGObject                     3.42.2
pyparsing                     3.0.9
pytest                        7.2.0
pytest-asyncio                0.20.2
pytest-mypy                   0.10.2
pytest-runner                 6.0.0
python-dateutil               2.8.2
pytz                          2022.4
requests                      2.28.1
rpm                           4.17.0
scour                         0.38.2
setuptools                    65.6.3
six                           1.16.0
snowballstemmer               2.2.0
Sphinx                        5.3.0
sphinxcontrib-applehelp       1.0.2.dev20221204
sphinxcontrib-devhelp         1.0.2.dev20221204
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1.dev20221204
sphinxcontrib-qthelp          1.0.3.dev20221204
sphinxcontrib-serializinghtml 1.1.5
testtools                     2.5.0
tomli                         2.0.1
typing_extensions             4.4.0
urllib3                       1.26.12
wheel                         0.38.4
zipp                          3.11.0

python 2.7 use python-utils 2.6.0 Failed

python 2.7 use python-utils 2.6.0 Failed,because the syntax of python3 is used
such as
def timeout_generator(
timeout: delta_type,
interval: delta_type = datetime.timedelta(seconds=1),
iterable=itertools.count,
interval_exponent=1.0,
):
line 106 in time.py
Maybe,we should add โ€˜python_requiresโ€™ in setup.py

Sphinx 2.0 problems: BuildEnvironment has no attribute warn_node

In Fedora, we have the following problem when building the docs with Sphinx 2.0.1:

+ sphinx-build docs html
Running Sphinx v2.0.1
BUILDSTDERR: Configuration error:
BUILDSTDERR: There is a programmable error in your configuration file:
BUILDSTDERR: Traceback (most recent call last):
BUILDSTDERR:   File "/usr/lib/python3.7/site-packages/sphinx/config.py", line 361, in eval_config_file
BUILDSTDERR:     execfile_(filename, namespace)
BUILDSTDERR:   File "/usr/lib/python3.7/site-packages/sphinx/util/pycompat.py", line 86, in execfile_
BUILDSTDERR:     exec(code, _globals)
BUILDSTDERR:   File "/builddir/build/BUILD/python-utils-2.3.0/docs/conf.py", line 71, in <module>
BUILDSTDERR:     original_warn_mode = sphinx.environment.BuildEnvironment.warn_node
BUILDSTDERR: AttributeError: type object 'BuildEnvironment' has no attribute 'warn_node'

I cannot have a look ATM, but can try to submit a PR later.

Reported at https://bugzilla.redhat.com/show_bug.cgi?id=1709063

License text unknown

Hi, in setup.py, you mark this project as BSD licensed, however, i cannot see the actuall text of the license.
Since OSI Approved :: BSD License can mean multiple licenses, could you please include a LICENSE file with the text?

Thanks.

A bad(?) whl for version 2.5.6 on pypi.org

Hi.

It seems that pypi.org has a bad wheel of 2.5.6 -
https://files.pythonhosted.org/packages/bb/44/c67aa32de9d34bf3693c4eddb213c88a7821611b5a786efe022c19747d46/python_utils-2.5.6-py3-none-any.whl

That version is not linked from https://pypi.org/simple/python-utils/ or from https://pypi.org/project/python-utils/2.5.6/#files, but it exists, and is picked sometimes by pip, not sure how - on some systems I use it happens, on others it does not.

It seems to be something released from this branch https://github.com/WoLpH/python-utils/tree/unit_conversion_restyled (by mistake?)

Since this version has strict requirements - six = "^1.16.0", for example, it may cause problems with the pip resolver on large projects.

The bad (?) package is py3 only. Would it be possible for you to release a "correct" version of 2.5.6-py3 package to mitigate this issue?

Thanks!

Just FYI, your new v2.5.6 wheel uploaded yesterday broke our builds due to the newly-added version constraint

Last night, a mystery occurred at my workplace: our builds were breaking, with pip complaining of conflict. pip explained that it couldn't find a version of six compatible with all the pinned dependency versions in our requirements.txt...

The conflict is caused by:
--
ย  | The user requested six==1.15.0
ย  | bcrypt 3.2.0 depends on six>=1.4.1
ย  | cryptography 3.3.2 depends on six>=1.4.1
ย  ... [many more lines omitted] ...
ย  | python-utils 2.5.6 depends on six<2.0.0 and >=1.16.0

We fixed it by bumping the version of six we had pinned in our requirements.txt, but we were puzzled. We hadn't changed our requirements.txt when the build started breaking, and everything was fine before. How could our previously healthy requirements.txt have suddenly ended up with a conflict despite not actually being modified?

The answer, I discovered after a little digging around, is that v2.5.6 of python-utils, which we'd been using for months, got a new wheel uploaded last night, shown at https://pypi.org/project/python-utils/2.5.6/#files. That new wheel's METADATA file, unlike the other existing wheel for v2.5.6, contains a version constraint:

Requires-Dist: six (>=1.16.0,<2.0.0)

I've never maintained any packages on PyPI and am not sure what the accepted practices are, but I would've thought that retroactively adding new version constraints to an already-published version of a package like this is probably a bad thing to do for the reason demonstrated by my experience - it can break people's previously happy builds that are depending on that version. I wonder if the introduction of the constraint was intentional or a mistake, and whether there's something to be learned here!

Not necessarily requesting any action from you by opening this issue; just thought I'd make you aware this had happened so you can ponder whether it reveals a mistake that needs correcting or a problematic process. By the way, thanks for maintaining the package!

python-utils 3.6.0 is triggering an attribute error

This is being triggered through a particular version of awswrangler, however, I'd like to confirm with you whether or not this attribute does/does not exist in 3.6.0. Please see the error here:


AttributeError Traceback (most recent call last)
in
----> 1 import awswrangler

/opt/conda/lib/python3.8/site-packages/awswrangler/init.py in
8 import logging as _logging
9
---> 10 from awswrangler import ( # noqa
11 athena,
12 catalog,

/opt/conda/lib/python3.8/site-packages/awswrangler/opensearch/init.py in
3 from awswrangler.opensearch._read import search, search_by_sql
4 from awswrangler.opensearch._utils import connect
----> 5 from awswrangler.opensearch._write import create_index, delete_index, index_csv, index_df, index_documents, index_json
6
7 all = [

/opt/conda/lib/python3.8/site-packages/awswrangler/opensearch/_write.py in
9 import boto3
10 import pandas as pd
---> 11 import progressbar
12 from jsonpath_ng import parse
13 from jsonpath_ng.exceptions import JsonPathParserError

/opt/conda/lib/python3.8/site-packages/progressbar/init.py in
1 from datetime import date
2
----> 3 from .utils import (
4 len_color,
5 streams

/opt/conda/lib/python3.8/site-packages/progressbar/utils.py in
7 import logging
8 import datetime
----> 9 from python_utils.time import timedelta_to_seconds, epoch, format_time
10 from python_utils.converters import scale_1024
11 from python_utils.terminal import get_terminal_size

/opt/conda/lib/python3.8/site-packages/python_utils/init.py in
----> 1 from . import (
2 aio,
3 compat,
4 converters,
5 decorators,

/opt/conda/lib/python3.8/site-packages/python_utils/decorators.py in
6 T = types.TypeVar('T')
7 TC = types.TypeVar('TC', bound=types.Container[types.Any])
----> 8 P = types.ParamSpec('P')
9
10

AttributeError: module 'python_utils.types' has no attribute 'ParamSpec'

2.5.0: Installs tests into top-level directory

Hi! I package python-utils for Arch Linux.

When packaging 2.5.0, I noticed, that now the tests are installed top-level into the site-packages directory. This is a problem, because it will conflict with other packages (it happens from time to time, that packages accidentally install tests globally).

To fix this, the packages parameter for setuptools' setup() needs to be specified in such a way, that it only installs the contents of the utils, but not that of the tests.

Bad signature for 2.6.1 sdist tarball

Hi! Upon trying to package 2.6.1 for Arch Linux I ran into a bad signature for the sdist tarball:

gpg --verify python-utils-2.6.1.tar.gz.asc
gpg: assuming signed data in 'python-utils-2.6.1.tar.gz'
gpg: Signature made 2021-12-17T11:31:03 CET
gpg:                using RSA key 149325FD15904E9C4EB89E95E81444E9CE1F695D
gpg: BAD signature from "Rick van Hattem <[email protected]>" [expired]

2.5.3: No tests in source tarball, prepopulated __pycache__ directory

Hi! When trying to package 2.5.3. for Arch Linux I was unable to run pytest, as there are no tests in the sdist tarball anymore.
Also, there is now a prepopulated __pycache__ directory. Please make sure to include the tests in the sdist tarball and build the tarball in a clean environment to ensure that there is no __pycache__.

tar -tvf python-utils-2.5.3.tar.gz --force-local
drwxr-xr-x rick/staff        0 2021-01-25 18:00 python-utils-2.5.3/
-rw-r--r-- rick/staff     1501 2016-12-10 18:58 python-utils-2.5.3/LICENSE
-rw-r--r-- rick/staff     4635 2021-01-25 18:00 python-utils-2.5.3/PKG-INFO
-rw-r--r-- rick/staff     3408 2017-07-23 22:50 python-utils-2.5.3/README.rst
-rw-r--r-- rick/staff       50 2014-10-15 17:06 python-utils-2.5.3/coverage.rc
-rw-r--r-- rick/staff      303 2021-01-21 04:06 python-utils-2.5.3/pytest.ini
drwxr-xr-x rick/staff        0 2021-01-25 18:00 python-utils-2.5.3/python_utils/
-rw------- rick/staff    12288 2012-07-23 16:22 python-utils-2.5.3/python_utils/.set.swp
-rw-r--r-- rick/staff      308 2021-01-25 18:00 python-utils-2.5.3/python_utils/__about__.py
-rw-r--r-- rick/staff      507 2020-09-09 16:33 python-utils-2.5.3/python_utils/__about__.pyc
-rw-r--r-- rick/staff        0 2021-01-25 18:00 python-utils-2.5.3/python_utils/__init__.py
-rw-r--r-- rick/staff      143 2021-01-21 03:59 python-utils-2.5.3/python_utils/__init__.pyc
drwxr-xr-x rick/staff        0 2021-01-25 18:00 python-utils-2.5.3/python_utils/__pycache__/
-rw------- rick/staff      654 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/__about__.cpython-27-PYTEST.pyc
-rw-r--r-- rick/staff      467 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/__about__.cpython-35.pyc
-rw-r--r-- rick/staff      455 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/__about__.cpython-36.pyc
-rw-r--r-- rick/staff      576 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/__about__.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff      580 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/__about__.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff      462 2021-01-15 10:45 python-utils-2.5.3/python_utils/__pycache__/__about__.cpython-38.pyc
-rw-r--r-- rick/staff      576 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/__about__.cpython-39-pytest-6.2.1.pyc
-rw-r--r-- rick/staff      468 2016-06-07 16:33 python-utils-2.5.3/python_utils/__pycache__/__about__.pypy3-24.pyc
-rw-r--r-- rick/staff      142 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/__init__.cpython-35.pyc
-rw-r--r-- rick/staff      142 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/__init__.cpython-36.pyc
-rw-r--r-- rick/staff      145 2018-10-17 21:30 python-utils-2.5.3/python_utils/__pycache__/__init__.cpython-37.pyc
-rw-r--r-- rick/staff      143 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/__init__.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff      147 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/__init__.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff      147 2021-01-15 10:45 python-utils-2.5.3/python_utils/__pycache__/__init__.cpython-38.pyc
-rw-r--r-- rick/staff      147 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/__init__.cpython-39-pytest-6.2.1.pyc
-rw-r--r-- rick/staff      150 2016-06-07 16:33 python-utils-2.5.3/python_utils/__pycache__/__init__.pypy3-24.pyc
-rw------- rick/staff      145 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/compat.cpython-27-PYTEST.pyc
-rw-r--r-- rick/staff      140 2016-05-31 14:46 python-utils-2.5.3/python_utils/__pycache__/compat.cpython-35.pyc
-rw-r--r-- rick/staff      140 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/compat.cpython-36.pyc
-rw-r--r-- rick/staff      141 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/compat.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff      145 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/compat.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff      145 2020-03-03 01:33 python-utils-2.5.3/python_utils/__pycache__/compat.cpython-38.pyc
-rw-r--r-- rick/staff      145 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/compat.cpython-39-pytest-6.2.1.pyc
-rw-r--r-- rick/staff      148 2016-06-07 16:33 python-utils-2.5.3/python_utils/__pycache__/compat.pypy3-24.pyc
-rw------- rick/staff     8904 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-27-PYTEST.pyc
-rw-r--r-- rick/staff     5619 2015-07-27 16:21 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-34.pyc
-rw-r--r-- rick/staff     5861 2016-05-31 14:46 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-35-PYTEST.pyc
-rw-r--r-- rick/staff     5908 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-35.pyc
-rw-r--r-- rick/staff     5726 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-36.pyc
-rw-r--r-- rick/staff     6372 2018-10-17 21:30 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-37.pyc
-rw-r--r-- rick/staff     8066 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff     8070 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     7957 2020-09-09 14:45 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-38.pyc
-rw-r--r-- rick/staff     8062 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/converters.cpython-39-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     6557 2016-06-07 16:33 python-utils-2.5.3/python_utils/__pycache__/converters.pypy3-24.pyc
-rw------- rick/staff     1481 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/decorators.cpython-27-PYTEST.pyc
-rw-r--r-- rick/staff     1329 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/decorators.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff     1333 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/decorators.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     1215 2021-01-15 10:45 python-utils-2.5.3/python_utils/__pycache__/decorators.cpython-38.pyc
-rw-r--r-- rick/staff     1329 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/decorators.cpython-39-pytest-6.2.1.pyc
-rw------- rick/staff     4060 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/formatters.cpython-27-PYTEST.pyc
-rw-r--r-- rick/staff     3650 2015-07-27 16:21 python-utils-2.5.3/python_utils/__pycache__/formatters.cpython-34.pyc
-rw-r--r-- rick/staff     3655 2016-05-31 14:59 python-utils-2.5.3/python_utils/__pycache__/formatters.cpython-35.pyc
-rw-r--r-- rick/staff     3497 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/formatters.cpython-36.pyc
-rw-r--r-- rick/staff     3609 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/formatters.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff     3613 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/formatters.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     3500 2020-03-03 01:33 python-utils-2.5.3/python_utils/__pycache__/formatters.cpython-38.pyc
-rw-r--r-- rick/staff     3609 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/formatters.cpython-39-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     4017 2016-06-07 16:33 python-utils-2.5.3/python_utils/__pycache__/formatters.pypy3-24.pyc
-rw------- rick/staff     2357 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/import_.cpython-27-PYTEST.pyc
-rw-r--r-- rick/staff     1735 2015-07-27 16:21 python-utils-2.5.3/python_utils/__pycache__/import_.cpython-34.pyc
-rw-r--r-- rick/staff     2030 2016-06-07 19:20 python-utils-2.5.3/python_utils/__pycache__/import_.cpython-35.pyc
-rw-r--r-- rick/staff     1883 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/import_.cpython-36.pyc
-rw-r--r-- rick/staff     2017 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/import_.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff     2021 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/import_.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     1903 2020-03-03 01:33 python-utils-2.5.3/python_utils/__pycache__/import_.cpython-38.pyc
-rw-r--r-- rick/staff     2033 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/import_.cpython-39-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     2302 2016-06-07 16:33 python-utils-2.5.3/python_utils/__pycache__/import_.pypy3-24.pyc
-rw------- rick/staff     3234 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/logger.cpython-27-PYTEST.pyc
-rw-r--r-- rick/staff     2620 2015-07-27 16:21 python-utils-2.5.3/python_utils/__pycache__/logger.cpython-34.pyc
-rw-r--r-- rick/staff     2620 2016-05-30 18:25 python-utils-2.5.3/python_utils/__pycache__/logger.cpython-35.pyc
-rw-r--r-- rick/staff     2486 2017-07-23 22:34 python-utils-2.5.3/python_utils/__pycache__/logger.cpython-36.pyc
-rw-r--r-- rick/staff     2604 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/logger.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff     2608 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/logger.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     2495 2020-03-03 01:33 python-utils-2.5.3/python_utils/__pycache__/logger.cpython-38.pyc
-rw-r--r-- rick/staff     2634 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/logger.cpython-39-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     3499 2016-05-30 18:35 python-utils-2.5.3/python_utils/__pycache__/logger.pypy3-24.pyc
-rw------- rick/staff     3996 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/terminal.cpython-27-PYTEST.pyc
-rw-r--r-- rick/staff     3075 2018-10-17 21:30 python-utils-2.5.3/python_utils/__pycache__/terminal.cpython-37.pyc
-rw-r--r-- rick/staff     3248 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/terminal.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff     3252 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/terminal.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     3139 2020-03-03 01:33 python-utils-2.5.3/python_utils/__pycache__/terminal.cpython-38.pyc
-rw-r--r-- rick/staff     3214 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/terminal.cpython-39-pytest-6.2.1.pyc
-rw------- rick/staff     2891 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/time.cpython-27-PYTEST.pyc
-rw-r--r-- rick/staff     2390 2018-10-17 21:30 python-utils-2.5.3/python_utils/__pycache__/time.cpython-37.pyc
-rw-r--r-- rick/staff     2507 2021-01-21 03:59 python-utils-2.5.3/python_utils/__pycache__/time.cpython-38-pytest-6.0.1.pyc
-rw-r--r-- rick/staff     2511 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/time.cpython-38-pytest-6.2.1.pyc
-rw-r--r-- rick/staff     2398 2020-09-09 14:45 python-utils-2.5.3/python_utils/__pycache__/time.cpython-38.pyc
-rw-r--r-- rick/staff     2503 2021-01-21 04:00 python-utils-2.5.3/python_utils/__pycache__/time.cpython-39-pytest-6.2.1.pyc
-rw-r--r-- rick/staff        0 2016-05-31 12:02 python-utils-2.5.3/python_utils/compat.py
-rw-r--r-- rick/staff      144 2017-07-26 00:48 python-utils-2.5.3/python_utils/compat.pyc
-rw-r--r-- rick/staff     8318 2020-03-03 02:01 python-utils-2.5.3/python_utils/converters.py
-rw-r--r-- rick/staff     8762 2020-09-09 16:33 python-utils-2.5.3/python_utils/converters.pyc
-rw-r--r-- rick/staff      948 2021-01-15 10:46 python-utils-2.5.3/python_utils/decorators.py
-rw-rw-r-- rick/staff     3837 2016-05-31 14:59 python-utils-2.5.3/python_utils/formatters.py
-rw-r--r-- rick/staff     3927 2017-07-26 00:48 python-utils-2.5.3/python_utils/formatters.pyc
-rw-r--r-- rick/staff     2757 2016-06-07 18:15 python-utils-2.5.3/python_utils/import_.py
-rw-r--r-- rick/staff     2224 2017-07-26 00:48 python-utils-2.5.3/python_utils/import_.pyc
-rw-r--r-- rick/staff     1775 2015-06-17 19:43 python-utils-2.5.3/python_utils/logger.py
-rw-r--r-- rick/staff     3125 2017-07-26 00:48 python-utils-2.5.3/python_utils/logger.pyc
-rw-r--r-- rick/staff     4286 2018-02-12 00:05 python-utils-2.5.3/python_utils/terminal.py
-rw-r--r-- rick/staff     3854 2020-03-03 01:27 python-utils-2.5.3/python_utils/terminal.pyc
-rw-r--r-- rick/staff     3212 2020-03-03 02:01 python-utils-2.5.3/python_utils/time.py
-rw-r--r-- rick/staff     2749 2020-09-09 16:33 python-utils-2.5.3/python_utils/time.pyc
drwxr-xr-x rick/staff        0 2021-01-25 18:00 python-utils-2.5.3/python_utils.egg-info/
-rw-rw-r-- rick/staff     4635 2021-01-25 18:00 python-utils-2.5.3/python_utils.egg-info/PKG-INFO
-rw-rw-r-- rick/staff     5103 2021-01-25 18:00 python-utils-2.5.3/python_utils.egg-info/SOURCES.txt
-rw-rw-r-- rick/staff        1 2021-01-25 18:00 python-utils-2.5.3/python_utils.egg-info/dependency_links.txt
-rw-r--r-- rick/staff       47 2015-06-17 19:43 python-utils-2.5.3/python_utils.egg-info/pbr.json
-rw-r--r-- rick/staff        4 2021-01-25 18:00 python-utils-2.5.3/python_utils.egg-info/requires.txt
-rw-rw-r-- rick/staff       13 2021-01-25 18:00 python-utils-2.5.3/python_utils.egg-info/top_level.txt
-rw-r--r-- rick/staff        0 2021-01-25 17:59 python-utils-2.5.3/requirements.txt
-rw-r--r-- rick/staff      439 2021-01-25 18:00 python-utils-2.5.3/setup.cfg
-rw-r--r-- rick/staff     1108 2021-01-25 18:00 python-utils-2.5.3/setup.py
-rw-r--r-- rick/staff      998 2021-01-21 04:06 python-utils-2.5.3/tox.ini

3.1.0: sphinx warnings `reference target not found`

On building my packages I'm using sphinx-build command with -n switch which shows warmings about missing references. These are not critical issues.
Here is the output with warnings:

+ /usr/bin/sphinx-build -n -T -b man docs build/sphinx/man
Running Sphinx v4.5.0
making output directory... done
WARNING: html_static_path entry '_static' does not exist
building [mo]: targets for 0 po files that are out of date
building [man]: all manpages
updating environment: [new config] 3 added, 0 changed, 0 removed
reading sources... [100%] usage
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
writing... python-utils.3 { usage python_utils } /home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/converters.py:docstring of python_utils.converters.to_unicode:: WARNING: py:class reference target not found: unicode
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/formatters.py:docstring of python_utils.formatters.timesince:: WARNING: py:class reference target not found: datetime.datetime
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/formatters.py:docstring of python_utils.formatters.timesince:: WARNING: py:class reference target not found: datetime.timedelta
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/logger.py:docstring of python_utils.logger.Logged.logger:: WARNING: py:class reference target not found: logging.Logger
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/time.py:docstring of python_utils.time.format_time:: WARNING: py:class reference target not found: datetime.timedelta
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/time.py:docstring of python_utils.time.format_time:: WARNING: py:class reference target not found: datetime.date
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/time.py:docstring of python_utils.time.format_time:: WARNING: py:class reference target not found: datetime.datetime
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/time.py:docstring of python_utils.time.format_time:: WARNING: py:class reference target not found: datetime.timedelta
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/time.py:docstring of python_utils.time.timedelta_to_seconds:: WARNING: py:class reference target not found: datetime.timedelta
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.time.format_time:: WARNING: py:class reference target not found: datetime.timedelta
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.time.format_time:: WARNING: py:class reference target not found: datetime.date
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.time.format_time:: WARNING: py:class reference target not found: datetime.datetime
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.time.format_time:: WARNING: py:class reference target not found: datetime.timedelta
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.remap:: WARNING: py:class reference target not found: decimal.Decimal
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.time.timedelta_to_seconds:: WARNING: py:class reference target not found: datetime.timedelta
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.formatters.timesince:: WARNING: py:class reference target not found: datetime.datetime
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.formatters.timesince:: WARNING: py:class reference target not found: datetime.timedelta
/home/tkloczko/rpmbuild/BUILD/python-utils-3.1.0/python_utils/__init__.py:docstring of python_utils.converters.to_unicode:: WARNING: py:class reference target not found: unicode
done
build succeeded, 42 warnings.

No module named utils using sklearn

Help! I am working on a project for a class and keep getting this error message:

ModuleNotFoundError Traceback (most recent call last)
in ()
1 from sklearn.preprocessing import StandardScaler
2 from sklearn.cluster import KMeans
----> 3 import utils
4 import pandas as pd
5 import numpy as np

ModuleNotFoundError: No module named 'utils'

Any insight or hints. I have downloaded it via -pip as well as -conda commands and it is in Anaconda when I'm in the Terminal shell, so why is this not running when I run this project in my notebook?

Conflicts between conda package 3.6.0 and Python 3.7

Hi,

I am using a Python 3.7 conda environment. As I run "conda install python-utils", python-utils 3.6.0 would be installed. However, this would trigger an error when importing python-utils, and the error message is like "match := ... Syntax Error". I guess there may be something wrong in the conda build of python-utils 3.6.0.

In the requirements of the built files, the conda build of python-utils 3.6.0 requires Python >= 3.6.0, but the same pypi package requires Python >= 3.8.0.

Thanks for your attention.

GPG signatures for source validation

Hi,
you know what to do :)

I will ask try to get the python progressbar2 into [community] of archlinux. Could you please tell me what is compatible and what not with the old/other version? I want to simply replace the package instead of creating another one.

2.5.5: test suite is failing

Python 3.8.8 and pytest 6.2.2

+ /usr/bin/python3 -B -m pytest
ERROR: usage: __main__.py [options] [file_or_dir] [file_or_dir] [...]
__main__.py: error: unrecognized arguments: --flake8
  inifile: /home/tkloczko/rpmbuild/BUILD/python-utils-2.5.5/pytest.ini
  rootdir: /home/tkloczko/rpmbuild/BUILD/python-utils-2.5.5

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.