Skip to content

Commit

Permalink
add helper to union blocks
Browse files Browse the repository at this point in the history
  • Loading branch information
GreatYYX committed Apr 2, 2018
1 parent cad3d5e commit 5db3517
Show file tree
Hide file tree
Showing 3 changed files with 45 additions and 0 deletions.
28 changes: 28 additions & 0 deletions examples/blocking/block_operations.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import rltk

b1 = rltk.BlockArrayWriter()
b1.write('1', 'a')
b1.write('2', 'b')
b1.write('2', 'c')
b1.close()
b1 = rltk.BlockArrayReader(b1.get_handler())
print('--- block1 ---')
for bb in b1:
print(bb)

b2 = rltk.BlockArrayWriter()
b2.write('1', 'a')
b2.write('1', 'd')
b2.write('2', 'c')
b2.close()
b2 = rltk.BlockArrayReader(b2.get_handler())
print('--- block2 ---')
for bb in b2:
print(bb)

b3 = rltk.BlockArrayWriter()
rltk.BlockingHelper(reader1=b1, reader2=b2).union(writer=b3)
b3 = rltk.BlockArrayReader(b3.get_handler())
print('--- union ---')
for bb in b3:
print(bb)
1 change: 1 addition & 0 deletions rltk/blocking/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from rltk.blocking.block_generator import BlockGenerator
from rltk.blocking.custom_block_generator import CustomBlockGenerator
from rltk.blocking.inverted_index_block_generator import InvertedIndexBlockGenerator
from rltk.blocking.blocking_helper import BlockingHelper
16 changes: 16 additions & 0 deletions rltk/blocking/blocking_helper.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from rltk.io.reader.block_reader import BlockReader
from rltk.io.writer.block_writer import BlockWriter


class BlockingHelper(object):
def __init__(self, reader1 : BlockReader, reader2 : BlockReader):
self._reader1 = reader1
self._reader2 = reader2

def union(self, writer: BlockWriter):

for id1, id2 in self._reader1:
writer.write(id1, id2)
for id1, id2 in self._reader2:
writer.write(id1, id2)
writer.close()

0 comments on commit 5db3517

Please sign in to comment.