diff --git a/gluon/common/exception.py b/gluon/common/exception.py index a797819..13e95b0 100644 --- a/gluon/common/exception.py +++ b/gluon/common/exception.py @@ -59,7 +59,7 @@ class GluonException(Exception): # kwargs doesn't match a variable in the message # log the issue and the kwargs LOG.exception('Exception in string format operation') - for name, value in six.iteritems(kwargs): + for name, value in kwargs.items(): LOG.error("%(name)s: %(value)s" % {'name': name, 'value': value}) try: diff --git a/gluon/db/sqlalchemy/api.py b/gluon/db/sqlalchemy/api.py index 2cd264f..2d9e569 100644 --- a/gluon/db/sqlalchemy/api.py +++ b/gluon/db/sqlalchemy/api.py @@ -12,7 +12,6 @@ # License for the specific language governing permissions and limitations # under the License. -import six import sqlalchemy.orm.exc from gluon.common import exception @@ -106,7 +105,7 @@ class Connection(api.Connection): def _add_filters(self, query, filters): if filters is None: filters = {} - for (key, value) in six.iteritems(filters): + for (key, value) in filters.items(): query = query.filter_by(**{key: value}) return query diff --git a/gluon/particleGenerator/ApiGenerator.py b/gluon/particleGenerator/ApiGenerator.py index 5e00f7a..7f48806 100644 --- a/gluon/particleGenerator/ApiGenerator.py +++ b/gluon/particleGenerator/ApiGenerator.py @@ -78,14 +78,14 @@ class APIGenerator(object): self.child = {} if not self.data: raise Exception('Cannot create API from empty model.') - for table_name, table_data in six.iteritems(self.data['api_objects']): + for table_name, table_data in self.data['api_objects'].items(): try: # For every entry build a (sub_)api_controller # an APIObject, an APIObject and an APIListObject # and a RealObject is created api_object_fields = {} for attribute, attr_value in \ - six.iteritems(table_data['attributes']): + table_data['attributes'].items(): api_type = self.translate_model_to_api_type( attr_value.get('type'), attr_value.get('values'), @@ -117,7 +117,7 @@ class APIGenerator(object): # Now add all childs since the roots are there now # And init the controller since all childs are there now - for table_name, table_data in six.iteritems(self.data['api_objects']): + for table_name, table_data in self.data['api_objects'].items(): controller = self.controllers[table_name] if 'parent' in table_data['api']: parent = table_data['api'].get('parent') @@ -134,7 +134,7 @@ class APIGenerator(object): self.subcontrollers[table_name] = new_subcontroller_class self.child[parent] = table_name setattr(parent_controller, sub_name, new_subcontroller_class()) - for table_name, table_data in six.iteritems(self.data['api_objects']): + for table_name, table_data in self.data['api_objects'].items(): api_name = table_data['api']['plural_name'] controller_instance = self.controllers[table_name]() if table_name in self.child: diff --git a/gluon/particleGenerator/DataBaseModelGenerator.py b/gluon/particleGenerator/DataBaseModelGenerator.py index 83a0bdf..8f29d52 100644 --- a/gluon/particleGenerator/DataBaseModelGenerator.py +++ b/gluon/particleGenerator/DataBaseModelGenerator.py @@ -17,7 +17,6 @@ from __future__ import print_function import re -import six import sys import sqlalchemy as sa @@ -56,14 +55,13 @@ class DataBaseModelProcessor(object): return ret_str.lower().replace("-", "_") # Make a model class that we've never thought of before - for table_name, table_data in six.iteritems(self.data['api_objects']): + for table_name, table_data in self.data['api_objects'].items(): self.get_primary_key(table_data) - for table_name, table_data in six.iteritems(self.data['api_objects']): + for table_name, table_data in self.data['api_objects'].items(): try: attrs = {} - for col_name, col_desc in six.iteritems( - table_data['attributes']): + for col_name, col_desc in table_data['attributes'].items(): try: options = {} @@ -164,7 +162,7 @@ class DataBaseModelProcessor(object): @classmethod def get_primary_key(cls, table_data): primary = [] - for k, v in six.iteritems(table_data['attributes']): + for k, v in table_data['attributes'].items(): if 'primary' in v: primary = k break diff --git a/gluon/particleGenerator/cli.py b/gluon/particleGenerator/cli.py index 707e4a4..9a30d9a 100644 --- a/gluon/particleGenerator/cli.py +++ b/gluon/particleGenerator/cli.py @@ -14,7 +14,6 @@ # under the License. import os -import six import sys import click @@ -188,7 +187,7 @@ def make_create_func(api_model, tablename): del kwargs["host"] del kwargs["port"] data = {} - for key, val in six.iteritems(kwargs): + for key, val in kwargs.items(): if val is not None: data[key] = val result = do_post(url, data) @@ -205,7 +204,7 @@ def make_update_func(api_model, tablename, primary_key): del kwargs["port"] del kwargs[primary_key] data = {} - for key, val in six.iteritems(kwargs): + for key, val in kwargs.items(): if val is not None: data[key] = val result = do_put(url, data) @@ -225,7 +224,7 @@ def make_delete_func(api_model, tablename, primary_key): def get_primary_key(table_data): primary = [] - for k, v in six.iteritems(table_data['attributes']): + for k, v in table_data['attributes'].items(): if 'primary' in v: primary = k break @@ -262,12 +261,12 @@ def proc_model(cli, package_name="unknown", portdefault=0): # print("loading model") model = load_model(package_name, model_dir, api_model) - for table_name, table_data in six.iteritems(model['api_objects']): + for table_name, table_data in model['api_objects'].items(): get_primary_key(table_data) - for table_name, table_data in six.iteritems(model['api_objects']): + for table_name, table_data in model['api_objects'].items(): try: attrs = {} - for col_name, col_desc in six.iteritems(table_data['attributes']): + for col_name, col_desc in table_data['attributes'].items(): try: # Step 1: deal with object xrefs if col_desc['type'] in model['api_objects']: @@ -325,7 +324,7 @@ def proc_model(cli, package_name="unknown", default=hostdefault, help=hosthelp)(create) create = click.option("--port", envvar=portenv, default=portdefault, help=porthelp)(create) - for col_name, col_desc in six.iteritems(table_data['attributes']): + for col_name, col_desc in table_data['attributes'].items(): kwargs = {} option_name = "--" + col_name kwargs["default"] = None @@ -344,7 +343,7 @@ def proc_model(cli, package_name="unknown", default=hostdefault, help=hosthelp)(update) update = click.option("--port", envvar=portenv, default=portdefault, help=porthelp)(update) - for col_name, col_desc in six.iteritems(table_data['attributes']): + for col_name, col_desc in table_data['attributes'].items(): if col_name == attrs['_primary_key']: continue kwargs = {} diff --git a/gluon/particleGenerator/generator.py b/gluon/particleGenerator/generator.py index 9af8fb3..c8db1da 100644 --- a/gluon/particleGenerator/generator.py +++ b/gluon/particleGenerator/generator.py @@ -51,13 +51,13 @@ def validate_attributes(obj_name, obj, model): formats = ['date-time', 'json', 'ipv4', 'ipv6', 'mac', 'uri', 'email'] int_formats = ['int32', 'int64'] - for attr_name, attr_val in six.iteritems(obj.get('attributes')): + for attr_name, attr_val in obj.get('attributes').items(): if 'type' not in attr_val: raise_obj_error(obj_name, 'A type property is not specified for ' 'attribute: %s, ', (attr_name)) - for prop_name, prop_val in six.iteritems(attr_val): + for prop_name, prop_val in attr_val.items(): if prop_name in props: if prop_name == 'type': if prop_val not in types and \ @@ -165,7 +165,7 @@ def verify_model(model): baseport_found = False baseinterface_found = False baseservice_found = False - for obj_name, obj_val in six.iteritems(model['api_objects']): + for obj_name, obj_val in model['api_objects'].items(): if obj_val.get('extends') == 'BasePort': if baseport_found: raise_format_error( @@ -205,23 +205,23 @@ def extend_object(obj, obj_dict): obj['policies'] = dict() if 'attributes' in ext_obj: for attr_name, attr_val in \ - six.iteritems(ext_obj.get('attributes')): + ext_obj.get('attributes').items(): if attr_name not in obj['attributes']: obj['attributes'].__setitem__(attr_name, attr_val) else: obj['attributes'][attr_name].update(attr_val) - for attr_name, attr_val in six.iteritems(orig_attrs): + for attr_name, attr_val in orig_attrs.items(): if attr_name not in obj['attributes']: obj['attributes'].__setitem__(attr_name, attr_val) else: obj['attributes'][attr_name].update(attr_val) if 'policies' in ext_obj: - for rule_name, rule_val in six.iteritems(ext_obj.get('policies')): + for rule_name, rule_val in ext_obj.get('policies').items(): if rule_name not in obj['policies']: obj['policies'].__setitem__(rule_name, rule_val) else: obj['policies'][rule_name].update(rule_val) - for rule_name, rule_val in six.iteritems(orig_policies): + for rule_name, rule_val in orig_policies.items(): if rule_name not in obj['policies']: obj['policies'].__setitem__(rule_name, rule_val) else: @@ -231,7 +231,7 @@ def extend_object(obj, obj_dict): def proc_object_extensions(dicta, dictb): moved_list = list() - for obj_name, obj_val in six.iteritems(dicta): + for obj_name, obj_val in dicta.items(): if obj_val.get('extends') in dictb: dictb[obj_name] = extend_object(obj_val, dictb) moved_list.append(obj_name) @@ -243,14 +243,14 @@ def proc_object_extensions(dicta, dictb): def extend_base_objects(model): # First we move non-extended objects to new list - for obj_name, obj_val in six.iteritems(model.get('base_objects')): + for obj_name, obj_val in model.get('base_objects').items(): if 'extends' in obj_val: if obj_val.get('extends') not in model.get('base_objects'): raise_format_error('extends references unkown object: %s', (obj_val.get('extends'))) new_dict = dict() moved_list = list() - for obj_name, obj_val in six.iteritems(model.get('base_objects')): + for obj_name, obj_val in model.get('base_objects').items(): if 'extends' not in obj_val: moved_list.append(obj_name) new_dict.__setitem__(obj_name, obj_val) @@ -263,7 +263,7 @@ def extend_base_objects(model): def extend_api_objects(model): new_dict = dict() - for obj_name, obj_val in six.iteritems(model.get('api_objects')): + for obj_name, obj_val in model.get('api_objects').items(): if 'extends' in obj_val: if obj_val.get('extends') not in model.get('base_objects'): raise_obj_error(obj_name, @@ -297,7 +297,7 @@ def append_model(model, yaml_dict): model['api_objects'] = dict() if 'base_objects' not in model: model['base_objects'] = dict() - for obj_name, obj_val in six.iteritems(yaml_dict.get('objects')): + for obj_name, obj_val in yaml_dict.get('objects').items(): if 'api' in obj_val: if 'plural_name' not in obj_val['api']: obj_val['api']['plural_name'] = \ diff --git a/gluon/policy.py b/gluon/policy.py index ee21348..8ae0779 100644 --- a/gluon/policy.py +++ b/gluon/policy.py @@ -106,7 +106,7 @@ def _should_validate_sub_attributes(attribute, sub_attr): validate = attribute.get('validate') return (validate and isinstance(sub_attr, collections.Iterable) and any([k.startswith('type:dict') and - v for (k, v) in six.iteritems(validate)])) + v for (k, v) in validate.items()])) def _build_subattr_match_rule(attr_name, attr, action, target): diff --git a/gluon/sync_etcd/thread.py b/gluon/sync_etcd/thread.py index b134e9b..d70c1fa 100644 --- a/gluon/sync_etcd/thread.py +++ b/gluon/sync_etcd/thread.py @@ -119,7 +119,7 @@ def start_sync_thread(**kwargs): """Start the SyncThread. This should be called in the main function.""" if not SyncData.sync_thread_running: - for key, value in six.iteritems(kwargs): + for key, value in kwargs.items(): if key == "etcd_host": SyncData.etcd_host = value elif key == "etcd_port": diff --git a/gluon/tests/particleGenerator/test_DataBaseModelGenerator.py b/gluon/tests/particleGenerator/test_DataBaseModelGenerator.py index 376d960..8fdd0f4 100644 --- a/gluon/tests/particleGenerator/test_DataBaseModelGenerator.py +++ b/gluon/tests/particleGenerator/test_DataBaseModelGenerator.py @@ -13,7 +13,6 @@ # under the License. import mock -import six from gluon.particleGenerator.DataBaseModelGenerator import\ DataBaseModelProcessor as DBMProcessor @@ -187,8 +186,8 @@ class DataBaseModelGeneratorTestCase(partgen_base.ParticleGeneratorTestCase): # The class should have all the attributes from GluonInternalPort table GluonInternalPort_class_attrs = dir(GluonInternalPort_class) for col_name, col_desc in \ - six.iteritems(self.model['api_objects'] - ['GluonInternalPort']['attributes']): + (self.model['api_objects'] + ['GluonInternalPort']['attributes']).items(): self.assertIn(col_name, GluonInternalPort_class_attrs) # ** for the foo model ** @@ -209,7 +208,7 @@ class DataBaseModelGeneratorTestCase(partgen_base.ParticleGeneratorTestCase): # The class should have all the attributes from GluonInternalPort table foo_class_attrs = dir(foo_class) for col_name, col_desc in \ - six.iteritems(self.model['api_objects']['foo']['attributes']): + (self.model['api_objects']['foo']['attributes']).items(): self.assertIn(col_name, foo_class_attrs) """