Пример #1
0
 def testCreation(self):
     base_date = xsd.dateTime('2000-01-10T00:00:00')
     delta_date = xsd.dateTime('2000-01-06T19:52:37.5')
     v = xsd.duration(base_date - delta_date)
     self.assertEqual(3, v.days)
     self.assertEqual(14842, v.seconds)
     self.assertEqual('P3DT4H7M22.5S', v.xsdLiteral())
Пример #2
0
 def testAddition(self):
     date = xsd.dateTime(2002, 10, 27, 12, 14, 32)
     duration = xsd.duration('P3DT5H3M')
     self.assertEqual('2002-10-30T17:17:32',
                      xsd.dateTime(date + duration).xsdLiteral())
     self.assertEqual('2002-10-24T07:11:32',
                      xsd.dateTime(date - duration).xsdLiteral())
Пример #3
0
 def testCreation(self):
     base_date = xsd.dateTime('2000-01-10T00:00:00')
     delta_date = xsd.dateTime('2000-01-06T19:52:37.5')
     v = xsd.duration(base_date - delta_date)
     self.assertEqual(3, v.days)
     self.assertEqual(14842, v.seconds)
     self.assertEqual('P3DT4H7M22.5S', v.xsdLiteral())
     self.assertRaises(pyxb.SimpleTypeValueError, xsd.duration)
     self.assertRaises(pyxb.SimpleTypeValueError, xsd.duration, 4)
Пример #4
0
 def testNegative(self):
     v = xsd.duration('-P3DT4H7M23.5S')
     # Time is 19H52M36.5S into day -4
     base_date = xsd.dateTime('2000-01-10T00:00:00')
     delta_date = xsd.dateTime(base_date + v)
     self.assertEqual(-4, v.days)
     self.assertEqual(36 + 60 * (52 + 60 * 19), v.seconds)
     self.assertEqual(500000, v.microseconds)
     self.assertEqual('2000-01-06T19:52:36.5', delta_date.xsdLiteral())
Пример #5
0
 def testCreation (self):
     base_date = xsd.dateTime('2000-01-10T00:00:00')
     delta_date = xsd.dateTime('2000-01-06T19:52:37.5')
     v = xsd.duration(base_date - delta_date)
     self.assertEqual(3, v.days)
     self.assertEqual(14842, v.seconds)
     self.assertEqual('P3DT4H7M22.5S', v.xsdLiteral())
     self.assertRaises(pyxb.SimpleTypeValueError, xsd.duration)
     self.assertRaises(pyxb.SimpleTypeValueError, xsd.duration, 4)
Пример #6
0
    def testNormalize (self):
        dt = xsd.dateTime('2000-03-04T23:00:00+03:00')
        self.assertEqual('2000-03-04T20:00:00Z', dt.xsdLiteral())

        pdt = datetime.datetime(year=2000, month=3, day=4, hour=23, tzinfo=UTCOffsetTimeZone(180))
        self.assertEqual('2000-03-04 23:00:00+03:00', str(pdt))
        dt = xsd.dateTime(pdt)
        self.assertEqual('2000-03-04T20:00:00Z', dt.xsdLiteral())

        dt = xsd.dateTime(2000, 3, 4, 23, tzinfo=UTCOffsetTimeZone(180))
        self.assertEqual('2000-03-04T20:00:00Z', dt.xsdLiteral())
Пример #7
0
 def testXsdLiteral (self):
     dt = xsd.dateTime('2002-10-27T12:14:32Z')
     self.assertEqual('2002-10-27T12:14:32Z', dt.xsdLiteral())
     self.assertTrue(dt.tzinfo is not None)
     self.assertEqual('2002-10-27T07:14:32Z', xsd.dateTime('2002-10-27T12:14:32+05:00').xsdLiteral())
     self.assertEqual('2002-10-27T17:14:32Z', xsd.dateTime('2002-10-27T12:14:32-05:00').xsdLiteral())
     self.assertEqual('2002-10-27T17:14:32.1234Z', xsd.dateTime('2002-10-27T12:14:32.123400-05:00').xsdLiteral())
     # No zone info
     dt = xsd.dateTime('2002-10-27T12:14:32')
     self.assertEqual('2002-10-27T12:14:32', dt.xsdLiteral())
     self.assertFalse(dt.tzinfo is not None)
Пример #8
0
 def testNegative (self):
     v = xsd.duration('-P3DT4H7M23.5S')
     # Time is 19H52M36.5S into day -4
     base_date = xsd.dateTime('2000-01-10T00:00:00')
     delta_date = xsd.dateTime(base_date + v)
     self.assertEqual(-4, v.days)
     self.assertEqual(36 + 60 * (52 + 60 * 19), v.seconds)
     self.assertEqual(500000, v.microseconds)
     self.assertEqual('2000-01-06T19:52:36.5', delta_date.xsdLiteral())
     td = datetime.timedelta(days=-1)
     v = xsd.duration(td)
     self.assertEqual(v, td)
     delta_date = xsd.dateTime(base_date + v)
     self.assertEqual('2000-01-09T00:00:00', delta_date.xsdLiteral())
def dateTimeWithoutSeconds(str):
    pattern = re.compile(r'^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2})Z$',
                         re.IGNORECASE)
    matched = re.match(pattern, str)
    if matched:
        year = int(matched.group(1))
        month = int(matched.group(2))
        date = int(matched.group(3))
        hour = int(matched.group(4))
        minute = int(matched.group(5))
        xsd.dateTime(year, month, date, hour, minute)
        return '{:d}-{:02d}-{:02d}T{:02d}:{:02d}:00Z'.format(
            year, month, date, hour, minute)

    raise ValueError('Invalid date time without seconds: {}'.format(str))
Пример #10
0
 def testFromText (self):
     self.verifyTime(xsd.dateTime('  2002-10-27T12:14:32', _from_xml=True), with_usec=False, with_tzinfo=False)
     self.verifyTime(xsd.dateTime('2002-10-27T12:14:32  ', _from_xml=True), with_usec=False, with_tzinfo=False)
     self.verifyTime(xsd.dateTime('2002-10-27T12:14:32'), with_usec=False, with_tzinfo=False)
     self.verifyTime(xsd.dateTime('2002-10-27T12:14:32.1234'), with_tzinfo=False)
     self.verifyTime(xsd.dateTime('2002-10-27T12:14:32Z'), with_usec=False)
     self.verifyTime(xsd.dateTime('2002-10-27T12:14:32.1234Z'))
     self.verifyTime(xsd.dateTime('2002-10-27T12:14:32.1234+05:00'), with_adj=(-5,0))
     self.verifyTime(xsd.dateTime('2002-10-27T12:14:32.1234Z'))
Пример #11
0
 def XtestBogus(self):
     dt = xsd.dateTime.today()
     print dt.xsdLiteral()
     print str(dt)
     print dt.aslocal()
     # NB: duration does not support months in Python version
     delta = xsd.duration('P%dD' % (365 / 2))
     dt = xsd.dateTime(dt + delta)
     print dt.xsdLiteral()
     print str(dt)
     print dt.aslocal()
Пример #12
0
 def XtestBogus (self):
     dt = xsd.dateTime.today()
     print(dt.xsdLiteral())
     print(str(dt))
     print(dt.aslocal())
     # NB: duration does not support months in Python version
     delta = xsd.duration('P%dD' % (365 / 2))
     dt = xsd.dateTime(dt + delta)
     print(dt.xsdLiteral())
     print(str(dt))
     print(dt.aslocal())
Пример #13
0
 def testPreservation (self):
     value = xs.dateTime(self.Literal)
     self.assertEqual(value.xsdLiteral(), self.Literal)
Пример #14
0
 def testPreserve (self):
     pyxb.PreserveInputTimeZone(True)
     self.assertTrue(pyxb.PreserveInputTimeZone())
     dt = xsd.dateTime(self.Time)
     self.assertEqual('2013-08-30 11:56:45+04:00', str(dt))
     self.assertEqual('2013-08-30 09:56:45+02:00', str(dt.aslocal()))
Пример #15
0
 def testPreservation (self):
     value = xs.dateTime(self.Literal)
     self.assertEqual(value.xsdLiteral(), self.Literal)
Пример #16
0
 def testPreserve(self):
     pyxb.PreserveInputTimeZone(True)
     self.assertTrue(pyxb.PreserveInputTimeZone())
     dt = xsd.dateTime(self.Time)
     self.assertEqual('2013-08-30 11:56:45+04:00', str(dt))
     self.assertEqual('2013-08-30 09:56:45+02:00', str(dt.aslocal()))
Пример #17
0
 def testBasic (self):
     self.assertFalse(pyxb.PreserveInputTimeZone())
     dt = xsd.dateTime(self.Time)
     self.assertEqual('2013-08-30 07:56:45+00:00', str(dt))
     self.assertEqual('2013-08-30 09:56:45+02:00', str(dt.aslocal()))
Пример #18
0
 def testAddition (self):
     date = xsd.dateTime(2002, 10, 27, 12, 14, 32)
     duration = xsd.duration('P3DT5H3M')
     self.assertEqual('2002-10-30T17:17:32', xsd.dateTime(date + duration).xsdLiteral())
     self.assertEqual('2002-10-24T07:11:32', xsd.dateTime(date - duration).xsdLiteral())
Пример #19
0
from __future__ import print_function
import xml.dom.minidom
import DWML
import datetime
import pyxb.binding.datatypes as xsd
from pyxb.utils.six.moves.urllib.request import urlopen
import time
import collections
import sys

# Get the next seven days forecast for two locations
zip = [85711, 55108]
if 1 < len(sys.argv):
    zip = sys.argv[1:]
begin = xsd.dateTime.today()
end = xsd.dateTime(begin + datetime.timedelta(7))

# Create the REST URI for this query
uri = 'http://www.weather.gov/forecasts/xml/sample_products/browser_interface/ndfdXMLclient.php?zipCodeList=%s&product=time-series&begin=%s&end=%s&maxt=maxt&mint=mint' % (
    "+".join([str(_zc) for _zc in zip]), begin.xsdLiteral(), end.xsdLiteral())
print(uri)

# Retrieve the data
xmld = urlopen(uri).read()
open('forecast.xml', 'wb').write(xmld)
#print xmld

# Convert it to  DWML object
r = DWML.CreateFromDocument(xmld)

product = r.head.product
Пример #20
0
from __future__ import print_function
import xml.dom.minidom
import DWML
import datetime
import pyxb.binding.datatypes as xsd
from pyxb.utils.six.moves.urllib.request import urlopen
import time
import collections
import sys

# Get the next seven days forecast for two locations
zip = [ 85711, 55108 ]
if 1 < len(sys.argv):
    zip = sys.argv[1:]
begin = xsd.dateTime.today()
end = xsd.dateTime(begin + datetime.timedelta(7))

# Create the REST URI for this query
uri = 'http://www.weather.gov/forecasts/xml/sample_products/browser_interface/ndfdXMLclient.php?zipCodeList=%s&product=time-series&begin=%s&end=%s&maxt=maxt&mint=mint' % ("+".join([ str(_zc) for _zc in zip ]), begin.xsdLiteral(), end.xsdLiteral())
print(uri)

# Retrieve the data
xmld = urlopen(uri).read()
open('forecast.xml', 'wb').write(xmld)
#print xmld

# Convert it to  DWML object
r = DWML.CreateFromDocument(xmld)

product = r.head.product
print('%s %s' % (product.title, product.category))
Пример #21
0
import opengis.gml
import opengis.ows
import pyxb.binding.datatypes as xsd
import sys

parameters = ['mint', 'maxt', 'temp', 'pop12', 'wspd', 'wdir']
url_base = 'http://www.weather.gov/forecasts/xml/OGC_services/ndfdOWSserver.php'
kw = {
    'service': 'WFS',
    'version': '1.1.0',
    'typename': 'Forecast_GmlObs',
    'Request': 'GetFeature',
    #'latLonList' : '44.9893,-93.1515',
    'latLonList': '32.2281,-110.899',
    'time':
    xsd.dateTime(xsd.dateTime.today() + xsd.duration('PT12H')).xsdLiteral(),
    'params': ','.join(parameters)
}

url = url_base + '?' + '&'.join('%s=%s' % _v for _v in kw.items())

xmls = urllib2.urlopen(url).read()
file('xforecast.xml', 'w').write(xmls)
#xmls = file('xforecast.xml').read()

res = ndfd.dwGML.CreateFromDocument(xmls)

if res._element() == opengis.ows.ExceptionReport:
    for ex in res.Exception():
        print '%s (%s): %s' % (ex.exceptionCode(), ex.locator(), ''.join(
            [_txt for _txt in ex.ExceptionText()]))
Пример #22
0
 def testBasic(self):
     self.assertFalse(pyxb.PreserveInputTimeZone())
     dt = xsd.dateTime(self.Time)
     self.assertEqual('2013-08-30 07:56:45+00:00', str(dt))
     self.assertEqual('2013-08-30 09:56:45+02:00', str(dt.aslocal()))
Пример #23
0
# Coordinates for which weather is requested.  See examples/geocoder
# for a utility that obtains the lat/lon for a US street address.
lat_lon = [ '38.898748',  '-77.037684' ]
if 3 <= len(sys.argv):
    lat_lon = sys.argv[1:3]

parameters = [ 'mint', 'maxt', 'temp', 'pop12', 'wspd', 'wdir' ]
url_base = 'http://www.weather.gov/forecasts/xml/OGC_services/ndfdOWSserver.php'
kw = {
    'service' : 'WFS',
    'version' : '1.1.0',
    'typename' : 'Forecast_GmlObs',
    'Request' : 'GetFeature',
    'latLonList' : ','.join(lat_lon),
    'time' : xsd.dateTime(xsd.dateTime.today() + xsd.duration('PT12H')).xsdLiteral(),
    'params' : ','.join(parameters)
    }

url = url_base + '?' + '&'.join('%s=%s' % _v for _v in kw.items())

print '# Retrieving %s' % (url,)
xmls = urllib2.urlopen(url).read()
file('forecast.xml', 'w').write(xmls)
#xmls = file('forecast.xml').read()

print '# Parsing response'
res = ndfd.dwGML.CreateFromDocument(xmls)

if res._element() == pyxb.bundles.opengis.ows.ExceptionReport:
    for ex in res.Exception: