Skip to content

Feature METplus2857 main v3.1 support#512

Merged
bikegeek merged 2 commits intomain_v3.1from
feature_METplus2857_main_v3.1_support
Jun 9, 2025
Merged

Feature METplus2857 main v3.1 support#512
bikegeek merged 2 commits intomain_v3.1from
feature_METplus2857_main_v3.1_support

Conversation

@jprestop
Copy link
Copy Markdown
Contributor

@jprestop jprestop commented Jun 3, 2025

The work in this task is for METplus issue: Documentation: Update the Code Support section of the User's Guides #2857

Pull Request Testing

  • Describe testing already performed for these changes:

    Reviewed changes in Read The Docs here.

  • Recommend testing for the reviewer(s) to perform, including the location of input datasets, and any additional instructions:

    Please note that I added a new "Overview" page in order to add the User Support section. Please review this new section carefully to ensure it all sounds accurate. I used similar language to the already existing METdataio Overview page. Note that I also moved up the release-notes in the index file to be consistent with the placement of it in other repositories.
    Ensure all tests pass.

  • Do these changes include sufficient documentation updates, ensuring that no errors or warnings exist in the build of the documentation? [Yes]

  • Do these changes include sufficient testing updates? [Yes]

  • Will this PR result in changes to the test suite? [No]

    If yes, describe the new output and/or changes to the existing output:

  • Do these changes introduce new SonarQube findings? [No]

    If yes, please describe:

  • Please complete this pull request review by [20250616].

Pull Request Checklist

See the METplus Workflow for details.

  • Add any new Python packages to the METplus Components Python Requirements table.
  • Review the source issue metadata (required labels, projects, and milestone).
  • Complete the PR definition above.
  • Ensure the PR title matches the feature or bugfix branch name.
  • Define the PR metadata, as permissions allow.
    Select: Reviewer(s) and Development issue
    Select: Milestone as the version that will include these changes
    Select: Coordinated METplus-X.Y Support project for bugfix releases or METplotpy-X.Y.Z Development project for official releases
  • After submitting the PR, select the ⚙️ icon in the Development section of the right hand sidebar. Search for the issue that this PR will close and select it, if it is not already selected.
  • After the PR is approved, merge your changes. If permissions do not allow this, request that the reviewer do the merge.
  • Close the linked issue and delete your feature or bugfix branch from GitHub.

@github-project-automation github-project-automation Bot moved this to 🩺 Needs Triage in METplus-6.1 Development Jun 4, 2025
@jprestop jprestop moved this from 🩺 Needs Triage to 🔎 In review in METplus-6.1 Development Jun 4, 2025
@jprestop jprestop added this to the METplotpy-3.1.0 milestone Jun 4, 2025
@jprestop jprestop requested a review from bikegeek June 4, 2025 21:38
@jprestop jprestop marked this pull request as ready for review June 4, 2025 21:50
@bikegeek bikegeek merged commit ed7d180 into main_v3.1 Jun 9, 2025
6 checks passed
@github-project-automation github-project-automation Bot moved this from 🔎 In review to 🏁 Done in METplus-6.1 Development Jun 9, 2025
@bikegeek bikegeek deleted the feature_METplus2857_main_v3.1_support branch June 9, 2025 16:33
bikegeek added a commit that referenced this pull request Jul 8, 2025
* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
bikegeek added a commit that referenced this pull request Jul 21, 2025
* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (for develop/v3.2 release) (#527)

* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Added support for env variable to turn on/off invoking the get_chrome_sync() to install Chrome at run-time

* test truthiness for booleans rather than string

* Update logic for checking PRE_LOAD_CHROME environment variable that is defined in the Dockerfile

* Remove print statement

* Add check for PRE_LOAD_CHROME env variable set in Dockerfile to turn on/off invoking kaleido.get_chrome_sync()

* Updated versions for Plotly and kaleido

* Allow logging to stdout and/or file to indicate whether Chrome is getting downloaded at runtime.  This facilitates testing for debugging.  Setting the PRE_LOAD_CHROME env variable to False (either as bool or string-case is insensitive) will invoke downloading Chrome via Plotly/kaleido. If PRE_LOAD_CHROME is not defined, Chrome will also be downloaded from Plotly/kaleido at run time.  Logging can be turned on/off by setting the LOG_BASE_PLOT to true/false (boolean or string) and a log file can be saved by setting the WRITE_LOG env var to true (boolean or string).

* Update the runtime loading of Chrome by allowing logging to monitor if Chrome is being downloaded at runtime.  Use METplotpy util.py strtobool to replace the distutils.util.strtobool to return a boolean value from the PRE_LOAD_CHROME and logging env vars.

* Implement our own version of the deprecated (in Python 3.12+) of distutils.utils.strtobool

* Add testing for the strtobool implementation in util.py

* Fix import for util strtobool

* Forgot to change the args to strtobool to match our implementation

* Include the information about impacts of kaleido 1.0.0 changes under the METplotpy Upgrade Instructions

* Still one more place to fix the input to strtobool to match our implementation

* Refactor to eliminate sonarqube code smell

* Remove test code

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
bikegeek added a commit that referenced this pull request Jul 21, 2025
* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (#526)

* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Added support for env variable to turn on/off invoking the get_chrome_sync() to install Chrome at run-time

* test truthiness for booleans rather than string

* Update logic for checking PRE_LOAD_CHROME environment variable that is defined in the Dockerfile

* Remove print statement

* Add check for PRE_LOAD_CHROME env variable set in Dockerfile to turn on/off invoking kaleido.get_chrome_sync()

* Updated versions for Plotly and kaleido

* Allow logging to stdout and/or file to indicate whether Chrome is getting downloaded at runtime.  This facilitates testing for debugging.  Setting the PRE_LOAD_CHROME env variable to False (either as bool or string-case is insensitive) will invoke downloading Chrome via Plotly/kaleido. If PRE_LOAD_CHROME is not defined, Chrome will also be downloaded from Plotly/kaleido at run time.  Logging can be turned on/off by setting the LOG_BASE_PLOT to true/false (boolean or string) and a log file can be saved by setting the WRITE_LOG env var to true (boolean or string).

* Update the runtime loading of Chrome by allowing logging to monitor if Chrome is being downloaded at runtime.  Use METplotpy util.py strtobool to replace the distutils.util.strtobool to return a boolean value from the PRE_LOAD_CHROME and logging env vars.

* Implement our own version of the deprecated (in Python 3.12+) of distutils.utils.strtobool

* Add testing for the strtobool implementation in util.py

* Fix import for util strtobool

* Forgot to change the args to strtobool to match our implementation

* Include the information about impacts of kaleido 1.0.0 changes under the METplotpy Upgrade Instructions

* Still one more place to fix the input to strtobool to match our implementation

* Refactor to eliminate sonarqube code smell

* Remove test code

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
bikegeek added a commit that referenced this pull request Jul 21, 2025
* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Updates for coordinated release

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (for develop/v3.2 release) (#527)

* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Feature 525 update plotly kaleido (#529)

* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (#526)

* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Added support for env variable to turn on/off invoking the get_chrome_sync() to install Chrome at run-time

* test truthiness for booleans rather than string

* Update logic for checking PRE_LOAD_CHROME environment variable that is defined in the Dockerfile

* Remove print statement

* Add check for PRE_LOAD_CHROME env variable set in Dockerfile to turn on/off invoking kaleido.get_chrome_sync()

* Updated versions for Plotly and kaleido

* Allow logging to stdout and/or file to indicate whether Chrome is getting downloaded at runtime.  This facilitates testing for debugging.  Setting the PRE_LOAD_CHROME env variable to False (either as bool or string-case is insensitive) will invoke downloading Chrome via Plotly/kaleido. If PRE_LOAD_CHROME is not defined, Chrome will also be downloaded from Plotly/kaleido at run time.  Logging can be turned on/off by setting the LOG_BASE_PLOT to true/false (boolean or string) and a log file can be saved by setting the WRITE_LOG env var to true (boolean or string).

* Update the runtime loading of Chrome by allowing logging to monitor if Chrome is being downloaded at runtime.  Use METplotpy util.py strtobool to replace the distutils.util.strtobool to return a boolean value from the PRE_LOAD_CHROME and logging env vars.

* Implement our own version of the deprecated (in Python 3.12+) of distutils.utils.strtobool

* Add testing for the strtobool implementation in util.py

* Fix import for util strtobool

* Forgot to change the args to strtobool to match our implementation

* Include the information about impacts of kaleido 1.0.0 changes under the METplotpy Upgrade Instructions

* Still one more place to fix the input to strtobool to match our implementation

* Refactor to eliminate sonarqube code smell

* Remove test code

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Update release-notes.rst

updated the date for release

* Update conf.py

update date of release

* separated the Plotly note from the Python 3.12 note

* Modify formatting so link to Plotly site is within note block

* reapply different formatting to Notes section for Plotly/kaleido

* Fix indentation

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
bikegeek added a commit that referenced this pull request Jul 21, 2025
* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Updates for coordinated release

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (#526)

* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Feature 525 update plotly kaleido (#528)

* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (for develop/v3.2 release) (#527)

* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Added support for env variable to turn on/off invoking the get_chrome_sync() to install Chrome at run-time

* test truthiness for booleans rather than string

* Update logic for checking PRE_LOAD_CHROME environment variable that is defined in the Dockerfile

* Remove print statement

* Add check for PRE_LOAD_CHROME env variable set in Dockerfile to turn on/off invoking kaleido.get_chrome_sync()

* Updated versions for Plotly and kaleido

* Allow logging to stdout and/or file to indicate whether Chrome is getting downloaded at runtime.  This facilitates testing for debugging.  Setting the PRE_LOAD_CHROME env variable to False (either as bool or string-case is insensitive) will invoke downloading Chrome via Plotly/kaleido. If PRE_LOAD_CHROME is not defined, Chrome will also be downloaded from Plotly/kaleido at run time.  Logging can be turned on/off by setting the LOG_BASE_PLOT to true/false (boolean or string) and a log file can be saved by setting the WRITE_LOG env var to true (boolean or string).

* Update the runtime loading of Chrome by allowing logging to monitor if Chrome is being downloaded at runtime.  Use METplotpy util.py strtobool to replace the distutils.util.strtobool to return a boolean value from the PRE_LOAD_CHROME and logging env vars.

* Implement our own version of the deprecated (in Python 3.12+) of distutils.utils.strtobool

* Add testing for the strtobool implementation in util.py

* Fix import for util strtobool

* Forgot to change the args to strtobool to match our implementation

* Include the information about impacts of kaleido 1.0.0 changes under the METplotpy Upgrade Instructions

* Still one more place to fix the input to strtobool to match our implementation

* Refactor to eliminate sonarqube code smell

* Remove test code

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Update release-notes.rst

updated the date for release

* Update conf.py

update date of release

* separated the Plotly note from the Python 3.12 note

* Modify formatting so link to Plotly site is within note block

* reapply different formatting to Notes section for Plotly/kaleido

* Fix indentation

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
bikegeek added a commit that referenced this pull request Aug 21, 2025
* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (#526)

* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Feature 525 update plotly kaleido (#528)

* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (for develop/v3.2 release) (#527)

* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Added support for env variable to turn on/off invoking the get_chrome_sync() to install Chrome at run-time

* test truthiness for booleans rather than string

* Update logic for checking PRE_LOAD_CHROME environment variable that is defined in the Dockerfile

* Remove print statement

* Add check for PRE_LOAD_CHROME env variable set in Dockerfile to turn on/off invoking kaleido.get_chrome_sync()

* Updated versions for Plotly and kaleido

* Allow logging to stdout and/or file to indicate whether Chrome is getting downloaded at runtime.  This facilitates testing for debugging.  Setting the PRE_LOAD_CHROME env variable to False (either as bool or string-case is insensitive) will invoke downloading Chrome via Plotly/kaleido. If PRE_LOAD_CHROME is not defined, Chrome will also be downloaded from Plotly/kaleido at run time.  Logging can be turned on/off by setting the LOG_BASE_PLOT to true/false (boolean or string) and a log file can be saved by setting the WRITE_LOG env var to true (boolean or string).

* Update the runtime loading of Chrome by allowing logging to monitor if Chrome is being downloaded at runtime.  Use METplotpy util.py strtobool to replace the distutils.util.strtobool to return a boolean value from the PRE_LOAD_CHROME and logging env vars.

* Implement our own version of the deprecated (in Python 3.12+) of distutils.utils.strtobool

* Add testing for the strtobool implementation in util.py

* Fix import for util strtobool

* Forgot to change the args to strtobool to match our implementation

* Include the information about impacts of kaleido 1.0.0 changes under the METplotpy Upgrade Instructions

* Still one more place to fix the input to strtobool to match our implementation

* Refactor to eliminate sonarqube code smell

* Remove test code

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Delete test_requirements.txt

no longer needed to test updated plotly and kaleido versions

* Updates for coordinated release (#523)

* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Updates for coordinated release

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (for develop/v3.2 release) (#527)

* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Feature 525 update plotly kaleido (#529)

* Feature METplus2857 main v3.1 support (#512)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Per #515, remove deprecated import (#516)

* Update base_plot.py

comment out the pio.kaleido.scope line, this is now causing tests to fail due to kaleido warning for deprecations in September 2025

* Update base_plot.py

backing out the latest from pio.kaleido line.  WARNING: GHA tests may fail due to upcoming deprecation and warnings that emanate due to Python 3.12 still features that will be deprecated.

* Update test_scatter.py

Tests pass outside of GHA.  Something in GHA is causing issues with Python 3.12 and kaleido (causes AssertionError in kaleido)

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

* Feature 525 update plotly kaleido (#526)

* Update conf.py

update version for 3.20 beta1 development

* Feature 504 installation files (#511)

* Update Orion file for Python 3.12

* Per #504, updating Casper file for Python 3.12

* Per # 504, updating compiler for Orion

* Per #504, updating hera file for Python 3.12

* Per #504, updating jet file for Python 3.12

* Feature METplus2857 support (#513)

* Making index consistent with other METplus repositories

* Initial commit of overview

* Bugfix #515 develop - remove deprecated import (#517)

* Per #515, remove deprecated import

* remove additional unused import to resolve SQ

* Update base_plot.py

Comment out pio.kaleido.scope.chromium line.  Python 3.12 updates with updated deprecations in kaleido will cause some tests to fail due to these warnings.

* Remove soon to be deprecated call to plotly.io.kaleido.scope

* Comment out soon-to-be deprecated call to plolty.io.kaleido.scope

* add call to install chrome

* Add test_* to trigger and setup test to use test_requirements.txt

* To test plotly/kaleido updates

* Try using kaleido_get_chrome_sync

* Update import to use ploty.io._kaleido

* Using latest import, invoke the get_chrome() method instead of get_chrome_sync()

* explicitly pip install kaleido 1.0

* Add Google Chrome action

* fix syntax error

* remove - from the run command

* Explicitly get the Chrome environment, bypass the calls to plotly.io.kaleido for installing chrome, which already exists

* Set up a CHROME_INSTALL path and save it as an environment

* remove no-sudo

* removed extra line at top of file

* move env definition by indenting

* Removed all imports that didn't work and the soon to be deprecated reference to kaleido.scope.  Running after installing Chrome without setting an ENV variable.

* Remove any attempt to set an env

* Remove the --version to the path under the chrome installation

* Remove skip

* Update test_requirements.txt

match up with requirements.txt except for kaleido and plotly

* Attempt to get chrome via kaleido.get_chrome_sync()

* Update unit_tests.yaml

Comment out installation of Chrome for now but don't delete it in the event that Chrome will need to be explicitly available.

* Update base_plot.py

Remove old comment and update to reflect upcoming changes to kaleido

* Replace test_requirements.txt with requirements.txt

* Update Plotly from 6.0.0 to 6.1.1 and kaleido from 0.2.1 to 1.0.0

* Adding modulefile for new machine ursa

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Added support for env variable to turn on/off invoking the get_chrome_sync() to install Chrome at run-time

* test truthiness for booleans rather than string

* Update logic for checking PRE_LOAD_CHROME environment variable that is defined in the Dockerfile

* Remove print statement

* Add check for PRE_LOAD_CHROME env variable set in Dockerfile to turn on/off invoking kaleido.get_chrome_sync()

* Updated versions for Plotly and kaleido

* Allow logging to stdout and/or file to indicate whether Chrome is getting downloaded at runtime.  This facilitates testing for debugging.  Setting the PRE_LOAD_CHROME env variable to False (either as bool or string-case is insensitive) will invoke downloading Chrome via Plotly/kaleido. If PRE_LOAD_CHROME is not defined, Chrome will also be downloaded from Plotly/kaleido at run time.  Logging can be turned on/off by setting the LOG_BASE_PLOT to true/false (boolean or string) and a log file can be saved by setting the WRITE_LOG env var to true (boolean or string).

* Update the runtime loading of Chrome by allowing logging to monitor if Chrome is being downloaded at runtime.  Use METplotpy util.py strtobool to replace the distutils.util.strtobool to return a boolean value from the PRE_LOAD_CHROME and logging env vars.

* Implement our own version of the deprecated (in Python 3.12+) of distutils.utils.strtobool

* Add testing for the strtobool implementation in util.py

* Fix import for util strtobool

* Forgot to change the args to strtobool to match our implementation

* Include the information about impacts of kaleido 1.0.0 changes under the METplotpy Upgrade Instructions

* Still one more place to fix the input to strtobool to match our implementation

* Refactor to eliminate sonarqube code smell

* Remove test code

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* Update release-notes.rst

updated the date for release

* Update conf.py

update date of release

* separated the Plotly note from the Python 3.12 note

* Modify formatting so link to Plotly site is within note block

* reapply different formatting to Notes section for Plotly/kaleido

* Fix indentation

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>

* check for incorrectly formatted fixed_vars_vals_input value that is created by METviewer's MVBatch.java

---------

Co-authored-by: Julie Prestopnik <jpresto@ucar.edu>
Co-authored-by: George McCabe <23407799+georgemccabe@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

No open projects
Status: 🏁 Done

Development

Successfully merging this pull request may close these issues.

2 participants