mirror of
https://github.com/python/cpython.git
synced 2025-10-18 04:38:07 +00:00
Let's assume that the datetime module is always available.
This commit is contained in:
parent
f45dee998f
commit
b6f019a080
1 changed files with 10 additions and 23 deletions
|
@ -130,6 +130,7 @@ Exported functions:
|
||||||
import base64
|
import base64
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
from datetime import datetime
|
||||||
import http.client
|
import http.client
|
||||||
from xml.parsers import expat
|
from xml.parsers import expat
|
||||||
import socket
|
import socket
|
||||||
|
@ -143,11 +144,6 @@ except ImportError:
|
||||||
# --------------------------------------------------------------------
|
# --------------------------------------------------------------------
|
||||||
# Internal stuff
|
# Internal stuff
|
||||||
|
|
||||||
try:
|
|
||||||
import datetime
|
|
||||||
except ImportError:
|
|
||||||
datetime = None
|
|
||||||
|
|
||||||
def escape(s):
|
def escape(s):
|
||||||
s = s.replace("&", "&")
|
s = s.replace("&", "&")
|
||||||
s = s.replace("<", "<")
|
s = s.replace("<", "<")
|
||||||
|
@ -264,11 +260,8 @@ boolean = Boolean = bool
|
||||||
# tuple, or a integer time value.
|
# tuple, or a integer time value.
|
||||||
|
|
||||||
def _strftime(value):
|
def _strftime(value):
|
||||||
if datetime:
|
if isinstance(value, datetime):
|
||||||
if isinstance(value, datetime.datetime):
|
return value.strftime("%Y%m%dT%H:%M:%S")
|
||||||
return "%04d%02d%02dT%02d:%02d:%02d" % (
|
|
||||||
value.year, value.month, value.day,
|
|
||||||
value.hour, value.minute, value.second)
|
|
||||||
|
|
||||||
if not isinstance(value, (tuple, time.struct_time)):
|
if not isinstance(value, (tuple, time.struct_time)):
|
||||||
if value == 0:
|
if value == 0:
|
||||||
|
@ -293,7 +286,7 @@ class DateTime:
|
||||||
if isinstance(other, DateTime):
|
if isinstance(other, DateTime):
|
||||||
s = self.value
|
s = self.value
|
||||||
o = other.value
|
o = other.value
|
||||||
elif datetime and isinstance(other, datetime.datetime):
|
elif isinstance(other, datetime):
|
||||||
s = self.value
|
s = self.value
|
||||||
o = other.strftime("%Y%m%dT%H:%M:%S")
|
o = other.strftime("%Y%m%dT%H:%M:%S")
|
||||||
elif isinstance(other, str):
|
elif isinstance(other, str):
|
||||||
|
@ -363,8 +356,7 @@ def _datetime(data):
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def _datetime_type(data):
|
def _datetime_type(data):
|
||||||
t = time.strptime(data, "%Y%m%dT%H:%M:%S")
|
return datetime.strptime(data, "%Y%m%dT%H:%M:%S")
|
||||||
return datetime.datetime(*tuple(t)[:6])
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Wrapper for binary data. This can be used to transport any kind
|
# Wrapper for binary data. This can be used to transport any kind
|
||||||
|
@ -584,12 +576,11 @@ class Marshaller:
|
||||||
del self.memo[i]
|
del self.memo[i]
|
||||||
dispatch[dict] = dump_struct
|
dispatch[dict] = dump_struct
|
||||||
|
|
||||||
if datetime:
|
def dump_datetime(self, value, write):
|
||||||
def dump_datetime(self, value, write):
|
write("<value><dateTime.iso8601>")
|
||||||
write("<value><dateTime.iso8601>")
|
write(_strftime(value))
|
||||||
write(_strftime(value))
|
write("</dateTime.iso8601></value>\n")
|
||||||
write("</dateTime.iso8601></value>\n")
|
dispatch[datetime] = dump_datetime
|
||||||
dispatch[datetime.datetime] = dump_datetime
|
|
||||||
|
|
||||||
def dump_instance(self, value, write):
|
def dump_instance(self, value, write):
|
||||||
# check for special wrappers
|
# check for special wrappers
|
||||||
|
@ -632,8 +623,6 @@ class Unmarshaller:
|
||||||
self._encoding = "utf-8"
|
self._encoding = "utf-8"
|
||||||
self.append = self._stack.append
|
self.append = self._stack.append
|
||||||
self._use_datetime = use_datetime
|
self._use_datetime = use_datetime
|
||||||
if use_datetime and not datetime:
|
|
||||||
raise ValueError("the datetime module is not available")
|
|
||||||
|
|
||||||
def close(self):
|
def close(self):
|
||||||
# return response tuple and target method
|
# return response tuple and target method
|
||||||
|
@ -862,8 +851,6 @@ def getparser(use_datetime=False):
|
||||||
Create an instance of the fastest available parser, and attach it
|
Create an instance of the fastest available parser, and attach it
|
||||||
to an unmarshalling object. Return both objects.
|
to an unmarshalling object. Return both objects.
|
||||||
"""
|
"""
|
||||||
if use_datetime and not datetime:
|
|
||||||
raise ValueError("the datetime module is not available")
|
|
||||||
if FastParser and FastUnmarshaller:
|
if FastParser and FastUnmarshaller:
|
||||||
if use_datetime:
|
if use_datetime:
|
||||||
mkdatetime = _datetime_type
|
mkdatetime = _datetime_type
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue