All of lore.kernel.org
 help / color / mirror / Atom feed
From: Saul Wold <sgw@linux.intel.com>
To: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Cc: Christopher Larson <chris_larson@mentor.com>
Subject: Re: [PATCH] oe.types: give the regex type more sane semantics
Date: Fri, 18 May 2012 08:40:58 +0300	[thread overview]
Message-ID: <4FB5E0EA.4030507@linux.intel.com> (raw)
In-Reply-To: <1337131585-8741-1-git-send-email-kergoth@gmail.com>

On 05/16/2012 04:26 AM, Christopher Larson wrote:
> From: Christopher Larson<chris_larson@mentor.com>
>
> Currently, if a variable is unset or has an empty value, the regex type
> will return a match object which always matches. Not all variable types
> will necessarily have the same behavior for handling defaults. I believe
> that returning a match object which matches nothing when a variable is
> unset is superior to returning one which matches anything, and the user
> can always explicitly request anything via '.*', if that's what they
> want.
>
> This constructs a null pattern object which will never match, and uses
> it when encountering an unset or empty variable (currently, these two
> things are one and the same, as maketype is handling the default. we may
> well want to shift that logic into the individual types, giving them
> more control over default behavior, but currently the behavior is at
> least relatively consistent -- no difference between unset and empty
> variables).
>
> Signed-off-by: Christopher Larson<chris_larson@mentor.com>
> ---
>   meta/lib/oe/types.py |   31 +++++++++++++++++++++++++++++++
>   1 files changed, 31 insertions(+), 0 deletions(-)
>
> diff --git a/meta/lib/oe/types.py b/meta/lib/oe/types.py
> index ea31cf4..ea53df9 100644
> --- a/meta/lib/oe/types.py
> +++ b/meta/lib/oe/types.py
> @@ -40,6 +40,31 @@ def choice(value, choices):
>                            (value, choices))
>       return value
>
> +class NoMatch(object):
> +    """Stub python regex pattern object which never matches anything"""
> +    def findall(self, string, flags=0):
> +        return None
> +
> +    def finditer(self, string, flags=0):
> +        return None
> +
> +    def match(self, flags=0):
> +        return None
> +
> +    def search(self, string, flags=0):
> +        return None
> +
> +    def split(self, string, maxsplit=0):
> +        return None
> +
> +    def sub(pattern, repl, string, count=0):
> +        return None
> +
> +    def subn(pattern, repl, string, count=0):
> +        return None
> +
> +NoMatch = NoMatch()
> +
>   def regex(value, regexflags=None):
>       """OpenEmbedded 'regex' type
>
> @@ -59,6 +84,12 @@ def regex(value, regexflags=None):
>               except AttributeError:
>                   raise ValueError("Invalid regex flag '%s'" % flag)
>
> +    if not value:
> +        # Let's ensure that the default behavior for an undefined or empty
> +        # variable is to match nothing. If the user explicitly wants to match
> +        # anything, they can match '.*' instead.
> +        return NoMatch
> +
>       try:
>           return re.compile(value, flagval)
>       except re.error, exc:

Merged this series of 3 patches into OE-Core

Thanks
	Sau!



      reply	other threads:[~2012-05-18  5:51 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-16  1:26 [PATCH] oe.types: give the regex type more sane semantics Christopher Larson
2012-05-18  5:40 ` Saul Wold [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4FB5E0EA.4030507@linux.intel.com \
    --to=sgw@linux.intel.com \
    --cc=chris_larson@mentor.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.