Skip to content

Commit

Permalink
Merge pull request #84 from mwcraig/report-marker-set-names
Browse files Browse the repository at this point in the history
A couple little fixes for marker names
  • Loading branch information
pllim committed Jul 28, 2019
2 parents 83a2e4d + 12dabcd commit 7a65eac
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 20 deletions.
28 changes: 22 additions & 6 deletions astrowidgets/core.py
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,8 @@ def __init__(self, logger=None, image_width=500, image_height=500,
self._marktags = set()
# Let's have a default name for the tag too:
self._default_mark_tag_name = 'default-marker-name'
self._interactive_marker_set_name = 'interactive-markers'
self._interactive_marker_set_name_default = 'interactive-markers'
self._interactive_marker_set_name = self._interactive_marker_set_name_default

# coordinates display
self._jup_coord = ipyw.HTML('Coordinates show up here')
Expand Down Expand Up @@ -417,6 +418,13 @@ def start_marking(self, marker_name=None,
# Set scroll_pan to ensure there is a mouse way to pan
self.scroll_pan = True
self._is_marking = True
if marker_name is not None:
self._validate_marker_name(marker_name)
self._interactive_marker_set_name = marker_name
self._marktags.add(marker_name)
else:
self._interactive_marker_set_name = \
self._interactive_marker_set_name_default
if marker is not None:
self.marker = marker

Expand Down Expand Up @@ -597,8 +605,20 @@ def get_markers(self, x_colname='x', y_colname='y',
else:
markers_table = Table(xy_col, names=(x_colname, y_colname))

# Either way, add the marker names
markers_table['marker name'] = marker_name
return markers_table

def _validate_marker_name(self, marker_name):
"""
Raise an error if the marker_name is not allowed.
"""
if marker_name in RESERVED_MARKER_SET_NAMES:
raise ValueError('The marker name {} is not allowed. Any name is '
'allowed except these: '
'{}'.format(marker_name,
', '.join(RESERVED_MARKER_SET_NAMES)))

def add_markers(self, table, x_colname='x', y_colname='y',
skycoord_colname='coord', use_skycoord=False,
marker_name=None):
Expand Down Expand Up @@ -640,11 +660,7 @@ def add_markers(self, table, x_colname='x', y_colname='y',
if marker_name is None:
marker_name = self._default_mark_tag_name

if marker_name in RESERVED_MARKER_SET_NAMES:
raise ValueError('The marker name {} is not allowed. Any name is '
'allowed except these: '
'{}'.format(marker_name,
', '.join(RESERVED_MARKER_SET_NAMES)))
self._validate_marker_name(marker_name)

self._marktags.add(marker_name)

Expand Down
47 changes: 33 additions & 14 deletions example_notebooks/named_markers.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,9 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Start clicking interactively, red circls radius 30 px"
"### Start clicking interactively, red circles radius 30 px\n",
"\n",
"The `marker_name` argument is optional. If no name is given then the name defaults to `self._interactive_marker_set_name_default`, whose value is `interactive-markers`."
]
},
{
Expand All @@ -147,8 +149,9 @@
"metadata": {},
"outputs": [],
"source": [
"#imw.marker = {'color': 'red', 'radius': 30, 'type': 'circle'}\n",
"imw.start_marking(marker={'color': 'red', 'radius': 30, 'type': 'circle'})"
"imw.start_marking(marker={'color': 'red', 'radius': 30, 'type': 'circle'},\n",
" marker_name='clicked markers'\n",
" )"
]
},
{
Expand Down Expand Up @@ -180,9 +183,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"### Get a list of the interactive markers\n",
"\n",
"The name of the interactive marker layer is in `self._interactive_marker_set_name`"
"### Get a list of the interactive markers"
]
},
{
Expand All @@ -191,14 +192,14 @@
"metadata": {},
"outputs": [],
"source": [
"imw.get_markers(marker_name='interactive-markers')"
"imw.get_markers(marker_name='clicked markers')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Erase only the yellow markers"
"### Add more interactive markers using default marker name"
]
},
{
Expand All @@ -207,14 +208,23 @@
"metadata": {},
"outputs": [],
"source": [
"imw.remove_markers(marker_name='yellow 10')"
"imw.start_marking(marker={'color': 'red', 'radius': 10, 'type': 'cross'} )"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"imw.stop_marking()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Get all of the remaining markers"
"### Erase only the yellow markers"
]
},
{
Expand All @@ -223,14 +233,14 @@
"metadata": {},
"outputs": [],
"source": [
"imw.get_markers(marker_name='all')"
"imw.remove_markers(marker_name='yellow 10')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Remove all remaining markers"
"### Get all of the remaining markers"
]
},
{
Expand All @@ -239,15 +249,24 @@
"metadata": {},
"outputs": [],
"source": [
"imw.reset_markers()"
"imw.get_markers(marker_name='all')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Remove all remaining markers"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
"source": [
"imw.reset_markers()"
]
}
],
"metadata": {
Expand Down

0 comments on commit 7a65eac

Please sign in to comment.