diff --git a/tiramisu/option/__init__.py b/tiramisu/option/__init__.py index 202abb5..3c2fe2b 100644 --- a/tiramisu/option/__init__.py +++ b/tiramisu/option/__init__.py @@ -10,7 +10,7 @@ from .choiceoption import ChoiceOption from .booloption import BoolOption from .intoption import IntOption from .floatoption import FloatOption -from .stroption import StrOption, UnicodeOption, RegexpOption +from .stroption import StrOption, RegexpOption from .ipoption import IPOption from .portoption import PortOption from .networkoption import NetworkOption @@ -23,13 +23,14 @@ from .usernameoption import UsernameOption, GroupnameOption from .dateoption import DateOption from .filenameoption import FilenameOption from .passwordoption import PasswordOption +from .macoption import MACOption __all__ = ('Leadership', 'OptionDescription', 'DynOptionDescription', 'SynDynOptionDescription', 'SynDynLeadership', 'Option', 'SymLinkOption', 'SynDynOption', 'ChoiceOption', 'BoolOption', 'DateOption', - 'IntOption', 'FloatOption', 'StrOption', 'UnicodeOption', + 'IntOption', 'FloatOption', 'StrOption', 'IPOption', 'PortOption', 'NetworkOption', 'NetmaskOption', 'BroadcastOption', 'DomainnameOption', 'EmailOption', 'URLOption', 'UsernameOption', 'GroupnameOption', 'FilenameOption', 'PasswordOption', 'submulti', - 'RegexpOption') + 'RegexpOption', 'MACOption') diff --git a/tiramisu/option/macoption.py b/tiramisu/option/macoption.py new file mode 100644 index 0000000..4db8e5d --- /dev/null +++ b/tiramisu/option/macoption.py @@ -0,0 +1,31 @@ +# -*- coding: utf-8 -*- +# Copyright (C) 2020 Team tiramisu (see AUTHORS for all contributors) +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more +# details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . +# +# The original `Config` design model is unproudly borrowed from +# the rough pypy's guys: http://codespeak.net/svn/pypy/dist/pypy/config/ +# the whole pypy projet is under MIT licence +# ____________________________________________________________ +import re + +from ..i18n import _ +from .stroption import RegexpOption + + +class MACOption(RegexpOption): + __slots__ = tuple() + _regexp = re.compile(r"^([0-9A-Fa-f]{2}[:]){5}([0-9A-Fa-f]{2})$") + _type = 'macaddress' + _display_name = _('mac address') diff --git a/tiramisu/option/stroption.py b/tiramisu/option/stroption.py index bd83b10..a6c636c 100644 --- a/tiramisu/option/stroption.py +++ b/tiramisu/option/stroption.py @@ -38,10 +38,6 @@ class StrOption(Option): raise ValueError() -#UnicodeOption is same as StrOption -UnicodeOption = StrOption - - class RegexpOption(StrOption): __slots__ = tuple()