1. 05 Apr, 2023 1 commit
    • Jérome Perrin's avatar
      accounting_l10n_fr: export FEC only with ASCII characters · 4223004e
      Jérome Perrin authored
      in 5ae0508d (accounting_l10n_fr: Workaround encoding bugs
      in Test Compta Demat, 2023-03-31) we replaced a few characters
      that were known to be problematic, but while trying on some
      other production data, we found new problematic characters.
      This shown that this approach was too "optimistic" and that we
      the safest way to have a file that is compatible with Test
      Compta Demat is to use only ascii characters, this use
      unicodedata to try to retain the original characters (so that
      "Jérôme" becomes "Jerome") and also special case € to replace
      it by "EUR"
      4223004e
  2. 03 Apr, 2023 5 commits
  3. 31 Mar, 2023 6 commits
  4. 29 Mar, 2023 1 commit
  5. 28 Mar, 2023 3 commits
    • Rafael Monnerat's avatar
    • Kirill Smelkov's avatar
      pylint: Add support for XLTE · f750cbee
      Kirill Smelkov authored
      XLTE(*) follows the same top-level packaging structure like
      wendelin.core does.
      
      Registration is done via new `register_xpkg` function instead of just
      loop so that pkgname argument is properly captured in created lambda and
      does not change after going to next iteration.
      
      (*) https://lab.nexedi.com/kirr/xlte
      
      /reviewed-by @jerome
      /reviewed-on nexedi/erp5!1762
      f750cbee
    • Kirill Smelkov's avatar
      pylint: Fix wendelin transform to yield module with a .name · 421d6068
      Kirill Smelkov authored
      In 5796a17a (core_test: Add test to make sure that wendelin.core
      basically works) I added wendelin_transform to pylint so that the
      checker could recognize wendelin.core's special wendelin top-level
      module/package and handle ok
      
      	from wendelin.bigarray.array_zodb import ZBigArray
      
      this works, but e.g. for plain
      
      	import wendelin			or
      	from wendelin import bigarray
      
      pylint currenly fails with
      
      	AssertionError: explicit relative import, but no context_file?
      
      To better see what is going on let's conside the following test program
      
      	"""ZZZ"""
      
      	from wendelin.bigarray.array_zodb import ZBigArray
      	from wendelin import bigarray
      
      	def main():
      	    """main"""
      	    _ = ZBigArray
      
      and run pylint on it. Here is what it gives:
      
                wendelin_transform Module(wendelin)
                -> Module()
      
          visit_from From()
            basename: wendelin.bigarray.array_zodb
            names:    [('ZBigArray', None)]
            modnode:  Module(test)
              get_imported_module From() wendelin.bigarray.array_zodb
            importedmodnode: Module(wendelin.bigarray.array_zodb)
          ('_add_imported_module', <From() l.3 [test] at 0x7ff214b4cb90>, 'wendelin.bigarray.array_zodb.ZBigArray')
                wendelin_transform Module(wendelin)
                -> Module()
      
          visit_from From()
            basename: wendelin
            names:    [('bigarray', None)]
            modnode:  Module(test)
              get_imported_module From() wendelin
                wendelin_transform Module(wendelin)
                -> Module()
            importedmodnode: Module()
          ************* Module test
          W:  4, 0: Relative import 'wendelin', should be '' (relative-import)
          ('_add_imported_module', <From() l.4 [test] at 0x7ff214b4cf50>, '.bigarray')
          Traceback (most recent call last):
            File "./x.py", line 22, in <module>
              Run(['test.py', '--reports=n'], exit=False)
            File "/home/kirr/src/tools/py/pylint/pylint/lint.py", line 1332, in __init__
              linter.check(args)
            File "/home/kirr/src/tools/py/pylint/pylint/lint.py", line 747, in check
              self._do_check(files_or_modules)
            File "/home/kirr/src/tools/py/pylint/pylint/lint.py", line 869, in _do_check
              self.check_astroid_module(ast_node, walker, rawcheckers, tokencheckers)
            File "/home/kirr/src/tools/py/pylint/pylint/lint.py", line 946, in check_astroid_module
              walker.walk(ast_node)
            File "/home/kirr/src/tools/py/pylint/pylint/utils.py", line 874, in walk
              self.walk(child)
            File "/home/kirr/src/tools/py/pylint/pylint/utils.py", line 871, in walk
              cb(astroid)
            File "/home/kirr/src/tools/py/pylint/pylint/checkers/imports.py", line 288, in visit_from
              self._add_imported_module(node, '%s.%s' % (importedmodnode.name, name))
            File "/home/kirr/src/tools/py/pylint/pylint/checkers/imports.py", line 328, in _add_imported_module
              importedmodname = get_module_part(importedmodname)
            File "/home/kirr/src/tools/py/astroid/astroid/modutils.py", line 359, in get_module_part
              'explicit relative import, but no context_file?'
          AssertionError: explicit relative import, but no context_file?
      
      we see that the line
      
      	from wendelin.bigarray.array_zodb import ZBigArray
      
      corresponds to
      
      	('_add_imported_module', <From() l.3 [test] at 0x7ff214b4cb90>, 'wendelin.bigarray.array_zodb.ZBigArray')
      
      and the line
      
      	from wendelin import bigarray
      
      corresponds to
      
      	('_add_imported_module', <From() l.4 [test] at 0x7ff214b4cf50>, '.bigarray')
      
      notice that in the latter case there is no 'wendelin' prefix and the
      import goes as just '.bigarray' instead of 'wendelin.bigarray' which
      leads to further crash in get_module_part.
      
      -> Fix it by initializing wendelin module yielded by wendelin_transform
      with .name set. Not sure why it is working longer imports without that.
      
      Without the fix added test breaks as
      
          .../instance/slappart5/bin$ ./runUnitTest -v -v -v  testDynamicClassGeneration.TestZodbModuleComponent
          ...
          Running Unit tests of <class 'testDynamicClassGeneration.TestZodbModuleComponent'>
          ok
          testImportVersionedComponentOnly (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testInvalidId (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testInvalidSourceCode (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testModuleSecurityInfo (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testPylint (testDynamicClassGeneration.TestZodbModuleComponent) ... FAIL
          testPylintAstroidModuleGeneratedOnce (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testPylintNamedtupleUnicodeLiteralsRegression (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testReferenceWithReservedKeywords (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testValidateInvalidateDelete (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testVersionPriority (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testVersionWithReservedKeywords (testDynamicClassGeneration.TestZodbModuleComponent) ... ok
          testWorkflowErrorMessage (testDynamicClassGeneration.TestZodbModuleComponent)
          Check that validation error messages are stored in workflow ... ok
      
          ======================================================================
          FAIL: testPylint (testDynamicClassGeneration.TestZodbModuleComponent)
          ----------------------------------------------------------------------
          Traceback (most recent call last):
            File ".../parts/erp5/Products/ERP5Type/tests/testDynamicClassGeneration.py", line 2347, in testPylint
              component.checkSourceCode()
            File ".../parts/erp5/product/ERP5Type/mixin/component.py", line 329, in checkSourceCode
              return checkPythonSourceCode(self.getTextContent(), self.getPortalType())
            File ".../parts/erp5/product/ERP5Type/Utils.py", line 540, in checkPythonSourceCode
              Run(args, reporter=TextReporter(output_file), exit=False)
            File ".../develop-eggs/pylint-1.4.4+slapospatched002-py2.7.egg/pylint/lint.py", line 1332, in __init__
              linter.check(args)
            File ".../develop-eggs/pylint-1.4.4+slapospatched002-py2.7.egg/pylint/lint.py", line 747, in check
              self._do_check(files_or_modules)
            File ".../develop-eggs/pylint-1.4.4+slapospatched002-py2.7.egg/pylint/lint.py", line 869, in _do_check
              self.check_astroid_module(ast_node, walker, rawcheckers, tokencheckers)
            File ".../develop-eggs/pylint-1.4.4+slapospatched002-py2.7.egg/pylint/lint.py", line 946, in check_astroid_module
              walker.walk(ast_node)
            File ".../develop-eggs/pylint-1.4.4+slapospatched002-py2.7.egg/pylint/utils.py", line 874, in walk
              self.walk(child)
            File ".../develop-eggs/pylint-1.4.4+slapospatched002-py2.7.egg/pylint/utils.py", line 871, in walk
              cb(astroid)
            File ".../develop-eggs/pylint-1.4.4+slapospatched002-py2.7.egg/pylint/checkers/imports.py", line 253, in visit_import
              self._add_imported_module(node, importedmodnode.name)
            File ".../develop-eggs/pylint-1.4.4+slapospatched002-py2.7.egg/pylint/checkers/imports.py", line 319, in _add_imported_module
              importedmodname = get_module_part(importedmodname)
            File ".../develop-eggs/astroid-1.3.8+slapospatched001-py2.7.egg/astroid/modutils.py", line 359, in get_module_part
              'explicit relative import, but no context_file?'
          AssertionError: explicit relative import, but no context_file?
      
          ----------------------------------------------------------------------
          Ran 13 tests in 137.609s
      
          FAILED (failures=1)
      
      /helped-and-reviewed-by @jerome
      /reviewed-on nexedi/erp5!1762
      421d6068
  6. 27 Mar, 2023 1 commit
  7. 25 Mar, 2023 1 commit
  8. 24 Mar, 2023 12 commits
  9. 22 Mar, 2023 1 commit
  10. 21 Mar, 2023 1 commit
  11. 20 Mar, 2023 8 commits