Hello community,

here is the log from the commit of package python-logzero for openSUSE:Factory 
checked in at 2018-03-11 15:25:35
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-logzero (Old)
 and      /work/SRC/openSUSE:Factory/.python-logzero.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-logzero"

Sun Mar 11 15:25:35 2018 rev:4 rq:585153 version:1.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-logzero/python-logzero.changes    
2018-01-01 22:31:01.252324823 +0100
+++ /work/SRC/openSUSE:Factory/.python-logzero.new/python-logzero.changes       
2018-03-11 15:25:37.942395016 +0100
@@ -1,0 +2,6 @@
+Fri Mar  2 19:24:24 UTC 2018 - sebix+novell....@sebix.at
+
+- update to version 1.4.0:
+ * Allow Disabling stderr Output (PR 83)
+
+-------------------------------------------------------------------

Old:
----
  logzero-1.3.1.tar.gz

New:
----
  logzero-1.4.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-logzero.spec ++++++
--- /var/tmp/diff_new_pack.0PUmkT/_old  2018-03-11 15:25:38.654369475 +0100
+++ /var/tmp/diff_new_pack.0PUmkT/_new  2018-03-11 15:25:38.654369475 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-logzero
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,7 +19,7 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %bcond_without test
 Name:           python-logzero
-Version:        1.3.1
+Version:        1.4.0
 Release:        0
 Summary:        A logging module for Python
 License:        MIT

++++++ logzero-1.3.1.tar.gz -> logzero-1.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/logzero-1.3.1/HISTORY.rst 
new/logzero-1.4.0/HISTORY.rst
--- old/logzero-1.3.1/HISTORY.rst       2017-09-14 11:38:23.000000000 +0200
+++ new/logzero-1.4.0/HISTORY.rst       2018-03-02 18:02:56.000000000 +0100
@@ -2,6 +2,11 @@
 History
 =======
 
+1.3.1 (2018-03-02)
+------------------
+* Allow Disabling stderr Output (`PR 83 
<https://github.com/metachris/logzero/pull/83>`_)
+
+
 1.3.0 (2017-07-19)
 ------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/logzero-1.3.1/PKG-INFO new/logzero-1.4.0/PKG-INFO
--- old/logzero-1.3.1/PKG-INFO  2017-09-14 11:38:45.000000000 +0200
+++ new/logzero-1.4.0/PKG-INFO  2018-03-02 18:06:06.000000000 +0100
@@ -1,11 +1,12 @@
 Metadata-Version: 1.1
 Name: logzero
-Version: 1.3.1
+Version: 1.4.0
 Summary: Robust and effective logging for Python 2 and 3
 Home-page: https://github.com/metachris/logzero
 Author: Chris Hager
 Author-email: ch...@linuxuser.at
 License: MIT license
+Description-Content-Type: UNKNOWN
 Description: =======
         logzero
         =======
@@ -183,6 +184,11 @@
         History
         =======
         
+        1.3.1 (2018-03-02)
+        ------------------
+        * Allow Disabling stderr Output (`PR 83 
<https://github.com/metachris/logzero/pull/83>`_)
+        
+        
         1.3.0 (2017-07-19)
         ------------------
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/logzero-1.3.1/docs/index.rst 
new/logzero-1.4.0/docs/index.rst
--- old/logzero-1.3.1/docs/index.rst    2017-09-14 11:38:23.000000000 +0200
+++ new/logzero-1.4.0/docs/index.rst    2018-03-02 18:02:56.000000000 +0100
@@ -76,7 +76,7 @@
     # These log messages are sent to the console
     logger.debug("hello")
     logger.info("info")
-    logger.warn("warn")
+    logger.warning("warning")
     logger.error("error")
 
     # This is how you'd log an exception
@@ -156,6 +156,9 @@
     # Set a logfile (all future log messages are also saved there)
     logzero.logfile("/tmp/logfile.log")
 
+    # Set a logfile (all future log messages are also saved there), but 
disable the default stderr logging
+    logzero.logfile("/tmp/logfile.log", disableStderrLogger=True)
+
     # You can also set a different loglevel for the file handler
     logzero.logfile("/tmp/logfile.log", loglevel=logging.ERROR)
 
@@ -182,11 +185,15 @@
     from logzero import setup_logger
     logger1 = setup_logger(name="mylogger1", logfile="/tmp/test-logger1.log", 
level=logging.INFO)
     logger2 = setup_logger(name="mylogger2", logfile="/tmp/test-logger2.log", 
level=logging.INFO)
+    logger3 = setup_logger(name="mylogger3", logfile="/tmp/test-logger3.log", 
level=logging.INFO, disableStderrLogger=True)
 
     # By default, logging
     logger1.info("info for logger 1")
     logger2.info("info for logger 2")
 
+    # log to a file only, excluding the default stderr logger
+    logger3.info("info for logger 3")
+
 
 Adding custom handlers (eg. SysLogHandler)
 ------------------------------------------
@@ -231,7 +238,7 @@
 
     logger.debug("hello")
     logger.info("info")
-    logger.warn("warn")
+    logger.warning("warning")
     logger.error("error")
 
 You can reconfigure the default logger globally with 
`logzero.setup_default_logger(..) <#i-logzero-setup-default-logger>`_.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/logzero-1.3.1/logzero/__init__.py 
new/logzero-1.4.0/logzero/__init__.py
--- old/logzero-1.3.1/logzero/__init__.py       2017-09-14 11:38:23.000000000 
+0200
+++ new/logzero-1.4.0/logzero/__init__.py       2018-03-02 18:02:56.000000000 
+0100
@@ -34,6 +34,7 @@
 
 See the documentation for more information: https://logzero.readthedocs.io
 """
+import functools
 import os
 import sys
 import logging
@@ -47,7 +48,7 @@
 
 __author__ = """Chris Hager"""
 __email__ = 'ch...@linuxuser.at'
-__version__ = '1.3.1'
+__version__ = '1.4.0'
 
 # Python 2+3 compatibility settings for logger
 bytes_type = bytes
@@ -83,7 +84,7 @@
     colorama_init()
 
 
-def setup_logger(name=None, logfile=None, level=logging.DEBUG, formatter=None, 
maxBytes=0, backupCount=0, fileLoglevel=None):
+def setup_logger(name=None, logfile=None, level=logging.DEBUG, formatter=None, 
maxBytes=0, backupCount=0, fileLoglevel=None, disableStderrLogger=False):
     """
     Configures and returns a fully configured logger instance, no hassles.
     If a logger with the specified name already exists, it returns the 
existing instance,
@@ -107,6 +108,7 @@
     :arg int maxBytes: Size of the logfile when rollover should occur. 
Defaults to 0, rollover never occurs.
     :arg int backupCount: Number of backups to keep. Defaults to 0, rollover 
never occurs.
     :arg int fileLoglevel: Minimum `logging-level 
<https://docs.python.org/2/library/logging.html#logging-levels>`_ for the file 
logger (is not set, it will use the loglevel from the ``level`` argument)
+    :arg bool disableStderrLogger: Should the default stderr logger be 
disabled. Defaults to False.
     :return: A fully configured Python logging `Logger object 
<https://docs.python.org/2/library/logging.html#logger-objects>`_ you can use 
with ``.debug("msg")``, etc.
     """
     _logger = logging.getLogger(name or __name__)
@@ -114,27 +116,31 @@
     _logger.setLevel(level)
 
     # Reconfigure existing handlers
-    has_stream_handler = False
+    stderr_stream_handler = None
     for handler in list(_logger.handlers):
-        if isinstance(handler, logging.StreamHandler):
-            has_stream_handler = True
-
-        if isinstance(handler, logging.FileHandler) and hasattr(handler, 
LOGZERO_INTERNAL_LOGGER_ATTR):
-            # Internal FileHandler needs to be removed and re-setup to be able
-            # to set a new logfile.
-            _logger.removeHandler(handler)
-            continue
+        if hasattr(handler, LOGZERO_INTERNAL_LOGGER_ATTR):
+            if isinstance(handler, logging.FileHandler):
+                # Internal FileHandler needs to be removed and re-setup to be 
able
+                # to set a new logfile.
+                _logger.removeHandler(handler)
+                continue
+            elif isinstance(handler, logging.StreamHandler):
+                stderr_stream_handler = handler
 
         # reconfigure handler
         handler.setLevel(level)
         handler.setFormatter(formatter or LogFormatter())
 
-    if not has_stream_handler:
-        stream_handler = logging.StreamHandler()
-        setattr(stream_handler, LOGZERO_INTERNAL_LOGGER_ATTR, True)
-        stream_handler.setLevel(level)
-        stream_handler.setFormatter(formatter or LogFormatter())
-        _logger.addHandler(stream_handler)
+    # remove the stderr handler (stream_handler) if disabled
+    if disableStderrLogger:
+        if stderr_stream_handler is not None:
+            _logger.removeHandler(stderr_stream_handler)
+    elif stderr_stream_handler is None:
+        stderr_stream_handler = logging.StreamHandler()
+        setattr(stderr_stream_handler, LOGZERO_INTERNAL_LOGGER_ATTR, True)
+        stderr_stream_handler.setLevel(level)
+        stderr_stream_handler.setFormatter(formatter or LogFormatter())
+        _logger.addHandler(stderr_stream_handler)
 
     if logfile:
         rotating_filehandler = RotatingFileHandler(filename=logfile, 
maxBytes=maxBytes, backupCount=backupCount)
@@ -285,7 +291,7 @@
         return repr(s)
 
 
-def setup_default_logger(logfile=None, level=logging.DEBUG, formatter=None, 
maxBytes=0, backupCount=0):
+def setup_default_logger(logfile=None, level=logging.DEBUG, formatter=None, 
maxBytes=0, backupCount=0, disableStderrLogger=False):
     """
     Deprecated. Use `logzero.loglevel(..)`, `logzero.logfile(..)`, etc.
 
@@ -304,9 +310,10 @@
     :arg Formatter formatter: `Python logging Formatter object 
<https://docs.python.org/2/library/logging.html#formatter-objects>`_ (by 
default uses the internal LogFormatter).
     :arg int maxBytes: Size of the logfile when rollover should occur. 
Defaults to 0, rollover never occurs.
     :arg int backupCount: Number of backups to keep. Defaults to 0, rollover 
never occurs.
+    :arg bool disableStderrLogger: Should the default stderr logger be 
disabled. Defaults to False.
     """
     global logger
-    logger = setup_logger(name=LOGZERO_DEFAULT_LOGGER, logfile=logfile, 
level=level, formatter=formatter)
+    logger = setup_logger(name=LOGZERO_DEFAULT_LOGGER, logfile=logfile, 
level=level, formatter=formatter, disableStderrLogger=disableStderrLogger)
     return logger
 
 
@@ -375,7 +382,7 @@
     _formatter = formatter
 
 
-def logfile(filename, formatter=None, mode='a', maxBytes=0, backupCount=0, 
encoding=None, loglevel=None):
+def logfile(filename, formatter=None, mode='a', maxBytes=0, backupCount=0, 
encoding=None, loglevel=None, disableStderrLogger=False):
     """
     Setup logging to file (using a `RotatingFileHandler 
<https://docs.python.org/2/library/logging.handlers.html#rotatingfilehandler>`_ 
internally).
 
@@ -399,11 +406,15 @@
     :arg int backupCount: Number of backups to keep. Defaults to 0, rollover 
never occurs.
     :arg string encoding: Used to open the file with that encoding.
     :arg int loglevel: Set a custom loglevel for the file logger, else uses 
the current global loglevel.
+    :arg bool disableStderrLogger: Should the default stderr logger be 
disabled. Defaults to False.
     """
     # Step 1: If an internal RotatingFileHandler already exists, remove it
     for handler in list(logger.handlers):
-        if isinstance(handler, RotatingFileHandler) and hasattr(handler, 
LOGZERO_INTERNAL_LOGGER_ATTR):
-            logger.removeHandler(handler)
+        if hasattr(handler, LOGZERO_INTERNAL_LOGGER_ATTR):
+            if isinstance(handler, RotatingFileHandler):
+                logger.removeHandler(handler)
+            elif isinstance(handler, logging.StreamHandler) and 
disableStderrLogger:
+                logger.removeHandler(handler)
 
     # Step 2: If wanted, add the RotatingFileHandler now
     if filename:
@@ -421,6 +432,7 @@
 
 
 def log_function_call(func):
+    @functools.wraps(func)
     def wrap(*args, **kwargs):
         args_str = ", ".join([str(arg) for arg in args])
         kwargs_str = ", ".join(["%s=%s" % (key, kwargs[key]) for key in 
kwargs])
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/logzero-1.3.1/logzero.egg-info/PKG-INFO 
new/logzero-1.4.0/logzero.egg-info/PKG-INFO
--- old/logzero-1.3.1/logzero.egg-info/PKG-INFO 2017-09-14 11:38:45.000000000 
+0200
+++ new/logzero-1.4.0/logzero.egg-info/PKG-INFO 2018-03-02 18:06:06.000000000 
+0100
@@ -1,11 +1,12 @@
 Metadata-Version: 1.1
 Name: logzero
-Version: 1.3.1
+Version: 1.4.0
 Summary: Robust and effective logging for Python 2 and 3
 Home-page: https://github.com/metachris/logzero
 Author: Chris Hager
 Author-email: ch...@linuxuser.at
 License: MIT license
+Description-Content-Type: UNKNOWN
 Description: =======
         logzero
         =======
@@ -183,6 +184,11 @@
         History
         =======
         
+        1.3.1 (2018-03-02)
+        ------------------
+        * Allow Disabling stderr Output (`PR 83 
<https://github.com/metachris/logzero/pull/83>`_)
+        
+        
         1.3.0 (2017-07-19)
         ------------------
         
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/logzero-1.3.1/setup.cfg new/logzero-1.4.0/setup.cfg
--- old/logzero-1.3.1/setup.cfg 2017-09-14 11:38:45.000000000 +0200
+++ new/logzero-1.4.0/setup.cfg 2018-03-02 18:06:06.000000000 +0100
@@ -1,5 +1,5 @@
 [bumpversion]
-current_version = 1.3.1
+current_version = 1.4.0
 commit = True
 tag = True
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/logzero-1.3.1/setup.py new/logzero-1.4.0/setup.py
--- old/logzero-1.3.1/setup.py  2017-09-14 11:38:23.000000000 +0200
+++ new/logzero-1.4.0/setup.py  2018-03-02 18:02:56.000000000 +0100
@@ -13,7 +13,7 @@
 
 setup(
     name='logzero',
-    version='1.3.1',
+    version='1.4.0',
     description="Robust and effective logging for Python 2 and 3",
     long_description=readme + '\n\n' + history,
     author="Chris Hager",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/logzero-1.3.1/tests/test_logzero.py 
new/logzero-1.4.0/tests/test_logzero.py
--- old/logzero-1.3.1/tests/test_logzero.py     2017-09-14 11:38:23.000000000 
+0200
+++ new/logzero-1.4.0/tests/test_logzero.py     2018-03-02 18:02:56.000000000 
+0100
@@ -11,6 +11,7 @@
 import logging
 
 import logzero
+import pytest
 
 
 def test_write_to_logfile_and_stderr(capsys):
@@ -141,41 +142,46 @@
         temp.close()
 
 
-def test_default_logger():
+def test_default_logger(disableStdErrorLogger=False):
     """
     Default logger should work and be able to be reconfigured.
     """
     logzero.reset_default_logger()
     temp = tempfile.NamedTemporaryFile()
     try:
-        logzero.setup_default_logger(logfile=temp.name)
+        logzero.setup_default_logger(logfile=temp.name, 
disableStderrLogger=disableStdErrorLogger)
         logzero.logger.debug("debug1")  # will be logged
 
         # Reconfigure with loglevel INFO
-        logzero.setup_default_logger(logfile=temp.name, level=logging.INFO)
+        logzero.setup_default_logger(logfile=temp.name, level=logging.INFO, 
disableStderrLogger=disableStdErrorLogger)
         logzero.logger.debug("debug2")  # will not be logged
         logzero.logger.info("info1")  # will be logged
 
         # Reconfigure with a different formatter
         log_format = '%(color)s[xxx]%(end_color)s %(message)s'
         formatter = logzero.LogFormatter(fmt=log_format)
-        logzero.setup_default_logger(logfile=temp.name, level=logging.INFO, 
formatter=formatter)
+        logzero.setup_default_logger(logfile=temp.name, level=logging.INFO, 
formatter=formatter, disableStderrLogger=disableStdErrorLogger)
 
         logzero.logger.info("info2")  # will be logged with new formatter
         logzero.logger.debug("debug3")  # will not be logged
 
         with open(temp.name) as f:
             content = f.read()
-            assert "] debug1" in content
-            assert "] debug2" not in content
-            assert "] info1" in content
-            assert "xxx] info2" in content
-            assert "] debug3" not in content
+            test_default_logger_output(content)
 
     finally:
         temp.close()
 
 
+@pytest.mark.skip(reason="not a standalone test")
+def test_default_logger_output(content):
+    assert "] debug1" in content
+    assert "] debug2" not in content
+    assert "] info1" in content
+    assert "xxx] info2" in content
+    assert "] debug3" not in content
+
+
 def test_setup_logger_reconfiguration():
     """
     Should be able to reconfigure without loosing custom handlers
@@ -252,3 +258,32 @@
 
     finally:
         temp.close()
+
+
+def test_log_function_call():
+    @logzero.log_function_call
+    def example():
+        """example doc"""
+        pass
+
+    assert example.__name__ == "example"
+    assert example.__doc__ == "example doc"
+
+
+def test_default_logger_logfile_only(capsys):
+    """
+    Run the ``test_default_logger`` with ``disableStdErrorLogger`` set to 
``True`` and
+    confirm that no data is written to stderr
+    """
+    test_default_logger(disableStdErrorLogger=True)
+    out, err = capsys.readouterr()
+    assert err == ''
+
+
+def test_default_logger_stderr_output(capsys):
+    """
+    Run the ``test_default_logger`` and confirm that the proper data is 
written to stderr
+    """
+    test_default_logger()
+    out, err = capsys.readouterr()
+    test_default_logger_output(err)


Reply via email to