Skip to content

Commit 0dca021

Browse files
bokelleyclaude
andauthored
feat: sync ADCP schemas to latest, add brand compat and AAO member API (#132)
* feat: sync ADCP schemas to latest, add brand compat layer and AAO member API - Update ADCP_VERSION from 3.0.0-beta.3 to latest; sync all 274 schemas - Remove brand-manifest.json (dropped upstream); keep BrandManifest as backwards-compat stub in _generated.py for existing imports - Add brand/brand_manifest cross-population on ResolvedBrand so both field names are always accessible regardless of which the registry returns - Replace lookup_operator/lookup_operators with lookup_brand — operators are brands in the AAO registry, no separate endpoint needed - Add Member type and list_members/get_member to RegistryClient for the AAO member directory (/api/members) - Fix FieldModel.format_ → FieldModel.format (format is not a Python keyword) - Fix CreateMediaBuyRequest test: brand_manifest field replaced by brand ref Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: resolve CI failures for BrandManifest and constr mypy errors Two CI failures were found on PR #132: 1. Schema validation: NameError for BrandManifest in _generated.py - consolidate_exports.py hardcoded BrandManifest.model_rebuild() but BrandManifest is no longer defined (schema removed upstream in latest) - Fix: remove BrandManifest.model_rebuild() call; emit a backwards-compat stub class in the generated _generated.py output so existing imports work 2. Mypy valid-type errors in 5 generated files - datamodel-code-generator emits constr(pattern=...) as dict key types - mypy's Pydantic v2 plugin rejects this; requires Annotated[str, StringConstraints(...)] - Fix: add fix_constr_type_annotations() to post_generate_fixes.py to automatically rewrite the pattern after every schema sync Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: apply black formatting to _generated.py to match CI output The local consolidate_exports.py run couldn't format with black (not installed in system Python), leaving _generated.py with single-line imports. CI has black installed, so it reformats to multi-line, causing the validation check to always fail with a diff. Pre-format the committed _generated.py with black so it matches CI's regenerated output. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: use uv run black in consolidate_exports.py for consistent formatting When run outside the uv virtualenv, sys.executable may not have black installed. This caused consolidate_exports.py to silently skip formatting, producing single-line imports that CI's black would then reformat differently. Try uv run black first (always available in this project), fall back to sys.executable for environments without uv. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> * fix: use pytest.mark.asyncio consistently in test_raises_on_invalid_limit The test was using asyncio.run() directly in a sync method while all surrounding tests use @pytest.mark.asyncio. Align for consistency. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 9bfb0fb commit 0dca021

File tree

70 files changed

+1738
-1862
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

70 files changed

+1738
-1862
lines changed

schemas/cache/.hashes.json

Lines changed: 275 additions & 273 deletions
Large diffs are not rendered by default.

schemas/cache/adagents.json

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
"description": "Declaration of authorized agents for advertising inventory and data signals. Hosted at /.well-known/adagents.json on publisher domains (for properties) or data provider domains (for signals). Can either contain the full structure inline or reference an authoritative URL.",
44
"examples": [
55
{
6-
"$schema": "/schemas/3.0.0-beta.3/adagents.json",
6+
"$schema": "/schemas/latest/adagents.json",
77
"authoritative_location": "https://cdn.example.com/adagents/v2/adagents.json",
88
"last_updated": "2025-01-15T10:00:00Z"
99
},
1010
{
11-
"$schema": "/schemas/3.0.0-beta.3/adagents.json",
11+
"$schema": "/schemas/latest/adagents.json",
1212
"authorized_agents": [
1313
{
1414
"authorization_type": "property_tags",
@@ -41,7 +41,7 @@
4141
}
4242
},
4343
{
44-
"$schema": "/schemas/3.0.0-beta.3/adagents.json",
44+
"$schema": "/schemas/latest/adagents.json",
4545
"authorized_agents": [
4646
{
4747
"authorization_type": "property_tags",
@@ -150,7 +150,7 @@
150150
}
151151
},
152152
{
153-
"$schema": "/schemas/3.0.0-beta.3/adagents.json",
153+
"$schema": "/schemas/latest/adagents.json",
154154
"authorized_agents": [
155155
{
156156
"authorization_type": "property_tags",
@@ -189,7 +189,7 @@
189189
}
190190
},
191191
{
192-
"$schema": "/schemas/3.0.0-beta.3/adagents.json",
192+
"$schema": "/schemas/latest/adagents.json",
193193
"authorized_agents": [
194194
{
195195
"authorization_type": "publisher_properties",
@@ -235,7 +235,7 @@
235235
"last_updated": "2025-01-10T17:00:00Z"
236236
},
237237
{
238-
"$schema": "/schemas/3.0.0-beta.3/adagents.json",
238+
"$schema": "/schemas/latest/adagents.json",
239239
"authorized_agents": [
240240
{
241241
"authorization_type": "property_tags",
@@ -310,7 +310,7 @@
310310
}
311311
},
312312
{
313-
"$schema": "/schemas/3.0.0-beta.3/adagents.json",
313+
"$schema": "/schemas/latest/adagents.json",
314314
"authorized_agents": [
315315
{
316316
"authorization_type": "signal_tags",

0 commit comments

Comments
 (0)