本文整理匯總了Python中isodatetime.parsers.TimePointParser.parse方法的典型用法代碼示例。如果您正苦於以下問題:Python TimePointParser.parse方法的具體用法?Python TimePointParser.parse怎麽用?Python TimePointParser.parse使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類isodatetime.parsers.TimePointParser
的用法示例。
在下文中一共展示了TimePointParser.parse方法的6個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。
示例1: _coerce_cycletime
# 需要導入模塊: from isodatetime.parsers import TimePointParser [as 別名]
# 或者: from isodatetime.parsers.TimePointParser import parse [as 別名]
def _coerce_cycletime( value, keys, args ):
"""Coerce value to a cycle point."""
value = _strip_and_unquote( keys, value )
if re.match(r"\d+$", value):
# Could be an old date-time cycle point format, or integer format.
return value
if value.startswith("-") or value.startswith("+"):
# We don't know the value given for num expanded year digits...
for i in range(1, 101):
parser = TimePointParser(num_expanded_year_digits=i)
try:
parser.parse(value)
except ValueError:
continue
return value
raise IllegalValueError("cycle point", keys, value)
parser = TimePointParser()
try:
parser.parse(value)
except ValueError:
raise IllegalValueError("cycle point", keys, value)
set_syntax_version(VERSION_NEW,
"cycle point: %s" % itemstr(
keys[:-1], keys[-1], value))
return value
示例2: test_invalid_components
# 需要導入模塊: from isodatetime.parsers import TimePointParser [as 別名]
# 或者: from isodatetime.parsers.TimePointParser import parse [as 別名]
def test_invalid_components():
parser = TimePointParser()
for date, invalid in {
'2000-01-01T00:00:60': ['second_of_minute=60'],
'2000-01-01T00:60:00': ['minute_of_hour=60'],
'2000-01-01T60:00:00': ['hour_of_day=60'],
'2000-01-32T00:00:00': ['day_of_month=32'],
'2000-13-00T00:00:00': ['month_of_year=13'],
'2000-13-32T60:60:60': ['month_of_year=13',
'day_of_month=32',
'hour_of_day=60',
'minute_of_hour=60',
'second_of_minute=60']
}.items():
with pytest.raises(ValueError) as exc:
parser.parse(date)
for item in invalid:
assert item in str(exc)
示例3: _coerce_cycletime_time_zone
# 需要導入模塊: from isodatetime.parsers import TimePointParser [as 別名]
# 或者: from isodatetime.parsers.TimePointParser import parse [as 別名]
def _coerce_cycletime_time_zone( value, keys, args ):
"""Coerce value to a cycle point time zone format - Z, +13, -0800..."""
value = _strip_and_unquote( keys, value )
set_syntax_version(VERSION_NEW,
"use of [cylc]cycle point time zone format",
exc_class=IllegalValueError,
exc_args=("cycle point time zone format", keys, value))
test_timepoint = TimePoint(year=2001, month_of_year=3, day_of_month=1,
hour_of_day=4, minute_of_hour=30,
second_of_minute=54)
dumper = TimePointDumper()
test_timepoint_string = dumper.dump(test_timepoint, "CCYYMMDDThhmmss")
test_timepoint_string += value
parser = TimePointParser(allow_only_basic=True)
try:
parser.parse(test_timepoint_string)
except ValueError:
raise IllegalValueError("cycle point time zone format", keys, value)
return value
示例4: suite_state
# 需要導入模塊: from isodatetime.parsers import TimePointParser [as 別名]
# 或者: from isodatetime.parsers.TimePointParser import parse [as 別名]
def suite_state(suite, task, point, offset=None, status='succeeded',
message=None, cylc_run_dir=None, debug=False):
"""Connect to a suite DB and query the requested task state.
Reports satisfied only if the remote suite state has been achieved.
Returns all suite state args to pass on to triggering tasks.
"""
cylc_run_dir = os.path.expandvars(
os.path.expanduser(
cylc_run_dir or glbl_cfg().get_host_item('run directory')))
if offset is not None:
point = str(add_offset(point, offset))
try:
checker = CylcSuiteDBChecker(cylc_run_dir, suite)
except (OSError, sqlite3.Error):
# Failed to connect to DB; target suite may not be started.
return (False, None)
fmt = checker.get_remote_point_format()
if fmt:
my_parser = TimePointParser()
point = str(my_parser.parse(point, dump_format=fmt))
if message is not None:
satisfied = checker.task_state_met(task, point, message=message)
else:
satisfied = checker.task_state_met(task, point, status=status)
results = {
'suite': suite,
'task': task,
'point': point,
'offset': offset,
'status': status,
'message': message,
'cylc_run_dir': cylc_run_dir
}
return (satisfied, results)
示例5: get_unix_time_from_time_string
# 需要導入模塊: from isodatetime.parsers import TimePointParser [as 別名]
# 或者: from isodatetime.parsers.TimePointParser import parse [as 別名]
def get_unix_time_from_time_string(time_string):
"""Convert a time string into a unix timestemp."""
parser = TimePointParser()
time_point = parser.parse(time_string)
return time_point.get("seconds_since_unix_epoch")
示例6: RoseDateTimeOperator
# 需要導入模塊: from isodatetime.parsers import TimePointParser [as 別名]
# 或者: from isodatetime.parsers.TimePointParser import parse [as 別名]
class RoseDateTimeOperator(object):
"""A class to parse and print date string with an offset."""
CURRENT_TIME_DUMP_FORMAT = u"CCYY-MM-DDThh:mm:ss+hh:mm"
CURRENT_TIME_DUMP_FORMAT_Z = u"CCYY-MM-DDThh:mm:ssZ"
NEGATIVE = "-"
# strptime formats and their compatibility with the ISO 8601 parser.
PARSE_FORMATS = [
("%a %b %d %H:%M:%S %Y", True), # ctime
("%a %b %d %H:%M:%S %Z %Y", True), # Unix "date"
("%Y-%m-%dT%H:%M:%S", False), # ISO8601, extended
("%Y%m%dT%H%M%S", False), # ISO8601, basic
("%Y%m%d%H", False) # Cylc (current)
]
REC_OFFSET = re.compile(r"""\A[\+\-]?(?:\d+[wdhms])+\Z""", re.I)
REC_OFFSET_FIND = re.compile(r"""(?P<num>\d+)(?P<unit>[wdhms])""")
STR_NOW = "now"
STR_REF = "ref"
TASK_CYCLE_TIME_ENV = "ROSE_TASK_CYCLE_TIME"
UNITS = {"w": "weeks",
"d": "days",
"h": "hours",
"m": "minutes",
"s": "seconds"}
def __init__(self, parse_format=None, utc_mode=False, calendar_mode=None,
ref_point_str=None):
"""Constructor.
parse_format -- If specified, parse with the specified format.
Otherwise, parse with one of the format strings in
self.PARSE_FORMATS. The format should be a string
compatible to strptime(3).
utc_mode -- If True, parse/print in UTC mode rather than local or
other timezones.
calendar_mode -- Set calendar mode, for isodatetime.data.Calendar.
ref_point_str -- Set the reference time point for operations.
If not specified, operations use current date time.
"""
self.parse_formats = self.PARSE_FORMATS
self.custom_parse_format = parse_format
self.utc_mode = utc_mode
if self.utc_mode:
assumed_time_zone = (0, 0)
else:
assumed_time_zone = None
self.set_calendar_mode(calendar_mode)
self.time_point_dumper = TimePointDumper()
self.time_point_parser = TimePointParser(
assumed_time_zone=assumed_time_zone)
self.duration_parser = DurationParser()
self.ref_point_str = ref_point_str
def date_format(self, print_format, time_point=None):
"""Reformat time_point according to print_format.
time_point -- The time point to format.
Otherwise, use ref date time.
"""
if time_point is None:
time_point = self.date_parse()[0]
if print_format is None:
return str(time_point)
if "%" in print_format:
try:
return time_point.strftime(print_format)
except ValueError:
return self.get_datetime_strftime(time_point, print_format)
return self.time_point_dumper.dump(time_point, print_format)
def date_parse(self, time_point_str=None):
"""Parse time_point_str.
Return (t, format) where t is a isodatetime.data.TimePoint object and
format is the format that matches time_point_str.
time_point_str -- The time point string to parse.
Otherwise, use ref time.
"""
if time_point_str is None or time_point_str == self.STR_REF:
time_point_str = self.ref_point_str
if time_point_str is None or time_point_str == self.STR_NOW:
time_point = get_timepoint_for_now()
#.........這裏部分代碼省略.........