Skip to content

Commit

Permalink
Merge pull request #647 from bourque/v0.24.0
Browse files Browse the repository at this point in the history
v0.24.0 Release [master]
  • Loading branch information
bourque authored Oct 20, 2020
2 parents 4f035a0 + 75eb273 commit 78ad809
Show file tree
Hide file tree
Showing 59 changed files with 3,897 additions and 1,168 deletions.
52 changes: 52 additions & 0 deletions CHANGES.rst
Original file line number Diff line number Diff line change
@@ -1,3 +1,55 @@
0.24.0 (2020-10-20)
===================

New Features
------------

Project & API Documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Added API documentation for Bias, Bad Pixel, and Readnoise Monitors

Web Application
~~~~~~~~~~~~~~~

- Added webpage that describes how to use the JWQL web app API
- Added webpage that enables a user to query the ``jwqldb`` database contents
- Enabled more search options and aesthetic improvements for anomaly query webpage

``jwql`` Repository
~~~~~~~~~~~~~~~~~~~

- Added support for Python versions 3.7 and 3.8
- Added unit tests for Readnoise Monitor
- Added unit tests for Bias Monitor
- Added unit tests for Bad Pixel Monitor
- Added unit tests for ``bokeh`` templating library
- Added webpage for displaying Readnoise Monitor results with ``bokeh`` plots
- Added webpage for displaying Bad Pixel Monitor results with ``bokeh`` plots


Bug Fixes
---------

Project & API Documentation
~~~~~~~~~~~~~~~~~~~~~~~~~~~

- Updated broken links to JWST instrument JDox pages

Web Application
~~~~~~~~~~~~~~~

- Fixed various issues that was cuasing authentication through ``auth.mast`` to fail

``jwql`` Repository
~~~~~~~~~~~~~~~~~~~

- Fixed bug that was causing Dark Monitor to crash on recently added apertures from ``pysiaf``
- Fixed several bugs in ``bokeh`` templating library
- Fixed bug that was causing unit tests for ``permissions.py`` to fail
- Fixed bug that was causing ``most_recent_search`` function in Dark Monitor to fail


0.23.0 (2020-07-01)
===================

Expand Down
2 changes: 1 addition & 1 deletion Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ if (utils.scm_checkout()) return

// Establish OS and Python version variables for the matrix
matrix_os = ["linux-stable"] // (Note that Jenkins can only be run with Linux, not MacOSX/Windows)
matrix_python = ["3.6"]
matrix_python = ["3.6", "3.7", "3.8"]

// Set up the matrix of builds
matrix = []
Expand Down
5 changes: 3 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ The JWST Quicklook Application (`JWQL`) is a database-driven web application and

Official API documentation can be found on [ReadTheDocs](https://jwql.readthedocs.io)

The `jwql` application is currently under heavy development. The `1.0` release is expected in 2019. Currently, a development version of the web application can be found at [https://dljwql.stsci.edu](https://dljwql.stsci.edu).
The `jwql` application is currently under heavy development. The `1.0` release is expected in 2021. Currently, a development version of the web application can be found at [https://dljwql.stsci.edu](https://dljwql.stsci.edu).

## Installation for Users

Expand Down Expand Up @@ -177,7 +177,8 @@ Any questions about the `jwql` project or its software can be directed to `jwql@
- Van Dixon (INS)
- Tom Donaldson (DMD) [@tomdonaldson](https://github.com/tomdonaldson)
- Kim DuPrie (DMD)
- Jonathan Eisenhamer (DMD) [@stscieisenhamer](https://githublcom/stscieisenhamer)
- Jonathan Eisenhamer (DMD) [@stscieisenhamer](https://github.com/stscieisenhamer)
- Ben Falk (DMD) [@falkben](https://github.com/falkben)
- Ann Feild (OPO)
- Mike Fox (DSMO) [@mfox22](https://github.com/mfox22)
- Scott Friedman (INS)
Expand Down
18 changes: 18 additions & 0 deletions docs/source/common_monitors.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,26 @@
common_monitors
***************

bad_pixel_monitor.py
--------------------
.. automodule:: jwql.instrument_monitors.common_monitors.bad_pixel_monitor
:members:
:undoc-members:

bias_monitor.py
---------------
.. automodule:: jwql.instrument_monitors.common_monitors.bias_monitor
:members:
:undoc-members:

dark_monitor.py
---------------
.. automodule:: jwql.instrument_monitors.common_monitors.dark_monitor
:members:
:undoc-members:

readnoise_monitor.py
--------------------
.. automodule:: jwql.instrument_monitors.common_monitors.readnoise_monitor
:members:
:undoc-members:
13 changes: 13 additions & 0 deletions docs/source/tests.rst
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,19 @@ test_api_views.py
:members:
:undoc-members:

test_bad_pixel_monitor.py
-------------------------
.. automodule:: jwql.tests.test_bad_pixel_monitor
:members:
:undoc-members:


test_bias_monitor.py
--------------------
.. automodule:: jwql.tests.test_bias_monitor
:members:
:undoc-members:

test_calculations.py
--------------------
.. automodule:: jwql.tests.test_calculations
Expand Down
20 changes: 11 additions & 9 deletions environment_python_3_6.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,21 @@ channels:
- defaults
- http://ssb.stsci.edu/astroconda
dependencies:
- astroquery=0.3.10
- astroquery=0.4
- authlib=0.15.1
- bokeh>=1.0,<1.4
- django=2.2.5
- drizzle=1.13
- flake8=3.7.9
- inflection=0.3.1
- ipython=7.13.0
- jinja2=2.10.3
- jsonschema=3.2.0
- matplotlib=3.1.0
- nodejs=10.13.0
- numpy=1.16.4
- numpy=1.19.1
- numpydoc=0.9.2
- pandas=1.0.3
- pandas=1.1.1
- pip=19.1.1
- postgresql=9.6.6
- psycopg2=2.7.5
Expand All @@ -28,13 +30,13 @@ dependencies:
- sqlalchemy=1.3.17
- twine=2.0.0
- pip:
- asdf==2.6.0
- asdf==2.7.1
- astropy==4.0.1
- authlib==0.14.3
- codecov==2.1.3
- crds==7.5.0.0
- codecov==2.1.9
- crds==10.0.0
- cryptography==3.1.1
- jwedb>=0.0.3
- jwst==0.17.1
- pysqlite3==0.2.2
- stsci_rtd_theme==0.0.2
- git+https://github.com/spacetelescope/[email protected]
- git+https://github.com/spacetelescope/jwst_reffiles
- git+https://github.com/spacetelescope/jwst_reffiles#egg=jwst_reffiles
41 changes: 41 additions & 0 deletions environment_python_3_7.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
channels:
- defaults
- http://ssb.stsci.edu/astroconda
dependencies:
- astroquery=0.4
- authlib=0.15.1
- bokeh>=1.0,<1.4
- django=3.0.3
- flake8=3.8.3
- inflection=0.3.1
- ipython=7.16.1
- jinja2=2.11.2
- jsonschema=3.2.0
- matplotlib=3.2.2
- nodejs=10.13.0
- numpy=1.18.5
- numpydoc=1.1.0
- pandas=1.1.1
- pip=20.1.1
- postgresql=12.2
- psycopg2=2.8.5
- pysiaf=0.9.0
- python=3.7.7
- pytest=5.4.3
- pytest-cov=2.10.0
- scipy=1.5.0
- setuptools=49.2.0
- sphinx=3.1.2
- sqlalchemy=1.3.18
- twine=2.0.0
- pip:
- asdf==2.7.1
- astropy==4.0.1.post1
- codecov==2.1.9
- crds==10.0.0
- cryptography==3.1.1
- jwedb==0.0.6
- jwst==0.17.1
- pysqlite3==0.4.3
- stsci_rtd_theme==0.0.2
- git+https://github.com/spacetelescope/jwst_reffiles
41 changes: 41 additions & 0 deletions environment_python_3_8.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
channels:
- defaults
- http://ssb.stsci.edu/astroconda
dependencies:
- authlib=0.15.1
- django=3.0.3
- flake8=3.8.3
- inflection=0.3.1
- ipython=7.16.1
- jinja2=2.11.2
- jsonschema=3.2.0
- matplotlib=3.2.2
- nodejs=10.13.0
- numpy=1.18.5
- numpydoc=1.1.0
- pandas=1.1.1
- pip=20.2.2
- postgresql=12.2
- psycopg2=2.8.5
- python=3.8.5
- pytest=6.0.1
- pytest-cov=2.10.1
- scipy=1.5.0
- setuptools=49.6.0
- sphinx=3.2.1
- twine=2.0.0
- pip:
- asdf==2.7.1
- astropy==4.0.1.post1
- astroquery==0.4.1
- bokeh>=1.0,<1.4
- codecov==2.1.9
- crds==10.0.0
- cryptography==3.1.1
- jwedb==0.0.6
- jwst==0.17.1
- pysiaf==0.9.0
- pysqlite3==0.4.3
- sqlalchemy==1.3.19
- stsci_rtd_theme==0.0.2
- git+https://github.com/spacetelescope/jwst_reffiles
13 changes: 2 additions & 11 deletions jwql/bokeh_templating/example/example_interface.yaml
Original file line number Diff line number Diff line change
@@ -1,24 +1,15 @@
- !ColumnDataSource: &dummy # This is a dummy ColumnDataSource used to trigger the controller method whenever a slider is changed.
data:
value: []
on_change: ['data', !self.controller ]
- !CustomJS: &callback # This callback changes the value of the dummy ColumnDataSource data to trigger the controller method.
ref: "callback"
args:
source: *dummy
code: "\n source.data = { value: [cb_obj.value] }\n"
- !Slider: &a_slider # a slider for the a value
ref: "a_slider"
title: "A"
value: 4
range: !!python/tuple [1, 20, 0.1]
callback: *callback
on_change: ['value', !self.controller ]
- !Slider: &b_slider # a slider for the b value
ref: "b_slider"
title: "B"
value: 2
range: !!python/tuple [1, 20, 0.1]
callback: *callback
on_change: ['value', !self.controller ]
- !ColumnDataSource: &figure_source # the ColumnDataSource for the figure
ref: "figure_source"
data:
Expand Down
2 changes: 2 additions & 0 deletions jwql/bokeh_templating/example/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@

class TestBokehApp(BokehTemplate):
"""This is a minimal ``BokehTemplate`` app."""

_embed = True

def pre_init(self):
"""Before creating the Bokeh interface (by parsing the interface
Expand Down
5 changes: 3 additions & 2 deletions jwql/bokeh_templating/factory.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ def mapping_factory(tool, element_type):
for an example of how this function is used.
"""

def mapping_constructor(loader, node): #docstring added below
def mapping_constructor(loader, node): # docstring added below
fmt = tool.formats.get(element_type, {})
value = loader.construct_mapping(node, deep=True)
ref = value.pop("ref", "")
Expand Down Expand Up @@ -216,9 +216,10 @@ def figure_constructor(tool, loader, node):
figure.js_on_event(*event)

for element in elements:
key = element.pop('kind')
key = element.pop('kind', 'diamond')
shape = {'line': ('Line', figure.line),
'circle': ('Circle', figure.circle),
'step': ('Step', figure.step),
'diamond': ('Diamond', figure.diamond),
'triangle': ('Triangle', figure.triangle),
'square': ('Square', figure.square),
Expand Down
23 changes: 13 additions & 10 deletions jwql/bokeh_templating/keyword_map.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
"""A script to scrape the Bokeh package and collate dictionaries of
"""
A script to scrape the Bokeh package and collate dictionaries of
classes and functions.
The ``_parse_module`` function iterates over a module, and uses the
Expand Down Expand Up @@ -34,19 +35,21 @@
from bokeh import layouts, models, palettes, plotting, transform
from inspect import getmembers, isclass, isfunction

from .surface3d import Surface3d

bokeh_sequences = {}
bokeh_mappings = {"Surface3d": Surface3d} # Note that abstract base classes *are* included
bokeh_mappings = {} # Note that abstract base classes *are* included


def _parse_module(module):
"""Sort the members of a module into dictionaries of functions
(sequences) and classes (mappings)."""

test = lambda nm, mem: (not nm.startswith("_")) and (module.__name__ in mem.__module__)
seqs = {nm: mem for nm, mem in getmembers(module, isfunction) if test(nm, mem)}
maps = {nm: mem for nm, mem in getmembers(module, isclass) if test(nm, mem)}
"""
Sort the members of a module into dictionaries of functions (sequences)
and classes (mappings).
"""

def accessible_member(name, member):
return (not name.startswith("_")) and (module.__name__ in member.__module__)

seqs = {nm: mem for nm, mem in getmembers(module, isfunction) if accessible_member(nm, mem)}
maps = {nm: mem for nm, mem in getmembers(module, isclass) if accessible_member(nm, mem)}

# these need to be mappings
if 'gridplot' in seqs:
Expand Down
Loading

0 comments on commit 78ad809

Please sign in to comment.