Commit Graph

15 Commits

Author SHA1 Message Date
Giacomo Vercesi 3a9317d512 pypeline: factor out starlette middleware code
Factor out in a function the generation of the middleware list, to
facilitate reuse. Add the `AuthMiddleware` which allows authenticating
requests.
2026-05-22 09:04:35 +02:00
Giacomo Vercesi 653f92514b pypeline: adopt hypercorn in place of uvicorn
Switch out from using uvicorn to hypercorn for the pypeline daemon, make
the facilities create hypercorn commands in stand-alone functions, as
they will be re-used for other servers later on.
2026-05-22 09:04:35 +02:00
Giacomo Vercesi 40ae2d73dd Factor out BufferedReader in a standalone file
Move the `BufferedReader` class to a standalone file. This allows the
class to be reused in other packages.
2026-05-22 09:04:35 +02:00
Giacomo Vercesi 358291afa1 DaemonProject: fix _join_url
Fix the `_join_url` function, as `normpath` does not trim multiple `/`s
at the beginning of a path.
2026-05-14 11:59:01 +02:00
Alessandro Di Federico 5b43a23060 BinaryIdentifier: s/.Name/.CanonicalPath/g 2026-04-23 13:40:42 +02:00
Giacomo Vercesi 3a5dc835de revng.project: port to pypeline
Convert `revng.project` to use the `revng2` command-line and the `revng
project daemon` server instead of the legacy ones.
2026-04-10 11:45:12 +02:00
Giacomo Vercesi 90e8cce41e model: rework python mixin infrastructure
Rework the python mixin infrastructure for the model. Mixins are now
specified explicitly instead of using the `ast` module. The mixins are
loaded relative to the generated python file, this allows to have two
models: `revng.model` and `revng.project.model`. The latter is augmented
via mixins to have project-specific facilities such as `get_artifact`
and artifact accessors.
2026-04-10 11:45:12 +02:00
Giacomo Vercesi 1a515afe07 CLIProject: fix _load_model
Fix the `_load_model` method of `CLIProject`. Before this commit it
erroneously did not call `_set_model` on all codepaths, resulting in
cases where `self.model` was incorrectly missing the `_project` field.
2025-09-08 17:36:12 +02:00
Giacomo Vercesi a8f0a844bb revng.project: fix auto-extraction bug
When producing artifacts, if the rank is 0 the only element should be
extracted from the produced dict. Fix a wrong assertion that checked
that the returned dict has 0 keys instead of 1.
2025-07-18 09:30:56 +02:00
Giacomo Vercesi 69dc55fa9d get_artifact: produce all when using binary
When passing the binary root object, produce all the targets.
2025-07-18 09:30:55 +02:00
Giacomo Vercesi f3cccf8bda revng/project: make some attributes private
Rename some attributes to make them private, as they won't be used by
the end-user.
2025-07-18 09:30:55 +02:00
Giacomo Vercesi 460ffbf965 project: move some methods to Binary
Move some methods from the `Project` class to `model.Binary`.
2025-07-18 09:30:55 +02:00
Giacomo Vercesi 8484f3c4b8 Fix backslash in f-string causing an error
In python versions prior to 3.12, using a backslash in an f-string would
cause a `SyntaxError`, change the expression to use string
concatenation.
2025-07-11 17:06:13 +02:00
Giacomo Vercesi e8198eb862 pyproject.toml: add missing dependencies 2025-07-11 17:05:51 +02:00
Giacomo Vercesi 3e3779498e Implement python interface for revng
Add a python interface (`revng.profile`) for interacting with the rev.ng
infrastructure as a whole; either through the CLI (`CLIProject`) or the
GraphQL API (`DaemonProject`).
2025-05-07 10:48:51 +02:00