diff --git a/tiramisu/log.py b/tiramisu/log.py
new file mode 100644
index 0000000..06ca676
--- /dev/null
+++ b/tiramisu/log.py
@@ -0,0 +1,23 @@
+# -*- coding: utf-8 -*-
+"logger for tiramisu"
+# Copyright (C) 2019 Team tiramisu (see AUTHORS for all contributors)
+#
+# This program is free software: you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by the
+# Free Software Foundation, either version 3 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
+# details.
+#
+# You should have received a copy of the GNU Lesser General Public License
+# along with this program. If not, see .
+# ____________________________________________________________
+from logging import getLogger
+
+
+log = getLogger('tiramisu')
+# import logging
+# logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
diff --git a/tiramisu/option/option.py b/tiramisu/option/option.py
index 51433c7..ba0a1cb 100644
--- a/tiramisu/option/option.py
+++ b/tiramisu/option/option.py
@@ -25,7 +25,7 @@ from typing import Any, List, Callable, Optional, Dict, Union, Tuple
from .baseoption import BaseOption, submulti, STATIC_TUPLE
from ..i18n import _
-from ..setting import log, undefined, OptionBag, Undefined
+from ..setting import undefined, OptionBag, Undefined
from ..autolib import carry_out_calculation
from ..error import (ConfigError, ValueWarning, ValueErrorWarning, PropertiesOptionError,
ValueOptionError, display_list)
diff --git a/tiramisu/setting.py b/tiramisu/setting.py
index 66f4c2b..f673746 100644
--- a/tiramisu/setting.py
+++ b/tiramisu/setting.py
@@ -15,9 +15,6 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see .
# ____________________________________________________________
-from copy import copy
-from logging import getLogger
-import weakref
from .error import (RequirementError, PropertiesOptionError,
ConstError, ConfigError, display_list)
from .i18n import _
@@ -114,10 +111,6 @@ FORBIDDEN_SET_PERMISSIVES = frozenset(['force_default_on_freeze',
'force_store_value'])
-log = getLogger('tiramisu')
-#FIXME
-#import logging
-#logging.basicConfig(format='%(levelname)s:%(message)s', level=logging.DEBUG)
static_set = frozenset()
diff --git a/tiramisu/storage/dictionary/setting.py b/tiramisu/storage/dictionary/setting.py
index 27df542..ab50383 100644
--- a/tiramisu/storage/dictionary/setting.py
+++ b/tiramisu/storage/dictionary/setting.py
@@ -17,9 +17,7 @@
# ____________________________________________________________
from copy import copy
from ..util import Cache
-
-DEBUG = False
-#DEBUG = True
+from ...log import log
class Properties(Cache):
@@ -34,19 +32,16 @@ class Properties(Cache):
# properties
def setproperties(self, path, properties):
- if DEBUG: # pragma: no cover
- print('setproperties', path, properties)
+ log.debug('setproperties', path, properties)
self._properties[path] = properties
def getproperties(self, path, default_properties):
ret = self._properties.get(path, frozenset(default_properties))
- if DEBUG: # pragma: no cover
- print('getproperties', path, ret)
+ log.debug('getproperties', path, ret)
return ret
def delproperties(self, path):
- if DEBUG: # pragma: no cover
- print('delproperties', path)
+ log.debug('delproperties', path)
if path in self._properties:
del(self._properties[path])
@@ -69,8 +64,7 @@ class Permissives(Cache):
super(Permissives, self).__init__(storage)
def setpermissives(self, path, permissives):
- if DEBUG: # pragma: no cover
- print('setpermissives', path, permissives)
+ log.debug('setpermissives', path, permissives)
if not permissives:
if path in self._permissives:
del self._permissives[path]
@@ -79,8 +73,7 @@ class Permissives(Cache):
def getpermissives(self, path=None):
ret = self._permissives.get(path, frozenset())
- if DEBUG: # pragma: no cover
- print('getpermissives', path, ret)
+ log.debug('getpermissives', path, ret)
return ret
def exportation(self):
@@ -93,7 +86,6 @@ class Permissives(Cache):
self._permissives = permissives
def delpermissive(self, path):
- if DEBUG: # pragma: no cover
- print('delpermissive', path)
+ log.debug('delpermissive', path)
if path in self._permissives:
del(self._permissives[path])
diff --git a/tiramisu/storage/dictionary/value.py b/tiramisu/storage/dictionary/value.py
index 1ae6ee6..c2fe821 100644
--- a/tiramisu/storage/dictionary/value.py
+++ b/tiramisu/storage/dictionary/value.py
@@ -15,13 +15,10 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see .
# ____________________________________________________________
-import os
from ..util import Cache
from ...setting import undefined
from ...i18n import _
-
-DEBUG = bool(os.environ.get('TIRAMISU_DEBUG', False))
-del os
+from ...log import log
class Values(Cache):
@@ -79,8 +76,7 @@ class Values(Cache):
"""set value for a path
a specified value must be associated to an owner
"""
- if DEBUG: # pragma: no cover
- print('setvalue', path, value, owner, index, id(self))
+ log.debug('setvalue', path, value, owner, index, id(self))
values = []
vidx = None
@@ -101,8 +97,7 @@ class Values(Cache):
return: boolean
"""
has_path = path in self._values[0]
- if DEBUG: # pragma: no cover
- print('hasvalue', path, index, has_path, id(self))
+ log.debug('hasvalue', path, index, has_path, id(self))
if index is None:
return has_path
elif has_path:
@@ -115,8 +110,7 @@ class Values(Cache):
"""
_values == ((path1, path2), ((idx1_1, idx1_2), None), ((value1_1, value1_2), value2), ((owner1_1, owner1_2), owner2))
"""
- if DEBUG: # pragma: no cover
- print('reduce_index', path, index, id(self))
+ log.debug('reduce_index', path, index, id(self))
path_idx = self._values[0].index(path)
# get the "index" position
subidx = self._values[1][path_idx].index(index)
@@ -135,8 +129,7 @@ class Values(Cache):
path,
index,
commit):
- if DEBUG: # pragma: no cover
- print('resetvalue_index', path, index, id(self))
+ log.debug('resetvalue_index', path, index, id(self))
def _resetvalue(nb):
values_idx = list(values[nb])
del(values_idx[path_idx])
@@ -170,8 +163,7 @@ class Values(Cache):
commit):
"""remove value means delete value in storage
"""
- if DEBUG: # pragma: no cover
- print('resetvalue', path, id(self))
+ log.debug('resetvalue', path, id(self))
def _resetvalue(nb):
lst = list(self._values[nb])
lst.pop(idx)
@@ -224,8 +216,7 @@ class Values(Cache):
with_value)
if owner is undefined:
owner = default
- if DEBUG: # pragma: no cover
- print('getvalue', path, index, value, owner, id(self))
+ log.debug('getvalue', path, index, value, owner, id(self))
if with_value:
return owner, value
else:
diff --git a/tiramisu/storage/sqlite3/setting.py b/tiramisu/storage/sqlite3/setting.py
index 24bc5f9..448766d 100644
--- a/tiramisu/storage/sqlite3/setting.py
+++ b/tiramisu/storage/sqlite3/setting.py
@@ -16,10 +16,7 @@
# along with this program. If not, see .
# ____________________________________________________________
from .sqlite3db import Sqlite3DB
-
-
-DEBUG=False
-#DEBUG=True
+from ...log import log
class Properties(Sqlite3DB):
@@ -84,8 +81,7 @@ class Permissives(Sqlite3DB):
# permissive
def setpermissives(self, path, permissive):
path = self._sqlite_encode_path(path)
- if DEBUG: # pragma: no cover
- print('setpermissive', path, permissive, id(self))
+ log.debug('setpermissive', path, permissive, id(self))
self._storage.execute("DELETE FROM permissive WHERE path = ? AND session_id = ?",
(path, self._session_id),
False)
@@ -103,8 +99,7 @@ class Permissives(Sqlite3DB):
ret = frozenset()
else:
ret = frozenset(self._sqlite_decode(permissives[0]))
- if DEBUG: # pragma: no cover
- print('getpermissive', path, ret, id(self))
+ log.debug('getpermissive', path, ret, id(self))
return ret
def delpermissive(self, path):
diff --git a/tiramisu/storage/sqlite3/value.py b/tiramisu/storage/sqlite3/value.py
index 74d9b7d..0aa8b44 100644
--- a/tiramisu/storage/sqlite3/value.py
+++ b/tiramisu/storage/sqlite3/value.py
@@ -16,15 +16,11 @@
# along with this program. If not, see .
# ____________________________________________________________
-import os
from .sqlite3db import Sqlite3DB
from .storage import delete_session
from ...setting import undefined, owners
from ...i18n import _
-
-
-DEBUG = bool(os.environ.get('TIRAMISU_DEBUG', False))
-del os
+from ...log import log
class Values(Sqlite3DB):
@@ -58,8 +54,7 @@ class Values(Sqlite3DB):
"""set value for an option
a specified value must be associated to an owner
"""
- if DEBUG: # pragma: no cover
- print('setvalue', path, value, owner, index, commit)
+ log.debug('setvalue', path, value, owner, index, commit)
path = self._sqlite_encode_path(path)
if index is not None:
self.resetvalue_index(path,
@@ -86,8 +81,7 @@ class Values(Sqlite3DB):
"""if opt has a value
return: boolean
"""
- if DEBUG: # pragma: no cover
- print('hasvalue', path, index)
+ log.debug('hasvalue', path, index)
path = self._sqlite_encode_path(path)
return self._sqlite_select(path, index) is not None
@@ -97,8 +91,7 @@ class Values(Sqlite3DB):
_values == ((path1, path2), ((idx1_1, idx1_2), None),
((value1_1, value1_2), value2), ((owner1_1, owner1_2), owner2))
"""
- if DEBUG: # pragma: no cover
- print('reduce_index', path, index, id(self))
+ log.debug('reduce_index', path, index, id(self))
self._storage.execute("UPDATE value SET idx = ? WHERE path = ? and idx = ? "
"AND session_id = ?",
(index - 1, path, index, self._session_id))
@@ -109,8 +102,7 @@ class Values(Sqlite3DB):
commit=True):
"""remove value means delete value in storage
"""
- if DEBUG: # pragma: no cover
- print('resetvalue_index', path, index, commit)
+ log.debug('resetvalue_index', path, index, commit)
path = self._sqlite_encode_path(path)
self._storage.execute("DELETE FROM value WHERE path = ? AND session_id = ? AND idx = ?",
(path, self._session_id, index),
@@ -121,8 +113,7 @@ class Values(Sqlite3DB):
commit):
"""remove value means delete value in storage
"""
- if DEBUG: # pragma: no cover
- print('resetvalue', path, commit)
+ log.debug('resetvalue', path, commit)
path = self._sqlite_encode_path(path)
self._storage.execute("DELETE FROM value WHERE path = ? AND session_id = ?",
(path, self._session_id),
@@ -135,8 +126,7 @@ class Values(Sqlite3DB):
index=None):
"""change owner for an option
"""
- if DEBUG: # pragma: no cover
- print('setowner', path, owner, index)
+ log.debug('setowner', path, owner, index)
path = self._sqlite_encode_path(path)
if index is None:
self._storage.execute("UPDATE value SET owner = ? WHERE path = ? AND session_id = ?",
@@ -153,8 +143,7 @@ class Values(Sqlite3DB):
"""get owner for an option
return: owner object
"""
- if DEBUG: # pragma: no cover
- print('getowner', path, default, index, with_value)
+ log.debug('getowner', path, default, index, with_value)
path = self._sqlite_encode_path(path)
request = "SELECT owner, value FROM value WHERE path = ? AND session_id = ?"
if index is not None:
@@ -189,8 +178,7 @@ class Values(Sqlite3DB):
:param key: information's key (ex: "help", "doc"
:param value: information's value (ex: "the help string")
"""
- if DEBUG: # pragma: no cover
- print('set_information', key, value)
+ log.debug('set_information', key, value)
path = self._sqlite_encode_path(path)
self._storage.execute("DELETE FROM information WHERE key = ? AND session_id = ? AND path = ?",
(key, self._session_id, path),
@@ -203,8 +191,7 @@ class Values(Sqlite3DB):
:param key: the item string (ex: "help")
"""
- if DEBUG: # pragma: no cover
- print('get_information', key, default)
+ log.debug('get_information', key, default)
path = self._sqlite_encode_path(path)
value = self._storage.select("SELECT value FROM information WHERE key = ? AND "
"session_id = ? AND path = ?",
@@ -218,8 +205,7 @@ class Values(Sqlite3DB):
return self._sqlite_decode(value[0])
def del_information(self, path, key, raises):
- if DEBUG: # pragma: no cover
- print('del_information', key, raises)
+ log.debug('del_information', key, raises)
path = self._sqlite_encode_path(path)
if raises and self._storage.select("SELECT value FROM information WHERE key = ? "
"AND session_id = ? AND path = ?",
@@ -241,8 +227,7 @@ class Values(Sqlite3DB):
(self._session_id,))
def exportation(self):
- if DEBUG: # pragma: no cover
- print('exportation')
+ log.debug('exportation')
rows = self._storage.select("SELECT path, value, owner, idx FROM value WHERE "
"session_id = ?;", (self._session_id,), only_one=False)
ret = [[], [], [], []]
@@ -271,8 +256,7 @@ class Values(Sqlite3DB):
return ret
def importation(self, export):
- if DEBUG: # pragma: no cover
- print('importation')
+ log.debug('importation')
request = "DELETE FROM value WHERE session_id = ?"
self._storage.execute(request, (self._session_id,),
commit=False)
@@ -298,8 +282,7 @@ class Values(Sqlite3DB):
def get_max_length(self,
path):
- if DEBUG: # pragma: no cover
- print('get_max_length', path)
+ log.debug('get_max_length', path)
val_max = self._storage.select("SELECT max(idx) FROM value WHERE path = ? AND session_id = ?",
(path, self._session_id), False)
if val_max[0][0] is None:
diff --git a/tiramisu/storage/util.py b/tiramisu/storage/util.py
index 2cd8798..33ce22f 100644
--- a/tiramisu/storage/util.py
+++ b/tiramisu/storage/util.py
@@ -15,17 +15,14 @@
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see .
# ____________________________________________________________
-import os
from time import time
from .cache.dictionary import Cache as DictCache
+from ..log import log
def _display_classname(obj): # pragma: no cover
return(obj.__class__.__name__.lower())
-DEBUG = bool(os.environ.get('TIRAMISU_DEBUG', False))
-del os
-
class Cache(DictCache):
__slots__ = ('_storage',)
@@ -39,13 +36,11 @@ class Cache(DictCache):
if follower, add index
"""
if 'cache' in props or 'cache' in self_props:
- if DEBUG: # pragma: no cover
- print('setcache {} with index {} and value {} in {} ({})'.format(path, index, val,
+ log.debug('setcache {} with index {} and value {} in {} ({})'.format(path, index, val,
_display_classname(self),
id(self)))
self._setcache(path, index, val, time())
- elif DEBUG: # pragma: no cover
- print('not setcache {} with index {} and value {} and props {} and {} in {} ({})'.format(path,
+ log.debug('not setcache {} with index {} and value {} and props {} and {} in {} ({})'.format(path,
index,
val,
props,
@@ -80,38 +75,32 @@ class Cache(DictCache):
'expire' in self_props):
ntime = int(time())
if timestamp + expiration_time >= ntime:
- if DEBUG: # pragma: no cover
- print('getcache in cache (1)', path, value, _display_classname(self),
+ log.debug('getcache in cache (1)', path, value, _display_classname(self),
id(self), index)
return True, value
else:
- if DEBUG: # pragma: no cover
- print('getcache expired value for path {} < {}'.format(
- timestamp + expiration_time, ntime))
+ log.debug('getcache expired value for path {} < {}'.format(
+ timestamp + expiration_time, ntime))
# if expired, remove from cache
#self.delcache(path)
else:
- if DEBUG: # pragma: no cover
- print('getcache in cache (2)', path, value, _display_classname(self),
+ log.debug('getcache in cache (2)', path, value, _display_classname(self),
id(self), index)
return True, value
- if DEBUG: # pragma: no cover
- print('getcache {} with index {} not in {} cache'.format(path, index,
+ log.debug('getcache {} with index {} not in {} cache'.format(path, index,
_display_classname(self)))
return no_cache
def delcache(self, path):
"""remove cache for a specified path
"""
- if DEBUG: # pragma: no cover
- print('delcache', path, _display_classname(self), id(self))
+ log.debug('delcache', path, _display_classname(self), id(self))
if path in self._cache:
self._delcache(path)
def reset_all_cache(self):
"empty the cache"
- if DEBUG: # pragma: no cover
- print('reset_all_cache', _display_classname(self), id(self))
+ log.debug('reset_all_cache', _display_classname(self), id(self))
self._reset_all_cache()
def get_cached(self):
@@ -119,6 +108,5 @@ class Cache(DictCache):
please only use it in test purpose
example: {'path1': {'index1': ('value1', 'time1')}, 'path2': {'index2': ('value2', 'time2', )}}
"""
- if DEBUG: # pragma: no cover
- print('get_chached {} for {} ({})'.format(self._cache, _display_classname(self), id(self)))
+ log.debug('get_chached {} for {} ({})'.format(self._cache, _display_classname(self), id(self)))
return self._get_cached()