Skip to content

Selected camel-case OGC properties disappear after column normalization #437

Closed as not planned

Description

@qorud02

When an OGC response uses a camel-case property and the caller selects it with properties, the returned DataFrame silently loses that column.

For example, a response frame containing id="obs-1" and sampleTime="2024-01-01T00:00:00Z", with properties=["sampleTime"], is normalized to a sample_time column in _finalize_ogc. The subsequent _arrange_cols call compares the original sampleTime name with the normalized columns and returns a frame with no columns. The result should retain sample_time and its value.

This occurs in the local shaping path without an API request. The Water Data API's snake-case properties do not trigger it, but the same OGC shaping code explicitly supports camel-case response fields. I have a small fix and regression test in progress: normalize requested property names the same way as returned column names before selecting them.

Activity

  1. thodson-usgs commented on Oct 13, 2026

    @thodson-usgs
    Collaborator

    Closed with #438. Thank you for the clear report and the fix. I'm closing this because no service the package calls returns camelCase properties. On 2026-10-13 the queryables of all 39 Water Data OGC collections and all 6 NGWMN collections were snake_case, so the rename in _finalize_ogc changes nothing in a real call. If a service with camelCase properties is added, the fix will be a dialect field in its adapter (ADR 0014, #448) rather than more normalization in the shared shaping code. That would also keep one spelling for callers: the names they pass in properties would be the names they get back.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions