py-tcdb

Een Python Wrapper voor Tokyo Cabinet-database met behulp van CTYPES
Download nu

py-tcdb Rangschikking & Samenvatting

Advertentie

  • Rating:
  • Vergunning:
  • LGPL
  • Prijs:
  • FREE
  • Naam uitgever:
  • Alberto Planas
  • Uitgever website:
  • http://code.google.com/u/aplanas/

py-tcdb Tags


py-tcdb Beschrijving

Een Python Wrapper voor Tokyo Cabinet-database met behulp van Cypertes Tokyo Cabinet is een moderne implementatie van DBM-database. Mikio Hirabayashi (de auteur van Tokyo Cabinet) Beschrijf het project als: Tokyo Cabinet is een bibliotheek met routines voor het beheren van een database. De database is een eenvoudig gegevensbestand met records, elk is een paar sleutel en een waarde. Elke sleutel en waarde is seriële bytes met variabele lengte. Zowel binaire gegevens- en tekenreeks kunnen worden gebruikt als een sleutel en een waarde. Er is geen concept van gegevenstabellen of gegevenstypen. Records worden georganiseerd in Hash Table, B + Tree of Array.py-TCDB is een Python-interface naar de bibliotheek met behulp van de CTYPES Python-module en biedt toegang tot TC-functies met twee niveaus: een laag niveau en een hoog niveau. Low Level Apiwe kan interface met TC-bibliotheek met direct de TC-module. Deze module verklaart alle functies en gegevenstypen. Als we bijvoorbeeld een HDB (HASH-database-object) willen maken, kunnen we schrijven: van TCDB Import TC van TCDB Import HDB zo niet tc.hdb_open (DB, 'example.tch', HDB.OWRITER | HDB.CREATE): Print tc.hdb_errmsg (tc.hdb_ecode (DB)) Zo niet tc.hdb_put2 (dB, 'sleutel', 'waarde'): print tc.hdb_ermmsg (tc.hdb_ecode (dB)) v = tc.hdb_get2 (dB, ' Sleutel ') Afdrukken' Waarde: ', V.Valuethe Low Level API werkt met Cypertypen (zoals CYCHAR_P of C_INT). Hoogste niveau APifor Elke soort databasetype toegestaan in TC, we hebben een Python-klasse die alle functionaliteit inkapselt. Voor elke klas proberen we de BSDDB Python-module-interface te emuleren. Deze interface lijkt sterk op een dict-gegevenstype met persistentie. We proberen ook deze API te verbeteren. We kunnen bijvoorbeeld met transacties werken met behulp van het met Python-trefwoord. Hash databasewe kan de HDB-klasse gebruiken om TC HASH-databases te maken en te beheren. Deze klasse gedraagt zich als een woordenboekobject, maar we kunnen zetten en methoden krijgen om meer controle te hebben over de opgeslagen gegevens. In een HASH-database kunnen we geserialiseerde Python-objecten opslaan als een sleutel of als een waarde of onbewerkte gegevens (die kunnen worden opgehaald uit de database met C, LUA, PERL of JAVA). Van TCDB import HDB # De open methode kan andere params als cache of # automatische defragmentatie steil wijzigen. db = hdb.hdb () db.open ('example.tch') # Opgeheven object in de database DB = 10 Assert Type (DB ) == INT DB = 1 + 1J Assert Type (DB ) == Complex DB = 'Tekst' ASSERT Type (dB ) == Str # als we gebruiken / krijgen, wij kan onbewerkte gegevens # equivel opslaan. DB.PUT_INT ('sleutel', 10, as_raw = true) db.put ('sleutel', 10, raw_key = true, raw_value = true) # equivel. DB.GET_INT ('KEY', AS_RAW = TRUE) gebruiken Assert DB.Get ('Key', Raw_Key = True, Value_Type = Int) == 10 # We kunnen records verwijderen met 'Del' trefwoord # of uitmethoden DB. Uit ('Key', as_raw = true) # We kunnen over de records herhalen. Voor sleutel, waarde in db.iterritems (): afdruktoets, ':', waarde # de 'met' sleutelwerk werkt zoals verwacht met db: db = 'Ten' ASSERT DB == 'Ten' raise Exceptie # Omdat we de transactie afbreken, hebben we niet # het nieuwe recordprobeer: DB behalve KeyError: PASSB + Tree DatabaseWe kan de klasse BDB gebruiken om B + Tree TC-databases te maken en te beheren. De API lijkt sterk op de HDB. Een ding dat we kunnen doen met BDB-klasse is dat we toegang hebben tot het gebruik van een cursor. Met bereik kunnen we op een efficiënte manier toegang krijgen tot een set bestelde toetsen en met Cursor-object kunnen we navigeren via de database.Fixed-length databaseFDB-klasse kan een array-database met vaste lengte maken en beheren. In dit soort database kunnen we alleen int sleutels gebruiken, zoals in een dynamische array.table databasetokyo-kast kan een variatie van een HASH-database gebruiken om tafelletjes voorwerp op te slaan. In Python kunnen we een DICT-object gebruiken om een enkele tafel te vertegenwoordigen. Met THD kunnen we deze tabellen opslaan en vragen maken met queryobject. Van TCDB import TDB # De open methode kan andere params als cache of # automatische defragmentatie steil wijzigen. db = tdb.tdb () db.open ('example.tct') # Store direct een nieuwe tafel Alice = {'user': 'Alice', 'Name': 'Alice', 'Leeftijd': 23} DB = Alice Assert DB == Alice Assert Type (DB ) == int # Als we gebruiken / krijgen, kunnen we onbewerkte gegevens DB.Put opslaan ('PK', Alice, Raw_Key = True, Raw_Cols = True) # Equiv. DB.Get_Col_int ('PK', 'Age', Raw_Key = True) Schema = {'User': Str, 'Name': Str, 'Leeftijd': int} Assert db.get ('PK', Raw_Key = TRUE, schema = schema) == 23 # We kunnen records verwijderen met 'Del' trefwoord # of uitmethoden Del dB Abstracte databasefor Volledigheid, we nemen de ADB-abstracte interface op voor toegang tot Hash, B + Boom, vaste lengte en tafeldatabase-objecten. Vereisten: · Python


py-tcdb Gerelateerde software

SY85TOOLS

Verzameling van hulpmiddelen om MIDI-sysex en andere bestanden voor de Yamaha SY85 aan te pakken ...

735

Downloaden