~bertrand-nouvel/pycvf-indexes/trunk

« back to all changes in this revision

Viewing changes to indexes/metaindex.py

  • Committer: tranx
  • Date: 2010-10-01 16:51:43 UTC
  • Revision ID: tranx@havane-20101001165143-wkahluadtbueyqsu
initial commit

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/env python
 
2
# -*- coding: utf-8 -*-
 
3
## ##########################################################################################################
 
4
## 
 
5
## This file is released under GNU Public License v3
 
6
## See LICENSE File at the top the pycvf tree.
 
7
##
 
8
## Author : Bertrand NOUVEL / CNRS (2009)
 
9
##
 
10
##
 
11
##
 
12
## Revision FILE: $Id$
 
13
##
 
14
## ###########################################################################################################
 
15
## copyright $Copyright$
 
16
## @version $Revision$
 
17
## @lastrevision $Date$
 
18
## @modifiedby $LastChangedBy$
 
19
## @lastmodified $LastChangedDate$
 
20
#############################################################################################################
 
21
 
 
22
 
 
23
# -*- coding: utf-8 -*-
 
24
class BinBasedIndex():
 
25
    def __init__(self,shape,dp1,idxfact):
 
26
        self.dp1=dp1
 
27
        self.idx=numpy.zeros(dtype="object")
 
28
        for p in numpy.ndindex():
 
29
           self.idx[p]=idxfact(p)
 
30
    def add(self,key,value):
 
31
        self.idx[self.dp1[key]].add(key,value )
 
32
    def add_many(self,keys,values):
 
33
        for k in range(len(keys)):
 
34
           self.add(keyx[k],values[k])
 
35
    def __getitem__(self,key):
 
36
        return self.idx[self.dp1[key]][key]
 
37
    def getitem(self,key,*args,**xargs):
 
38
        return self.idx[self.dp1[key]].getitem(key)
 
39
    def __getball__(self,key,radius):
 
40
        """ We can do better here !!! """
 
41
        return self.idx[self.dp1[key]].__getball__(key,radius)
 
42
    def getball(self,key,*args,**xargs):
 
43
        """ We can do better here !!! """
 
44
        return self.idx[self.dp1[key]].getball(key,radius)
 
45
 
 
46