Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package proteus for openSUSE:Factory checked 
in at 2022-04-20 16:57:16
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/proteus (Old)
 and      /work/SRC/openSUSE:Factory/.proteus.new.1941 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "proteus"

Wed Apr 20 16:57:16 2022 rev:22 rq:971010 version:6.0.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/proteus/proteus.changes  2022-03-07 
17:48:55.967085333 +0100
+++ /work/SRC/openSUSE:Factory/.proteus.new.1941/proteus.changes        
2022-04-20 16:57:46.350647848 +0200
@@ -1,0 +2,5 @@
+Mon Apr 18 19:25:16 UTC 2022 - Axel Braun <[email protected]>
+
+- Version 6.0.6 - Bugfix Release
+
+-------------------------------------------------------------------

Old:
----
  proteus-6.0.5.tar.gz
  proteus-6.0.5.tar.gz.asc

New:
----
  proteus-6.0.6.tar.gz
  proteus-6.0.6.tar.gz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ proteus.spec ++++++
--- /var/tmp/diff_new_pack.2b9Gux/_old  2022-04-20 16:57:46.766648236 +0200
+++ /var/tmp/diff_new_pack.2b9Gux/_new  2022-04-20 16:57:46.770648240 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package proteus
 #
-# Copyright (c) 2021 SUSE LLC
+# Copyright (c) 2022 SUSE LLC
 # Copyright (c) 2014-2021 Dr. Axel Braun
 #
 # All modifications and additions to the file contributed by third parties
@@ -19,7 +19,7 @@
 
 %define majorver 6.0
 Name:           proteus
-Version:        %{majorver}.5
+Version:        %{majorver}.6
 Release:        0
 Summary:        A library to access Tryton's modules like a client
 License:        GPL-3.0-or-later

++++++ proteus-6.0.5.tar.gz -> proteus-6.0.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/proteus-6.0.5/.hgtags new/proteus-6.0.6/.hgtags
--- old/proteus-6.0.5/.hgtags   2022-03-01 19:23:18.000000000 +0100
+++ new/proteus-6.0.6/.hgtags   2022-04-15 21:27:46.000000000 +0200
@@ -25,3 +25,4 @@
 dc3d781b552d24dcfb7b0ced4322b1ba17e6ca09 6.0.3
 8e6d0969604981e6d024b203424b1b3f0bcd4cb3 6.0.4
 c20749d242200840432ab0b87ce7c0072ee1be34 6.0.5
+b279acacc05c6df60ca9833a3eb6e22b9f9fa488 6.0.6
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/proteus-6.0.5/CHANGELOG new/proteus-6.0.6/CHANGELOG
--- old/proteus-6.0.5/CHANGELOG 2022-03-01 19:23:17.000000000 +0100
+++ new/proteus-6.0.6/CHANGELOG 2022-04-15 21:27:46.000000000 +0200
@@ -1,3 +1,6 @@
+Version 6.0.6 - 2022-04-15
+* Bug fixes (see mercurial logs for details)
+
 Version 6.0.5 - 2022-03-01
 * Bug fixes (see mercurial logs for details)
 * Use defusedxml to parse XML (11244)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/proteus-6.0.5/PKG-INFO new/proteus-6.0.6/PKG-INFO
--- old/proteus-6.0.5/PKG-INFO  2022-03-01 19:23:19.383111000 +0100
+++ new/proteus-6.0.6/PKG-INFO  2022-04-15 21:27:49.119705000 +0200
@@ -1,142 +1,16 @@
 Metadata-Version: 2.1
 Name: proteus
-Version: 6.0.5
+Version: 6.0.6
 Summary: Library to access Tryton server as a client
 Home-page: http://www.tryton.org/
+Download-URL: http://downloads.tryton.org/6.0/
 Author: Tryton
 Author-email: [email protected]
 License: LGPL-3
-Download-URL: http://downloads.tryton.org/6.0/
 Project-URL: Bug Tracker, https://bugs.tryton.org/
 Project-URL: Documentation, https://docs.tryton.org/
 Project-URL: Forum, https://www.tryton.org/forum
 Project-URL: Source Code, https://hg.tryton.org/proteus
-Description: =======================
-        Tryton Scripting Client
-        =======================
-        
-        A library to access Tryton's models like a client.
-        
-        Example of usage
-        ----------------
-        
-            >>> from proteus import config, Model, Wizard, Report
-        
-        Configuration
-        ~~~~~~~~~~~~~
-        
-        Configuration to connect to a sqlite memory database using trytond as 
module.
-        
-            >>> config = config.set_trytond('sqlite:///:memory:')
-        
-        Activating a module
-        ~~~~~~~~~~~~~~~~~~~
-        
-        Find the module, call the activate button and run the upgrade wizard.
-        
-            >>> Module = Model.get('ir.module')
-            >>> party_module, = Module.find([('name', '=', 'party')])
-            >>> party_module.click('activate')
-            >>> Wizard('ir.module.activate_upgrade').execute('upgrade')
-        
-        Creating a party
-        ~~~~~~~~~~~~~~~~
-        
-        First instanciate a new Party:
-        
-            >>> Party = Model.get('party.party')
-            >>> party = Party()
-            >>> party.id < 0
-            True
-        
-        Fill the fields:
-        
-            >>> party.name = 'ham'
-        
-        Save the instance into the server:
-        
-            >>> party.save()
-            >>> party.name
-            'ham'
-            >>> party.id > 0
-            True
-        
-        Setting the language of the party
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        The language on party is a `Many2One` relation field. So it requires 
to get a
-        `Model` instance as value.
-        
-            >>> Lang = Model.get('ir.lang')
-            >>> en, = Lang.find([('code', '=', 'en')])
-            >>> party.lang = en
-            >>> party.save()
-            >>> party.lang.code
-            'en'
-        
-        Creating an address for the party
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        Addresses are store on party with a `One2Many` field. So the new 
address just
-        needs to be appended to the list `addresses`.
-        
-            >>> address = party.addresses.new(postal_code='42')
-            >>> party.save()
-            >>> party.addresses #doctest: +ELLIPSIS
-            [proteus.Model.get('party.address')(...)]
-        
-        Adding category to the party
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        Categories are linked to party with a `Many2Many` field.
-        
-        So first create a category
-        
-            >>> Category = Model.get('party.category')
-            >>> category = Category()
-            >>> category.name = 'spam'
-            >>> category.save()
-        
-        Append it to categories of the party
-        
-            >>> party.categories.append(category)
-            >>> party.save()
-            >>> party.categories #doctest: +ELLIPSIS
-            [proteus.Model.get('party.category')(...)]
-        
-        Print party label
-        ~~~~~~~~~~~~~~~~~
-        
-        There is a label report on `Party`.
-        
-            >>> label = Report('party.label')
-        
-        The report is executed with a list of records and some extra data.
-        
-            >>> type_, data, print_, name = label.execute([party], {})
-        
-        Sorting addresses and register order
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        Addresses are ordered by sequence which means they can be stored 
following a
-        specific order. The `set_sequence` method stores the current order.
-        
-            >>> address = party.addresses.new(postal_code='69')
-            >>> party.save()
-            >>> address = party.addresses.new(postal_code='23')
-            >>> party.save()
-        
-        Now changing the order.
-        
-            >>> reversed_addresses = list(reversed(party.addresses))
-            >>> while party.addresses:
-            ...     _ = party.addresses.pop()
-            >>> party.addresses.extend(reversed_addresses)
-            >>> party.addresses.set_sequence()
-            >>> party.save()
-            >>> party.addresses == reversed_addresses
-            True
-        
 Keywords: tryton library cli
 Platform: any
 Classifier: Development Status :: 5 - Production/Stable
@@ -157,3 +31,132 @@
 Classifier: Topic :: Office/Business
 Requires-Python: >=3.6
 Provides-Extra: trytond
+License-File: LICENSE
+
+=======================
+Tryton Scripting Client
+=======================
+
+A library to access Tryton's models like a client.
+
+Example of usage
+----------------
+
+    >>> from proteus import config, Model, Wizard, Report
+
+Configuration
+~~~~~~~~~~~~~
+
+Configuration to connect to a sqlite memory database using trytond as module.
+
+    >>> config = config.set_trytond('sqlite:///:memory:')
+
+Activating a module
+~~~~~~~~~~~~~~~~~~~
+
+Find the module, call the activate button and run the upgrade wizard.
+
+    >>> Module = Model.get('ir.module')
+    >>> party_module, = Module.find([('name', '=', 'party')])
+    >>> party_module.click('activate')
+    >>> Wizard('ir.module.activate_upgrade').execute('upgrade')
+
+Creating a party
+~~~~~~~~~~~~~~~~
+
+First instanciate a new Party:
+
+    >>> Party = Model.get('party.party')
+    >>> party = Party()
+    >>> party.id < 0
+    True
+
+Fill the fields:
+
+    >>> party.name = 'ham'
+
+Save the instance into the server:
+
+    >>> party.save()
+    >>> party.name
+    'ham'
+    >>> party.id > 0
+    True
+
+Setting the language of the party
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The language on party is a `Many2One` relation field. So it requires to get a
+`Model` instance as value.
+
+    >>> Lang = Model.get('ir.lang')
+    >>> en, = Lang.find([('code', '=', 'en')])
+    >>> party.lang = en
+    >>> party.save()
+    >>> party.lang.code
+    'en'
+
+Creating an address for the party
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Addresses are store on party with a `One2Many` field. So the new address just
+needs to be appended to the list `addresses`.
+
+    >>> address = party.addresses.new(postal_code='42')
+    >>> party.save()
+    >>> party.addresses #doctest: +ELLIPSIS
+    [proteus.Model.get('party.address')(...)]
+
+Adding category to the party
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Categories are linked to party with a `Many2Many` field.
+
+So first create a category
+
+    >>> Category = Model.get('party.category')
+    >>> category = Category()
+    >>> category.name = 'spam'
+    >>> category.save()
+
+Append it to categories of the party
+
+    >>> party.categories.append(category)
+    >>> party.save()
+    >>> party.categories #doctest: +ELLIPSIS
+    [proteus.Model.get('party.category')(...)]
+
+Print party label
+~~~~~~~~~~~~~~~~~
+
+There is a label report on `Party`.
+
+    >>> label = Report('party.label')
+
+The report is executed with a list of records and some extra data.
+
+    >>> type_, data, print_, name = label.execute([party], {})
+
+Sorting addresses and register order
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Addresses are ordered by sequence which means they can be stored following a
+specific order. The `set_sequence` method stores the current order.
+
+    >>> address = party.addresses.new(postal_code='69')
+    >>> party.save()
+    >>> address = party.addresses.new(postal_code='23')
+    >>> party.save()
+
+Now changing the order.
+
+    >>> reversed_addresses = list(reversed(party.addresses))
+    >>> while party.addresses:
+    ...     _ = party.addresses.pop()
+    >>> party.addresses.extend(reversed_addresses)
+    >>> party.addresses.set_sequence()
+    >>> party.save()
+    >>> party.addresses == reversed_addresses
+    True
+
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/proteus-6.0.5/proteus/__init__.py 
new/proteus-6.0.6/proteus/__init__.py
--- old/proteus-6.0.5/proteus/__init__.py       2022-01-15 16:17:52.000000000 
+0100
+++ new/proteus-6.0.6/proteus/__init__.py       2022-03-01 19:23:27.000000000 
+0100
@@ -10,7 +10,7 @@
 
 import proteus.config
 
-__version__ = "6.0.5"
+__version__ = "6.0.6"
 __all__ = ['Model', 'Wizard', 'Report']
 
 _MODELS = threading.local()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/proteus-6.0.5/proteus/pyson.py 
new/proteus-6.0.6/proteus/pyson.py
--- old/proteus-6.0.5/proteus/pyson.py  2021-09-27 23:36:47.000000000 +0200
+++ new/proteus-6.0.6/proteus/pyson.py  2022-03-25 19:22:35.000000000 +0100
@@ -153,7 +153,7 @@
 
     @staticmethod
     def eval(dct, context):
-        if '.' in dct['v']:
+        if '.' in dct['v'] and dct['v'] not in context:
             base, name = dct['v'].split('.', 1)
             return Eval.eval({
                     'v': name,
@@ -509,7 +509,10 @@
 
     @staticmethod
     def eval(dct, context):
-        return dct['k'] in dct['v']
+        if dct['v']:
+            return dct['k'] in dct['v']
+        else:
+            return False
 
 
 class Date(PYSON):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/proteus-6.0.5/proteus.egg-info/PKG-INFO 
new/proteus-6.0.6/proteus.egg-info/PKG-INFO
--- old/proteus-6.0.5/proteus.egg-info/PKG-INFO 2022-03-01 19:23:18.000000000 
+0100
+++ new/proteus-6.0.6/proteus.egg-info/PKG-INFO 2022-04-15 21:27:48.000000000 
+0200
@@ -1,142 +1,16 @@
 Metadata-Version: 2.1
 Name: proteus
-Version: 6.0.5
+Version: 6.0.6
 Summary: Library to access Tryton server as a client
 Home-page: http://www.tryton.org/
+Download-URL: http://downloads.tryton.org/6.0/
 Author: Tryton
 Author-email: [email protected]
 License: LGPL-3
-Download-URL: http://downloads.tryton.org/6.0/
 Project-URL: Bug Tracker, https://bugs.tryton.org/
 Project-URL: Documentation, https://docs.tryton.org/
 Project-URL: Forum, https://www.tryton.org/forum
 Project-URL: Source Code, https://hg.tryton.org/proteus
-Description: =======================
-        Tryton Scripting Client
-        =======================
-        
-        A library to access Tryton's models like a client.
-        
-        Example of usage
-        ----------------
-        
-            >>> from proteus import config, Model, Wizard, Report
-        
-        Configuration
-        ~~~~~~~~~~~~~
-        
-        Configuration to connect to a sqlite memory database using trytond as 
module.
-        
-            >>> config = config.set_trytond('sqlite:///:memory:')
-        
-        Activating a module
-        ~~~~~~~~~~~~~~~~~~~
-        
-        Find the module, call the activate button and run the upgrade wizard.
-        
-            >>> Module = Model.get('ir.module')
-            >>> party_module, = Module.find([('name', '=', 'party')])
-            >>> party_module.click('activate')
-            >>> Wizard('ir.module.activate_upgrade').execute('upgrade')
-        
-        Creating a party
-        ~~~~~~~~~~~~~~~~
-        
-        First instanciate a new Party:
-        
-            >>> Party = Model.get('party.party')
-            >>> party = Party()
-            >>> party.id < 0
-            True
-        
-        Fill the fields:
-        
-            >>> party.name = 'ham'
-        
-        Save the instance into the server:
-        
-            >>> party.save()
-            >>> party.name
-            'ham'
-            >>> party.id > 0
-            True
-        
-        Setting the language of the party
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        The language on party is a `Many2One` relation field. So it requires 
to get a
-        `Model` instance as value.
-        
-            >>> Lang = Model.get('ir.lang')
-            >>> en, = Lang.find([('code', '=', 'en')])
-            >>> party.lang = en
-            >>> party.save()
-            >>> party.lang.code
-            'en'
-        
-        Creating an address for the party
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        Addresses are store on party with a `One2Many` field. So the new 
address just
-        needs to be appended to the list `addresses`.
-        
-            >>> address = party.addresses.new(postal_code='42')
-            >>> party.save()
-            >>> party.addresses #doctest: +ELLIPSIS
-            [proteus.Model.get('party.address')(...)]
-        
-        Adding category to the party
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        Categories are linked to party with a `Many2Many` field.
-        
-        So first create a category
-        
-            >>> Category = Model.get('party.category')
-            >>> category = Category()
-            >>> category.name = 'spam'
-            >>> category.save()
-        
-        Append it to categories of the party
-        
-            >>> party.categories.append(category)
-            >>> party.save()
-            >>> party.categories #doctest: +ELLIPSIS
-            [proteus.Model.get('party.category')(...)]
-        
-        Print party label
-        ~~~~~~~~~~~~~~~~~
-        
-        There is a label report on `Party`.
-        
-            >>> label = Report('party.label')
-        
-        The report is executed with a list of records and some extra data.
-        
-            >>> type_, data, print_, name = label.execute([party], {})
-        
-        Sorting addresses and register order
-        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-        
-        Addresses are ordered by sequence which means they can be stored 
following a
-        specific order. The `set_sequence` method stores the current order.
-        
-            >>> address = party.addresses.new(postal_code='69')
-            >>> party.save()
-            >>> address = party.addresses.new(postal_code='23')
-            >>> party.save()
-        
-        Now changing the order.
-        
-            >>> reversed_addresses = list(reversed(party.addresses))
-            >>> while party.addresses:
-            ...     _ = party.addresses.pop()
-            >>> party.addresses.extend(reversed_addresses)
-            >>> party.addresses.set_sequence()
-            >>> party.save()
-            >>> party.addresses == reversed_addresses
-            True
-        
 Keywords: tryton library cli
 Platform: any
 Classifier: Development Status :: 5 - Production/Stable
@@ -157,3 +31,132 @@
 Classifier: Topic :: Office/Business
 Requires-Python: >=3.6
 Provides-Extra: trytond
+License-File: LICENSE
+
+=======================
+Tryton Scripting Client
+=======================
+
+A library to access Tryton's models like a client.
+
+Example of usage
+----------------
+
+    >>> from proteus import config, Model, Wizard, Report
+
+Configuration
+~~~~~~~~~~~~~
+
+Configuration to connect to a sqlite memory database using trytond as module.
+
+    >>> config = config.set_trytond('sqlite:///:memory:')
+
+Activating a module
+~~~~~~~~~~~~~~~~~~~
+
+Find the module, call the activate button and run the upgrade wizard.
+
+    >>> Module = Model.get('ir.module')
+    >>> party_module, = Module.find([('name', '=', 'party')])
+    >>> party_module.click('activate')
+    >>> Wizard('ir.module.activate_upgrade').execute('upgrade')
+
+Creating a party
+~~~~~~~~~~~~~~~~
+
+First instanciate a new Party:
+
+    >>> Party = Model.get('party.party')
+    >>> party = Party()
+    >>> party.id < 0
+    True
+
+Fill the fields:
+
+    >>> party.name = 'ham'
+
+Save the instance into the server:
+
+    >>> party.save()
+    >>> party.name
+    'ham'
+    >>> party.id > 0
+    True
+
+Setting the language of the party
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The language on party is a `Many2One` relation field. So it requires to get a
+`Model` instance as value.
+
+    >>> Lang = Model.get('ir.lang')
+    >>> en, = Lang.find([('code', '=', 'en')])
+    >>> party.lang = en
+    >>> party.save()
+    >>> party.lang.code
+    'en'
+
+Creating an address for the party
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Addresses are store on party with a `One2Many` field. So the new address just
+needs to be appended to the list `addresses`.
+
+    >>> address = party.addresses.new(postal_code='42')
+    >>> party.save()
+    >>> party.addresses #doctest: +ELLIPSIS
+    [proteus.Model.get('party.address')(...)]
+
+Adding category to the party
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Categories are linked to party with a `Many2Many` field.
+
+So first create a category
+
+    >>> Category = Model.get('party.category')
+    >>> category = Category()
+    >>> category.name = 'spam'
+    >>> category.save()
+
+Append it to categories of the party
+
+    >>> party.categories.append(category)
+    >>> party.save()
+    >>> party.categories #doctest: +ELLIPSIS
+    [proteus.Model.get('party.category')(...)]
+
+Print party label
+~~~~~~~~~~~~~~~~~
+
+There is a label report on `Party`.
+
+    >>> label = Report('party.label')
+
+The report is executed with a list of records and some extra data.
+
+    >>> type_, data, print_, name = label.execute([party], {})
+
+Sorting addresses and register order
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Addresses are ordered by sequence which means they can be stored following a
+specific order. The `set_sequence` method stores the current order.
+
+    >>> address = party.addresses.new(postal_code='69')
+    >>> party.save()
+    >>> address = party.addresses.new(postal_code='23')
+    >>> party.save()
+
+Now changing the order.
+
+    >>> reversed_addresses = list(reversed(party.addresses))
+    >>> while party.addresses:
+    ...     _ = party.addresses.pop()
+    >>> party.addresses.extend(reversed_addresses)
+    >>> party.addresses.set_sequence()
+    >>> party.save()
+    >>> party.addresses == reversed_addresses
+    True
+
+

Reply via email to