³ò
’\jIc           @   sü   d  Z  d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k Z d d k	 Z	 d d k
 Z
 d d k Z d d k Z d d k Z d d k l Z d d k Z d f  d „  ƒ  YZ d „  Z d „  Z d „  Z d S(	   s   filehandler.py - File handler.iÿÿÿÿN(   t   prefst   FileHandlerc           B   sp  e  Z d  Z d „  Z d „  Z e d „ Z d „  Z d „  Z d „  Z	 d „  Z
 d „  Z d	 „  Z d
 „  Z d d „ Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d' d „ Z d „  Z d „  Z d' d „ Z d' d „ Z d' d d e d „ Z d' d „ Z  d „  Z! d  „  Z" d! „  Z# d" „  Z$ d# „  Z% d$ „  Z& d% „  Z' d& „  Z( RS((   s§  The FileHandler keeps track of images, pages, caches and reads files.

    When the Filehandler's methods refer to pages, they are indexed from 1,
    i.e. the first page is page 1 etc.

    Other modules should *never* read directly from the files pointed to by
    paths given by the FileHandler's methods. The files are not even
    guaranteed to exist at all times since the extraction of archives is
    threaded.
    c         C   s­   t  |  _ d  |  _ | |  _ d  |  _ t i d d d t i	 ƒ |  _
 g  |  _ d  |  _ g  |  _ h  |  _ h  |  _ t i ƒ  |  _ d  |  _ t i d t i ƒ |  _ |  i ƒ  d  S(   Nt   prefixs   comix.t   suffixs!   \.(jpg|jpeg|png|gif|tif|tiff)\s*$(   t   Falset   file_loadedt   Nonet   archive_typet   _windowt
   _base_patht   tempfilet   mkdtempt   ost   sept   _tmp_dirt   _image_filest   _current_image_indext   _comment_filest   _raw_pixbufst   _name_tablet   archivet	   Extractort
   _extractort
   _conditiont   ret   compilet   It	   _image_ret   update_comment_extensions(   t   selft   window(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   __init__$   s    										c         C   s}   | |  i  j ob |  i | d ƒ y$ t i i |  i | ƒ |  i  | <Wqr t j
 o |  i ƒ  |  i  | <qr Xn |  i  | S(   sy   Return the pixbuf indexed by <index> from cache.
        Pixbufs not found in cache are fetched from disk first.
        i   (   R   t   _wait_on_paget   gtkt   gdkt   pixbuf_new_from_fileR   t	   Exceptiont   _get_missing_image(   R   t   index(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   _get_pixbuf5   s    	c         C   sR   |  i  i ƒ  p | o |  i |  i ƒ Sn |  i |  i ƒ |  i |  i d ƒ f S(   sî   Return the pixbuf(s) for the image(s) that should be currently
        displayed, from cache. Return two pixbufs in double-page mode unless
        <single> is True. Pixbufs not found in cache are fetched from
        disk first.
        i   (   R   t   displayed_doubleR'   R   (   R   t   single(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_pixbufsB   s    c         C   s  |  i  } | d } |  i i o | d 7} n t d o$ | |  i ƒ  8} | |  i ƒ  7} n t d | ƒ } t |  i ƒ  | ƒ } t	 | | ƒ } x+ t
 |  i ƒ t
 | ƒ D] } |  i | =qª Wt i d  d j o t i d ƒ n t i ƒ  x | D] } |  i | ƒ qô Wd S(	   sE  Make sure that the correct pixbufs are stored in cache. These
        are (in the current implementation) the current image(s), and
        if cacheing is enabled, also the one or two pixbufs before and
        after them. All other pixbufs are deleted and garbage collected
        directly in order to save memory.
        i   t   cachei    i   i   i   N(   i   i   i    (   R   R   t   is_double_pageR    t   _get_backward_step_lengtht   _get_forward_step_lengtht   maxt   mint   get_number_of_pagest   ranget   setR   t   syst   version_infot   gct   collectR'   (   R   t   first_wantedt   last_wantedt   wanted_pixbufst   paget   wanted(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   do_cacheingM   s&    	
 
 c         C   s®   |  i  p t Sn |  i ƒ  } |  i i ƒ  o d p d } |  i ƒ  | |  i ƒ  j o1 t d o |  i d j	 o |  i	 ƒ  n t Sn |  i
 |  i ƒ  7_
 | |  i ƒ  j S(   s`   Set up filehandler to the next page. Return True if this results
        in a new page.
        i   i   s   auto open next archiveN(   R   R   t   get_current_pageR   R(   R1   R    R   R   t   _open_next_archiveR   R.   (   R   t   old_paget   viewed(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt	   next_pagel   s    
c         C   sÌ   |  i  p t Sn |  i ƒ  d j o1 t d o |  i d j	 o |  i ƒ  n t Sn |  i ƒ  } |  i ƒ  } t |  i	 | ƒ } |  i	 | 8_	 | d j o  |  i
 ƒ  o |  i	 d 7_	 n | |  i ƒ  j S(   sd   Set up filehandler to the previous page. Return True if this
        results in a new page.
        i   s   auto open next archivei   N(   R   R   R>   R    R   R   t   _open_previous_archiveR-   R0   R   t   get_virtual_double_page(   R   R@   t   step(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   previous_page|   s    
c         C   s7   |  i  p t Sn |  i ƒ  } d |  _ | |  i ƒ  j S(   sa   Set up filehandler to the first page. Return True if this
        results in a new page.
        i    (   R   R   R>   R   (   R   R@   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt
   first_page   s
    
	c         C   s   |  i  p t Sn |  i ƒ  } |  i i o d p d } t |  i ƒ  | ƒ } |  i ƒ  | |  _ | d j o  |  i ƒ  o |  i d 7_ n | |  i ƒ  j S(   s`   Set up filehandler to the last page. Return True if this results
        in a new page.
        i   i   (	   R   R   R>   R   R,   R0   R1   R   RD   (   R   R@   t   offset(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt	   last_page™   s    
c         C   sU   d | j  o |  i  ƒ  j n p t Sn |  i ƒ  } | d |  _ | |  i ƒ  j S(   sf   Set up filehandler to the page <page_num>. Return True if this
        results in a new page.
        i    i   (   R1   R   R>   R   (   R   t   page_numR@   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   set_page§   s
    $c         C   s©   |  i  i p% t d p |  i ƒ  |  i ƒ  j o t Sn |  i |  i ƒ } | i ƒ  | i	 ƒ  j o t
 Sn |  i |  i d ƒ } | i ƒ  | i	 ƒ  j o t
 Sn t S(   s  Return True if the current state warrants use of virtual
        double page mode (i.e. if double page mode is on, the corresponding
        preference is set, and one of the two images that should normally
        be displayed has a width that exceeds its height).
        s   no double page for wide imagesi   (   R   R,   R    R>   R1   R   R'   R   t	   get_widtht
   get_heightt   True(   R   t   page1t   page2(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyRD   ±   s    i   c         C   s>  t  i i | ƒ o% |  i i i t d ƒ | ƒ t Sn t  i i | ƒ p% |  i i i t d ƒ | ƒ t Sn t  i	 | t  i
 ƒ p% |  i i i t d ƒ | ƒ t Sn t i | ƒ |  _ |  i d j o3 t | ƒ o% |  i i i t d ƒ | ƒ t Sn |  i i i t i ƒ |  i o |  i ƒ  n x t i ƒ  o t i t ƒ q1W|  i d j	 o¨| |  _ |  i i | |  i ƒ |  _ |  i i ƒ  } t |  i  i! | ƒ } t" | ƒ g  } | D] } | t  i i# |  i | ƒ q½~ |  _$ t |  i% i! | ƒ } g  } | D] } | t  i i# |  i | ƒ q~ |  _& x- t' | |  i$ ƒ D] \ }	 }
 |	 |  i( |
 <qFWx- t' | |  i& ƒ D] \ }	 }
 |	 |  i( |
 <qvW| d j o; |  i i) o |  i* ƒ  d |  _+ qè|  i* ƒ  d |  _+ n | d |  _+ t, d |  i+ ƒ |  _+ |  i i) o d p d } t- |  i+ |  i+ | d ƒ t- |  i+ | |  i+ ƒ d d d	 … } g  } | D]= } d | j o |  i* ƒ  d j n o | | | qcqc~ } x7 t. | ƒ D]) \ } }	 | i/ |	 ƒ | i0 | |	 ƒ q¶W|  i i1 | | ƒ |  i i2 ƒ  n” t  i i3 | ƒ |  _ xS t  i4 |  i ƒ D]? } t  i i# |  i | ƒ } t | ƒ o |  i$ i5 | ƒ q0q0W|  i$ i6 t7 i8 ƒ |  i$ i9 | ƒ |  _+ |  i$ p6 |  i i i t d
 ƒ t  i i: | ƒ ƒ t |  _ n
 t; |  _ t" |  i& ƒ |  i i i t i< ƒ |  i i= i> ƒ  |  i i? ƒ  |  i i= i@ iA | ƒ d S(   sQ  Open the file pointed to by <path>. 
        
        If <start_page> is not set we set the current
        page to 1 (first page), if it is set we set the current page to the
        value of <start_page>. If <start_page> is non-positive it means the
        last image.

        Return True if the file is successfully loaded.
        s"   Could not open %s: Is a directory.s    Could not open %s: No such file.s%   Could not open %s: Permission denied.s%   Could not open %s: Unknown file type.i    i   i   Niÿÿÿÿs   No images in '%s'(B   R   t   patht   isdirR   t	   statusbart   set_messaget   _R   t   isfilet   accesst   R_OKR   t   archive_mime_typeR   R   t   is_image_filet   cursor_handlert   set_cursor_typet   cursort   WAITR   t
   close_fileR!   t   events_pendingt   main_iterationR	   R   t   setupR   R   t	   get_filest   filterR   t   searcht   alphanumeric_sortt   joinR   t   _comment_reR   t   zipR   R,   R1   R   R/   R2   t	   enumeratet   removet   insertt	   set_filest   extractt   dirnamet   listdirt   appendt   sortt   localet   strcollR&   t   basenameRN   t   NORMALt
   ui_managert   set_sensitivitiest   new_paget   recentt   add(   R   RQ   t
   start_paget   filest   image_filest   _[1]t   ft   comment_filest   _[2]t   namet	   full_patht   deptht   priority_orderingt   _[3]t   pt   it   fpath(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt	   open_fileÄ   s–    
 	
66  	@  
	c         G   sª   t  |  _ d |  _ g  |  _ d |  _ g  |  _ |  i i ƒ  |  i	 i ƒ  |  i
 i ƒ  |  i
 i i ƒ  |  i i ƒ  t |  i ƒ t i d d d t i ƒ |  _ t i ƒ  d S(   s5   Run tasks for "closing" the currently opened file(s).R   s   comix.R   N(   R   R   R   R	   R   R   R   R   t   clearR   R   Rw   Rx   R   t   stopt   thread_deleteR   R
   R   R   R   R6   R7   (   R   t   args(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR_   )  s    					c         C   s   |  i  i ƒ  t |  i ƒ d S(   s3   Run clean-up tasks. Should be called prior to exit.N(   R   R   RŽ   R   (   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   cleanup9  s    c         C   sH   |  i  i ƒ  o |  i ƒ  d |  i ƒ  j Sn |  i ƒ  |  i ƒ  j Sd S(   s    Return True if at the last page.i   N(   R   R(   R>   R1   (   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   is_last_page>  s    c         C   s   t  |  i ƒ S(   s<   Return the number of pages in the current archive/directory.(   t   lenR   (   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR1   E  s    c         C   s   |  i  d S(   s   Return the current page number.i   (   R   (   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR>   I  s    c         C   s   t  |  i ƒ S(   s5   Return the number of comments in the current archive.(   R’   R   (   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_number_of_commentsM  s    c         C   sa   |  i  | ƒ y4 t |  i | d d ƒ } | i ƒ  } | i ƒ  Wn t j
 o d } n X| S(   s[   Return the text in comment <num> or None if comment <num> is not
        readable.
        i   t   rbN(   t   _wait_on_commentt   openR   t   readt   closeR$   R   (   R   t   numt   fdt   text(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_comment_textQ  s    c         C   s   |  i  | d S(   s%   Return the filename of comment <num>.i   (   R   (   R   R™   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_comment_name^  s    c         C   s3   d i  t d ƒ } t i d | t i ƒ |  _ d S(   si   Update the regular expression used to filter out comments in
        archives by their filename.
        t   |s   comment extensionss
   \.(%s)\s*$N(   Rg   R    R   R   R   Rh   (   R   t   exts(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR   b  s    c         C   sp   |  i  d j	 o t i i |  i ƒ } n; t i i t i i |  i ƒ t i i |  i |  i ƒ ƒ } t	 i
 | ƒ S(   sj   Return a string with the name of the currently viewed file that is
        suitable for printing.
        N(   R   R   R   RQ   Ru   R	   Rg   R   R   t   encodingt
   to_unicode(   R   Rƒ   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_pretty_current_filenamei  s
    c         C   s.   | d j o |  i |  i Sn |  i | d S(   sj   Return the full path to the image file for <page>, or the current
        page if <page> is None.
        i   N(   R   R   R   (   R   R;   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_path_to_paget  s    c         C   s   |  i  S(   s_   Return the full path to the current base (path to archive or
        image directory.)
        (   R	   (   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_path_to_base|  s    c         C   s,   |  i  d j	 o |  i ƒ  Sn |  i |  i S(   sŸ   Return the "real" path to the currently viewed file, i.e. the
        full path to the archive or the full path to the currently
        viewed image.
        N(   R   R   R¤   R   R   (   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_real_path‚  s    c         C   sO   |  i  | ƒ t i i |  i | ƒ ƒ } | d j	 o | d | d f Sn d S(   s€   Return a tuple (width, height) with the size of <page>. If <page>
        is None, return the size of the current page.
        i   i   i    N(   i    i    (   R    R!   R"   t   pixbuf_get_file_infoR£   R   (   R   R;   t   info(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_size‹  s
    c         C   sU   |  i  | ƒ t i i |  i | ƒ ƒ } | d j	 o | d d i ƒ  Sn t d ƒ S(   sŒ   Return a string with the name of the mime type of <page>. If
        <page> is None, return the mime type name of the current page.
        i    Rƒ   s   Unknown filetypeN(   R    R!   R"   R¦   R£   R   t   upperRU   (   R   R;   R§   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   get_mime_name•  s
    i€   c         C   sº   |  i  | ƒ |  i | ƒ } | d j o# | d j o t i | | ƒ } n9 y t i i | | | ƒ } Wn t j
 o d } n X| d j o |  i	 ƒ  } n t
 i | | | ƒ } | S(   s  Return a thumbnail pixbuf of <page> that fit in a box with
        dimensions <width>x<height>. Return a thumbnail for the current
        page if <page> is None.

        If <create> is True, and <width>x<height> <= 128x128, the
        thumbnail is also stored on disk.
        i€   N(   R    R£   t	   thumbnailt   get_thumbnailR!   R"   t   pixbuf_new_from_file_at_sizeR$   R   R%   t   imaget   fit_in_rectangle(   R   R;   t   widtht   heightt   createRQ   t   thumb(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR¬   Ÿ  s    c         C   sI   |  i  | ƒ y t i |  i | ƒ ƒ } Wn t j
 o d } n X| S(   sÛ   Return a stat object, as used by the stat module, for <page>.
        If <page> is None, return a stat object for the current page.
        Return None if the stat object can not be produced (e.g. broken file).
        N(   R    R   t   statR£   R$   R   (   R   R;   t   stats(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt	   get_stats¶  s    c         C   s'   |  i  i ƒ  o t d o d Sn d S(   s4   Return the step length for switching pages forwards.s   double step in double page modei   i   (   R   R(   R    (   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR.   Â  s    c         C   s$   |  i  i o t d o d Sn d S(   s5   Return the step length for switching pages backwards.s   double step in double page modei   i   (   R   R,   R    (   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR-   É  s    c         C   sÍ   t  i i |  i ƒ } t  i | ƒ } | i t i ƒ y" | i t  i i	 |  i ƒ ƒ } Wn t
 j
 o d Sn XxV | | d D]F } t  i i | | ƒ } t i | ƒ d j	 o |  i | ƒ d Sq q Wd S(   s”   Open the archive that comes directly after the currently loaded
        archive in that archive's directory listing, sorted alphabetically.
        Ni   (   R   RQ   Ro   R	   Rp   Rr   Rs   Rt   R&   Ru   t
   ValueErrorRg   R   RY   R   R‹   (   R   t   arch_dirR}   t   current_indexR€   RQ   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR?   Ð  s    "	 c         C   sÒ   t  i i |  i ƒ } t  i | ƒ } | i t i ƒ y" | i t  i i	 |  i ƒ ƒ } Wn t
 j
 o d Sn Xx[ t | |  ƒ D]I } t  i i | | ƒ } t i | ƒ d j	 o |  i | d ƒ d Sq q Wd S(   s•   Open the archive that comes directly before the currently loaded
        archive in that archive's directory listing, sorted alphabetically.
        Ni    (   R   RQ   Ro   R	   Rp   Rr   Rs   Rt   R&   Ru   R·   t   reversedRg   R   RY   R   R‹   (   R   R¸   R}   R¹   R€   RQ   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyRC   á  s    "	 c         C   s   |  i  i t i t i ƒ S(   s1   Return a pixbuf depicting a missing/broken image.(   R   t   render_iconR!   t   STOCK_MISSING_IMAGEt   ICON_SIZE_DIALOG(   R   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR%   ò  s    c         C   s    |  i  | ƒ } |  i | ƒ d S(   sw   Block the running (main) thread until the file corresponding to
        image <page> has been fully extracted.
        N(   R£   t   _wait_on_file(   R   R;   RQ   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR    ÷  s    c         C   s"   |  i  | d } |  i | ƒ d S(   sx   Block the running (main) thread until the file corresponding to
        comment <num> has been fully extracted.
        i   N(   R   R¾   (   R   R™   RQ   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR•   þ  s    c         C   sk   |  i  d j o d Sn |  i | } |  i i ƒ  x% |  i i | ƒ p |  i i ƒ  q5 W|  i i ƒ  d S(   s   Block the running (main) thread if the file <path> is from an
        archive and has not yet been extracted. Return when the file is
        ready.
        N(	   R   R   R   R   t   acquireR   t   is_readyt   waitt   release(   R   RQ   Rƒ   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR¾     s     N()   t   __name__t
   __module__t   __doc__R   R'   R   R*   R=   RB   RF   RG   RI   RK   RD   R‹   R_   R   R‘   R1   R>   R“   Rœ   R   R   R¢   R   R£   R¤   R¥   R¨   Rª   R¬   R¶   R.   R-   R?   RC   R%   R    R•   R¾   (    (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyR      sJ   						
		
	e													

							c         C   s9   t  i d t i d |  f ƒ } | i t ƒ | i ƒ  d S(   s   Start a threaded removal of the directory tree rooted at <path>.
    This is to avoid long blockings when removing large temporary dirs.
    t   targetR   N(   t	   threadingt   Threadt   shutilt   rmtreet	   setDaemonR   t   start(   RQ   t
   del_thread(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyRŽ     s    c         C   s7   t  i i |  ƒ o  t i i |  ƒ } | d j	 Sn t S(   sL   Return True if the file at <path> is an image file recognized by PyGTK.
    N(   R   RQ   RV   R!   R"   R¦   R   R   (   RQ   R§   (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyRZ     s    c            s8   d „  ‰ t  i d ƒ ‰  |  i d ‡ ‡  f d †  ƒ d S(   s–   Do an in-place alphanumeric sort of the strings in <filenames>,
    such that for an example "1.jpg", "2.jpg", "10.jpg" is a sorted
    ordering.
    c         S   s%   |  i  ƒ  o t |  ƒ Sn |  i ƒ  S(   N(   t   isdigitt   intt   lower(   t   s(    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   _format_substring)  s    s   \d+|\D+t   keyc            s   t  ˆ  ˆ i |  ƒ ƒ S(    (   t   mapt   findall(   RÑ   (   RÒ   t   rec(    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyt   <lambda>/  s    N(   R   R   Rr   (   t	   filenames(    (   RÖ   RÒ   sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pyRf   $  s    	(   RÅ   R   R4   RÉ   Rs   R
   R6   RÇ   R   R!   R   R]   R    R®   t   preferencesR    R«   R   RŽ   RZ   Rf   (    (    (    sK   /home/sork/Pontus/Programmering/Python/Comix/comix-4.0.4/src/filehandler.pys   <module>   s*   ÿ ý			