Skip to content

Update uv lockfile - #13990

Closed
larsevj wants to merge 1 commit into
mainfrom
update-uv-lockfile
Closed

Update uv lockfile#13990
larsevj wants to merge 1 commit into
mainfrom
update-uv-lockfile

Conversation

@larsevj

@larsevj larsevj commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator
Using CPython 3.14.6 interpreter at: /opt/hostedtoolcache/Python/3.14.6/x64/bin/python3.14
Resolved 292 packages in 4.17s
Updated aiohappyeyeballs v2.6.2 -> v2.7.1
Updated anyio v4.14.1 -> v4.14.2
Updated ast-serialize v0.5.0 -> v0.6.0
Updated asttokens v3.0.1 -> v3.0.2
Updated blosc2 v4.6.0 -> v4.9.1
Updated cffi v2.0.0 -> v2.1.0
Updated charset-normalizer v3.4.7 -> v3.4.9
Updated coverage v7.14.3 -> v7.15.2
Updated cwrap v1.6.14 -> v1.6.16
Updated fastapi v0.138.1 -> v0.139.2
Updated filelock v3.29.4 -> v3.31.1
Added h2 v4.3.0
Added hpack v4.2.0
Updated httpx-retries v0.5.0 -> v0.6.0
Updated humanize v4.15.0 -> v4.16.0
Added hyperframe v6.1.0
Updated hypothesis v6.155.7 -> v6.157.0
Updated imageio v2.37.3 -> v2.37.4
Updated jupyter-builder v1.0.2 -> v1.1.1
Updated jupyterlab v4.6.1 -> v4.6.2
Updated librt v0.11.0 -> v0.13.0
Updated matplotlib v3.11.0 -> v3.11.1
Updated mistune v3.3.2 -> v3.3.3
Updated mypy v2.1.0 -> v2.3.0
Updated narwhals v2.22.1 -> v2.24.0
Updated numexpr v2.14.1 -> v2.14.2
Updated numpy v2.5.0 -> v2.5.1
Updated opentelemetry-api v1.43.0 -> v1.44.0
Updated opentelemetry-instrumentation v0.64b0 -> v0.65b0
Updated opentelemetry-instrumentation-threading v0.64b0 -> v0.65b0
Updated opentelemetry-sdk v1.43.0 -> v1.44.0
Updated opentelemetry-semantic-conventions v0.64b0 -> v0.65b0
Updated pillow v12.2.0 -> v12.3.0
Updated platformdirs v4.10.0 -> v4.10.1
Updated polars v1.42.0 -> v1.42.1
Updated polars-runtime-32 v1.42.0 -> v1.42.1
Updated pyarrow v24.0.0 -> v25.0.0
Updated pytest-durations v1.6.3 -> v1.7.0
Updated pytest-memray v1.8.0 -> v1.9.0
Updated pytest-rerunfailures v16.3 -> v16.4
Updated python-discovery v1.4.2 -> v1.4.4
Updated python-utils v3.9.1 -> v4.0.0
Updated rpds-py v2026.5.1 -> v2026.6.3
Updated rust-just v1.54.0 -> v1.57.0
Updated soupsieve v2.8.4 -> v2.9
Updated sphinx-argparse v0.5.2 -> v0.6.0
Updated surfio v0.0.21 -> v0.0.22
Updated textual v8.2.7 -> v8.2.8
Updated tifffile v2026.6.1 -> v2026.7.14
Updated tqdm v4.68.3 -> v4.69.1
Updated types-decorator v5.2.0.20260519 -> v5.2.0.20260712
Updated types-docutils v0.22.3.20260518 -> v0.22.3.20260712
Updated types-python-dateutil v2.9.0.20260518 -> v2.9.0.20260716
Updated types-requests v2.33.0.20260518 -> v2.33.0.20260712
Updated types-setuptools v82.0.0.20260518 -> v83.0.0.20260716
Updated types-tqdm v4.68.0.20260608 -> v4.69.0.20260720
Updated typing-extensions v4.15.0 -> v4.16.0
Updated tzdata v2026.2 -> v2026.3
Updated uvicorn v0.49.0 -> v0.51.0
Updated virtualenv v21.5.1 -> v21.6.1
Updated wcwidth v0.8.1 -> v0.8.2
Updated websockets v16.0 -> v16.1.1
Updated xarray v2026.4.0 -> v2026.7.0
Updated xtgeo v4.24.1 -> v4.24.5
Updated xtgeoviz v0.3.1 -> v0.3.2
Updated yarl v1.24.2 -> v1.24.5

@codecov-commenter

codecov-commenter commented Jul 13, 2026

Copy link
Copy Markdown

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
4115 1 4114 63
View the top 1 failed test(s) by shortest run time
tests/ert/ui_tests/cli/test_field_parameter.py::test_field_param_update_using_heat_equation_zero_var_params_and_adaptive_loc
Stack Traces | 3.03s run time
symlinked_heat_equation_storage_es = ErtConfig(substitutions={'<CONFIG_PATH>': '.../ert/ert/.pytest_cache.../d/heat_equation_data_es/test_data',...=40.5, north=25.5, radius=20.0), 3: CircleShapeConfig(shape_id=3, type='circle', east=25.5, north=40.5, radius=20.0)}))
caplog = <_pytest.logging.LogCaptureFixture object at 0x7f5f06ded400>

    @pytest.mark.timeout(600)
    @pytest.mark.xdist_group(name="uses_heat_equation_storage")
    def test_field_param_update_using_heat_equation_zero_var_params_and_adaptive_loc(
        symlinked_heat_equation_storage_es, caplog
    ):
        """Test field parameter updates with zero-variance regions and adaptive
        localization.
    
        This test verifies the behavior of the ensemble smoother update when dealing with
        field parameters that contain regions of zero variance (constant values across all
        realizations). Such scenarios have been reported to cause performance issues and
        numerical instabilities.
    
        Specifically, this test:
        1. Creates a field where the first 5 layers are set to constant values (1.0)
        2. Performs a smoother update with adaptive localization
        3. Verifies expected numerical warnings are raised due to zero variance
        4. Confirms the update still reduces overall parameter uncertainty
    
        The test documents known limitations with adaptive localization when handling
        zero-variance regions, particularly:
        - Runtime degradation
        - Numerical warnings from division by zero
        - Cross-correlation matrix instabilities
        """
        config = ErtConfig.from_file("config.ert")
        with open_storage(config.ens_path, mode="w") as storage:
            experiment = storage.get_experiment_by_name("es")
            prior = experiment.get_ensemble_by_name("iter-0")
            cond = prior.load_parameters("COND")
            init_temp_scale = prior.load_parameters("INIT_TEMP_SCALE")
            corr_length = prior.load_parameters("CORR_LENGTH")
    
            new_experiment = storage.create_experiment(
                experiment_config={
                    "parameter_configuration": [
                        pc.model_dump(mode="json")
                        for pc in config.ensemble_config.parameter_configuration
                    ],
                    "response_configuration": [
                        rc.model_dump(mode="json")
                        for rc in config.ensemble_config.response_configuration
                    ],
                    "observations": [
                        od.model_dump(mode="json") for od in config.observation_declarations
                    ],
                },
                name="exp-zero-var",
            )
            new_prior = storage.create_ensemble(
                new_experiment,
                ensemble_size=prior.ensemble_size,
                iteration=0,
                name="prior-zero-var",
            )
            cond["values"][:, :, :5, 0] = 1.0
            for real in range(prior.ensemble_size):
                new_prior.save_parameters(cond, "COND", real)
                new_prior.save_parameters(init_temp_scale, "INIT_TEMP_SCALE", real)
                new_prior.save_parameters(corr_length, "CORR_LENGTH", real)
    
            # Copy responses from existing prior to new prior.
            # Note that we ideally should generate new responses by running the
            # heat equation with the modified prior where parts of the field
            # are given a constant value.
            responses = prior.load_responses("summary", tuple(range(prior.ensemble_size)))
            for realization in range(prior.ensemble_size):
                df = responses.filter(pl.col("realization") == realization)
                new_prior.save_response("summary", df, realization)
    
            new_posterior = storage.create_ensemble(
                new_experiment,
                ensemble_size=config.runpath_config.num_realizations,
                iteration=1,
                name="new_ensemble",
                prior_ensemble=new_prior,
            )
    
            with warnings.catch_warnings(record=True) as record:
                warnings.simplefilter("always")  # Ensure all warnings are always recorded
                with caplog.at_level(logging.INFO):
                    es_settings = config.analysis_config.es_settings
                    strategy_map = build_strategy_map(
                        parameters=config.ensemble_config.parameters,
                        param_configs=new_prior.experiment.parameter_configuration,
                        enkf_truncation=es_settings.enkf_truncation,
                        correlation_threshold=es_settings.correlation_threshold,
                    )
                    smoother_update(
                        new_prior,
                        new_posterior,
                        experiment.observation_keys,
                        ObservationSettings(),
                        rng=np.random.default_rng(42),
                        strategy_map=strategy_map,
                    )
    
                    # Note that this used to fail since run time and user warnings were
                    # thrown because we tried updating parameters with zero variance.
>                   assert not record
E                   assert not [<warnings.WarningMessage object at 0x7f5f06d15a90>]

.../ui_tests/cli/test_field_parameter.py:455: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📋 Got 3 mins? Take this short survey to help us improve Test Analytics.

@larsevj
larsevj force-pushed the update-uv-lockfile branch from 2dd048e to de248fc Compare July 20, 2026 09:11
@larsevj
larsevj force-pushed the update-uv-lockfile branch from de248fc to 9f8b0e1 Compare July 27, 2026 09:16
@larsevj larsevj closed this Aug 3, 2026
@github-project-automation github-project-automation Bot moved this to Done in SCOUT Aug 3, 2026
@larsevj
larsevj deleted the update-uv-lockfile branch August 3, 2026 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants