Skip to content

Commit

Permalink
fix: make configuration better
Browse files Browse the repository at this point in the history
  • Loading branch information
iwpnd committed Sep 13, 2021
1 parent 0741736 commit e57150f
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 14 deletions.
19 changes: 9 additions & 10 deletions flashgeotext/geotext.py
@@ -1,5 +1,3 @@
from typing import Optional

from pydantic import BaseModel

from flashgeotext.lookup import LookupDataPool, MissingLookupDataError
Expand All @@ -13,8 +11,11 @@ class GeoTextConfiguration(BaseModel):
case_sensitive (bool): case sensitive lookup, default True
"""

use_demo_data: Optional[bool] = True
case_sensitive: Optional[bool] = True
use_demo_data: bool = True
case_sensitive: bool = True


CONFIG = GeoTextConfiguration()


class GeoText(LookupDataPool):
Expand Down Expand Up @@ -65,18 +66,16 @@ class GeoText(LookupDataPool):
"""

def __init__(
self, config: GeoTextConfiguration = GeoTextConfiguration().dict()
) -> None:
""" instantiate an empty LookupDataPool, optionally/by default with demo data
def __init__(self, config: GeoTextConfiguration = CONFIG) -> None:
"""instantiate an empty LookupDataPool, optionally/by default with demo data
Args:
config: GeoTextConfiguration = { use_demo_data: True, case_sensitive: True }.
"""
self.pool: dict = {}

if config["use_demo_data"]:
self._add_demo_data(case_sensitive=config["case_sensitive"])
if config.use_demo_data:
self._add_demo_data(case_sensitive=config.case_sensitive)

def extract(self, input_text: str, span_info: bool = True) -> dict:
"""Extract LookupData from an input_text
Expand Down
11 changes: 7 additions & 4 deletions tests/integration/test_geotext_extractor.py
@@ -1,6 +1,6 @@
import pytest

from flashgeotext.geotext import GeoText
from flashgeotext.geotext import GeoText, GeoTextConfiguration
from flashgeotext.lookup import LookupData, MissingLookupDataError

text = "Berlin ist die Hauptstadt von Deutschland. Berlin ist nicht haesslich, aber auch nicht sonderlich schoen."
Expand All @@ -19,7 +19,8 @@ def test_geotext_extract(geotext):


def test_geotext_raises_on_empty_pool():
output = GeoText(config={"use_demo_data": False})
config = GeoTextConfiguration(**{"use_demo_data": False, "case_sensitive": True})
output = GeoText(config)

with pytest.raises(MissingLookupDataError):
output.extract(text)
Expand All @@ -39,7 +40,8 @@ def test_geotext_extract_with_count_span_info_false(geotext):


def test_geotext_case_sensitive_demo_data():
geotext = GeoText(config={"use_demo_data": True, "case_sensitive": False})
config = GeoTextConfiguration(**{"use_demo_data": True, "case_sensitive": False})
geotext = GeoText(config)
text = "berlin ist ne tolle stadt"
output = geotext.extract(input_text=text, span_info=True)

Expand Down Expand Up @@ -168,7 +170,8 @@ def test_geotext_with_script_added_to_non_word_boundaries():
cyrillic = LookupData(
name="test_1", data={"Нижневартовск": ["Нижневартовск"]}, script="cyrillic"
)
geotext = GeoText(config={"use_demo_data": False})
config = GeoTextConfiguration(**{"use_demo_data": False})
geotext = GeoText(config)
geotext.add(cyrillic)

text = """
Expand Down

0 comments on commit e57150f

Please sign in to comment.