Files
pillar-python-sdk/pillarsdk/utils.py
Francesco Siddi c1ff4ba9bb Introducing convert_datetime function
Starting from an JSON object, find and replace the _create and _updated
keys with actual datetime objects.
2015-10-20 13:03:34 +02:00

60 lines
1.4 KiB
Python

import re
from datetime import datetime
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
def convert_datetime(item):
"""Starting from an JSON object, find and replace the _create and _updated
keys with actual datetime objects.
"""
keys = ['_updated', '_created']
for k in keys:
item[k] = datetime.strptime(item[k], "%a, %d %b %Y %H:%M:%S %Z")
return item