mirror of https://github.com/explosion/spaCy.git
53 lines
1.3 KiB
Python
53 lines
1.3 KiB
Python
|
# coding: utf8
|
||
|
from __future__ import unicode_literals
|
||
|
|
||
|
from .util import SimpleFrozenDict
|
||
|
|
||
|
|
||
|
class Lookups(object):
|
||
|
def __init__(self):
|
||
|
self._tables = {}
|
||
|
|
||
|
def __contains__(self, name):
|
||
|
return self.has_table(name)
|
||
|
|
||
|
@property
|
||
|
def tables(self):
|
||
|
return list(self._tables.keys())
|
||
|
|
||
|
def add_table(self, name, data=SimpleFrozenDict()):
|
||
|
if name in self.tables:
|
||
|
raise ValueError("Table '{}' already exists".format(name))
|
||
|
table = Table(name=name)
|
||
|
table.update(data)
|
||
|
self._tables[name] = table
|
||
|
return table
|
||
|
|
||
|
def get_table(self, name):
|
||
|
if name not in self._tables:
|
||
|
raise KeyError("Can't find table '{}'".format(name))
|
||
|
return self._tables[name]
|
||
|
|
||
|
def has_table(self, name):
|
||
|
return name in self._tables
|
||
|
|
||
|
def to_bytes(self, exclude=tuple(), **kwargs):
|
||
|
raise NotImplementedError
|
||
|
|
||
|
def from_bytes(self, bytes_data, exclude=tuple(), **kwargs):
|
||
|
raise NotImplementedError
|
||
|
|
||
|
def to_disk(self, path, exclude=tuple(), **kwargs):
|
||
|
raise NotImplementedError
|
||
|
|
||
|
def from_disk(self, path, exclude=tuple(), **kwargs):
|
||
|
raise NotImplementedError
|
||
|
|
||
|
|
||
|
class Table(dict):
|
||
|
def __init__(self, name=None):
|
||
|
self.name = name
|
||
|
|
||
|
def set(self, key, value):
|
||
|
self[key] = value
|