module loghelper.flog
¶
Short summary¶
module pyquickhelper.loghelper.flog
logging functionalities
The function fLOG (or fLOG) is used to logged everything into a log file.
from pyquickhelper.loghelper.flog import fLOG
fLOG(OutputPrint = True) # the logs are also displayed in the output stream
fLOG(LogPath = "...") # chanages the path returned by GetPath
fLOG("un", "deux", 4, ["gt"]) # log everything in a log file
from pyquickhelper.loghelper.flog import GetPath ()
print GetPath() # return the log path (file temp_log.txt)
fLOG(LogPath = "c:/temp/log_path") # change the log path, creates it if it does not exist
Functions¶
function |
truncated documentation |
---|---|
Check the existence of a file, downloads it if not existing. |
|
If url is an url, download the file and return the downloaded if it has already been downloaded, it is not downloaded … |
|
This function tests if a file is a zip file (extension zip), if it is the case, it unzips it into another file and return … |
|
Checks if the first file (opened url) is more recent of the second file (path). |
|
build a filename knowing an url, same name but in default_path |
|
build a filename knowing an url |
|
Other name private to this module. |
|
Download a file to the folder path_unzip if not present, if the downloading is interrupted, the next time, it will start … |
|
Builds a message on a single line with the date, it deals with encoding issues. |
|
Formats a message. |
|
Returns a prefix for a file based on time. |
|
private function, return the relative path or absolute between a folder and a file, use relpath … |
|
Returns a file name containing the log |
|
returns a path where the log file is stored. |
|
Always returns |
|
Determines many parameters on this machine: |
|
guess the type of a list |
|
Guessees the type of a value. |
|
initialisation |
|
Empty string or not? |
|
Tries different encoding to load a file, tries utf8, latin1 and None. |
|
does nothing |
|
if True, redirect everything which is displayed to the standard output |
|
Removes all files and folders in folder. |
|
Unzips a file into the temporary folder, the function expects to have only one zipped file. |
Documentation¶
logging functionalities
The function fLOG (or fLOG) is used to logged everything into a log file.
from pyquickhelper.loghelper.flog import fLOG
fLOG(OutputPrint = True) # the logs are also displayed in the output stream
fLOG(LogPath = "...") # chanages the path returned by GetPath
fLOG("un", "deux", 4, ["gt"]) # log everything in a log file
from pyquickhelper.loghelper.flog import GetPath ()
print GetPath() # return the log path (file temp_log.txt)
fLOG(LogPath = "c:/temp/log_path") # change the log path, creates it if it does not exist
Warning
This module inserts static variable in module sys. I was done to deal with several instances of the same module in earlier versions of python.
- pyquickhelper.loghelper.flog.GetLogFile(physical=False, filename=None)[source]¶
Returns a file name containing the log
- Parameters:
physical – use a physical file or not
filename – file name (if physical is True, default value is
temp_log.txt
)
- Returns:
a pointer to a log file
- Return type:
- Raises:
OSError – if this file cannot be created
- pyquickhelper.loghelper.flog.GetPath()[source]¶
returns a path where the log file is stored.
- Returns:
path to the logs
- pyquickhelper.loghelper.flog.IsEmptyString(s)[source]¶
Empty string or not?
- Parameters:
s – any string (str, None)
- Returns:
is it empty or not?
- Return type:
- Raises:
PQHException – when a type is unexpected
- pyquickhelper.loghelper.flog.Print(redirect=True)[source]¶
if True, redirect everything which is displayed to the standard output
- pyquickhelper.loghelper.flog._check_source(fileurl, path_unzip, outfile, flatten=True, fLOG=<function noLOG>)[source]¶
Check the existence of a file, downloads it if not existing.
- Parameters:
fileurl – can be an url, a zip file, a text file
path_unzip – if None, unzip the file where it stands, otherwise, put it in path
outfile – if None, the function will assign a filename unless this parameter is specified
flatten – extract all files into the same directory
fLOG – logging function
- Returns:
a text file name
- if it is:
an url: download it and copy it into default_path
a zipfile: beside the true file
a text file: do nothing
If the file has already been downloaded and unzipped, it is not done twice.
- pyquickhelper.loghelper.flog._check_url_file(url, path_download, outfile, fLOG=<function noLOG>)[source]¶
If url is an url, download the file and return the downloaded if it has already been downloaded, it is not downloaded again.
- Parameters:
url – url
path_download – download the file here
outfile – if None, the function will assign a filename unless this parameter is specified
fLOG – logging function
- Returns:
the filename
- pyquickhelper.loghelper.flog._check_zip_file(filename, path_unzip, outfile, flatten=True, fLOG=<function noLOG>)[source]¶
This function tests if a file is a zip file (extension zip), if it is the case, it unzips it into another file and return the new name, if the unzipped file already exists, the file is not unzipped a second time.
- Parameters:
filename – any filename (.zip or not), if txt, it has no effect
path_unzip – if None, unzip it where it stands, otherwise, place it into path
outfile – if None, the function will assign a filename unless this parameter is specified
flatten – unzip all files into the same directory
fLOG – logging function
- Returns:
the unzipped file or filename if the format was not zip
- pyquickhelper.loghelper.flog._first_more_recent(f1, path)[source]¶
Checks if the first file (opened url) is more recent of the second file (path).
- Parameters:
f1 – opened url
path – path name
- Returns:
boolean
- pyquickhelper.loghelper.flog._get_file_txt(zipname)[source]¶
build a filename knowing an url, same name but in default_path
- Parameters:
zipname – filename of the zip
- Returns:
filename
- pyquickhelper.loghelper.flog._get_file_url(url, path)[source]¶
build a filename knowing an url
- Parameters:
url – url
path – where to download the file
- Returns:
filename
- pyquickhelper.loghelper.flog._this_fLOG(*args, **kwargs)[source]¶
Other name private to this module.
- pyquickhelper.loghelper.flog.download(httpfile, path_unzip=None, outfile=None, flatten=True, fLOG=None)[source]¶
Download a file to the folder path_unzip if not present, if the downloading is interrupted, the next time, it will start from where it stopped. Before downloading, the function creates a temporary file, which means the downloading has began. If the connection is lost, an exception is raised and the program stopped. Next time, the program will detect the existence of the temporary file and will start downloading from where it previously stopped. After it ends, the temporary file is removed.
- Parameters:
httpfile – (str) url
path_unzip – (str) path where to unzip the file, if None, choose GetPath ()
outfile – (str) if None, the function will assign a filename unless this parameter is specified
flatten – (bool) put all files in the same folder (forget subfolders)
fLOG – (str) logging function
- Returns:
local file name
- pyquickhelper.loghelper.flog.fLOG(*args, **kwargs)[source]¶
Builds a message on a single line with the date, it deals with encoding issues.
- Parameters:
args – list of fields
kwargs – dictionary of fields (see below)
- Raises:
OSError – When the log file cannot be created.
About parameter p:
if p contains OutputPrint, call
Print(OutputPrint)
if p contains LogPath, it calls
init(v)
if p contains LogFile, it changes the log file name (it creates a new one, the previous is closed).
if p contains LogPathAdd, it adds this path to the temporary file
if p contains Lock, it locks option OutputPrint
if p contains UnLock, it unlocks option OutputPrint
if p contains _pp, it uses pprint
Example:
fLOG (LogPath = "###", LogPathAdd = __file__, OutputPrint = True)
How to activate the logs?
The following instruction will do:
fLOG(OutputPrint=True)
To log everything into a file:
fLOG(OutputPrint=True, LogFile="log_file.txt")
Parameter OutputStream allows to print the message on a different stream.
- pyquickhelper.loghelper.flog.fLOGFormat(sep, *args, **kwargs)[source]¶
Formats a message.
- Parameters:
sep – line separator
args – list of anything
kwargs – dictioanry of anything
- Returns:
string
if _pp is True, the function uses pprint.
- pyquickhelper.loghelper.flog.get_default_value_type(ty, none=True)[source]¶
- Parameters:
ty – type in guess_type_value_type
none – if True and all values are empty, return None
- Returns:
a default value for this type
- pyquickhelper.loghelper.flog.get_relative_path(folder, file, exists=True, absolute=True)[source]¶
private function, return the relative path or absolute between a folder and a file, use relpath
- Parameters:
folder – folder
file – file
exists – check existence
absolute – if True return a path which starts from the root
- Returns:
relative path
- Return type:
- pyquickhelper.loghelper.flog.guess_machine_parameter()[source]¶
Determines many parameters on this machine: - machine name - user name - domain…
- Returns:
dictionary { name : value }
- pyquickhelper.loghelper.flog.guess_type_list(args, tolerance=0.01, none=True)[source]¶
guess the type of a list
- Parameters:
args – list
tolerance – let’s denote m as the frequency of the most representative type, and m2 the second one, if m2 > m * tolerance –> str
none – if True and all values are empty, return None
- Returns:
type, length (order of preference (int, float, str)) the parameter length has a meaning only for str result
- pyquickhelper.loghelper.flog.guess_type_value(x, none=None)[source]¶
Guessees the type of a value.
- Parameters:
x – type
none – if True and all values are empty, return None
- Returns:
type
Warning
if an integer starts with a zero, then it is a string
- pyquickhelper.loghelper.flog.guess_type_value_type(none=True)[source]¶
- Parameters:
none – if True and all values are empty, return None
- Returns:
the list of types recognized by guess_type_value
- pyquickhelper.loghelper.flog.init(path=None, filename=None, create=True, path_add=None)[source]¶
initialisation
- Parameters:
path – new path, if path==*”###”*, then uses
d:\temp\log_pyquickhelper
if it exists orc:\temp\log_pyquickhelper
if notfilename – new filename
create – force the creation
path_add – subfolder to append to the current folder
This function is also called when LogPath is specified while calling function fLOG.
- pyquickhelper.loghelper.flog.load_content_file_with_encoding(filename)[source]¶
Tries different encoding to load a file, tries utf8, latin1 and None.
- Parameters:
filename – filename
- Returns:
couple (content, encoding)
- pyquickhelper.loghelper.flog.removedirs(folder, silent=False, use_command_line=False)[source]¶
Removes all files and folders in folder.
- Parameters:
folder – folder
silent – silent mode or not
use_command_line – see below
- Returns:
list of not remove files or folders
Sometimes it fails due to PermissionError exception, in that case, you can try to remove the folder through the command line
rmdir /q /s + <folder>
. In that case, the function does not return the list of removed files but the output of the command line
- pyquickhelper.loghelper.flog.unzip(file, path_unzip=None, outfile=None, flatten=True, fLOG=<function noLOG>)[source]¶
Unzips a file into the temporary folder, the function expects to have only one zipped file.
- Parameters:
file – (str) zip files
path_unzip – (str) where to unzip the file, if None, choose GetPath ()
outfile – (str) if None, the function will assign a filename unless this parameter is specified
flatten – (bool) put all files in the same folder (forget subfolders)
- Returns:
expanded file name