我正在尝试CodernityDB中的一个项目。我运行了minitwit示例,但尝试了一些示例代码在我的项目中似乎没有工作。我似乎错过了什么?似乎无法使CodernityDB索引工作
from CodernityDB.database_thread_safe import ThreadSafeDatabase
from CodernityDB.hash_index import HashIndex
import uuid
class PumpIndex(HashIndex):
def __init__(self, *args, **kwargs):
kwargs['key_format'] = '32s'
super(PumpIndex, self).__init__(*args, **kwargs)
def make_key_value(self, data):
if data['t'] == 'pump':
id = data['id']
# if not isinstance(login, basestring):
# login = str(login)
return id, {'name': data['name']}
def make_key(self, key):
return key
def run_all(self, db):
it = db.get_many(self.name, with_doc=True)
for curr in it:
curr['id'] = curr['doc']['id']
curr['name'] = curr['doc']['name']
curr['hardware_type'] = curr['doc']['hardware_type']
curr['onboard_pump_id'] = curr['doc']['onboard_pump_id']
curr['pressure_sensor_id'] = curr['doc']['pressure_sensor_id']
curr['pressure_min'] = curr['doc']['pressure_min']
curr['pressure_max'] = curr['doc']['pressure_max']
curr['ignore_errors'] = curr['doc']['ignore_errors']
curr['simultaneous_zones'] = curr['doc']['simultaneous_zones']
del curr['doc']
yield curr
db = ThreadSafeDatabase('~/Desktop/test')
if db.exists():
db.open()
db.reindex()
else:
db.create()
db.add_index(PumpIndex(db.path, 'pump'))
for x in range(0,10):
id = uuid.uuid4().hex
name = 'Test %d' % x
db.insert(dict(
t='pump',
id=id,
name=name,
hardware_type="onboard",
onboard_pump_id=None,
pressure_sensor_id=None,
pressure_min=None,
pressure_max=None,
ignore_errors=None,
simultaneous_zones=None
))
print int(db.count(db.get_many, 'pump'))
print int(len(list(db.run('pump', 'all'))))
控制台输出我得到:
{'status': 'o', 'start': 100, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
{'status': 'o', 'start': 304, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
{'status': 'o', 'start': 508, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
{'status': 'o', 'start': 712, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
{'status': 'o', 'start': 916, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
{'status': 'o', 'start': 1120, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
{'status': 'o', 'start': 1324, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
{'status': 'o', 'start': 1528, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
{'status': 'o', 'start': 1732, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
{'status': 'o', 'start': 1936, 'self': <CodernityDB.storage.IU_Storage object at 0x10bb1ed50>, 'size': 204}
0
0
另一个问题,是有可能得不到Codernity的状态输出?它对开发很有用,但对生产没有太大的帮助。
您是否发现如何删除控制台打印输出? – Glycerine