summaryrefslogtreecommitdiff
path: root/factories
diff options
context:
space:
mode:
authorroy lewin <roy.lewin@gmail.com>2016-09-21 21:59:22 +0300
committerroy lewin <roy.lewin@gmail.com>2016-09-21 21:59:22 +0300
commit985a0fcac8b89bfe3c5bdcea0889b921cc27c033 (patch)
tree8cc9bc1fbcae35a0aab8b49e3f04c3c0843e0fdd /factories
parent9876529cd25312ce1b92329618a81d962fb86c44 (diff)
Added basic entities
Diffstat (limited to 'factories')
-rw-r--r--factories/INL_factory.py23
-rw-r--r--factories/__init__.py2
-rw-r--r--factories/basic_factory.py3
3 files changed, 28 insertions, 0 deletions
diff --git a/factories/INL_factory.py b/factories/INL_factory.py
new file mode 100644
index 0000000..6607368
--- /dev/null
+++ b/factories/INL_factory.py
@@ -0,0 +1,23 @@
+import entities
+from factories import BasicFactory
+
+TAG_TO_ENTITY_MAPPING = {
+ '100': entities.Person,
+ '110': entities.Institution,
+ '151': entities.Location
+}
+
+
+class INLFactory(BasicFactory):
+ def __init__(self, tag_to_entity_mapping=None):
+ self.mapping = tag_to_entity_mapping or TAG_TO_ENTITY_MAPPING
+
+ def get_entity(self, entity_key, raw_object):
+ if entity_key == '100':
+ return entities.Person('', '', '')
+ elif entity_key == '110':
+ return entities.Institution()
+ elif entity_key == '151':
+ return entities.Location('', '', '')
+ else:
+ raise KeyError('Key {} was not recognized for factory {}'.format(entity_key, type(self)))
diff --git a/factories/__init__.py b/factories/__init__.py
new file mode 100644
index 0000000..add236d
--- /dev/null
+++ b/factories/__init__.py
@@ -0,0 +1,2 @@
+from basic_factory import BasicFactory
+from INL_factory import INLFactory \ No newline at end of file
diff --git a/factories/basic_factory.py b/factories/basic_factory.py
new file mode 100644
index 0000000..1715846
--- /dev/null
+++ b/factories/basic_factory.py
@@ -0,0 +1,3 @@
+class BasicFactory(object):
+ def get_entity(self, entity_key, raw_object):
+ raise NotImplementedError("get_entity() method must be implemented class {}".format(type(self)))