The Development Finance Observatory integrates aid, debt, climate and health finance, domestic budgets, and remittances into a single open platform, where every number is traceable to its source.
翻译准备中
金融PythonGitHub @DevelopmentFinanceObservatory在线运营者未确认
试用过了吗? 点一下就好,无需登录。
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证Schemas, registries, conformance vectors and Python packages for DFO data contracts.
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗The spec kit holds the shared data contracts of the Development Finance Observatory as JSON schemas, registries, conformance vectors, and Python packages that implement them. Services that must agree on the same bytes, ids, and document formats import them from here instead of keeping their own copies.
It is part of the Development Finance Observatory, an initiative of ONE Data built on Google Data Commons. The org profile has the map of all repositories. The services that consume the kit are apis (the Search API), ai (the harness and Analysis MCP), website, and docs.
This repository is under active development. Interfaces, schemas, and data may change without notice.
Each contract answers one question that two or more services must answer identically.
spec_id, so every service mints the same id for the same request.content_version.Every contract ships with conformance vectors, language-neutral fixtures that any implementation, in any language, can run against. Where prose and vectors disagree, the vectors win.
Six Python distributions live under python/. Each has its own version, dependencies, tests, and README. All need Python 3.12 or later.
| Distribution | Import name | What it does |
|---|---|---|
dfo-spec-kit | dfo_spec_kit | Dataset-spec identity (canonical form, spec_id) and typed units read from registries/units.json. |
dfo-spec-kit-frame-grammar | dfo_frame_grammar | Canonical frame bytes and content_version for a materialised observation table. |
dfo-spec-kit-components | dfo_spec_kit_components | The presentation catalogue: envelope and component schemas, the write-side intent grammar, and fixtures, as package data. |
dfo-spec-kit-provenance-docs | dfo_provenance_docs | Decoder and parsers for the Markdown documents a Provenance node carries. |
dfo-spec-kit-descriptions | dfo_descriptions | Step and description schemas, the operation list, and a check of the rules a step list must meet. |
dfo-spec-kit-client-contract | dfo_client_contract | The contract the DFO clients are built to: served OpenAPI document, strict fields, refusal actions, scenarios, rules. |
dfo-spec-kit-frame-grammar depends on dfo-spec-kit. dfo-spec-kit-components depends on dfo-spec-kit-descriptions. The other four have no dependency inside the kit.
docs/ normative specifications: identity-v1.md, frame-grammar-v1.md, and maintainer notes
policies/ compatibility policy per artifact family
python/ the six packages
registries/ codes.json (warning and refusal codes) and units.json (unit refs)
schemas/ JSON Schema for the registries and the vector suites
tools/ validators for the registries, vector suites, and client contract
vectors/ cross-language conformance vectors for identity and units
No package is published to PyPI. Install from git, pinned to one commit. Replace <rev> with a commit SHA from this repository.
uv add "git+https://github.com/DevelopmentFinanceObservatory/spec-kit@<rev>#subdirectory=python/spec-kit"
uv add "git+https://github.com/DevelopmentFinanceObservatory/spec-kit@<rev>#subdirectory=python/frame-grammar"
uv add "git+https://github.com/DevelopmentFinanceObservatory/spec-kit@<rev>#subdirectory=python/dfo-spec-kit-components"
uv add "git+https://github.com/DevelopmentFinanceObservatory/spec-kit@<rev>#subdirectory=python/provenance-docs"
uv add "git+https://github.com/DevelopmentFinanceObservatory/spec-kit@<rev>#subdirectory=python/descriptions"
uv add "git+https://github.com/DevelopmentFinanceObservatory/spec-kit@<rev>#subdirectory=python/client-contract"
A package declares its kit dependency by name only. uv resolves it from the same commit through a path source in the package's [tool.uv.sources], so uv add of frame-grammar also installs dfo-spec-kit. Other installers read the bare name and fail, so with pip name both distributions at the same commit:
pip install \
"dfo-spec-kit-components @ git+https://github.com/DevelopmentFinanceObservatory/spec-kit@<rev>#subdirectory=python/dfo-spec-kit-components" \
"dfo-spec-kit-descriptions @ git+https://github.com/DevelopmentFinanceObservatory/spec-kit@<rev>#subdirectory=python/descriptions"
A uv project that imports more than one kit distribution pins each in its own [tool.uv.sources], every entry at the same rev:
[tool.uv.sources]
dfo-spec-kit-components = { git = "https://github.com/DevelopmentFinanceObservatory/spec-kit.git", rev = "<rev>", subdirectory = "python/dfo-spec-kit-components" }
dfo-spec-kit-descriptions = { git = "https://github.com/DevelopmentFinanceObservatory/spec-kit.git", rev = "<rev>", subdirectory = "python/descriptions" }
The kit needs no access to ONE's Google Cloud project. Everything here installs, runs, and tests locally.
content_version.python/ documents that package's API and vector suite.Issues and pull requests are welcome. See CONTRIBUTING.md.
MIT. See LICENSE.