
    |vg                     <    d dl Z d dlZd dlmZ d dlZ G d d      Zy)    N)Folderc                   N    e 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y)Ishuszbasic functions for issuesc                 N    || _         || _        t        |      | _        i | _        y )N)e
do_verboser   foldercounter)selferimpr   s      !/home/ernad/ernad/python/ishus.py__init__zIshus.__init__   s%    $Um    c                     | j                   j                  d   }| j                  j                  |      }t	        |      d   }||   }|S )Nissuesr   dirsr	   lastslist)r   issues_fudiissues_dictlast_issuedate
issue_fufis        r   	last_fufizIshus.last_fufi   sG    ffkk(+kk''4k*2. 0
r   c                 x    | j                   j                  d   }| j                  j                  |      }||   }|S )Nr   )r   r   r	   r   )r   	issuedater   r   r   s        r   fufiz
Ishus.fufi   s8    ffkk(+kk''4 +
r   c                     | j                   j                  d   }| j                  j                  |      }t	        |      d   }|S )z5this function looks wrong with the addition of futurer   r   r   )r   r   r   r   s       r   r   zIshus.last_issuedate    =    ffkk(+kk''4k*2.r   c                     | j                   j                  d   }| j                  j                  |      }t	        |      d   }|S )zsecond to lastr   r   )r   r   r   sekl_issuedates       r   r#   zIshus.sekl_issuedate'   r    r   c                 |    d}| j                   j                  D ]  }|dz  }|| j                  |<    | j                  S )Nr      )r   
issuedatesr
   )r   count_issuesr   s      r   build_counterzIshus.build_counter.   s?    **IAL&2DLL# + ||r   c                 Z    d}| j                   j                  D ]  }||k(  r|c S |dz  } y)z&position of an issuedate in issuedatesr   r%   N)r   r&   )r   the_issuedatecountr   s       r   posz	Ishus.pos5   s6    **IM)QJE + r   c                    | j                  |      }||z   dk  r4t        dt        j                         | j                  j
                  d   S ||z   t        | j                  j
                        kD  r4t        dt        j                         | j                  j
                  d   S 	 | j                  j
                  ||z      }|S # t        $ r d}Y |S w xY w)z*shift always goes back for positiv numbersr   z$issues: returning earliest issuedatefiler   z issues: returning last issuedateN)r,   printsysstderrr   r&   len
IndexError)r   r   shiftr,   targets        r   r5   zIshus.shift>   s    hhy!;?8zz#66$$R((;TVV..//4zz#66$$Q''	VV&&sU{3F   	F	s   (C CCc                 x   d}d}| j                   j                  D ]  }|| j                   j                  vr nt| j                   j                  d   dz   |z   dz   }t        j
                  j                  |      st        d       |dz  }t        j                  |      }|D ]  }|dz  }	  t        ||z        }|S )Nr   dexis/z.json.gzzishus does not see {dexis_fufi}r%   )r   r&   active_issuedatesr   ospathisfiler0   filerloadint)r   count_dexis_fufiscount_papidsr   
dexis_fufi
dexis_datapapidaverages           r   average_sizezIshus.average_sizeO   s    **I 8 88W-3i?*LJ77>>*-78"J/J#! $ + l%667r   c                    d| j                   j                  vry||k  rt        d      t        | j                   j                  d         }|| j                   j                  vrt        d| t        j                         y|| j                  vr)| j                          || j                  vrt        d      | j                  |   | j                  |   z
  }||k  ryy)z@if ref_issuedate is the current, use e.active_issuedates insteadtraspiTz*ref_issuedate must be later than issuedatezishus does not know r.   Fzbuilding the counter failed)
r   conf	Exceptionr@   r&   r0   r1   r2   r
   r(   )r   r   ref_issuedaterI   diffs        r   is_it_activezIshus.is_it_active_   s    466;;&9$HIITVV[[*+DFF---(4zz#DLL( , =>>||I&m)DD6>r   N)F)__name__
__module____qualname____doc__r   r   r   r   r#   r(   r,   r5   rG   rN    r   r   r   r      s7    $" r   r   )r;   r1   r	   r   r>   r   rS   r   r   <module>rT      s    	 
  j jr   