1. 07 May, 2024 25 commits
  2. 06 May, 2024 5 commits
    • Kirill Smelkov's avatar
      [XXX DO-NOT-MERGE] erp5: use bstr+ustr as builtin string types · 77d1bbdb
      Kirill Smelkov authored
      Does not work yet as it currently breaks with
      
            File "/srv/slapgrid/slappart47/srv/runner/software/7f1663e8148f227ce3c6a38fc52796e2/bin/runwsgi", line 4, in <module>
              from Products.ERP5.bin.zopewsgi import runwsgi; sys.exit(runwsgi())
            File "/srv/slapgrid/slappart47/srv/runner/software/7f1663e8148f227ce3c6a38fc52796e2/parts/erp5/product/ERP5/__init__.py", line 36, in <module>
              from Products.ERP5Type.Utils import initializeProduct, updateGlobals
            File "/srv/slapgrid/slappart47/srv/runner/software/7f1663e8148f227ce3c6a38fc52796e2/parts/erp5/product/ERP5Type/__init__.py", line 42, in <module>
              from .patches import pylint
            File "/srv/slapgrid/slappart47/srv/runner/software/7f1663e8148f227ce3c6a38fc52796e2/parts/erp5/product/ERP5Type/patches/pylint.py", line 524, in <module>
              __import__(module_name, fromlist=[module_name], level=0))
            File "src/lxml/sax.py", line 18, in init lxml.sax
            File "src/lxml/etree.pyx", line 154, in init lxml.etree
          TypeError: Expected bytes, got golang.bstr
      
      in
      
          cdef bytes _FILENAME_ENCODING = (sys.getfilesystemencoding() or sys.getdefaultencoding() or 'ascii').encode("UTF-8")
      
          (https://github.com/lxml/lxml/blob/a9f31d9b/src/lxml/etree.pyx#L150)
      
      /cc @kazuhiko, @jerome
      77d1bbdb
    • Kirill Smelkov's avatar
      erp5: Switch runwsgi to be implemented via pyprog + gpython-interpreter instead of zc.recipe.egg · 79d41451
      Kirill Smelkov authored
      An example patch of how to convert a program to be run via gpython. For now
      there should be no change in semantic, but once we adjust ERP5 interpreter to
      activate bstr+ustr as builtin string types by default, it will affect the
      programs ran via pyprog infrastructure.
      
      /cc @kazuhiko, @jerome
      79d41451
    • Kirill Smelkov's avatar
      erp5: Switch from python-interpreter to gpython-interpreter · 064073ed
      Kirill Smelkov authored
      This is preparatory step to later use bstr/ustr from gpython as builtin string
      types. For now we keep both runtime to be threads and string types to be
      unpatched builtin types provided by python natively. This way there should be
      practically no change in how ERP5 runs yet.
      
      /cc @kazuhiko, @jerome
      064073ed
    • Kirill Smelkov's avatar
      pygolang: Accompany python-interpreter with gpython-interpreter to run gpython... · 4835c901
      Kirill Smelkov authored
      pygolang: Accompany python-interpreter with gpython-interpreter to run gpython instead of std python
      
      With python-interpreter staying the default for pyprog, but possible to adjust.
      
      We will need gpython-interpreter for ERP5 to use bstr+ustr as builting string types.
      
      Remove [gpython] script in favour of gpython-interpreter since both provide the
      same thing but via slightly different ways internally ([gpython] was generating
      bin/gpython via setuptools and [gpython-interpreter] does it by hand with
      user-visible result staying the same).
      
      /cc @kazuhiko, @jerome
      4835c901
    • Kirill Smelkov's avatar
      pygolang/pyprog: Fix handling of multi-line eggs list · 749ed882
      Kirill Smelkov authored
      pyprog macro, added in 0ee52376 (Generalize how nxdtest python script is
      generated into pyprog recipe macro) works by generating buildout code at
      runtime in text form. This way it should be careful when substituting strings,
      because if those strings contain \n, then intended control flow might become broken.
      
      For example when using pyprog with eggs = ${eggs:eggs} from stack/erp5/ ,
      buildout breaks because erp5 defines eggs as multiline list:
      
          INFO     self.buildout.parse("""
          INFO   File "/srv/slapgrid/slappart47/srv/runner/software/7f1663e8148f227ce3c6a38fc52796e2/eggs/zc.buildout-2.7.1+slapos020-py3.9.egg/zc/buildout/buildout.py", line 1352, in parse
          INFO     sections = zc.buildout.configparser.parse(
          INFO   File "/srv/slapgrid/slappart47/srv/runner/software/7f1663e8148f227ce3c6a38fc52796e2/eggs/zc.buildout-2.7.1+slapos020-py3.9.egg/zc/buildout/configparser.py", line 241, in parse
          INFO     raise e
          INFO zc.buildout.configparser.ParsingError: File contains parsing errors:
          INFO         [line 18]: 'python-barcode\n'
          INFO         [line 19]: 'SOAPpy-py3\n'
          INFO         [line 20]: 'suds-py3\n'
          INFO         [line 21]: 'neoppod[admin, ctl, master]\n'
          INFO         [line 22]: 'cython-zstd\n'
          INFO         [line 23]: 'msgpack\n'
          INFO         [line 24]: 'mysqlclient\n'
          INFO         [line 25]: 'PyMySQL\n'
          INFO         [line 26]: 'ZODB\n'
          INFO         [line 27]: 'zodbtools\n'
          INFO         [line 28]: 'psutil\n'
               ...
      
      -> Fix it via indenting eggs list like we already do with pyinit code.
      
      /cc @kazuhiko, @jerome
      749ed882
  3. 04 May, 2024 1 commit
  4. 03 May, 2024 9 commits