2009-03-02 11 views

risposta

1

L'unico altro uno che conosco è un fork di pytc ma sembra che hanno fatto solo un po 'di refactoring e la documentazione di lavoro, quindi probabilmente ancora solo hash e b-tree supporto:

tc

Se questo non funziona probabilmente sei sfortunato. Penso che tutti gli attacchi tiranno usano solo il motore di hash.

+0

Ho visto tc e non hanno upport anche per Table. Penso che solo i binding Perl e Ruby abbiano il pieno supporto per tutti i binding. – Bharani

4

ero in contatto con l'autore di tc e mi ha detto quanto segue:

Attualmente, la tabella (TDB) del driver esistono nel master branch (unit tests) e il fdb driver è fase di sviluppo in un ramo separato.

Ho provato il driver del tavolo per un piccolo test con successo, sto pianificando di provarlo presto su tavoli più grandi.

2

ho tenuto sotto controllo (e talvolta migliorare) i vari binding Python per TC per più di un anno, quindi ecco un aggiornamento elenco dei migliori binding corrispondenti ai tuoi criteri.

  • Per Tokyo Gabinetto, tra cui Tiranno: tokyo-python
  • Per Tokyo Tyrant (puro-Python): pyrant

ci sono molte alternative stantii e/o incompleti.

+0

A proposito, tutto il lavoro recente è fatto nella mia forchetta di Pyrant: http://bitbucket.org/neithere/pyrant –

2

mio ramo della pytc chiamato "TC" hanno il supporto per le tabelle (TDB) http://github.com/rsms/tc

Esempio di base:

>>> import tc 
>>> db = tc.TDB("slab.tdb", tc.TDBOWRITER | tc.TDBOCREAT) 
>>> db.put('some key', {'name': 'John Doe', 'age': '45', 'city': u'Internets'}) 
>>> rec = db.get('some key') 
>>> print rec['name'] 
John Doe 

Performing query:

>>> import tc 
>>> db = tc.TDB("slab.tdb", tc.TDBOWRITER | tc.TDBOCREAT) 
>>> db.put('torgny', {'name': 'Torgny Korv', 'age': '31', 'colors': 'red,blue,green'}) 
>>> db.put('rosa', {'name': 'Rosa Flying', 'age': '29', 'colors': 'pink,blue,green'}) 
>>> db.put('jdoe', {'name': 'John Doe', 'age': '45', 'colors': 'red,green,orange'}) 
>>> q = db.query() 
>>> q.keys() 
['torgny', 'rosa', 'jdoe'] 
>>> q.filter('age', tc.TDBQCNUMGE, '30') 
>>> q.keys() 
['torgny', 'jdoe'] 
>>> q.filter('colors', tc.TDBQCSTROR, 'blue') 
>>> q.keys() 
['torgny'] 
>>> # new query: 
>>> q = db.query() 
>>> q.order('name') # Ascending order by default 
>>> q.keys() 
['jdoe', 'rosa', 'torgny'] 
>>> q.order(type=tc.TDBQONUMASC, column='age') 
>>> q.keys() 
['jdoe', 'torgny', 'rosa'] 

Più esempi nel TDB unit test: http://github.com/rsms/tc/blob/master/lib/tc/test/tdb.py

Problemi correlati