# $SnapHashLicense:
#
# SnapLogic - Open source data services
#
# Copyright (C) 2008 - 2009, SnapLogic, Inc. All rights reserved.
#
# See http://www.snaplogic.org for more information about
# the SnapLogic project.
#
# This program is free software, distributed under the terms of
# the GNU General Public License Version 2. See the LEGAL file
# at the top of the source tree.
#
# "SnapLogic" is a trademark of SnapLogic, Inc.
#
#
# $
# $Id: convert_utils.py 9163 2009-10-06 22:44:08Z dhiraj $
from snaplogic.common.snap_exceptions import SnapComponentError
DefaultDateTimeFormatString = "%Y-%m-%dT%H:%M:%S"
"""ISO 8601 format."""
DefaultNumberFormatString = "%s"
"""No special formatting."""
def datetime_to_string(dt, fmt=DefaultDateTimeFormatString):
"""
Convert datetime to string. By default, the value is converted to ISO 8601 format.
@param dt: Datetime object to be converted.
@type dt: datetime
@param fmt: Format of datetime string representation.
@type fmt: str
@return: string version of datetime object.
"""
try:
return unicode(dt.strftime(fmt))
except Exception, e:
raise SnapComponentError("Could not format date %s to with format '%s': %s" % (str(dt),fmt,e))
def number_to_string(num, fmt=DefaultNumberFormatString):
"""
Convert number to string.
@param num: Number to be converted.
@type num: number
@param fmt: The format to convert by, by default it is a simple python stringify.
@type fmt: str
@return: string version of number.
"""
try:
return unicode(fmt % num)
except Exception, e:
raise SnapComponentError("Could not format '%s' with format '%s': %s" % (num,fmt,e))
|