99import os
1010from pathlib import Path
1111from typing import Tuple , cast
12- import warnings
1312
1413from io import StringIO
1514import configparser
2120file_handler = None
2221
2322
24- def _create_log_handlers ():
23+ def _create_log_handlers (create_file_handler = True ):
2524 """ Creates but does not attach the log handlers. """
2625 global console_handler , file_handler
2726 if console_handler is not None or file_handler is not None :
@@ -34,12 +33,13 @@ def _create_log_handlers():
3433 console_handler = logging .StreamHandler ()
3534 console_handler .setFormatter (output_formatter )
3635
37- one_mb = 2 ** 20
38- log_path = os .path .join (cache_directory , "openml_python.log" )
39- file_handler = logging .handlers .RotatingFileHandler (
40- log_path , maxBytes = one_mb , backupCount = 1 , delay = True
41- )
42- file_handler .setFormatter (output_formatter )
36+ if create_file_handler :
37+ one_mb = 2 ** 20
38+ log_path = os .path .join (cache_directory , "openml_python.log" )
39+ file_handler = logging .handlers .RotatingFileHandler (
40+ log_path , maxBytes = one_mb , backupCount = 1 , delay = True
41+ )
42+ file_handler .setFormatter (output_formatter )
4343
4444
4545def _convert_log_levels (log_level : int ) -> Tuple [int , int ]:
@@ -194,12 +194,20 @@ def _setup():
194194 if not os .path .exists (expanded_openml_dir ):
195195 try :
196196 os .mkdir (expanded_openml_dir )
197+ cache_exists = True
197198 except PermissionError :
198- warnings .warn (
199- "No permission to create openml directory at %s! This can result in OpenML-Python "
200- "not working properly." % expanded_openml_dir
201- )
202- pass
199+ cache_exists = False
200+ else :
201+ cache_exists = True
202+
203+ if cache_exists :
204+ _create_log_handlers ()
205+ else :
206+ _create_log_handlers (create_file_handler = False )
207+ openml_logger .warning (
208+ "No permission to create openml directory at %s! This can result in OpenML-Python "
209+ "not working properly." % expanded_openml_dir
210+ )
203211
204212 config = _parse_config ()
205213 apikey = config .get ("FAKE_SECTION" , "apikey" )
@@ -213,14 +221,13 @@ def _setup():
213221 try :
214222 os .mkdir (cache_directory )
215223 except PermissionError :
216- warnings . warn (
224+ openml_logger . warning (
217225 "No permission to create openml cache directory at %s! This can result in "
218226 "OpenML-Python not working properly." % cache_directory
219227 )
220- pass
221228
222229 avoid_duplicate_runs = config .getboolean ("FAKE_SECTION" , "avoid_duplicate_runs" )
223- connection_n_retries = config .get ("FAKE_SECTION" , "connection_n_retries" )
230+ connection_n_retries = int ( config .get ("FAKE_SECTION" , "connection_n_retries" ) )
224231 if connection_n_retries > 20 :
225232 raise ValueError (
226233 "A higher number of retries than 20 is not allowed to keep the "
@@ -296,4 +303,3 @@ def set_cache_directory(cachedir):
296303]
297304
298305_setup ()
299- _create_log_handlers ()
0 commit comments