Skip to content

Commit

Permalink
refactor abstract adapter and reader, add block reader
Browse files Browse the repository at this point in the history
  • Loading branch information
GreatYYX committed Mar 21, 2018
1 parent da2991f commit d0ffe70
Show file tree
Hide file tree
Showing 5 changed files with 54 additions and 41 deletions.
26 changes: 1 addition & 25 deletions rltk/io/adapter/__init__.py
Original file line number Diff line number Diff line change
@@ -1,26 +1,2 @@
from rltk.record import Record


class Adapter(object):
def __init__(self):
pass

def __del__(self):
pass

def get(self, record_id) -> Record:
raise NotImplementedError

def set(self, record_id, record: Record):
raise NotImplementedError

def __iter__(self):
return self.__next__()

def __next__(self):
"""iterator is not required in adapter"""
pass


# subclasses
from rltk.io.adapter.adapter import Adapter
from rltk.io.adapter.memory_adapter import MemoryAdapter
22 changes: 22 additions & 0 deletions rltk/io/adapter/adapter.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
from rltk.record import Record


class Adapter(object):
def __init__(self):
pass

def __del__(self):
pass

def get(self, record_id) -> Record:
raise NotImplementedError

def set(self, record_id, record: Record):
raise NotImplementedError

def __iter__(self):
return self.__next__()

def __next__(self):
"""iterator is not required in adapter"""
pass
18 changes: 2 additions & 16 deletions rltk/io/reader/__init__.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,4 @@
class Reader(object):
def __init__(self):
pass

def __iter__(self):
return self.__next__()

def __next__(self):
"""return raw content of one record"""
raise NotImplementedError

def __del__(self):
pass

# subclasses
from rltk.io.reader.reader import Reader
from rltk.io.reader.csv_reader import CSVReader
from rltk.io.reader.jsonlines_reader import JsonLinesReader
from rltk.io.reader.block_reader import FileBlockReader
from rltk.io.reader.block_reader import BlockReader
16 changes: 16 additions & 0 deletions rltk/io/reader/block_reader.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
from rltk.io.reader import Reader


class BlockReader(Reader):

def __init__(self, raw_blocks):
self._raw_blocks = raw_blocks

def __next__(self):
for block in self._raw_blocks: # iterate json objects
for id1, id2s in block.items(): # iterate on one json object
for id2 in id2s:
yield id1, id2

def __del__(self):
pass
13 changes: 13 additions & 0 deletions rltk/io/reader/reader.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
class Reader(object):
def __init__(self):
pass

def __iter__(self):
return self.__next__()

def __next__(self):
"""return raw content of one record"""
raise NotImplementedError

def __del__(self):
pass

0 comments on commit d0ffe70

Please sign in to comment.