[prev in list] [next in list] [prev in thread] [next in thread] 

List:       freedesktop-xcb
Subject:    Re: [Xcb] [PATCH libxcb 05/18] c_client.py: use comprehensions instead of map/filter
From:       Christian Linhart <chris () DemoRecorder ! com>
Date:       2015-03-15 9:43:40
Message-ID: 5505544C.1000508 () DemoRecorder ! com
[Download RAW message or body]

Hi again Ran,

Thank you for this patch, too.

It makes the code more readable and more pythonic.

Also, I have tested it and it does not change the generated code.

Therefore, after a long delay:
Reviewed-by: Christian Linhart <chris@demorecorder.com>

Chris

P.S.: I am going to push this patch now because it really had more than enough time \
for being reviewed or for raising objections.


On 10/12/14 20:58, Ran Benita wrote:
> Signed-off-by: Ran Benita <ran234@gmail.com>
> ---
> src/c_client.py | 14 +++++++-------
> 1 file changed, 7 insertions(+), 7 deletions(-)
> 
> diff --git a/src/c_client.py b/src/c_client.py
> index 63bb7d6..fa37772 100644
> --- a/src/c_client.py
> +++ b/src/c_client.py
> @@ -544,7 +544,7 @@ def get_expr_fields(self):
> prefix.append(('', '', self))
> 
> all_fields = _c_helper_resolve_field_names (prefix)
> -    resolved_fields_names = list(filter(lambda x: x in all_fields.keys(), \
> unresolved_fields_names)) +    resolved_fields_names = [x for x in \
> unresolved_fields_names if x in all_fields] if len(unresolved_fields_names) != \
> len(resolved_fields_names): raise Exception("could not resolve all fields for %s" % \
> self.name) 
> @@ -783,8 +783,8 @@ def _c_serialize_helper_list_field(context, self, field,
> param_names = [p[2] for p in params]
> 
> expr_fields_names = [f.field_name for f in get_expr_fields(field.type)]
> -    resolved = list(filter(lambda x: x in param_names, expr_fields_names))
> -    unresolved = list(filter(lambda x: x not in param_names, expr_fields_names))
> +    resolved = [x for x in expr_fields_names if x in param_names]
> +    unresolved = [x for x in expr_fields_names if x not in param_names]
> 
> field_mapping = {}
> for r in resolved:
> @@ -797,8 +797,8 @@ def _c_serialize_helper_list_field(context, self, field,
> field.c_field_name)
> 
> field_mapping.update(_c_helper_resolve_field_names(prefix))
> -        resolved += list(filter(lambda x: x in field_mapping, unresolved))
> -        unresolved = list(filter(lambda x: x not in field_mapping, unresolved))
> +        resolved += [x for x in unresolved if x in field_mapping]
> +        unresolved = [x for x in unresolved if x not in field_mapping]
> if len(unresolved)>0:
> raise Exception('could not resolve the length fields required for list %s' % \
> field.c_field_name) 
> @@ -1131,7 +1131,7 @@ def _c_serialize(context, self):
> param_str.append("%s%s%s  %s%s  /**< */" % (indent, typespec, spacing, pointerspec, \
> field_name)) # insert function name
> param_str[0] = "%s (%s" % (func_name, param_str[0].strip())
> -    param_str = list(map(lambda x: "%s," % x, param_str))
> +    param_str = ["%s," % x for x in param_str]
> for s in param_str[:-1]:
> _hc(s)
> _h("%s);" % param_str[-1].rstrip(','))
> @@ -1210,7 +1210,7 @@ def _c_serialize(context, self):
> if not (self.is_switch or self.c_var_followed_by_fixed_fields):
> 
> # look if we have to declare an '_aux' variable at all
> -            if len(list(filter(lambda x: x.find('_aux')!=-1, code_lines)))>0:
> +            if any('_aux' in x for x in code_lines):
> if not self.c_var_followed_by_fixed_fields:
> _c('    const %s *_aux = (%s *)_buffer;', self.c_type, self.c_type)
> else:

_______________________________________________
Xcb mailing list
Xcb@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/xcb


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic