1. 25 Sep, 2024 12 commits
    • Arnaud Fontaine's avatar
      py3: cmp()-based comparison and sorting have been dropped. · ec7b8662
      Arnaud Fontaine authored
      key()-based sorting is now used instead, available since Python 2.4.
      ec7b8662
    • Jérome Perrin's avatar
      erp5_data_notebook: python3 support. · 66473af9
      Jérome Perrin authored
      Jupyter integration is more or less abandoned. Just do the minimum to make tests pass.
      66473af9
    • Jérome Perrin's avatar
      py3: Fix pylint/SyntaxWarning warnings. · a8bb3cd8
      Jérome Perrin authored
      Also, remove `if True/1/False/0` statement raising pylint warnings.
      Co-authored-by: Arnaud Fontaine's avatarArnaud Fontaine <arnaud.fontaine@nexedi.com>
      a8bb3cd8
    • Jérome Perrin's avatar
      py2/py3: Make Products code compatible with both python2 and python3. · 2b3fa941
      Jérome Perrin authored
      * Zope API changes:
        + publish():
          - stdin is now BytesIO rather than StringIO.
          - Returned value of a script is passed to str() in python2, not in python3 anymore.
        + HTTPResponse `body` property is now bytes().
        + OFS.Image.File file parameter is bytes().
        + zope.interface implements() is now @implementer decorator.
        + Python standard logging module recommended instead of zLOG.
      * Python3 API changes:
        + builtin reduce() was removed.
        + urlnorm is now available.
        + Use BytesIO rather than StringIO to follow py3 API.
        + hmac.new() requires digestmod argument from Python 3.8.
        + Use six.moves library to handle moved objects from py2 to py3.
        + `modernize -f xrange_six` then slightly adjusted manually to just use range
           where it does not make a significant difference (for example in test).
        + base64.b64encode() now expects bytes().
        + UserDict() interface changed:
          - New parameter in update() and pop().
          - `failobj` setdefault parameter renamed to `default`.
        + ensure_list() on dict.{values,items}() and list(dict) for dict.keys() when
          we really need a list and not an iterable (Python3).
          - Add ensure_list() to RestrictedPython safe_builtins as it's very common usage.
        + Make dict iteration works on both version of Python.
          - Use six.iter{items,values,keys}().
          - has_key() has been removed.
          - Make sure that dict.{items,values,keys}() returns a real list when
          modified (ensure_list()).
        + Comparisons between int and NoneType raises TypeError.
          + BTrees key must be str() not int() (_getOb()).
        + No more unbound methods in python3 so use six.get_unbound_function().
        + Exceptions:
          - No longer behave as sequences. Using `args` attribute instead.
          - When an exception has been assigned using `as target`, it is cleared at
            the end of the except clause.
        + file: py2 was returning `str` upon reading, now it returns text strings.
          Also, opening mode is text strings by default.
        + Data strings are bytes().
          - Replace str() by bytes().
        + iterators no longer have next() method, instead there is next() builtin.
        + New ConnectionError exception so rename existing one to not clash.
        + Integer division is now with //.
        + __nonzero__ is now __bool__.
        + apply() does not exist anymore.
        + Deprecated threading.Thread isAlive() has been removed.
        + im_func replaced by __func__.
        + Use six.with_metaclass() to define metaclass in a cross-compatible way with py2 and py3.
        + Only test method can be marked as expectedFailure(), not assert statement anymore.
        + os.path.walk() removed.
        + HTMLParser never fails: no strict mode nor HTMLParseError anymore (Python #15114).
        + Unpickler.find_global() is now Unpickler.find_class().
      Co-Authored-by: Kazuhiko Shiozaki's avatarKazuhiko SHIOZAKI <kazuhiko@nexedi.com>
      Co-Authored-by: Arnaud Fontaine's avatarArnaud Fontaine <arnaud.fontaine@nexedi.com>
      Co-Authored-by: Carlos Ramos Carreño's avatarCarlos Ramos Carreño <carlos.ramos@nexedi.com>
      Co-Authored-by: Emmy Vouriot's avatarEmmeline Vouriot <emmeline.vouriot@nexedi.com>
      2b3fa941
    • Jérome Perrin's avatar
    • Jérome Perrin's avatar
      base/conversion: setContentType before converting to base format · 136c69a4
      Jérome Perrin authored
      some conversion (TextDocument) depend on the content type, so it's
      necessary to first update the content type before trying to convert to
      base format
      136c69a4
    • Arnaud Fontaine's avatar
      Remove unused code. · 430f7220
      Arnaud Fontaine authored
      430f7220
    • Arnaud Fontaine's avatar
      df675c34
    • Arnaud Fontaine's avatar
    • Arnaud Fontaine's avatar
      zope5: Since 5.8.1 missing Content-Type HTTP header is interpreted as... · fdd51228
      Arnaud Fontaine authored
      zope5: Since 5.8.1 missing Content-Type HTTP header is interpreted as application/x-www-form-urlencoded.
      
      Zope.git:
        commit 5b324f6c461f5ea1cc069739b6c32a1a5ff59df9
        Date:   Thu Jan 19 07:15:18 2023 +0100
          replace `cgi.FieldStorage` by `multipart` (#1094)
          * interpret a missing `CONTENT_TYPE` as `application/x-www-form-urlencoded`
      
      With cgi.FieldStorage, it was interpretated as text/plain so Content-Type has to
      be provided now (even for WebDAV despite RFC 4918 stating that it *SHOULD* be
      provided).
      
      Some Unit Tests did not provide such header at all but this was wrong (such as
      erp5_stripe:testStripe where the real request has application/json as
      Content-Type and not text/plain).
      fdd51228
    • Jérome Perrin's avatar
      IdTool: handle group_id on python3 · ff5ac5f6
      Jérome Perrin authored
      group_id is used as key of OOBtree and as documented, it's not
      possible to mix keys that can not be compared, so we can not have a mix
      of string and bytes, for consistency with other BTrees, such as the
      ones used for OFS.
      group_id is also used in a SQL column which is BINARY, this is
      problematic on py3 because the selected values will be returned as bytes,
      but we expect str here. Because we don't want to run a data migration,
      we adjust the select methods to convert to str while selecting.
      
      Since years there was a warning that id_group must be a string, now we
      make it a bit stricter, we also enforce that the id_group is valid UTF-8.
      
      A few more tests and assertions were also added.
      
      Reviewed-on: !1980
      ff5ac5f6
    • Nicolas Wavrant's avatar
      erp5_antivirus_clammit: fix field name in ClammitConnector_view · f02d7675
      Nicolas Wavrant authored
      The ssl/x509 were renamed after we decided to change the name of the
      holding property sheet during the code review. The code was updated,
      but not this form
      f02d7675
  2. 24 Sep, 2024 3 commits
  3. 23 Sep, 2024 12 commits
  4. 20 Sep, 2024 1 commit
  5. 19 Sep, 2024 4 commits
  6. 18 Sep, 2024 3 commits
  7. 17 Sep, 2024 5 commits