+try:
+ set
+except NameError:
+ from sets import Set
+ set = Set
+
+def php_cast(value):
+ """
+ Casts Python values to PHP values.
+ """
+
+ if value is None:
+ return "NULL"
+ elif isinstance(value, (list, tuple, set)):
+ return "array(%s)" % ", ".join([php_cast(v) for v in value])
+ elif isinstance(value, dict):
+ items = ["%s => %s" % (php_cast(k), php_cast(v)) for (k, v) in value.items()]
+ return "array(%s)" % ", ".join(items)
+ elif isinstance(value, (int, long, bool, float)):
+ return str(value)
+ else:
+ unicode_repr = repr(unicode(value))
+ # Truncate the leading 'u' prefix
+ return unicode_repr[1:]
+