-
-
Notifications
You must be signed in to change notification settings - Fork 25.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
WIP: Progress logger #1171
Closed
Closed
WIP: Progress logger #1171
Changes from 17 commits
Commits
Show all changes
33 commits
Select commit
Hold shift + click to select a range
655ce61
ENH: first sketch of logging framework
GaelVaroquaux ff9ed10
ENH: use logging framework in grid_search
GaelVaroquaux d73b792
ENH: make logging framework pickeable
GaelVaroquaux ee5ff98
ENH: pickling of our loggers
GaelVaroquaux 09cc6ea
COSMIT: ProgressLog -> ProgressLogger
GaelVaroquaux 6480b83
BUG: fix renaming
GaelVaroquaux 7b67fe0
ENH: Add logging to k_means
GaelVaroquaux 4f48a4c
ENH: add logger to affinity_propagation
GaelVaroquaux f80e1e1
API: use *msg_vars in logger.progress
GaelVaroquaux f964b76
EHH: Logger in SVM
GaelVaroquaux 0a50131
ENH: logger in DPGMM
GaelVaroquaux 979e1f9
ENH: short_message in logger
GaelVaroquaux cffa19e
ENH: add logging to __init__
GaelVaroquaux 881828c
BUG: fix bug in previous commit
GaelVaroquaux 3330310
BUG: fix bug in logging + SVM
GaelVaroquaux 5512f02
ENH: better verbosity in lars_path
GaelVaroquaux ff43901
ENH: add logging to graph_lasso
GaelVaroquaux e25073c
ENH: Logger in lfw
GaelVaroquaux 725a16b
MISC: Address @ogrisel's comment on info
GaelVaroquaux 83fdce1
MISC: simpler verbosity control
GaelVaroquaux b6b336a
COSMIT: remove 'I:' from logging message
GaelVaroquaux 562558f
COSMIT: comment
GaelVaroquaux 550b805
COSMIT: less noise in tests
GaelVaroquaux c90433f
COSMIT: More clean up verbosity in tests
GaelVaroquaux b4d75c1
ENH: logging framework in MDS
GaelVaroquaux dd6b88d
MISC: use assert_equal
GaelVaroquaux 53f0362
ENH: logger in naive_bayes
GaelVaroquaux 5dafb44
ENH: logger in coordinate_descent
GaelVaroquaux 80ca50b
ENH: logging in gaussian_process
GaelVaroquaux 1060455
ENH: log errors in Gaussian process
GaelVaroquaux 70ffd2b
ENH: Logger framework in decomposition
GaelVaroquaux 17c921d
ENH: add logger to random forest
GaelVaroquaux 0881534
ENH: logger in robust_covariance
GaelVaroquaux File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
""" | ||
Small example showing recursive logging in an object hierarchy. | ||
""" | ||
|
||
from time import sleep | ||
import itertools | ||
|
||
from sklearn.progress_logger import HasLogger | ||
from sklearn.externals.joblib import Parallel, delayed | ||
|
||
FIRST_NAMES = itertools.cycle(['Jane', 'Joe', 'Jack']) | ||
|
||
def do_work(logger, msg): | ||
logger.progress('Working', short_message=msg) | ||
|
||
|
||
class Employee(HasLogger): | ||
|
||
def __init__(self, name='Joe Average', verbose=False): | ||
self.name = name | ||
self.verbose = verbose | ||
|
||
def work(self, chore_msg): | ||
log = self._get_logger() | ||
sleep(.2) | ||
Parallel(n_jobs=-1)(delayed(do_work)(log, '.') | ||
for _ in range(10)) | ||
log.progress('%s says "Done my chores %s"', | ||
self.name, chore_msg) | ||
|
||
|
||
class Boss(HasLogger): | ||
|
||
def __init__(self, n_employees=3, verbose=False): | ||
self.verbose = verbose | ||
self.n_employees = n_employees | ||
|
||
def yell(self): | ||
log = self._get_logger() | ||
log.progress('Get to work!!') | ||
employes = [Employee(name='%s Average' % n, | ||
verbose=log.clone()) | ||
for _, n in zip(range(self.n_employees), | ||
FIRST_NAMES)] | ||
|
||
for employe in employes: | ||
employe.work('code') | ||
|
||
|
||
if __name__ == '__main__': | ||
boss = Boss(verbose=2) | ||
boss.yell() | ||
|
||
from sklearn.progress_logger import setup_logger | ||
import logging | ||
setup_logger('__main__', level=logging.DEBUG, display_name=True, | ||
time_stamp=True) | ||
boss.yell() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would use a simple
info
instead of progress here. The zoomable progress report does not make sense in that context.