{
  "surface": "DKE source",
  "base": "https://dke.langsyn.com",
  "url_shape": "/source/{project}/{version}/{path}",
  "projects": [
    {
      "id": "code",
      "title": "code — a reasoning module",
      "summary": "Reasoning about a codebase, as a DKE Python module you compile into your own store. It supplies the kind schema, the standing rules and the queries; you supply the facts — your functions, classes, calls and imports. Pairs with dkepy, which is how the facts get written.",
      "licence": "MIT",
      "latest": "1.12.0",
      "versions": [
        {
          "version": "1.12.0",
          "index": "/source/code/1.12.0/",
          "tarball": "/source/code/1.12.0/code-1.12.0.tar.gz",
          "files": [
            {
              "path": "code.dpy",
              "url": "/source/code/1.12.0/code.dpy"
            }
          ]
        }
      ]
    },
    {
      "id": "dkepy",
      "title": "dkepy",
      "summary": "Write facts into a DKE store, from Python, for kinds you define yourself. A DKE reasoning module supplies the reasoning; this supplies the facts.",
      "licence": "MIT",
      "latest": "0.5.1",
      "versions": [
        {
          "version": "0.5.1",
          "index": "/source/dkepy/0.5.1/",
          "tarball": "/source/dkepy/0.5.1/dkepy-0.5.1.tar.gz",
          "files": [
            {
              "path": "LICENSE",
              "url": "/source/dkepy/0.5.1/LICENSE"
            },
            {
              "path": "README.md",
              "url": "/source/dkepy/0.5.1/README.md"
            },
            {
              "path": "pyproject.toml",
              "url": "/source/dkepy/0.5.1/pyproject.toml"
            },
            {
              "path": "src/dke/__init__.py",
              "url": "/source/dkepy/0.5.1/src/dke/__init__.py"
            },
            {
              "path": "src/dke/client.py",
              "url": "/source/dkepy/0.5.1/src/dke/client.py"
            },
            {
              "path": "src/dke/factwriter.py",
              "url": "/source/dkepy/0.5.1/src/dke/factwriter.py"
            },
            {
              "path": "src/dke/ingest/__init__.py",
              "url": "/source/dkepy/0.5.1/src/dke/ingest/__init__.py"
            },
            {
              "path": "src/dke/ingest/core.py",
              "url": "/source/dkepy/0.5.1/src/dke/ingest/core.py"
            },
            {
              "path": "src/dke/ingest/cpp.py",
              "url": "/source/dkepy/0.5.1/src/dke/ingest/cpp.py"
            },
            {
              "path": "src/dke/ingest/python.py",
              "url": "/source/dkepy/0.5.1/src/dke/ingest/python.py"
            },
            {
              "path": "src/dke/py.typed",
              "url": "/source/dkepy/0.5.1/src/dke/py.typed"
            },
            {
              "path": "stubs/dke/__init__.pyi",
              "url": "/source/dkepy/0.5.1/stubs/dke/__init__.pyi"
            },
            {
              "path": "stubs/dke/client.pyi",
              "url": "/source/dkepy/0.5.1/stubs/dke/client.pyi"
            },
            {
              "path": "stubs/dke/factwriter.pyi",
              "url": "/source/dkepy/0.5.1/stubs/dke/factwriter.pyi"
            },
            {
              "path": "stubs/dke/ingest/__init__.pyi",
              "url": "/source/dkepy/0.5.1/stubs/dke/ingest/__init__.pyi"
            },
            {
              "path": "stubs/dke/ingest/core.pyi",
              "url": "/source/dkepy/0.5.1/stubs/dke/ingest/core.pyi"
            },
            {
              "path": "stubs/dke/ingest/cpp.pyi",
              "url": "/source/dkepy/0.5.1/stubs/dke/ingest/cpp.pyi"
            },
            {
              "path": "stubs/dke/ingest/python.pyi",
              "url": "/source/dkepy/0.5.1/stubs/dke/ingest/python.pyi"
            }
          ]
        }
      ]
    }
  ]
}
