Skip to content

Commit

Permalink
Merge pull request #234 from jpgill86/api-tutorial
Browse files Browse the repository at this point in the history
Add API tutorial to example Jupyter notebook
  • Loading branch information
jpgill86 committed Mar 2, 2020
2 parents 4789f16 + b971eac commit 5404579
Show file tree
Hide file tree
Showing 5 changed files with 717 additions and 21 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
# Specific to this project
/neurotic/version.py
/neurotic/example/example-data/
/neurotic/example/demo.yml

# Byte-compiled / optimized / DLL files
__pycache__/
Expand Down
4 changes: 2 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -226,8 +226,8 @@ To inspect the metadata file associated with the example or to make changes to
it, click "Edit metadata". See `Configuring Metadata`_ for details about the
format.

If you prefer Jupyter notebooks, you can launch an example notebook instead for
experimenting with **neurotic**'s API::
If you prefer Jupyter notebooks, you can launch an example notebook instead,
which includes a tutorial for using **neurotic**'s API::

neurotic --launch-example-notebook

Expand Down
4 changes: 2 additions & 2 deletions docs/gettingstarted.rst
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ To inspect the metadata file associated with the example or to make changes to
it, click "Edit metadata". See :ref:`config-metadata` for details about the
format.

If you prefer Jupyter notebooks, you can launch an example notebook instead for
experimenting with **neurotic**'s API::
If you prefer Jupyter notebooks, you can launch an example notebook instead,
which includes a tutorial for using **neurotic**'s API::

neurotic --launch-example-notebook

Expand Down
40 changes: 34 additions & 6 deletions neurotic/datasets/metadata.py
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,16 @@ def select(self, selection):
else:
self._selection = selection

@property
def keys(self):
"""
The available metadata keys.
"""
if self.all_metadata is None:
return None
else:
return list(self.all_metadata.keys())

@property
def selected_metadata(self):
"""
Expand Down Expand Up @@ -148,22 +158,40 @@ def download_all_data_files(self, **kwargs):
_download_all_data_files(self.selected_metadata, **kwargs)

def __iter__(self, *args):
return self.selected_metadata.__iter__(*args)
if self.selected_metadata is None:
logger.error('No metadata set is selected. Use the select() method first.')
else:
return self.selected_metadata.__iter__(*args)

def __getitem__(self, *args):
return self.selected_metadata.__getitem__(*args)
if self.selected_metadata is None:
logger.error('No metadata set is selected. Use the select() method first.')
else:
return self.selected_metadata.__getitem__(*args)

def __setitem__(self, *args):
return self.selected_metadata.__setitem__(*args)
if self.selected_metadata is None:
logger.error('No metadata set is selected. Use the select() method first.')
else:
return self.selected_metadata.__setitem__(*args)

def __delitem__(self, *args):
return self.selected_metadata.__delitem__(*args)
if self.selected_metadata is None:
logger.error('No metadata set is selected. Use the select() method first.')
else:
return self.selected_metadata.__delitem__(*args)

def get(self, *args):
return self.selected_metadata.get(*args)
if self.selected_metadata is None:
logger.error('No metadata set is selected. Use the select() method first.')
else:
return self.selected_metadata.get(*args)

def setdefault(self, *args):
return self.selected_metadata.setdefault(*args)
if self.selected_metadata is None:
logger.error('No metadata set is selected. Use the select() method first.')
else:
return self.selected_metadata.setdefault(*args)


def _load_metadata(file = 'metadata.yml', local_data_root = None, remote_data_root = None):
Expand Down
Loading

0 comments on commit 5404579

Please sign in to comment.