Latest Repo Discovered
algo-certify-dApp-nft
Jupyter Notebook
·
No license
Top Contributor of the Month
8821 commits in all time
Dec 24, 2025 16:20 – Mar 24, 2026 16:20 UTC
chore: add independent schema validation script for api client models (#263)
* feat: adds runtime validation using Pydantic schemas
Implements runtime validation of API client responses using Pydantic schemas.
This provides an additional layer of sanity checks on top of generated API clients.
The schemas are generated from OpenAPI specifications using a new script.
Adds a new `poe` task to easily regenerate schemas.
Adds tests to validate the generated schemas.
Pydantic is added as a development dependency.
Validation schemas are optional, requiring `pydantic>=2.0` to be installed.
* chore: generate the validation schemas
* chore: move schemas to tests folder to avoid polluting prod packages exposed to end users
* fix: unblock check-python after alpha merge
* fix: enforce required fields, fix docs, restore targeted lint rules
- Generator: required fields no longer get default=None (Pydantic
actually validates them now)
- Generator: only emit `from typing import Any` when used
- Generator: add timeout and error handling to fetch_spec
- Docs: fix stale import paths in README.md and VALIDATION.md after
schema move to tests/fixtures/
- Lint: revert global PLC0415/FBT001/FBT002/PLW1641 suppression,
restore targeted noqa comments on specific lines
- Tests: provide all required fields, add test_missing_required_fields
- Snapshots: update mock server snapshots to match current HAR data
* feat: add schema validation to polytests, aligned with TS approach
Mirrors the TypeScript variant's pattern of calling Schema.parse(result)
in every polytest to validate real API responses against OAS-generated
schemas, closing the gap between spec and implementation.
Schema generator improvements:
- Use IdentifierSanitizer-compatible _to_snake() for field naming
(handles camelCase, Python builtins, x-algokit-field-rename)
- Handle string/enum types as RootModel[str]
- Handle byte arrays (uint8[]) as RootModel[str] (base64)
- Handle opaque empty schemas as RootModel[str]
Polytest changes:
- Added validate_with_schema() to 55 polytests across algod, indexer,
and kmd clients
- Serializer now handles Python Enum values correctly
- Updated snapshots for enum serialization changes
- 1 known OAS spec mismatch documented (apps-local-states required
but API returns null)
* chore: deduplicate RootModel templates, fix missing newlines at EOF
- Refactor generate_schema() to extract _root_model() and
_is_byte_array() helpers, eliminating 3 copies of identical
RootModel[str] template
- Fix missing newline at EOF in 6 docs/config files (pre-commit)
* fix: update snapshots for enum serialization (repr → value)
Snapshots now use enum .value ("noop") instead of repr
("<OnCompletion.NOOP: 'noop'>") to match the corrected
_dataclass_to_dict serializer. Only enum formatting changed —
no mock server data diffs.
* refactor: consolidate 211 schema files into 3 modules
Replace per-class file structure (algod/82 files + indexer/72 files +
kmd/54 files + 3 __init__.py) with one module per client (algod.py,
indexer.py, kmd.py).
Benefits:
- 211 files → 3 files
- Eliminates __init__.py boilerplate (imports, model_rebuild, __all__)
- Eliminates forward reference strings — topological sort enables
direct class references
- from __future__ import annotations handles remaining edge cases
- No ruff per-file overrides needed (was 9 suppressed rules)
- Import paths unchanged: `from tests.fixtures.schemas.algod import X`
Generator improvements:
- Topological sort of schemas by dependency order
- PascalCase class names (ed25519PublicKey → Ed25519PublicKey)
- Docstring escaping and truncation for ruff compliance
- Cleaner module assembly — shared imports at top
7f660b75
alpha
85/3,172 ++ 181 --
Merge ef0e3c28d2c42ed183d7d04d2b8a91879ffc95d5 into 849e87ab2dbe46afc5cd7f06cbdb2dc8247a70f7
676a8ed7
pull/670/merge
70/13,389 ++ 5 --
Merge 74bc65a4f7ec45e141a96c4a7b155f69e43c9f6f into 35fbfd45094f0af0dfcd38755360acb1c7ac0747
e583e0b6
pull/6592/merge
10/560 ++ 207 --
add Go Benchmark (go) benchmark result for 35fbfd45094f0af0dfcd38755360acb1c7ac0747
71295203
gh-pages
1/445 ++ 1 --
add Go Benchmark (go) benchmark result for ace361f345406f9349f593d892002f9ca2badb97
e488b618
gh-pages
1/445 ++ 1 --
Merge 1ceabbca9cafb7ffdd3271b35337a34623681192 into 35fbfd45094f0af0dfcd38755360acb1c7ac0747
daf95500
pull/6581/merge
2/51 ++ 37 --
Merge 11e5f64c137a98310aae1c29efaf1de965a043d6 into 35fbfd45094f0af0dfcd38755360acb1c7ac0747
ed931013
pull/6589/merge
2/10 ++ 0 --
network: fix double logging with elevated level (#6583)
35fbfd45
master
3/88 ++ 33 --
tests: fix TestDiscardUnrequestedBlockResponse race (#6591)
ace361f3
master
1/1 ++ 0 --
Merge 9175f99ccd8f280c66f56624ccb605d2435b5a41 into 5073ca134b7c4c5721fcfbe976d5c364a5cc777a
bbf208e3
pull/421/merge
14/1,395 ++ 1,109 --
chore(deps): update non-major dependencies
9175f99c
renovate/non-major-dependencies
14/1,395 ++ 1,109 --
PERA-2983 | Log notification type on click (#526)
d965927e
dev
13/120 ++ 18 --
Merge 72481725ee89da575ff025e3f51c3904cf0cd15a into ba9a28ae3f474997c78b6da0ee28f270f2d7b53f
5143d7cf
pull/6583/merge
3/88 ++ 33 --
Merge ca0897e9db5b353af3eb2a4aa8d3664d18d34832 into df51dd07e5d83638d4605a1dd5e9d63838d7dcfb
d60fa121
pull/315/merge
3/15 ++ 7 --
Merge 663678825137303e334617bdb27882052a252d1c into b88fb1005db40e8a1b27bad7684ba7fc96b0f047
abfcef77
pull/314/merge
1/10 ++ 2 --
PERA-3709 - Joint Account - Unkey rekeyed account
- Fixed issue with unkeying joint account. Now JA unkey transaction will be sign with correct owner accounts.
66367882
feature/PERA-3709
1/10 ++ 2 --
Joint Account - Ledger Account as co-owner
- Added support for ledger devices for joint accounts.
b3675778
feature/PERA-3709
20/782 ++ 498 --
Merge b88fb1005db40e8a1b27bad7684ba7fc96b0f047 into df51dd07e5d83638d4605a1dd5e9d63838d7dcfb
bd73558e
pull/313/merge
20/782 ++ 498 --
Joint Account - Ledger Account as co-owner
- Added support for ledger devices for joint accounts.
b88fb100
feature/PERA-3712
20/782 ++ 498 --
v6.18.0
- fix network change flow - account name fixed - The joint account pending screen will now show failure reason. - Navigation bar on the SuccessResultScreen will now be hidden. - fix overload issue. fix asset favorite and price alert status updates
df51dd07
main
10/85 ++ 52 --
Merge 3ff0feb44197858946d73cc57c23402fdf1c20d1 into 5073ca134b7c4c5721fcfbe976d5c364a5cc777a
56c2f536
pull/434/merge
5/432 ++ 0 --