当前位置: 首页>>代码示例>>Python>>正文


Python Storage.add方法代码示例

本文整理汇总了Python中storage.Storage.add方法的典型用法代码示例。如果您正苦于以下问题:Python Storage.add方法的具体用法?Python Storage.add怎么用?Python Storage.add使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在storage.Storage的用法示例。


在下文中一共展示了Storage.add方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: add

# 需要导入模块: from storage import Storage [as 别名]
# 或者: from storage.Storage import add [as 别名]
    def add(self, item):
        bookmark = self.find(item)

        if not bookmark:
            Storage.add(self, item)

            self.save()
开发者ID:shvets,项目名称:AudioBoo.bundle,代码行数:9,代码来源:media_info_storage.py

示例2: ColorBuilder

# 需要导入模块: from storage import Storage [as 别名]
# 或者: from storage.Storage import add [as 别名]
class ColorBuilder(object):
    def __init__(self, seed, kernel, printer):
        self.__seed = seed
        self.__kernel = kernel
        self.__storage = Storage()
        self.__knownTxs = set((seed.txhash,))
        self.__access = rpc_access.fromFile('../data/rpc.ini')
        self.__printer = printer
        coloredTxs = self.__storage.get_all(seed.color_id)
        for tx in coloredTxs:
            self.__knownTxs.add(str(tx[0]))
            
    def isColored(self, tx):
        for inp in tx.inputs:
            if ('txid' in inp) and (inp['txid'] in self.__knownTxs):
                return True
        return False

    def processBlock(self, blockHeight):
        txhashes = self.__access.getblock(self.__access.getblockhash(blockHeight))['tx']
        for txhash in txhashes:
            tx = Transaction(self.__access.getrawtransaction(txhash, 1))
            if not self.isColored(tx):
                continue
            
            colorVals = list()
            self.__printer(txhash + ", inputs: " + str(len(tx.inputs)) + ", outputs: " + str(len(tx.outputs)))

            for inp in tx.inputs:
                prevHash = inp['txid']
                prevTx = Transaction(self.__access.getrawtransaction(prevHash, 1))
#                   print(str(t1.duration_in_seconds())  + ", inputs: " + str(len(prevTx['vin'])) + ", outputs: " + str(len(prevTx['vout'])))
                prevOutIndex = inp['outindx']
                colorVal = self.__storage.get(self.__seed.color_id, prevHash, prevOutIndex)
                colorVals.append((prevTx.outputs[prevOutIndex], colorVal))
            colorOuts = self.__kernel(tx, colorVals)

            colorFound = False
            for i, colorOut in enumerate(colorOuts):
                if colorOut[0] != 0:
                    self.__storage.add(self.__seed.color_id, txhash, i, colorOut[0], colorOut[1])
                    colorFound = True
            if colorFound:
                self.__knownTxs.add(str(txhash))
                

    def build(self):
        seedTransaction = self.__access.getrawtransaction(self.__seed.txhash, 1)
        for i, seedOut in enumerate(self.__seed.outputs):
            self.__storage.add(self.__seed.color_id, self.__seed.txhash, i, seedOut.value, seedOut.label)
            
        block = self.__access.getblock(seedTransaction['blockhash'])
        blockHeight = block['height']
        while blockHeight <= self.__access.getblockcount():
            self.__printer(blockHeight)
            self.processBlock(blockHeight)
            blockHeight += 1
开发者ID:stdset,项目名称:colored-coins,代码行数:59,代码来源:build.py

示例3: HashIndex

# 需要导入模块: from storage import Storage [as 别名]
# 或者: from storage.Storage import add [as 别名]
class HashIndex(Index):
    """
    Индекс, опирающийся на результаты работы функции hash
    совместно с функцией-селектором.
    """

    def __init__(self, config, name, selector=lambda x: x):
        super(HashIndex, self).__init__(config, name)
        self._selector = selector
        self._storage = Storage('LL', self._make_buffer())

        # словарь для получения позиции в буфере по id объекта
        self._id_to_pos = None
        # словарь списков id обхектов,
        # ключи которого - результаты вычисления hash(selector(x))
        self._index = None

    def _build(self):
        # построение индекса из буфера
        self._id_to_pos = {}
        self._index = {}
        for pos, (id_, hash_) in enumerate(self._storage):
            self._id_to_pos[id_] = pos
            self._index.setdefault(hash_, []).append(id_)

    @_lazy
    def indexate(self, data, id_):
        if id_ in self._id_to_pos:
            raise ValueError('Object with id="%s" already indexed!' % id_)

        hash_ = hash(self._selector(data)) # ключ индекса
        self._index.setdefault(hash_, []).append(id_)
        self._id_to_pos[id_] = self._storage.add((id_, hash_))

    @_lazy
    def forget(self, id_):
        if id_ not in self._id_to_pos:
            raise ValueError('Object with id="%s" is not indexed!' % id_)

        for l in self._index.values():
            try:
                l.remove(id_)
            except ValueError:
                pass

        self._storage.remove(self._id_to_pos[id_])
        del self._id_to_pos[id_]

    @_lazy
    def query(self, val):
        return self._index.get(hash(val), [])
开发者ID:astynax,项目名称:py-toy-db,代码行数:53,代码来源:index.py

示例4: TestStorageAPI

# 需要导入模块: from storage import Storage [as 别名]
# 或者: from storage.Storage import add [as 别名]
class TestStorageAPI():

   def __init__(self):
       db = Database({
           "type": 'postgresql',
           "host": 'fg-cn-decaf-head1.cs.upb.de',
           "port": '5432',
           "database": 'decaf_storage',
           "user": 'pgdecaf',
           "password": 'pgdecafpw'
       })
       #db.drop_all()
       db.init_db()
       # Configure logging
       log_file = LOGFILE
       logger = logging.getLogger(__name__)
       logger.setLevel(logging.DEBUG)
       fh = logging.FileHandler(log_file)
       logger.addHandler(fh)

       self.storage = Storage(db, logger=logger)

   def test_scenario_insert(self):
       # create VNF
       code, vnf_id = self.storage.add(Vnf,{
           'name': 'name',
           'description': 'description',
           'path': 'path',
           'public': False
       })
       print('VNF: ', vnf_id)

       # create Image
       code, image_id = self.storage.add(Image,{
           'name': 'name',
           'description': 'description',
           'location': 'location'
       })
       print('Image: ', image_id)
       # create Flavor

       code, flavor_id = self.storage.add(Flavor,{
           'name': 'name',
           'description': 'description',
           'disk': 12,
           'ram': 8,
           'vcpus': 4
       })
       print('Flavor: ', flavor_id)

       # create VM
       code, vm_id = self.storage.add(Vm,{
           'name': 'name',
           'description': 'description',
           'vnf_id': vnf_id,
           'flavor_id': flavor_id,
           'image_id': image_id,
           'image_path': 'http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img'
       })
       print('VM: ', vm_id)

       # create Scenario
       code, sce_id = self.storage.add(Scenario, {
           'name': 'name',
           'description': 'description'
       })
       print('Scenario: ', sce_id)

       # add Vnf to Scenario
       code, scenario_vnf = self.storage.add(ScenarioVnf, {
           'name': 'name',
           'description': 'description',
           'scenario_id': sce_id,
           'vnf_id': vnf_id
       })
       print('Scenario VNF: ', scenario_vnf)

       code, vnfs = self.storage.get(Vnf,
                                     filters={'vnf.uuid': vnf_id},
                                     options=['vms', 'scenario_vnfs.scenario'])

       for vnf in vnfs:
           print(json.dumps(vnf, cls=StorageJSONEncoder, check_circular=True))
           vnf = json.loads(json.dumps(vnf, cls=StorageJSONEncoder, check_circular=True))
           print("VMS:\n", json.dumps(vnf['vms']))
开发者ID:aw32,项目名称:OpenBarista,代码行数:87,代码来源:load_data.py


注:本文中的storage.Storage.add方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。