<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <div class="moz-cite-prefix">On 09/29/14 10:28, Roberto Maurizzi
      wrote:<br>
    </div>
    <blockquote
cite="mid:CAM4NGPbN3MH32GCWnErU=PKP4GZQb2HkUxiRF5BzgN-78v3=4A@mail.gmail.com"
      type="cite">
      <div dir="ltr">Hello everyone, first post on the list!
        <div><br>
        </div>
      </div>
    </blockquote>
    <br>
    Hello Roberto, Welcome!<br>
    <br>
    <blockquote
cite="mid:CAM4NGPbN3MH32GCWnErU=PKP4GZQb2HkUxiRF5BzgN-78v3=4A@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div>I'm trying to create a SOAP service that's able to accept
          requests from an old Windows Mobile application that's sort-of
          unsupported: its SOAP is more than a little funny but I've
          been able to work around most issues (I had to use soft
          validation, etc.)</div>
        <div><br>
        </div>
        <div>I'm stuck with a problem with a DateTime field: for some of
          the records the application sends
          a <start_date>0001-01-01T00:00:00</start_date>
          field (no TZ offset, and yes, it's datetime.datetime.min.</div>
        <div><br>
        </div>
        <div>Processing the request I get a ValidationError raised from
          spyne/protocol/xml.py after calling cls.validate_native.</div>
        <div>This happens because in primitive.DateTime Attribute
          classmethod validate_native the code checks if:</div>
        <div><br>
        </div>
        <div>  value >  <a moz-do-not-send="true"
            href="http://cls.Attributes.gt">cls.Attributes.gt</a>
           and value >= <a moz-do-not-send="true"
            href="http://cls.Attributes.ge">cls.Attributes.ge</a></div>
        <div><br>
        </div>
        <div>Since both Attributes.gt and Attributes.ge are set
          as datetime.datetime(datetime.MINYEAR, 1, 1, 0, 0, 0, 0,
          spyne.LOCAL_TZ) and spyne.LOCAL_TZ is set to UTC, the first
          test will fail (I'm using UTC times too)because 0001-01-01
          00:00:00+00:00 > 0001-01-01 00:00:00+00:00 is False.</div>
      </div>
    </blockquote>
    <br>
    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>
                        (cls.Attributes.gt is cls._min_dt or value >
    cls.Attributes.gt)<br>
                    and value >= cls.Attributes.ge<br>
                    and (cls.Attributes.lt is cls._max_dt or value <
    cls.Attributes.lt)<br>
                    and value <= cls.Attributes.le<br>
                ))<br>
    <br>
    Do you think that'd be enough?<br>
    <br>
    <blockquote
cite="mid:CAM4NGPbN3MH32GCWnErU=PKP4GZQb2HkUxiRF5BzgN-78v3=4A@mail.gmail.com"
      type="cite">
      <div dir="ltr">
        <div><br>
        </div>
        <div>(... please let me know if it's ok to use the list for this
          or I should've used github: I'm posting here because it's not
          a clear problem and maybe will need some discussion ).<br>
          <br>
        </div>
      </div>
    </blockquote>
    <br>
    it's perfectly fine to use the list. we will file an issue if it's
    needed.<br>
    <br>
    <br>
    best regards,<br>
    burak<br>
    <br>
  </body>
</html>