Files
pillar-python-sdk/pillarsdk/utils.py

47 lines
1.1 KiB
Python

import re
try:
from urllib.parse import urlencode
except ImportError:
from urllib import urlencode
def join_url(url, *paths):
"""
Joins individual URL strings together, and returns a single string.
Usage::
>>> utils.join_url("pillar:5000", "shots")
pillar:5000/shots
"""
for path in paths:
url = re.sub(r'/?$', re.sub(r'^/?', '/', path), url)
return url
def join_url_params(url, params):
"""Constructs a query string from a dictionary and appends it to a url.
Usage::
>>> utils.join_url_params("pillar:5000/shots", {"page-id": 2, "NodeType": "Shot Group"})
pillar:5000/shots?page-id=2&NodeType=Shot+Group
"""
return url + "?" + urlencode(params)
def merge_dict(data, *override):
"""
Merges any number of dictionaries together, and returns a single dictionary.
Usage::
>>> utils.merge_dict({"foo": "bar"}, {1: 2}, {"foo1": "bar2"})
{1: 2, 'foo': 'bar', 'foo1': 'bar2'}
"""
result = {}
for current_dict in (data,) + override:
result.update(current_dict)
return result