summaryrefslogtreecommitdiffstats
path: root/ipalib
diff options
context:
space:
mode:
authorChristian Heimes <cheimes@redhat.com>2017-02-10 14:19:07 +0100
committerMartin Basti <mbasti@redhat.com>2017-02-10 16:16:44 +0100
commita33b25dea988aa34844869a8adc57d5cd396d3aa (patch)
treeb1da9ce92ec5440e6cc3695176a0981fbaf4c8d0 /ipalib
parentdd119f8aadb13e95e4db43053bc36c70977b001e (diff)
downloadfreeipa-a33b25dea988aa34844869a8adc57d5cd396d3aa.tar.gz
freeipa-a33b25dea988aa34844869a8adc57d5cd396d3aa.tar.xz
freeipa-a33b25dea988aa34844869a8adc57d5cd396d3aa.zip
Enable additional warnings (BytesWarning, DeprecationWarning)
Closes: https://fedorahosted.org/freeipa/ticket/6631 Signed-off-by: Christian Heimes <cheimes@redhat.com> Reviewed-By: Martin Basti <mbasti@redhat.com> Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
Diffstat (limited to 'ipalib')
-rw-r--r--ipalib/__init__.py46
1 files changed, 39 insertions, 7 deletions
diff --git a/ipalib/__init__.py b/ipalib/__init__.py
index 4f0909047..79490865a 100644
--- a/ipalib/__init__.py
+++ b/ipalib/__init__.py
@@ -880,8 +880,46 @@ freeIPA.org:
http://freeipa.org/page/Contribute
'''
+version_info = (2, 0, 0, 'alpha', 0)
+if version_info[3] == 'final':
+ __version__ = '%d.%d.%d' % version_info[:3]
+else:
+ __version__ = '%d.%d.%d.%s.%d' % version_info
+
-import os
+def _enable_warnings(error=False):
+ """Enable additional warnings during development
+ """
+ import ctypes
+ import warnings
+
+ # get reference to Py_BytesWarningFlag from Python CAPI
+ byteswarnings = ctypes.c_int.in_dll( # pylint: disable=no-member
+ ctypes.pythonapi, 'Py_BytesWarningFlag')
+
+ if byteswarnings.value >= 2:
+ # bytes warnings flag already set to error
+ return
+
+ # default warning mode for all modules: warn once per location
+ warnings.simplefilter('default', BytesWarning)
+ if error:
+ byteswarnings.value = 2
+ action = 'error'
+ else:
+ byteswarnings.value = 1
+ action = 'default'
+
+ module = '(ipa.*|__main__)'
+ warnings.filterwarnings(action, category=BytesWarning, module=module)
+ warnings.filterwarnings(action, category=DeprecationWarning,
+ module=module)
+
+# call this as early as possible
+if version_info[3] != 'final':
+ _enable_warnings(False)
+
+# noqa: E402
from ipalib import plugable
from ipalib.backend import Backend
from ipalib.frontend import Command, LocalOrRemote, Updater
@@ -893,12 +931,6 @@ from ipalib.parameters import (BytesEnum, StrEnum, IntEnum, AccessTime, File,
from ipalib.errors import SkipPluginModule
from ipalib.text import _, ngettext, GettextFactory, NGettextFactory
-version_info = (2, 0, 0, 'alpha', 0)
-if version_info[3] == 'final':
- __version__ = '%d.%d.%d' % version_info[:3]
-else:
- __version__ = '%d.%d.%d.%s.%d' % version_info
-
Registry = plugable.Registry