From 9fccdcc51ca83315df817ea8fb86fe336221134f Mon Sep 17 00:00:00 2001 From: Davte Date: Mon, 24 Jun 2019 16:17:52 +0200 Subject: [PATCH] custom_join function added It joins elements of a list using a joiner and a final custom joiner --- davtelepot/__init__.py | 2 +- davtelepot/utilities.py | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/davtelepot/__init__.py b/davtelepot/__init__.py index 80662cc..e26f9da 100644 --- a/davtelepot/__init__.py +++ b/davtelepot/__init__.py @@ -7,7 +7,7 @@ __author__ = "Davide Testa" __email__ = "davide@davte.it" __credits__ = "Marco Origlia" __license__ = "GNU General Public License v3.0" -__version__ = "1.5.7" +__version__ = "1.5.9" __maintainer__ = "Davide Testa" __contact__ = "t.me/davte" diff --git a/davtelepot/utilities.py b/davtelepot/utilities.py index df70660..4f21570 100644 --- a/davtelepot/utilities.py +++ b/davtelepot/utilities.py @@ -1468,3 +1468,17 @@ def run_aiohttp_server(app, *args, **kwargs): loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) web.run_app(app, *args, **kwargs) + + +def custom_join(_list, joiner, final=None): + """Join elements of `_list` using `joiner` (`final` as last joiner).""" + _list = list(map(str, _list)) + if final is None: + final = joiner + if len(_list) == 0: + return '' + if len(_list) == 1: + return _list[0] + if len(_list) == 2: + return final.join(_list) + return joiner.join(_list[:-1]) + final + _list[-1]