From 09d4ba49c134f83f632c5d05d26b01ad211ce2e4 Mon Sep 17 00:00:00 2001 From: ReimarBauer Date: Wed, 6 Sep 2023 09:14:05 +0200 Subject: [PATCH 01/10] fixed config (#1999) --- docs/conf.py | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/docs/conf.py b/docs/conf.py index 3204f3761..edaea685c 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -119,7 +119,7 @@ def get_tutorial_images(): # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. -extensions = [] +extensions = ['sphinx_rtd_theme'] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] @@ -217,23 +217,19 @@ def get_tutorial_images(): # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. -#html_theme = 'sphinx_rtd_theme' +html_theme = 'sphinx_rtd_theme' if not on_rtd: # only import and set the theme if we're building docs locally import sphinx_rtd_theme - html_theme = 'sphinx_rtd_theme' html_theme_path = [sphinx_rtd_theme.get_html_theme_path()] html_style = 'css/mss.css' else: + htmls_static_path = ['_static'] + html_css_files = ['mss.css'] html_context = { 'display_github': False, # Add 'Edit on Bitbucket' link instead of 'View page source' 'last_updated': True, 'commit': False, - 'css_files': [ - 'https://media.readthedocs.org/css/sphinx_rtd_theme.css', - 'https://media.readthedocs.org/css/readthedocs-doc-embed.css', - '_static/css/mss.css', - ], } # Theme options are theme-specific and customize the look and feel of a theme From fe6fe4c900423126656852dcb06d359462995277 Mon Sep 17 00:00:00 2001 From: ReimarBauer Date: Wed, 6 Sep 2023 09:35:12 +0200 Subject: [PATCH 02/10] both ack (#1997) --- docs/publications.rst | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/publications.rst b/docs/publications.rst index 68aa927be..c563a6d88 100644 --- a/docs/publications.rst +++ b/docs/publications.rst @@ -24,9 +24,11 @@ Acknowledgement Please add the following acknowledgement and cite to your publications: + The authors gratefully acknowledge the use of the MSS flight planning - software (Rautenhaus, 2012; MSS development was partially funded by - the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) - project no. UN 311/3-1)“. + software (Bauer et al, 2022, Rautenhaus et al, 2012; + MSS development was partially funded by the Deutsche Forschungsgemeinschaft + (DFG, German Research Foundation) project no. UN 311/3-1 + and project no. SPP 1294 423229456) Thank you very much. From eb17842e50d5b03f32ccb9e8cbdfe97c8d80af9b Mon Sep 17 00:00:00 2001 From: ReimarBauer Date: Wed, 6 Sep 2023 10:19:07 +0200 Subject: [PATCH 03/10] set sphinx conf (#1994) --- .readthedocs.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.readthedocs.yaml b/.readthedocs.yaml index 1fd243008..fbfcf9c61 100644 --- a/.readthedocs.yaml +++ b/.readthedocs.yaml @@ -5,5 +5,8 @@ build: tools: python: "mambaforge-4.10" +sphinx: + configuration: docs/conf.py + conda: environment: docs/environment.yml From cce31aca39d79cbdd6030b813f23cdf3ec4a6826 Mon Sep 17 00:00:00 2001 From: "J. Ungermann" Date: Wed, 6 Sep 2023 22:03:01 -0800 Subject: [PATCH 04/10] Fix Exception in aborting image retrieval (#2008) Fix #2006 --- mslib/msui/wms_control.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mslib/msui/wms_control.py b/mslib/msui/wms_control.py index 6aa396acb..32697b39b 100644 --- a/mslib/msui/wms_control.py +++ b/mslib/msui/wms_control.py @@ -1285,7 +1285,7 @@ def normalize_crs(crs): if ret == QtWidgets.QMessageBox.Ignore: self.check_for_allowed_crs = False elif ret == QtWidgets.QMessageBox.No: - return + return [] # get...Time() will return None if the corresponding checkboxes are # disabled. objects passed to wms.getmap will not be included From d09536cabaff48f4bb63854340efd69d8ebae197 Mon Sep 17 00:00:00 2001 From: "J. Ungermann" Date: Thu, 7 Sep 2023 10:53:01 -0800 Subject: [PATCH 05/10] Switched old URLs for eumetsat and ECWMF WMS servers to working ones (#2016) Also some adaption to parse the capability document. Added a NASA server. Fixes #1803 --- mslib/msui/multilayers.py | 3 +++ mslib/utils/config.py | 5 +++-- mslib/utils/coordinate.py | 4 +--- mslib/utils/time.py | 5 ++++- tests/_test_utils/test_coordinate.py | 2 +- 5 files changed, 12 insertions(+), 7 deletions(-) diff --git a/mslib/msui/multilayers.py b/mslib/msui/multilayers.py index 7dca643f1..b1bb8fc3a 100644 --- a/mslib/msui/multilayers.py +++ b/mslib/msui/multilayers.py @@ -636,6 +636,9 @@ def _parse_vtimes(self): self.vtime_name = valid_time_names[0] values = self.extents[self.vtime_name]["values"] self.allowed_valid_times = sorted(self.parent.dock_widget.parse_time_extent(values)) + while len(self.allowed_valid_times) > 1000: + logging.warning("Too many valid times (%s). discarding 90%.", len(self.allowed_valid_times)) + self.allowed_valid_times = self.allowed_valid_times[::10] self.vtimes = [_time.isoformat() + "Z" for _time in self.allowed_valid_times] if len(self.allowed_valid_times) == 0: logging.error("Cannot determine valid time format of %s for %s", self.header.text(0), self.text(0)) diff --git a/mslib/utils/config.py b/mslib/utils/config.py index 424cfc093..7a27d13ef 100644 --- a/mslib/utils/config.py +++ b/mslib/utils/config.py @@ -111,8 +111,9 @@ class MSUIDefaultConfig(object): # URLs of default WMS servers. default_WMS = [ "http://localhost:8081/", - "http://eumetview.eumetsat.int/geoserver/wms", - "https://apps.ecmwf.int/wms/?token=public" + "https://view.eumetsat.int/geoserver/wms", + "http://eccharts.ecmwf.int/wms/?token=public", + "https://neo.gsfc.nasa.gov/wms/wms" ] default_VSEC_WMS = [ diff --git a/mslib/utils/coordinate.py b/mslib/utils/coordinate.py index 812e4d34d..2fc0bc315 100644 --- a/mslib/utils/coordinate.py +++ b/mslib/utils/coordinate.py @@ -114,15 +114,13 @@ def rotate_point(point, angle, origin=(0, 0)): def get_projection_params(proj): proj = proj.lower() if proj.startswith("crs:"): - raise ValueError("CRS not supported") - projid = proj[4:] if projid == "84": proj_params = { "basemap": {"projection": "cyl"}, "bbox": "degree"} else: - raise ValueError("unsupported CRS code: '%s'", proj) + raise ValueError("Only CRS code 84 is supported: '%s' given", proj) elif proj.startswith("auto:"): raise ValueError("AUTO not supported") diff --git a/mslib/utils/time.py b/mslib/utils/time.py index 00d38f6a2..22b020013 100644 --- a/mslib/utils/time.py +++ b/mslib/utils/time.py @@ -43,7 +43,10 @@ def parse_iso_datetime(string): def parse_iso_duration(string): - return isodate.parse_duration(string) + try: + return isodate.parse_duration(string) + except isodate.ISO8601Error: + return datetime.timedelta(weeks=4) JSEC_START = datetime.datetime(2000, 1, 1) diff --git a/tests/_test_utils/test_coordinate.py b/tests/_test_utils/test_coordinate.py index 5408ce48c..e38582aeb 100644 --- a/tests/_test_utils/test_coordinate.py +++ b/tests/_test_utils/test_coordinate.py @@ -60,7 +60,7 @@ def test_get_projection_params(self): with pytest.raises(ValueError): coordinate.get_projection_params('auto:42001') with pytest.raises(ValueError): - coordinate.get_projection_params('crs:84') + coordinate.get_projection_params('crs:83') class TestAngles(object): From eef3c91566dcf9338d34fccb53f9db727beac14a Mon Sep 17 00:00:00 2001 From: "J. Ungermann" Date: Thu, 7 Sep 2023 11:19:29 -0800 Subject: [PATCH 06/10] fix typo in mscolab.py (#2015) Co-authored-by: ReimarBauer --- mslib/msui/mscolab.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mslib/msui/mscolab.py b/mslib/msui/mscolab.py index 13c227524..46dc4e068 100644 --- a/mslib/msui/mscolab.py +++ b/mslib/msui/mscolab.py @@ -1400,7 +1400,7 @@ def render_new_permission(self, op_id, u_id): operation_desc = f'{operation["path"]} - {operation["access_level"]}' widgetItem = QtWidgets.QListWidgetItem(operation_desc, parent=self.ui.listOperationsMSC) widgetItem.op_id = operation["op_id"] - widgetItem.catgegory = operation["category"] + widgetItem.operation_category = operation["category"] widgetItem.operation_path = operation["path"] widgetItem.access_level = operation["access_level"] widgetItem.active_operation_desc = operation["description"] From 8a703266df2926f060f67592ee8103fbf19fcb9c Mon Sep 17 00:00:00 2001 From: "J. Ungermann" Date: Tue, 12 Sep 2023 13:28:42 -0800 Subject: [PATCH 07/10] Fix syntax error in logging formatting string. (#2035) Fix issue #2034 --- mslib/msui/multilayers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mslib/msui/multilayers.py b/mslib/msui/multilayers.py index b1bb8fc3a..1cd38edb6 100644 --- a/mslib/msui/multilayers.py +++ b/mslib/msui/multilayers.py @@ -637,7 +637,7 @@ def _parse_vtimes(self): values = self.extents[self.vtime_name]["values"] self.allowed_valid_times = sorted(self.parent.dock_widget.parse_time_extent(values)) while len(self.allowed_valid_times) > 1000: - logging.warning("Too many valid times (%s). discarding 90%.", len(self.allowed_valid_times)) + logging.warning("Too many valid times (%s). discarding 90%%.", len(self.allowed_valid_times)) self.allowed_valid_times = self.allowed_valid_times[::10] self.vtimes = [_time.isoformat() + "Z" for _time in self.allowed_valid_times] if len(self.allowed_valid_times) == 0: From 18edd24121db02ef56ae3644eee69c77c8349856 Mon Sep 17 00:00:00 2001 From: ReimarBauer Date: Wed, 13 Sep 2023 18:31:24 +0200 Subject: [PATCH 08/10] v8.3.1 (#2036) --- CHANGES.rst | 8 ++++++++ mslib/version.py | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGES.rst b/CHANGES.rst index 5e1f2506b..e4bcda2ba 100755 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,6 +1,14 @@ Changelog ========= +Version 8.3.1 +~~~~~~~~~~~~~ + +Bug fix release: + +All changes: +https://github.com/Open-MSS/MSS/milestone/99?closed=1 + Version 8.3.0 ~~~~~~~~~~~~~ diff --git a/mslib/version.py b/mslib/version.py index 877b16c9e..642cdf5d0 100644 --- a/mslib/version.py +++ b/mslib/version.py @@ -24,4 +24,4 @@ See the License for the specific language governing permissions and limitations under the License. """ -__version__ = u'8.3.0' +__version__ = u'8.3.1' From d85f6233b10eed78522485ac502c498f8662c9bd Mon Sep 17 00:00:00 2001 From: vectorperfect <108605954+ambiguousphoton@users.noreply.github.com> Date: Sat, 7 Oct 2023 13:30:16 +0530 Subject: [PATCH 09/10] Refactor : Using stable documentation link instead of latest link. (#2055) * Update topview.py * Update index.py --- mslib/index.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mslib/index.py b/mslib/index.py index 3c19e4427..2c63ad3ec 100644 --- a/mslib/index.py +++ b/mslib/index.py @@ -155,7 +155,7 @@ def plots(): "For further info on how to generate it, run the " \ "gallery --help command line parameter of mswms.
" \ "An example of the gallery can be seen " \ - "here" + "here" return render_template("/content.html", act="plots", content=content) @APP.route("/mss/code/") From 396aa2b15631d71a43465c208aa7d18f03f9e73c Mon Sep 17 00:00:00 2001 From: ReimarBauer Date: Sun, 8 Oct 2023 15:57:16 +0200 Subject: [PATCH 10/10] Pin xmlschema, werkzeug (#2057) * pin xmlschema * pinning for now for testing only * Trigger CIs * fixed condition * pin werkzeug --- localbuild/meta.yaml | 2 +- requirements.d/development.txt | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/localbuild/meta.yaml b/localbuild/meta.yaml index 3784d1b1b..fcaf69161 100644 --- a/localbuild/meta.yaml +++ b/localbuild/meta.yaml @@ -65,7 +65,7 @@ requirements: - flask-httpauth - flask-mail - flask-migrate - - werkzeug >=2.2.3 + - werkzeug >=2.2.3,<3.0.0 - flask-socketio =5.1.0 - flask-sqlalchemy >=3.0.0 - flask-cors diff --git a/requirements.d/development.txt b/requirements.d/development.txt index 4a5553df0..62956c407 100644 --- a/requirements.d/development.txt +++ b/requirements.d/development.txt @@ -23,3 +23,5 @@ pytest-reverse eventlet>0.30.2 dnspython>=2.0.0, <2.3.0 gsl==2.7.0 +xmlschema<2.5.0 +