diff --git a/muk_utils/__manifest__.py b/muk_utils/__manifest__.py index fc238be..d34281e 100644 --- a/muk_utils/__manifest__.py +++ b/muk_utils/__manifest__.py @@ -20,7 +20,7 @@ { "name": "MuK Utils", "summary": """Utility Features""", - "version": '11.0.1.0.1', + "version": '11.0.1.0.2', "category": 'Extra Tools', "license": "AGPL-3", "website": "https://www.mukit.at", diff --git a/muk_utils/tools/utils_os.py b/muk_utils/tools/utils_os.py new file mode 100644 index 0000000..58a5490 --- /dev/null +++ b/muk_utils/tools/utils_os.py @@ -0,0 +1,40 @@ +################################################################################### +# +# Copyright (C) 2018 MuK IT GmbH +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero 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 Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . +# +################################################################################### + +import os +import logging + +_logger = logging.getLogger(__name__) + +def unique_name(name, names, escape_suffix=False): + def compute_name(name, suffix, escape_suffix): + if escape_suffix: + name, extension = os.path.splitext(name) + return "%s(%s)%s" % (name, suffix, extension) + else: + return "%s(%s)" % (name, suffix) + if not name in names: + return name + else: + suffix = 1 + name = compute_name(name, suffix, escape_suffix) + while name in names: + suffix += 1 + name = compute_name(name, suffix, escape_suffix) + return name \ No newline at end of file