@@ -414,15 +414,13 @@ class ServerError(Exception):
414414
415415
416416class Printer :
417- def __init__ (self , cols ):
418- self .cols = MAXCOL [min (3 , cols ) - 1 ] if (cols or 9 ) < 9 else cols or None
417+ cols = None
419418
420419 def _print_ (self , message , _prefix ):
421- cols = max (36 , self .cols )
422420 xch = str (message )
423- if len (xch ) > cols :
421+ if len (xch ) > self . cols :
424422 suffix = f"... L={ len (xch )} "
425- xch = xch [:cols - len (suffix )] + suffix
423+ xch = xch [:self . cols - len (suffix )] + suffix
426424 print (f"{ _prefix } { xch } " )
427425
428426 print_sent = functools .partialmethod (_print_ , _prefix = '-->' )
@@ -1174,19 +1172,29 @@ class Client:
11741172 def __init__ (self , server , db = None , user = None , password = None ,
11751173 api_key = None , transport = None , verbose = False ):
11761174 self ._http = HTTPSession ()
1175+ self ._printer = Printer ()
11771176 self ._session_uid = None
1178- self ._set_services (server , db , transport , verbose )
1177+ self .verbose = verbose
1178+ self ._set_services (server , db , transport )
11791179 self .env = Env (self )
11801180 if user : # Try to login
11811181 self .login (user , password = password , api_key = api_key , database = db )
11821182
1183- def _set_services (self , server , db , transport , cols ):
1183+ @property
1184+ def verbose (self ):
1185+ return self ._printer .cols
1186+
1187+ @verbose .setter
1188+ def verbose (self , cols ):
1189+ cols = MAXCOL [min (3 , cols ) - 1 ] if (cols or 9 ) < 9 else cols
1190+ self ._printer .cols = cols and max (36 , cols ) or None
1191+
1192+ def _set_services (self , server , db , transport ):
11841193 if isinstance (server , list ):
11851194 appname = Path (__file__ ).name .rstrip ('co' )
11861195 server = start_odoo_services (server , appname = appname )
11871196 elif isinstance (server , str ) and server [- 1 :] == '/' :
11881197 server = server .rstrip ('/' )
1189- self ._printer = Printer (cols )
11901198 self ._server = server
11911199 self ._connections = []
11921200
@@ -1329,7 +1337,7 @@ def from_config(cls, environment, user=None, verbose=False):
13291337 password = None
13301338 try :
13311339 client = Env ._cache [Env , db , server ].client
1332- client ._printer . __init__ ( verbose )
1340+ client .verbose = verbose
13331341 client .login (user or conf_user , password = password , api_key = api_key )
13341342 except KeyError :
13351343 client = cls (server , db , user or conf_user , password = password , api_key = api_key , verbose = verbose )
@@ -1469,11 +1477,11 @@ def connect(self, env_name=None, *, server=None, user=None):
14691477 """Connect to another environment and replace the globals()."""
14701478 assert self ._is_interactive (), 'Not available'
14711479 if env_name :
1472- self .from_config (env_name , user = user , verbose = self ._printer . cols )
1480+ self .from_config (env_name , user = user , verbose = self .verbose )
14731481 elif server :
14741482 if not user and self .env .uid :
14751483 user = self .env .user .login
1476- self .__class__ (server , user = user , verbose = self ._printer . cols )
1484+ self .__class__ (server , user = user , verbose = self .verbose )
14771485 else :
14781486 assert not user , "Use client.login(...) instead"
14791487 self ._globals ['client' ] = self .env .client
0 commit comments