Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package azure-cli-core for openSUSE:Factory 
checked in at 2022-02-14 22:36:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/azure-cli-core (Old)
 and      /work/SRC/openSUSE:Factory/.azure-cli-core.new.1956 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "azure-cli-core"

Mon Feb 14 22:36:14 2022 rev:34 rq:954192 version:2.33.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/azure-cli-core/azure-cli-core.changes    
2022-01-14 23:14:57.566698273 +0100
+++ /work/SRC/openSUSE:Factory/.azure-cli-core.new.1956/azure-cli-core.changes  
2022-02-14 22:37:12.565576028 +0100
@@ -1,0 +2,8 @@
+Fri Feb 11 10:32:28 UTC 2022 - John Paul Adrian Glaubitz 
<adrian.glaub...@suse.com>
+
+- New upstream release
+  + Version 2.33.0
+  + For detailed information about changes see the
+    HISTORY.rst file provided with this package
+
+-------------------------------------------------------------------

Old:
----
  azure-cli-core-2.32.0.tar.gz

New:
----
  azure-cli-core-2.33.0.tar.gz

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

Other differences:
------------------
++++++ azure-cli-core.spec ++++++
--- /var/tmp/diff_new_pack.rYMcUj/_old  2022-02-14 22:37:12.997577154 +0100
+++ /var/tmp/diff_new_pack.rYMcUj/_new  2022-02-14 22:37:13.005577175 +0100
@@ -17,7 +17,7 @@
 
 
 Name:           azure-cli-core
-Version:        2.32.0
+Version:        2.33.0
 Release:        0
 Summary:        Microsoft Azure CLI Core Module
 License:        MIT

++++++ azure-cli-core-2.32.0.tar.gz -> azure-cli-core-2.33.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-core-2.32.0/HISTORY.rst 
new/azure-cli-core-2.33.0/HISTORY.rst
--- old/azure-cli-core-2.32.0/HISTORY.rst       2021-12-31 09:05:11.000000000 
+0100
+++ new/azure-cli-core-2.33.0/HISTORY.rst       2022-01-28 11:41:16.000000000 
+0100
@@ -3,6 +3,10 @@
 Release History
 ===============
 
+2.33.0
+++++++
+* Drop `--query-examples` global argument (#20962)
+
 2.32.0
 ++++++
 * Use optimistic locking for service principal entry reads (#20408)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-core-2.32.0/PKG-INFO 
new/azure-cli-core-2.33.0/PKG-INFO
--- old/azure-cli-core-2.32.0/PKG-INFO  2021-12-31 09:05:24.478523300 +0100
+++ new/azure-cli-core-2.33.0/PKG-INFO  2022-01-28 11:41:32.555424200 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: azure-cli-core
-Version: 2.32.0
+Version: 2.33.0
 Summary: Microsoft Azure Command-Line Tools Core Module
 Home-page: https://github.com/Azure/azure-cli
 Author: Microsoft Corporation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-core-2.32.0/azure/cli/core/__init__.py 
new/azure-cli-core-2.33.0/azure/cli/core/__init__.py
--- old/azure-cli-core-2.32.0/azure/cli/core/__init__.py        2021-12-31 
09:05:11.000000000 +0100
+++ new/azure-cli-core-2.33.0/azure/cli/core/__init__.py        2022-01-28 
11:41:16.000000000 +0100
@@ -4,7 +4,7 @@
 # 
--------------------------------------------------------------------------------------------
 # pylint: disable=line-too-long
 
-__version__ = "2.32.0"
+__version__ = "2.33.0"
 
 import os
 import sys
@@ -65,7 +65,6 @@
         from azure.cli.core.commands.transform import 
register_global_transforms
         from azure.cli.core._session import ACCOUNT, CONFIG, SESSION, INDEX, 
VERSIONS
         from azure.cli.core.util import handle_version_update
-        from azure.cli.core.commands.query_examples import 
register_global_query_examples_argument
 
         from knack.util import ensure_dir
 
@@ -89,7 +88,6 @@
         self.local_context = AzCLILocalContext(self)
         register_global_transforms(self)
         register_global_subscription_argument(self)
-        register_global_query_examples_argument(self)
         register_ids_argument(self)  # global subscription must be registered 
first!
         register_cache_arguments(self)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-core-2.32.0/azure/cli/core/commands/query_examples.py 
new/azure-cli-core-2.33.0/azure/cli/core/commands/query_examples.py
--- old/azure-cli-core-2.32.0/azure/cli/core/commands/query_examples.py 
2021-12-31 09:05:11.000000000 +0100
+++ new/azure-cli-core-2.33.0/azure/cli/core/commands/query_examples.py 
1970-01-01 01:00:00.000000000 +0100
@@ -1,338 +0,0 @@
-# 
--------------------------------------------------------------------------------------------
-# Copyright (c) Microsoft Corporation. All rights reserved.
-# Licensed under the MIT License. See License.txt in the project root for 
license information.
-# 
--------------------------------------------------------------------------------------------
-
-from knack.log import get_logger
-from knack.util import todict
-from knack import events
-from knack.util import CLIError
-from azure.cli.core.commands.events import EVENT_INVOKER_PRE_LOAD_ARGUMENTS
-
-logger = get_logger(__name__)
-
-
-def register_global_query_examples_argument(cli_ctx):
-    """Register --query-examples argument, and register handler."""
-
-    def handle_example_parameter(cli, **kwargs):  # pylint: 
disable=unused-argument
-        args = kwargs['args']
-        # `query_examples` has been registered and `--query-examples` appers 
in the command args
-        if hasattr(args, '_query_examples') and args._query_examples is not 
None:  # pylint: disable=protected-access
-            if cli_ctx.invocation.data['query_active']:
-                raise CLIError('You should not use --query and 
--query-examples together.')
-            # change the default output format to table
-            if cli_ctx.invocation.data['output'] == 'json':
-                cli_ctx.invocation.data['output'] = 'table'
-
-            def analyze_output(cli_ctx, **kwargs):
-                tree_builder = QueryTreeBuilder(cli.config)
-                tree_builder.build(kwargs['event_data']['result'])
-                # replace the result with query examples
-                kwargs['event_data']['result'] = 
tree_builder.generate_examples(
-                    args._query_examples, cli_ctx.invocation.data['output'])  
# pylint: disable=protected-access
-                cli_ctx.unregister_event(
-                    events.EVENT_INVOKER_FILTER_RESULT, analyze_output)
-
-            cli_ctx.register_event(
-                events.EVENT_INVOKER_FILTER_RESULT, analyze_output)
-            cli_ctx.invocation.data['query_active'] = True
-
-    def register_query_examples(cli, **kwargs):
-        from knack.experimental import ExperimentalItem
-        experimental_info = ExperimentalItem(cli.local_context.cli_ctx,
-                                             object_type='parameter', 
target='_query_examples')
-        default_kwargs = {
-            'help': 'Recommend JMESPath string for you. You can copy one of 
the query '
-                    'and paste it after --query parameter within double 
quotation marks '
-                    'to see the results. You can add one or more positional 
keywords so '
-                    'that we can give suggestions based on these key words.',
-            'arg_group': 'Global',
-            'is_experimental': True,
-            'nargs': '*',
-            'experimental_info': experimental_info
-        }
-
-        allow_list = cli.config.get('query', 'allow_list', 
"list,show").split(',')
-        allow_list = [s.strip() for s in allow_list if s.strip()]  # remove 
empty string
-        # when allow_list="", do nothing
-        if not allow_list:
-            return
-
-        commands_loader = kwargs.get('commands_loader')
-        cmd_tbl = commands_loader.command_table
-        for cmd_name, cmd in cmd_tbl.items():
-            if any(cmd_name.endswith(suffix) for suffix in allow_list):
-                cmd.add_argument('_query_examples', *
-                                 ['--query-examples'], **default_kwargs)
-
-    cli_ctx.register_event(
-        EVENT_INVOKER_PRE_LOAD_ARGUMENTS, register_query_examples
-    )
-    cli_ctx.register_event(
-        events.EVENT_INVOKER_POST_PARSE_ARGS, handle_example_parameter)
-
-
-class QueryExample:
-    def __init__(self, query_str, help_str="", max_length=None):
-        self._query_str = query_str
-        self._help_str = help_str
-        self._examples_len = max_length
-        self._help_len = max_length
-        self.escape_char()
-
-    def set_max_length(self, examples_len, help_len):
-        self._examples_len = examples_len
-        self._help_len = help_len
-
-    def escape_char(self):
-        """Escape special characters in JMESPath"""
-        # escape backtick
-        self._query_str = self._query_str.replace('`', '\\`')
-
-    def _asdict(self):
-        query_str = self._query_str
-        if self._examples_len and len(query_str) > self._examples_len:
-            query_str = query_str[:self._examples_len] + '...'
-        help_str = self._help_str
-        if self._help_len and len(help_str) > self._help_len:
-            help_str = help_str[:self._help_len] + '...'
-        return {"query string": query_str, "help": help_str}
-
-    def __str__(self):
-        return "{}\t{}".format(self._query_str, self._help_str)
-
-
-class QueryTreeNode:
-    def __init__(self, name, parent, is_array):
-        self.is_dummy = False
-        self._name = name
-        self._parent = parent
-        self._is_array = is_array  # inside an JSON array
-        self._data = None
-        self._child = []  # list of child node
-
-    def add_child(self, child_node):
-        if child_node:
-            self._child.append(child_node)
-
-    def update_node_data(self, data):
-        self._data = data
-
-    def _get_one_data(self):
-        """Try to get not None data."""
-        if not self._data:
-            return None
-        for value in self._data:
-            if value:
-                return value
-        return None
-
-    def get_help_str(self, help_type):
-        """Return help string based on help_type."""
-        help_table = {
-            'contains': 'Show the {} field that contains given 
string.'.format(self._name),
-            'filter': 'Show the resources that satisfy the condition.',
-            'select': 'Show the value of {} field.'.format(self._name),
-        }
-        return help_table.get(help_type, '')
-
-    def get_trace_to_array(self, inner_trace):
-        """
-        Get trace to the nearest array. Return None if no array found. This 
function return two values,
-        inner trace and outer trace. The inner trace is the trace inside the 
brackets and the outer
-        trace is the trace outside the brackets.
-        """
-        if self._is_array:
-            if self._parent:
-                if self._parent.is_dummy and not self._parent._is_array:  # 
pylint: disable=protected-access
-                    outer_trace = self._name
-                else:
-                    outer_trace = 
'{}.{}'.format(self._parent.get_trace_to_root(), self._name)
-            else:
-                outer_trace = self._name
-            return outer_trace, inner_trace
-
-        # under a dict
-        if self._parent:
-            if inner_trace:
-                current_trace = self._name + '.' + inner_trace
-            else:
-                current_trace = self._name
-            return self._parent.get_trace_to_array(current_trace)
-
-        # no array found until root node
-        return None, None
-
-    def get_trace_to_root(self):
-        """Return the trace string(aka, select string in JMESPath) to the root 
node."""
-        if self._parent:
-            if self._parent.is_dummy and not self._parent._is_array:  # 
pylint: disable=protected-access
-                trace_str = self._name
-            else:
-                trace_str = '{}.{}'.format(self._parent.get_trace_to_root(), 
self._name)
-        else:
-            trace_str = self._name
-        if self._is_array:
-            trace_str += '[]'
-        return trace_str
-
-    def get_filter_str(self):
-        """Return the kind of JMESPath that filters the results with some 
conditions."""
-        outer_trace, inner_trace = self.get_trace_to_array('')
-        if outer_trace is None or inner_trace is None:
-            return None
-        value = self._get_one_data()
-        if not value:
-            return None
-        filter_str = "{}[?{}=='{}']".format(outer_trace, inner_trace, value)
-        return filter_str
-
-    def get_contains_str(self):
-        """Return the JMESPath that filter the results with a contains 
function."""
-        outer_trace, inner_trace = self.get_trace_to_array('')
-        if outer_trace is None or inner_trace is None:
-            return None
-        value = self._get_one_data()
-        if not value:
-            return None
-        contains_str = "{0}[?contains(@.{1}, 
'something')==`true`].{1}".format(outer_trace, inner_trace)
-        return contains_str
-
-    def get_examples(self):
-        """The entry function for recommend examples for current node."""
-        ans = []
-        select_string = self.get_trace_to_root()
-        ans.append(QueryExample(select_string, self.get_help_str('select')))
-        filter_str = self.get_filter_str()
-        if filter_str:
-            ans.append(QueryExample(filter_str, self.get_help_str('filter')))
-        contains_str = self.get_contains_str()
-        if contains_str:
-            ans.append(QueryExample(contains_str, 
self.get_help_str('contains')))
-        return ans
-
-
-class QueryTreeBuilder:
-    """Parse entry. Generate parse tree from json. And then give examples."""
-
-    def __init__(self, config):
-        self._root = None  # dummy root node
-        self._all_nodes = {}
-        self._config = {}
-        self.update_config(config)
-
-    def build(self, data):
-        """Build a query tree with a given json file."""
-        self._root = self._parse('', [data], None)
-        if self._root:
-            self._root.is_dummy = True
-
-    def generate_examples(self, keywords_list, output_format):
-        """Generate JMESPath query string examples based on keyword_list."""
-        examples = []
-        match_list = self._get_matched_nodes(keywords_list)
-        for node_name in match_list:
-            if node_name:  # skip root node
-                for node in self._all_nodes.get(node_name):
-                    examples.extend(node.get_examples())
-        if self._config['max_examples'] >= 0:
-            examples = examples[:self._config['max_examples']]
-        if output_format == 'table':
-            for item in examples:
-                item.set_max_length(self._config['examples_len'], 
self._config['help_len'])
-        return todict(examples)
-
-    def update_config(self, config):
-        self._config['examples_len'] = int(config.get('query', 'examples_len', 
'80'))
-        self._config['help_len'] = int(config.get('query', 'help_len', '80'))
-        self._config['max_examples'] = int(config.get('query', 'max_examples', 
'10'))
-
-    def _get_matched_nodes(self, keywords_list):
-        """
-        Return a list of keys that match the user provided keywords.
-        Return all available keys if no keyword is provided.
-        """
-        def name_match(pattern, line):
-            return pattern.lower() in line.lower()
-
-        match_list = []
-        # return all available key if no keyword is provided
-        if not keywords_list:
-            return self._all_nodes.keys()
-
-        for pattern in keywords_list:
-            for node_name in self._all_nodes:
-                if node_name not in match_list and name_match(pattern, 
node_name):
-                    match_list.append(node_name)
-        return match_list
-
-    def _parse(self, name, data, parent, is_array=False):
-        """do parse for a single node
-
-        :param str name:
-            Name of the node.
-        :param list data:
-            All data in the json with the same depth and the same name.
-            This field must be a list.
-        :param TreeNode parent:
-            The parent node of current node. None if this is the root node.
-        :param bool is_array:
-            True if the value of this JSON node is an array.
-        """
-        if not data:
-            return None
-        if all(isinstance(d, list) for d in data):
-            node = self._parse_list(name, data, parent)
-        elif all(isinstance(d, dict) for d in data):
-            node = self._parse_dict(name, data, parent, is_array)
-        elif any(isinstance(d, (dict, list)) for d in data):
-            node = None  # inhomogeneous type
-        else:
-            node = self._parse_leaf(name, data, parent, is_array)
-        return node
-
-    def _parse_list(self, name, data, parent):
-        flatten_data = []
-        # flatten list of list to list of data
-        for d in data:
-            flatten_data.extend(d)
-        if not flatten_data:
-            return None
-        node = self._parse(name, flatten_data, parent, is_array=True)
-        return node
-
-    def _parse_leaf(self, name, data, parent, is_array):
-        node = QueryTreeNode(name, parent, is_array)
-        node.update_node_data(data)
-        self._record_node(name, node)
-        return node
-
-    def _parse_dict(self, name, data, parent, is_array):
-        node = QueryTreeNode(name, parent, is_array)
-        all_keys = self._get_all_keys(data)
-        for key in all_keys:
-            values = self._get_not_none_values(data, key)
-            if not values:  # all values are None
-                continue
-            child_node = self._parse(key, values, node, is_array=False)
-            node.add_child(child_node)
-        self._record_node(name, node)
-        return node
-
-    def _get_all_keys(self, data):  # pylint: disable=no-self-use
-        """Get all keys in a list of dict"""
-        return set().union(*(d.keys() for d in data))
-
-    def _get_not_none_values(self, data, key):  # pylint: disable=no-self-use
-        """Get all not None values in a list of dict"""
-        return [d.get(key) for d in data if d.get(key, None) is not None]
-
-    def _record_node(self, name, node):
-        """Add name and node to `self._all_nodes`"""
-        if not node:
-            return
-        if name in self._all_nodes:
-            self._all_nodes[name].append(node)
-        else:
-            self._all_nodes[name] = [node]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-core-2.32.0/azure/cli/core/profiles/_shared.py 
new/azure-cli-core-2.33.0/azure/cli/core/profiles/_shared.py
--- old/azure-cli-core-2.32.0/azure/cli/core/profiles/_shared.py        
2021-12-31 09:05:11.000000000 +0100
+++ new/azure-cli-core-2.33.0/azure/cli/core/profiles/_shared.py        
2022-01-28 11:41:16.000000000 +0100
@@ -174,7 +174,7 @@
             'role_definitions': '2018-01-01-preview',
             'provider_operations_metadata': '2018-01-01-preview'
         }),
-        ResourceType.MGMT_CONTAINERREGISTRY: SDKProfile('2021-06-01-preview', {
+        ResourceType.MGMT_CONTAINERREGISTRY: SDKProfile('2021-08-01-preview', {
             'agent_pools': '2019-06-01-preview',
             'tasks': '2019-06-01-preview',
             'task_runs': '2019-06-01-preview',
@@ -195,6 +195,7 @@
         ResourceType.DATA_COSMOS_TABLE: '2017-04-17',
         ResourceType.MGMT_EVENTHUB: '2021-06-01-preview',
         ResourceType.MGMT_MONITOR: SDKProfile('2019-06-01', {
+            'action_groups': '2021-09-01',
             'activity_log_alerts': '2017-04-01',
             'activity_logs': '2015-04-01',
             'alert_rule_incidents': '2016-03-01',
@@ -233,7 +234,7 @@
         ResourceType.MGMT_ARO: '2020-04-30',
         ResourceType.MGMT_DATABOXEDGE: '2021-02-01-preview',
         ResourceType.MGMT_CUSTOMLOCATION: '2021-03-15-preview',
-        ResourceType.MGMT_CONTAINERSERVICE: SDKProfile('2021-07-01', {
+        ResourceType.MGMT_CONTAINERSERVICE: SDKProfile('2021-10-01', {
             'container_services': '2017-07-01',
             'open_shift_managed_clusters': '2019-09-30-preview'
         })
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-core-2.32.0/azure_cli_core.egg-info/PKG-INFO 
new/azure-cli-core-2.33.0/azure_cli_core.egg-info/PKG-INFO
--- old/azure-cli-core-2.32.0/azure_cli_core.egg-info/PKG-INFO  2021-12-31 
09:05:24.000000000 +0100
+++ new/azure-cli-core-2.33.0/azure_cli_core.egg-info/PKG-INFO  2022-01-28 
11:41:32.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: azure-cli-core
-Version: 2.32.0
+Version: 2.33.0
 Summary: Microsoft Azure Command-Line Tools Core Module
 Home-page: https://github.com/Azure/azure-cli
 Author: Microsoft Corporation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-core-2.32.0/azure_cli_core.egg-info/SOURCES.txt 
new/azure-cli-core-2.33.0/azure_cli_core.egg-info/SOURCES.txt
--- old/azure-cli-core-2.32.0/azure_cli_core.egg-info/SOURCES.txt       
2021-12-31 09:05:24.000000000 +0100
+++ new/azure-cli-core-2.33.0/azure_cli_core.egg-info/SOURCES.txt       
2022-01-28 11:41:32.000000000 +0100
@@ -47,7 +47,6 @@
 azure/cli/core/commands/events.py
 azure/cli/core/commands/parameters.py
 azure/cli/core/commands/progress.py
-azure/cli/core/commands/query_examples.py
 azure/cli/core/commands/template_create.py
 azure/cli/core/commands/transform.py
 azure/cli/core/commands/validators.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/azure-cli-core-2.32.0/azure_cli_core.egg-info/requires.txt 
new/azure-cli-core-2.33.0/azure_cli_core.egg-info/requires.txt
--- old/azure-cli-core-2.32.0/azure_cli_core.egg-info/requires.txt      
2021-12-31 09:05:24.000000000 +0100
+++ new/azure-cli-core-2.33.0/azure_cli_core.egg-info/requires.txt      
2022-01-28 11:41:32.000000000 +0100
@@ -14,4 +14,4 @@
 PyJWT>=2.1.0
 pyopenssl>=17.1.0
 requests[socks]
-psutil~=5.8
+psutil~=5.9
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/azure-cli-core-2.32.0/setup.py 
new/azure-cli-core-2.33.0/setup.py
--- old/azure-cli-core-2.32.0/setup.py  2021-12-31 09:05:11.000000000 +0100
+++ new/azure-cli-core-2.33.0/setup.py  2022-01-28 11:41:16.000000000 +0100
@@ -8,7 +8,7 @@
 from codecs import open
 from setuptools import setup, find_packages
 
-VERSION = "2.32.0"
+VERSION = "2.33.0"
 
 # If we have source, validate that our version numbers match
 # This should prevent uploading releases with mismatched versions.
@@ -64,7 +64,7 @@
 
 # dependencies for specific OSes
 if not sys.platform.startswith('cygwin'):
-    DEPENDENCIES.append('psutil~=5.8')
+    DEPENDENCIES.append('psutil~=5.9')
 
 
 with open('README.rst', 'r', encoding='utf-8') as f:

Reply via email to