Skip to content

Commit c9d5328

Browse files
vdavezclaude
andcommitted
docs: scrub internal-implementation language from public-facing files
Replace references to the upstream "lakehouse" with neutral language ("computed metrics", "upstream sync") in CHANGELOG, API_REFERENCE, SHAPES, source comments, and test docstrings. Internal storage details (e.g. "denormalized lakehouse table") replaced with capability framing ("optimized for fast pagination"). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 828dd36 commit c9d5328

5 files changed

Lines changed: 9 additions & 9 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
88
## [Unreleased]
99

1010
### Added
11-
- Vehicles: new top-level fields `program_acronym`, `idv_count`, `total_obligated`, `is_synthetic_solicitation`, `latest_award_date`, `description`, `opportunity_id`, and a live nested `organization` object (office hierarchy) — reflecting the upstream tango lakehouse cutover (May 2026).
12-
- Vehicles: new `metrics(*)` shape expansion bundling 12 lakehouse metrics: `avg_offers_received`, `award_concentration_hhi`, `order_concentration_hhi`, `competed_rate`, `using_agency_count`, `avg_order_value`, `max_order_value`, `top_recipient_share`, `recent_obligations_24mo`, `recent_orders_24mo`, `days_since_last_order`, `obligation_to_ceiling_ratio`. Backed by a new `VehicleMetrics` schema.
11+
- Vehicles: new top-level fields `program_acronym`, `idv_count`, `total_obligated`, `is_synthetic_solicitation`, `latest_award_date`, `description`, `opportunity_id`, and a live nested `organization` object (awarding-org snapshot) — tracking the upstream tango vehicles surface.
12+
- Vehicles: new `metrics(*)` shape expansion bundling 12 computed metrics: `avg_offers_received`, `award_concentration_hhi`, `order_concentration_hhi`, `competed_rate`, `using_agency_count`, `avg_order_value`, `max_order_value`, `top_recipient_share`, `recent_obligations_24mo`, `recent_orders_24mo`, `days_since_last_order`, `obligation_to_ceiling_ratio`. Backed by a new `VehicleMetrics` schema.
1313
- `list_vehicle_orders(uuid, ...)` for the new `/api/vehicles/{uuid}/orders/` endpoint, returning task orders under the vehicle's IDVs with two-phase pagination.
1414
- `ordering` parameter on `list_vehicles` (whitelist: `vehicle_obligations`, `latest_award_date`; prefix `-` for descending) and on `list_vehicle_orders` (whitelist: `award_date`, `obligated`, `total_contract_value`).
1515
- `ShapeConfig.VEHICLE_ORDERS_MINIMAL` default for the new orders endpoint.

docs/API_REFERENCE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,7 @@ awardees = client.list_vehicle_awardees(
556556

557557
### list_vehicle_orders()
558558

559-
List task orders under a vehicle's IDVs (`/api/vehicles/{uuid}/orders/`). Backed by a denormalized lakehouse table for fast pagination over large vehicles.
559+
List task orders under a vehicle's IDVs (`/api/vehicles/{uuid}/orders/`). Optimized for fast pagination over large vehicles.
560560

561561
```python
562562
orders = client.list_vehicle_orders(
@@ -602,7 +602,7 @@ The post-cutover (May 2026) vehicle response includes these top-level fields, al
602602
### Vehicle shape expansions
603603

604604
- `awardees(...)` — underlying IDV awards. Supports nested `orders(...)`.
605-
- `metrics(*)` — bundled lakehouse metrics: `avg_offers_received`, `award_concentration_hhi`, `order_concentration_hhi`, `competed_rate`, `using_agency_count`, `avg_order_value`, `max_order_value`, `top_recipient_share`, `recent_obligations_24mo`, `recent_orders_24mo`, `days_since_last_order`, `obligation_to_ceiling_ratio`. Defaults included in `ShapeConfig.VEHICLES_COMPREHENSIVE`.
605+
- `metrics(*)` — bundled computed metrics: `avg_offers_received`, `award_concentration_hhi`, `order_concentration_hhi`, `competed_rate`, `using_agency_count`, `avg_order_value`, `max_order_value`, `top_recipient_share`, `recent_obligations_24mo`, `recent_orders_24mo`, `days_since_last_order`, `obligation_to_ceiling_ratio`. Defaults included in `ShapeConfig.VEHICLES_COMPREHENSIVE`.
606606
- `organization` — live awarding-org snapshot (selected as a leaf field; not sub-selectable).
607607

608608
### Deprecated shape fields

docs/SHAPES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ grants = client.list_grants(shape=ShapeConfig.GRANTS_MINIMAL)
5959

6060
**Available constants:** Contracts (`CONTRACTS_MINIMAL`), Entities (`ENTITIES_MINIMAL`, `ENTITIES_COMPREHENSIVE`), Forecasts, Opportunities, Notices, Grants, IDVs, Vehicles (`VEHICLES_MINIMAL`, `VEHICLES_COMPREHENSIVE`, `VEHICLE_AWARDEES_MINIMAL`, `VEHICLE_ORDERS_MINIMAL`), Organizations, OTAs, OTIDVs, Subawards. See [API Reference – ShapeConfig](API_REFERENCE.md#shapeconfig-predefined-shapes) for the full table and which method uses which constant.
6161

62-
> **Vehicles `metrics(*)` expansion:** The post-cutover (May 2026) vehicles surface bundles 12 lakehouse metrics under a single `metrics(*)` expansion (e.g. `award_concentration_hhi`, `competed_rate`, `top_recipient_share`). It is included in `VEHICLES_COMPREHENSIVE` by default. The `agency_details`, `competition_details`, and `opportunity` shape entries are deprecated and emit `DeprecationWarning` if requested explicitly.
62+
> **Vehicles `metrics(*)` expansion:** The vehicles surface bundles 12 computed metrics under a single `metrics(*)` expansion (e.g. `award_concentration_hhi`, `competed_rate`, `top_recipient_share`). It is included in `VEHICLES_COMPREHENSIVE` by default. The `agency_details`, `competition_details`, and `opportunity` shape entries are deprecated and emit `DeprecationWarning` if requested explicitly.
6363
6464
## Basic Shaping
6565

tango/shapes/explicit_schemas.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -838,7 +838,7 @@
838838
}
839839

840840

841-
# Vehicles expose a "metrics(...)" expansion bundling lakehouse-computed metrics.
841+
# Vehicles expose a "metrics(...)" expansion bundling computed metrics.
842842
VEHICLE_METRICS_SCHEMA: dict[str, FieldSchema] = {
843843
"avg_offers_received": FieldSchema(
844844
name="avg_offers_received", type=float, is_optional=True, is_list=False

tests/integration/test_vehicles_idvs_integration.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def test_list_vehicles_uses_default_shape_and_search(self, tango_client):
9191
)
9292
assert isinstance(solicitation_date, date), "solicitation_date should be date"
9393

94-
# Post-cutover (May 2026) lakehouse fields. All optional — only verify type when present.
94+
# New vehicle fields. All optional — only verify type when present.
9595
is_synth = _field(vehicle, "is_synthetic_solicitation")
9696
if is_synth is not None:
9797
assert isinstance(is_synth, bool), "is_synthetic_solicitation should be bool"
@@ -254,7 +254,7 @@ def test_list_vehicles_with_ordering(self, tango_client):
254254

255255
@handle_api_exceptions("vehicles")
256256
def test_get_vehicle_with_metrics_expansion(self, tango_client):
257-
"""`metrics(*)` expansion returns the 12 lakehouse metric fields with correct types."""
257+
"""`metrics(*)` expansion returns the 12 metric fields with correct types."""
258258
list_response = tango_client.list_vehicles(limit=1)
259259
if not list_response.results:
260260
pytest.skip("No vehicles available to test metrics expansion")
@@ -266,7 +266,7 @@ def test_get_vehicle_with_metrics_expansion(self, tango_client):
266266

267267
metrics = _field(vehicle, "metrics")
268268
if metrics is None:
269-
pytest.skip("Vehicle has no metrics row yet (lakehouse sync may be pending)")
269+
pytest.skip("Vehicle has no metrics yet (upstream sync may be pending)")
270270

271271
assert isinstance(metrics, dict), "metrics expansion should be a dict"
272272
# Float-typed metrics

0 commit comments

Comments
 (0)