<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">Hello Roberto, Welcome!<span class=""><br>
    <br></span></div></blockquote><div><br></div><div>:-)</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"><span class="">
    </span>Hmmm. That's python's fault for making boundary values valid ones.<br>
    <br>
    Maybe we can skip gt (and lt) test when it's equal to smallest (and
    largest) datetime?<br>
    <br>
            return SimpleModel.validate_native(cls, value) and (<br>
                value is None or (<br>
                        (<a href="http://cls.Attributes.gt" target="_blank">cls.Attributes.gt</a> is cls._min_dt or value >
    <a href="http://cls.Attributes.gt" target="_blank">cls.Attributes.gt</a>)<br>
                    and value >= <a href="http://cls.Attributes.ge" target="_blank">cls.Attributes.ge</a><br>
                    and (<a href="http://cls.Attributes.lt" target="_blank">cls.Attributes.lt</a> is cls._max_dt or value <
    <a href="http://cls.Attributes.lt" target="_blank">cls.Attributes.lt</a>)<br>
                    and value <= cls.Attributes.le<br>
                ))<br>
    <br>
    Do you think that'd be enough?<span class=""><br></span></div></blockquote></div><br></div><div class="gmail_extra">I did try to simply comment out the value > <a href="http://cls.attributes.gt/" target="_blank">cls.Attributes.gt</a> case and it works, however:</div><div class="gmail_extra">1) testing your code I don't have any DateTime._min_dt (from cls._min_dt) [spyne 2.11]<br>2) I'm not so sure a boundary value should be rejected "hard", as a concept... if we had positive nonzero integers would you reject 1? A Boundary has a special meaning and it's often used just because of that.</div><div class="gmail_extra"><br></div><div class="gmail_extra">Granted, my case is a very ugly one and the proper fix would be to change the WinMobile client to return a less 'strange' value (or even better,  rewrite it for Android and run it on rugged phones/tablets ;-) )<br><br><br>Related to this, while I was experimenting with pytz.timezone, I discovered the "wonderful world" of LMT... and I totally fail to understand why it works like it does.<br><br>If I create a tz-aware datetime using datetime.datetime(y,m,d,h,m,s, m, tz) (as in Spyne's DateTime) it can either work OR NOT depending on what is tz. UTC works, some other timezone works, but many others will give you things like this:<br><br><div class="gmail_extra">In [4]: tz_dubai = pytz.timezone("Asia/Dubai")</div><div class="gmail_extra"><br></div><div class="gmail_extra">In [5]: tz_london = pytz.timezone("Europe/London")<br></div><div class="gmail_extra"><br></div><div class="gmail_extra">In [6]: dubai_time = datetime.datetime(2014, 9, 29, 12, 0, 0, 0, tz_dubai)</div><div class="gmail_extra"><br></div><div class="gmail_extra">In [7]: print dubai_time</div><div class="gmail_extra">2014-09-29 12:00:00+03:41</div><div class="gmail_extra"><br></div><div class="gmail_extra">In [8]: print dubai_time.astimezone(tz_london)</div><div class="gmail_extra">2014-09-29 09:19:00+01:00</div><div class="gmail_extra"><br></div><div class="gmail_extra">In [9]: print dubai_time.astimezone(tz_london).astimezone(tz_dubai)</div><div class="gmail_extra">2014-09-29 12:19:00+04:00</div><div><br></div><div><br>According to some sources the right way to create/convert a tz-aware timestamp is to use something like:</div><div><div><br>In [12]: tz_dubai.localize(datetime.datetime.now())</div></div><div>Out[12]: datetime.datetime(2014, 9, 29, 16, 32, 38, 141302, tzinfo=<DstTzInfo 'Asia/Dubai' GST+4:00:00 STD>)<br></div><div class="gmail_extra"><br></div>instead of:<br><br></div><div class="gmail_extra"><div class="gmail_extra">In [13]: datetime.datetime(2014, 9, 29, 16, 32, 38, 141302, tzinfo=tz_dubai)</div><div class="gmail_extra">Out[13]: datetime.datetime(2014, 9, 29, 16, 32, 38, 141302, tzinfo=<DstTzInfo 'Asia/Dubai' LMT+3:41:00 STD>)</div><div class="gmail_extra"><br></div><div class="gmail_extra">Now I really wonder what the Attributes limits should use for cases when spyne.LOCAL_TZ is changed from UTC and set to some 'wrong' timezone (btw, Python's docs say the 'strange behaviour' comes from timezones that can have DST... but the UAE don't use DST...  @___@; )<br><br>And here  I though SOAP was overly complex... <br><br><br>Roberto</div><div class="gmail_extra"><br></div></div></div>