Analyze Sage Build¶
A time evolution picture of packages built by Sage
EXAMPLES:
sage: from slabbe.analyze_sage_build import draw_sage_build
sage: t = draw_sage_build()
sage: _ = t.pdf(view=False)
AUTHOR:
Sébastien Labbé, December 9-11, 2016
-
slabbe.analyze_sage_build.
build_duration_logs
(path_to_file, pattern=None)¶ INPUT:
path_to_file
– string, file to parsepattern
– string orNone
, string to parse. IfNone
, it returns 0 seconds.
OUTPUT:
list of timedelta objects
EXAMPLES:
sage: L = [ ('/../ptestlong.log', 'Total time for all tests: '), ....: ('/../dochtml.log', 'Elapsed time: '), ....: ('/../start.log', None), ....: ('/sagelib-7.5.beta6.log', 'real\t'), ....: ('/sqlite.log', 'real\t')]
sage: from slabbe.analyze_sage_build import build_duration_logs sage: from sage.env import SAGE_ROOT sage: import os sage: SAGE_LOGS_PKGS = os.path.join(SAGE_ROOT,'logs','pkgs') sage: import os sage: for (file, pattern) in L: # random ....: print(file) ....: if not os.path.exists(SAGE_LOGS_PKGS+file): ....: continue ....: build_duration_logs(SAGE_LOGS_PKGS+file, pattern) /../ptestlong.log /../dochtml.log [datetime.timedelta(0, 471, 700000)] /../start.log [] /sagelib-7.5.beta6.log /sqlite.log []
-
slabbe.analyze_sage_build.
draw_sage_build
(start=None, stop=None, consider='last', verbose=False)¶ Return a time evolution picture of packages built by Sage
INPUT:
start
– datetime object (default is January 1st, 2000)stop
– datetime object (default is now)consider
- string (default:'last'
),'last'
or'all'
, in any log file, consider the last duration found or the sum of all of themverbose
- boolean (default:False
)
OUTPUT:
TikzPicture object
EXAMPLES:
sage: from slabbe.analyze_sage_build import draw_sage_build sage: t = draw_sage_build()
During the previous 7 day:
sage: import datetime sage: stop = datetime.datetime.now() sage: start = stop - datetime.timedelta(7r) sage: t = draw_sage_build(start, stop) # not tested
sage: t = draw_sage_build(stop=datetime.datetime(2016,12,9)) # not tested
TESTS:
It may fail if nothing is found during the period:
sage: t = draw_sage_build() # not tested Traceback (most recent call last): ... ValueError: no package found built between start date (=2016-12-08 16:58:35.189127) and stop date (=2016-12-09 16:58:35.189127). Oldest is 2016-02-16 11:38:00.673327. Newest is 2016-12-08 11:27:03.312340.
-
slabbe.analyze_sage_build.
last_modified_datetime
(path_to_file)¶ EXAMPLES:
sage: from slabbe.analyze_sage_build import last_modified_datetime sage: from sage.env import SAGE_ROOT sage: last_modified_datetime(SAGE_ROOT+'/README.md') datetime.datetime(..., ..., ..., ..., ..., ...) sage: last_modified_datetime(SAGE_ROOT+'/VERSION.txt') datetime.datetime(..., ..., ..., ..., ..., ...)
-
slabbe.analyze_sage_build.
sage_logs_datetime_list
(consider='last', verbose=False)¶ Return a dictionnary of duration and last modified information from the sage log files.
INPUT:
consider
- string (default:'last'
),'last'
or'all'
, in any log file, consider the last duration found or the sum of all of themverbose
- boolean (default:False
)
EXAMPLES:
sage: import datetime sage: from slabbe.analyze_sage_build import sage_logs_datetime_list sage: L = sage_logs_datetime_list() sage: L = sage_logs_datetime_list() sage: stop = datetime.datetime.now() sage: start = stop - datetime.timedelta(14r) sage: L_filtered = [(A,B,delta,file) for (A,B,delta,file) in L ....: if start <= A and B <= stop]