From d25b839ec9ea425f9e212196e9b144de913959c7 Mon Sep 17 00:00:00 2001 From: Dmitry Selyutin Date: Tue, 19 Sep 2017 22:36:59 +0300 Subject: [PATCH] config: support bitwise options --- pygnulib/config.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/pygnulib/config.py b/pygnulib/config.py index bcdb1c6ee5..27539b345a 100644 --- a/pygnulib/config.py +++ b/pygnulib/config.py @@ -6,6 +6,7 @@ import codecs as _codecs_ import collections as _collections_ +import enum as _enum_ import os as _os_ import re as _re_ @@ -21,6 +22,18 @@ def _regex_(regex): +class Option(_enum_.Flag): + Obsolete = (1 << 0) + Tests = (1 << 1) + CXX = (1 << 2) + Longrunning = (1 << 3) + Privileged = (1 << 4) + Unportable = (1 << 5) + All = (Obsolete | Tests | CXX | Longrunning | Privileged | Unportable) + + + + class Base: """gnulib generic configuration""" _TABLE_ = { @@ -295,6 +308,24 @@ class Base: self.unportable_tests = value self.longrunning_tests = value + @property + def options(self): + """bitmask of active options""" + result = ~Option.All + if self.obsolete: + result |= Option.Obsolete + if self.tests: + result |= Option.Tests + if self.cxx_tests: + result |= Option.CXX + if self.longrunning_tests: + result |= Option.Longrunning + if self.privileged_tests: + result |= Option.Privileged + if self.unportable_tests: + result |= Option.Unportable + return result + @property def libtool(self): -- 2.39.5