示例#1
0
	def _updatedirstats(self, directory, directorystring, size, files, subdirs, extensions):
		iter = self.sharelist.get_iter_root()
		while iter is not None:
			if directory == self.sharelist.get_value(iter, 5):
				self.sharelist.insert_after(iter, [recode(directory), HumanSize(size), files, subdirs, extensions, directory])
				self.sharelist.remove(iter)
				return
			iter = self.sharelist.iter_next(iter)
示例#2
0
	def addshareddir(self, directory):
		iter = self.sharelist.get_iter_root()
		while iter is not None:
			if directory == self.sharelist.get_value(iter, 5):
				return
			iter = self.sharelist.iter_next(iter)
		self.sharelist.append([recode(directory), "", "", "", _("Counting files..."), directory])
		thread.start_new_thread(self._addsharedir, (directory,))
示例#3
0
	def _addsharedir(self, directory):
		subdirs, files, size, extensions = dirstats(directory)
		exts = []
		for ext, count in extensions.iteritems():
			exts.append((count, ext))
		exts.sort(reverse=True)
		extstring = ", ".join(["%s %s" % (count, ext) for count, ext in exts[:5]])
		if len(exts) > 5:
			extstring += ", ..."
		gobject.idle_add(self._updatedirstats, directory, recode(directory), HumanSize(size), files, subdirs, extstring)
示例#4
0
文件: Patrimoine.py 项目: AnneDy/Til
        def _work_on_workstate(ind):
            '''
            On code en s'inspirant de destinie et de PENSIPP ici. 
            Il faudrait voir à modifier pour avoir des temps partiel
            '''

            # inactif   <-  1  # chomeur   <-  2   # non_cadre <-  3  # cadre     <-  4
            # fonct_a   <-  5  # fonct_s   <-  6   # indep     <-  7  # avpf      <-  8
            # preret    <-  9
            #on travaille avec situa puis avec statut puis avec classif
            list_situa_work = [ [[1,2],3], 
                                  [[4],2], 
                                  [[5,6,7],1], 
                                  [[1,2],3] ]
            recode(ind,'situa','workstate', list_situa_work ,'isin')
#           Note:  ind['workstate'][ ind['situa']==3] =  0 : etudiant -> NA
            #precision inactif
            ind['workstate'][ind['preret']==1]  = 9
            # precision AVPF
            #TODO: "vous pouver bénéficier de l'AVPF si vous n'exercer aucune activité 
            # professionnelle (ou seulement à temps partiel) et avez 
            # la charge d'une personne handicapée (enfant de moins de 20 ans ou adulte).
            # Pour l'instant, on fait ça parce que ça colle avec PensIPP mais il faudrait faire mieux.
            #en particulier c'est de la législation l'avpf finalement.
            cond =  (men['paje']==1) | (men['complfam']==1) | (men['allocpar']==1) | (men['asf']==1)
            avpf = men.ix[cond,:].index.values + 1 
            ind['workstate'][(ind['men'].isin(avpf)) & (ind['workstate'].isin([1,2]))] = 8
            # public, privé, indépendant
            ind['workstate'][ ind['statut'].isin([1,2])] = 5
            ind['workstate'][ ind['statut']==7] =  7
            # cadre, non cadre
            ind['workstate'][ (ind['classif']==6)  & (ind['workstate']==5)] = 6
            ind['workstate'][ (ind['classif']==7)  & (ind['workstate']==3)] = 4
            #retraite
            ind['workstate'][ (ind['anais'] < 2009-64)  & (ind['workstate']==1)] = 10
            return ind['workstate']
示例#5
0
    def _updatedirstats(self, directory, size, files, subdirs, extensions):

        iter = self.sharelist.get_iter_first()

        while iter is not None:

            if directory[1] == self.sharelist.get_value(iter, 6):

                self.sharelist.insert_after(iter, [
                    directory[0],
                    recode(directory[1]),
                    HumanSize(size), files, subdirs, extensions, directory[1]
                ])

                self.sharelist.remove(iter)
                return

            iter = self.sharelist.iter_next(iter)
示例#6
0
    def addshareddir(self, directory):

        iter = self.sharelist.get_iter_first()

        while iter is not None:

            if directory[1] == self.sharelist.get_value(iter, 6):
                return

            iter = self.sharelist.iter_next(iter)

        self.sharelist.append([
            directory[0],
            recode(directory[1]), "", "", "",
            _("Counting files..."), directory[1]
        ])

        thread.start_new_thread(self._addsharedir, (directory, ))
    def _updatedirstats(self, directory, size, files, subdirs, extensions):

        iter = self.sharelist.get_iter_first()

        while iter is not None:

            if directory[1] == self.sharelist.get_value(iter, 6):

                self.sharelist.insert_after(iter, [
                    directory[0],
                    recode(directory[1]),
                    HumanSize(size),
                    files,
                    subdirs,
                    extensions,
                    directory[1]
                ])

                self.sharelist.remove(iter)
                return

            iter = self.sharelist.iter_next(iter)
示例#8
0
文件: Patrimoine.py 项目: AnneDy/Til
    def matching_par_enf(self):
        '''
        Matching des parents et des enfants hors du domicile
        '''
        
        ind = self.ind
        par_look_enf = self.par_look_enf

        ## info sur les parents hors du domicile des enfants
        cond_enf_look_par = (ind['per1e']==2) | (ind['mer1e']==2)
        enf_look_par = ind[cond_enf_look_par]
        # Remarque: avant on mettait à zéro les valeurs quand on ne cherche pas le parent, maintenant
        # on part du principe qu'on fait les choses assez minutieusement                                           
        
        recode(enf_look_par, 'dip14', 'dip6', [[30,5], [41,4], [43,3], [50,2], [60,1]] , method='geq')
        recode(enf_look_par, 'classif', 'classif2', [ [[1,2,3],4], [[4,5],2], [[6,7],1], [[8,9], 3], [[10],0]], method='isin')
        enf_look_par['classif'] = enf_look_par['classif2']

        ## nb d'enfant
        nb_enf_mere_dom = ind.groupby('mere').size()
        nb_enf_pere_dom = ind.groupby('pere').size()
        nb_enf_mere_hdom = par_look_enf.groupby('mere').size()
        nb_enf_pere_hdom = par_look_enf.groupby('pere').size()
        enf_tot = pd.concat([nb_enf_mere_dom, nb_enf_pere_dom, nb_enf_mere_hdom, nb_enf_pere_hdom], axis=1)
        enf_tot = enf_tot.sum(axis=1)
        #comme enf_tot a le bon index on fait
        enf_look_par['nb_enf'] = enf_tot
        enf_look_par['nb_enf'] = enf_look_par['nb_enf'].fillna(0)
        #Note: Attention le score ne peut pas avoir n'importe quelle forme, il faut des espaces devant les mots, à la limite une parenthèse
        var_match = ['jepnais','situa','nb_enf','anais','classif','couple','dip6', 'jemnais','jemprof','sexe']
        #TODO: gerer les valeurs nulles, pour l'instant c'est très moche
        #TODO: avoir une bonne distance
        score = "- 1 * (other.anais - anais) **2 - 1.0 * (other.situa - situa) **2 - 0.5 * (other.sexe - sexe) **2 - 1.0 * (other.dip6 - dip6) \
         **2 - 1.0 * (other.nb_enf - nb_enf) **2"

        # etape1 : deux parents vivants
        cond1_enf = (enf_look_par['per1e'] == 2) & (enf_look_par['mer1e'] == 2)
        cond1_par = notnull(par_look_enf['pere']) & notnull(par_look_enf['mere'])
        # TODO: si on fait les modif de variables plus tôt, on peut mettre directement par_look_enf1
        
        #à cause du append plus haut, on prend en fait ici les premiers de par_look_enf
        match1 = Matching(enf_look_par.ix[cond1_enf, var_match], 
                          par_look_enf.ix[cond1_par, var_match], score)
        parent_found = match1.evaluate(orderby=None, method='cells')
        ind.ix[parent_found.index, ['pere','mere']] = par_look_enf.ix[parent_found, ['pere','mere']]
         
        enf_look_par.ix[parent_found.index, ['pere','mere']] = par_look_enf.ix[parent_found, ['pere','mere']]
        cond2_enf = (~notnull(enf_look_par['mere'])) & (enf_look_par['mer1e'] == 2)
        cond2_par = ~par_look_enf.index.isin(parent_found) & notnull(par_look_enf['mere'])
        match2 = Matching(enf_look_par.ix[cond2_enf, var_match], 
                          par_look_enf.ix[cond2_par, var_match], score)
        parent_found2 = match2.evaluate(orderby=None, method='cells')
        ind.ix[parent_found2.index, ['mere']] = par_look_enf.ix[parent_found2, ['mere']]        
            
        enf_look_par.ix[parent_found2.index, ['pere','mere']] = par_look_enf.ix[parent_found2, ['pere','mere']]
        cond3_enf = (~notnull(enf_look_par['pere'])) & (enf_look_par['per1e'] == 2)
        cond3_par = ~par_look_enf.index.isin(parent_found) & notnull(par_look_enf['pere'])
        # TODO: changer le score pour avoir un lien entre pere et mere plus évident
        match3 = Matching(enf_look_par.ix[cond3_enf, var_match], 
                          par_look_enf.ix[cond3_par, var_match], score)
        parent_found3 = match3.evaluate(orderby=None, method='cells')
        ind.ix[parent_found3.index, ['pere']] = par_look_enf.ix[parent_found3, ['pere']]               
        
        self.ind = ind
        self.drop_variable({'ind':['enf','per1e','mer1e','gpar'] + ['jepnais','jemnais','jemprof']})