ó
‚•oTc           @   sH   d  d l  Z  d  d l Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   iÿÿÿÿNt   WriteExceptionc           B   s   e  Z RS(    (   t   __name__t
   __module__(    (    (    s&   /var/www/SABnzbd/sabnzbd/utils/json.pyR       s   t
   JsonWriterc           B   s&   e  Z d  „  Z e d „ Z d „  Z RS(   c         C   s   |  j  j | ƒ d  S(   N(   t   _resultst   append(   t   selft   s(    (    s&   /var/www/SABnzbd/sabnzbd/utils/json.pyt   _append    s    c         C   s/   | |  _  g  |  _ |  j | ƒ d j |  j ƒ S(   Nt    (   t   _escaped_forward_slashR   t   _writet   join(   R   t   objt   escaped_forward_slash(    (    s&   /var/www/SABnzbd/sabnzbd/utils/json.pyt   write#   s    		c         C   s9  t  | ƒ } | t j k r® t | ƒ } |  j d ƒ xg | j ƒ  D]Y \ } } |  j | ƒ |  j d ƒ |  j | ƒ | d } | d k rA |  j d ƒ qA qA W|  j d ƒ n‡| t j k sÌ | t j k r9t | ƒ } |  j d ƒ xA | D]9 } |  j | ƒ | d } | d k rì |  j d ƒ qì qì W|  j d ƒ nü| t j	 k sW| t j
 k rw|  j d	 ƒ | t j
 k rˆ| j d
 d ƒ } n6 y | j d
 ƒ Wn" | j d ƒ j d
 d ƒ } n X| j d d ƒ } |  j rî| j d d ƒ } n  | j d	 d ƒ } | j d d ƒ } | j d d ƒ } | j d d ƒ } | j d d ƒ } | j d d ƒ } |  j | ƒ |  j d	 ƒ n¾ | t j k s•| t j k r«|  j t | ƒ ƒ nŠ | t j k rÎ|  j d | ƒ ng | t k rê|  j d ƒ nK | t k r|  j d ƒ n/ | d  k r"|  j d ƒ n t d  t | ƒ ‚ d  S(!   Nt   {t   :i   i    t   ,t   }t   [t   ]t   "s   utf-8t   replaces   latin-1s   \s   \\t   /s   \/s   \"s   s   \bs   s   \fs   
s   \ns   s   \rs   	s   \ts   %ft   truet   falset   nulls   Cannot write in JSON: %s(   t   typet   typest   DictTypet   lenR   t   itemsR   t   ListTypet	   TupleTypet
   StringTypet   UnicodeTypet   encodet   decodeR   R
   t   IntTypet   LongTypet   strt	   FloatTypet   Truet   Falset   NoneR    t   repr(   R   R   t   tyt   nt   kt   vt   item(    (    s&   /var/www/SABnzbd/sabnzbd/utils/json.pyR   )   sf    

	(   R   R   R   R,   R   R   (    (    (    s&   /var/www/SABnzbd/sabnzbd/utils/json.pyR      s   	(   t   stringR   t	   ExceptionR    t   objectR   (    (    (    s&   /var/www/SABnzbd/sabnzbd/utils/json.pyt   <module>   s   