-
Notifications
You must be signed in to change notification settings - Fork 14
[Query] Signature
This document was generated from 'src/documentation/wiki-query.ts' on 2026-07-21, 13:40:53 UTC presenting an overview of flowR's query API (v2.13.1). Please do not edit this file/wiki page directly.
Signature Query [overview]
Inspects the signature database: packages, function signatures, source and documentation links.
This query is requested with the type signature.
Run in the REPL: :query @signature [<pkg>[@<version>]] [<pkg>::<fn> | <fn>] [--param <name>[,...]] [--required <n>] [--cg] [--help]
This query is the read-side interface to flowR's signature database—the very same database
that resolves library() and :: calls during the dataflow analysis. It lets you ask what flowR actually knows about a package
or a function, without needing R or a network connection.
What you get back depends on how specific you are:
| Given | Result |
|---|---|
| nothing | a summary of the loaded databases |
package |
the full package view: version, CRAN links, dependencies, exports |
package + function
|
the full function view: parameters, definition site, source and documentation links, S3 relations |
a glob in either (gg*, geom_*) |
the set of matching packages or functions |
The version property accepts an exact version, a glob (3.*), a semver range (>=3.0.0), or a release-date bound (<=2026, >=2021.05).
Without it, the release that flowR resolved for the analyzed script is used, so the signature you see is the one the analysis actually assumed.
Given a script such as:
library(dplyr)
lead(1:10, n = 1)we can inspect the signature of the function it calls:
[
{
"type": "signature",
"package": "dplyr",
"function": "lead"
}
]Show Results
Results (prettified and summarized):
Query: signature (1 ms)
╰ The signature database does not know the package 'dplyr'.
All queries together required ≈2 ms (1ms accuracy, total 2 ms)
Show Detailed Results as Json
The analysis required 1.8 ms (including parsing and normalization and the query) within the generation environment.
In general, the JSON contains the Ids of the nodes in question as they are present in the normalized AST or the dataflow graph of flowR. Please consult the Interface wiki page for more information on how to get those.
{
"signature": {
".meta": {
"timing": 1
},
"databases": [],
"packageCount": 0,
"sourceCount": 0,
"message": "The signature database does not know the package 'dplyr'.",
"suggestions": []
},
".meta": {
"timing": 2
}
}The parameters and requiredParameters properties additionally filter by the shape of a function, which is useful to find
functions you only half-remember: { package: '*', parameters: ['data', 'mapping'] } finds every known function taking both of these.
Note
The results depend on which database shards are mounted; with none available the query reports that no database is loaded rather than failing.
See the Signature Database page for the storage format, the configuration under solver.sigdb, and how to obtain further shards.
To find out what a script uses, reach for the Dependencies Query; to find out which versions it is compatible with, see the Guess Dependency Versions Query.
Implementation Details
Responsible for the execution of the Signature Query query is executeSignatureQuery in ./src/queries/catalog/signature-query/signature-query-executor.ts.
Currently maintained by Florian Sihler and Oliver Gerstl at Ulm University
Email | GitHub | Penguins | Portfolio
- 🧑💻 Developer Onboarding
- 💻 Setup
- 👓 Overview
- 🪟 Interfacing with flowR
- 🌋 Core
- 🧹 Testing & Linting (Benchmark Page)
⁉️ FAQ- ℹ️ Extra Information