Skip to content

Commit

Permalink
Use annotators fields if none is provided to the connector (#24)
Browse files Browse the repository at this point in the history
  • Loading branch information
hoxbro committed Sep 20, 2023
1 parent 27a0cd9 commit 1615a2a
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 8 deletions.
2 changes: 2 additions & 0 deletions holonote/annotate/annotator.py
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,8 @@ def __init__(self, spec, *, init=True, **params):
spec = self.normalize_spec(spec)

super().__init__(spec=spec, connector=connector, **params)
if connector.fields is None:
connector.fields = self.fields
self._region = {}
self._last_region = None
self.annotation_table = AnnotationTable()
Expand Down
3 changes: 1 addition & 2 deletions holonote/annotate/connector.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,8 +144,7 @@ class Connector(param.Parameterized):

commit_hook = param.Parameter(default=None, doc='Callback, applies default schema if None')

fields = param.List(default=['description'], doc='''
List of column names for domain-specific fields''')
fields = param.List(default=None, doc='List of column names for domain-specific fields')

transforms = param.Dict(default={'insert':lambda x: x,
'update':lambda x: x ,
Expand Down
22 changes: 16 additions & 6 deletions holonote/tests/test_annotators_basic.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,7 @@
import pandas as pd
import pytest

# TODO:

# * (after refactor) annotators -> annotator, connectors -> connector [ ]
# TESTS
# Schema error (needs file or connect in memory??)
# .snapshot() and .revert_to_snapshot()
from holonote.annotate import Annotator


class TestBasicRange1DAnnotator:
Expand Down Expand Up @@ -452,3 +447,18 @@ def test_point_define_unassigned_indices(self, annotator_point2d):
annotator_point2d.define_fields(data1[['description']])
with pytest.raises(KeyError, match=str(mismatched)):
annotator_point2d.define_points(data2['xs'], data2['ys'])


@pytest.mark.parametrize('fields', (["test"], ["test1", "test2"]))
def test_connector_use_annotator_fields(conn_sqlite_uuid, fields):
annotator = Annotator({"TIME": float}, connector=conn_sqlite_uuid, fields=fields)

assert annotator.fields == fields
assert annotator.connector.fields == fields


def test_connector_use_annotator_fields_default(conn_sqlite_uuid):
annotator = Annotator({"TIME": float}, connector=conn_sqlite_uuid)

assert annotator.fields == ["description"]
assert annotator.connector.fields == ["description"]

0 comments on commit 1615a2a

Please sign in to comment.