Package: shijian
shijianPython change, time, file, list, statistics and other utilitiessetupsudopipinstallshijianusagetime expressionsFunctionstyle_datetime_objectaccepts adatetimeobject and
returns a string representation of a time. The default style is
“YYYY-MM-DDTHHMMSS” and it can be changed by argument. Styles available
are as follows:time representationcommentYYYY-MM-DDTHHMMSSZfilename safe (default)YYYY-MM-DDTHHMMSSMMMMMMZmicrosecondsYYYY-MM-DD HH:MM:SS UTCelegantUNIX time S.SSSSSSUNIX time in seconds with second fractionUNIX time SUNIX time in seconds roundedFunctionstime_UTCandtime_UNIXare sorts of special cases of
functionstyle_datetime_objectwhich return representations of the
current time (as opposed to any specified datetime object) in a style.
Fortime_UTC, the default style is “YYYY-MM-DDTHHMMSS” and fortime_UNIX, the default style is “UNIX time S” and these styles can
be changed by argument.>>>shijian.time_UTC()'2015-01-05T092125Z'>>>shijian.time_UNIX()1420449720unique identifiersFunctionpropose_filenameproposes a safe filename. It can accept a
filename suggestion or, by default, can generate its own filename
suggestion, a time expression returned by functiontime_UTC.
Filename suggestions are tested and then proposed if they meet test
conditions. The default condition is to not overwrite existing files and
to append an underscore followed by an integer in order to meet this
condition.>pythonPython2.7.6(default,Mar222014,22:59:56)[GCC4.8.2]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>importshijian>>>shijian.propose_filename()'2015-01-05T092319Z'>>>shijian.propose_filename(filename="data.pkl")'data.pkl'>>>>touchdata.pkl>pythonPython2.7.6(default,Mar222014,22:59:56)[GCC4.8.2]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>importshijian>>>shijian.propose_filename(filename="data.pkl")'data_1.pkl'FunctionUIDreturns a 128 bit integer unique identifier in
hexadecimal with dashes in accordance withRFC 4122 UUID version
4.>>>shijian.UID()'91df3b90-285c-4f22-8ced-a154b3b5b09b'>>>shijian.UID()'169bde88-2be2-4b46-bf2d-5bb7aee85658'Functionunique_numberreturns an integer that does not exist in a
global list of integers recorded by the function.>>>shijian.unique_number()1>>>shijian.unique_number()2Functionunique_3_digit_numberreturns an integer of 3 significant
figures that does not exist in a global list of integers of 3
significant figures recorded by the function.>>>shijian.unique_3_digit_number()100>>>shijian.unique_3_digit_number()101clocksClocks can be created in a straightforward way such as the following:alpha=shijian.Clock(name="alpha")By default, clocks keep time from their creation time. This behaviour
can be disabled using Boolean argumentstart = False. Clocks can be
assigned a name or can generate their own unique identifier. Clocks can
be stopped easily:beta.stop()and can be started easily:alpha.start()Clocks can report on their characteristics in ways such as the
following:print(alpha.name())print(alpha.start_time())print(alpha.stop_time())print(alpha.time())Clocks can also provide a general printout of their characteristics:alpha.printout()All clocks are recorded in the shijian list of clocks. Printouts of
clocks are available in two styles: full and statistics. The style
“full” returns the elapsed times of all clocks while the default style
“statistics” returns the mean times of all clocks of the same name.shijian.clocks.printout(style="full")shijian.clocks.printout()daily time rangeWhether the current time is in a specified daily time range can be
tested:shijian.in_daily_time_range(time_range="1700--0900")filename sequencesThe functionnatural_sortnaturally sorts a list. The functionfind_file_sequences, for which a directory and file extension can be
specified, returns a naturally-sorted list of filenames that are in a
sequence or returns a dictionary of lists of filenames that are in a
sequence. For example, a list something like the following could be
returned:['image-000001.png','image-000002.png','image-000003.png','image-000004.png','image-000005.png']configurations, Markdown listsMarkdown lists are human-readable and machine-readable. So, they can be
used to specify configurations written by humans for programs. This
module features utilities for loading configurations specified in
Markdown lists to Python dictionaries and ordered dictionaries.In order to facilitate the human-readability of configuration
specifications, the idea is that lines that are not valid Markdown lists
are ignored.ICHEP 2016./time_ICHEP_2016.pyupcomingChanges to time style specifications are under consideration.