Skip to content
Advertisement

Unknown python DEBUG statements appear

I recently imported some new python modules:

# https://stackoverflow.com/a/36419702/6929343
import logging
import sys

Some unexpected output now appears on my terminal:

2021-05-01 18:11:21,331 DEBUG STREAM IHDR 16 13
2021-05-01 18:11:21,331 DEBUG STREAM bKGD 41 6
2021-05-01 18:11:21,331 DEBUG bKGD 41 6 (unknown)
2021-05-01 18:11:21,331 DEBUG STREAM pHYs 59 9
2021-05-01 18:11:21,331 DEBUG STREAM tIME 80 7
2021-05-01 18:11:21,331 DEBUG tIME 80 7 (unknown)
2021-05-01 18:11:21,331 DEBUG STREAM IDAT 99 88
2021-05-01 18:11:21,334 DEBUG STREAM IHDR 16 13
2021-05-01 18:11:21,334 DEBUG STREAM bKGD 41 6
2021-05-01 18:11:21,334 DEBUG bKGD 41 6 (unknown)
2021-05-01 18:11:21,334 DEBUG STREAM pHYs 59 9
2021-05-01 18:11:21,334 DEBUG STREAM tIME 80 7
2021-05-01 18:11:21,334 DEBUG tIME 80 7 (unknown)
2021-05-01 18:11:21,334 DEBUG STREAM IDAT 99 68
2021-05-01 18:11:21,335 DEBUG STREAM IHDR 16 13
2021-05-01 18:11:21,335 DEBUG STREAM bKGD 41 6
2021-05-01 18:11:21,335 DEBUG bKGD 41 6 (unknown)
2021-05-01 18:11:21,335 DEBUG STREAM pHYs 59 9
2021-05-01 18:11:21,335 DEBUG STREAM tIME 80 7
2021-05-01 18:11:21,335 DEBUG tIME 80 7 (unknown)
2021-05-01 18:11:21,335 DEBUG STREAM IDAT 99 160

Does anyone recognize what library / function might be generating these messages? If so how can they be suppressed if they are unimportant?


Additional information

Here’s the code that was added but, I don’t think it’s causing the DEBUG lines:

def get_active_window():
    """
    Get the currently active window.

    Returns
    -------
    string :
        Name of the currently active window.
    """
    import sys
    active_window_name = None
    if sys.platform in ['linux', 'linux2']:
        # Alternatives: http://unix.stackexchange.com/q/38867/4784
        try:
            import wnck
        except ImportError:
            logging.info("wnck not installed")
            wnck = None
        if wnck is not None:
            screen = wnck.screen_get_default()
            screen.force_update()
            window = screen.get_active_window()
            if window is not None:
                pid = window.get_pid()
                with open("/proc/{pid}/cmdline".format(pid=pid)) as f:
                    active_window_name = f.read()
        else:
            try:
                # Next 3 limes from: https://stackoverflow.com/a/43349245/6929343
                import gi
                gi.require_version('Gtk', '3.0')
                gi.require_version('Wnck', '3.0')
                # Continue with original code:
                from gi.repository import Gtk, Wnck
                gi = "Installed"
            except ImportError:
                logging.info("gi.repository not installed")
                gi = None
            if gi is not None:
                Gtk.init([])  # necessary if not using a Gtk.main() loop
                screen = Wnck.Screen.get_default()
                screen.force_update()  # recommended per Wnck documentation
                active_window = screen.get_active_window()
                pid = active_window.get_pid()
                with open("/proc/{pid}/cmdline".format(pid=pid)) as f:
                    active_window_name = f.read()
    elif sys.platform in ['Windows', 'win32', 'cygwin']:
        # http://stackoverflow.com/a/608814/562769
        import win32gui
        window = win32gui.GetForegroundWindow()
        active_window_name = win32gui.GetWindowText(window)
    elif sys.platform in ['Mac', 'darwin', 'os2', 'os2emx']:
        # http://stackoverflow.com/a/373310/562769
        from AppKit import NSWorkspace
        active_window_name = (NSWorkspace.sharedWorkspace()
                              .activeApplication()['NSApplicationName'])
    else:
        print("sys.platform={platform} is unknown. Please report."
              .format(platform=sys.platform))
        print(sys.version)
    return active_window_name

print("Active window: %s" % str(get_active_window()))

The program output is excpeted and proceeds the DEBUG lines:

2021-05-01 18:11:20,645 INFO wnck not installed
Active window: /usr/lib/gnome-terminal/gnome-terminal-server
Heigh: 2160, Width: 3840
default display: <pyglet.window.xlib.XlibDisplayDevice object at 0x7fb163cf81d0>
XlibScreen(screen=0, x=3840, y=2160, width=1920, height=1080, xinerama=1)
XlibScreen(screen=0, x=0, y=0, width=1920, height=1080, xinerama=1)
XlibScreen(screen=0, x=1920, y=0, width=3840, height=2160, xinerama=1)
splash_image pyimage1
width: 5760 height: 3240
geometry: 4608.0 2592.0 576.0 324.0
toplevel: 1x1+0+0
Width 200 Height 200
splash.geometry( 2780 1520 )
Songs on disk: 3822 Added count: 0 Added meta count: 0
Songs with lyrics: 1433 Added count: 2 Added time count: 0

There’s about 10K of python code lines I’ve written but I’m fairly certain the debug lines are coming from ALSA in python or something similar. I could provide a list of all modules imported but I’m hoping someone already recognizes the DEBUG lines and which module they are from.

Advertisement

Answer

Turns out it’s a glitch in tkinter’s pillow (PIL).

The solution is a simple one-liner after the import:

import logging
logging.getLogger('PIL').setLevel(logging.WARNING)
Advertisement