Skip to content

Commit e28b9c1

Browse files
committed
remove GH anchors (ok, linkcheck, you won...)
1 parent 793bb99 commit e28b9c1

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

docs/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@
120120
linkcheck_exclude_documents = [
121121
# ignore old (pre-2020) blog pages
122122
r"news/posts/201[0-9].*",
123-
r"news/posts/2025-09-05-orm.md"
123+
r"news/posts/2025-09-05-orm.md",
124124
]
125125
linkcheck_ignore = [
126126
r"https://www.youtube.com/.*",

docs/news/posts/2025-09-05-orm.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ So let's start from the bottom and work our way up, shall we?
4949
AiiDA uses SQLAlchemy's declarative approach to define database tables.
5050
This means the database schema is defined using Python classes rather than raw SQL.
5151
Here's how the core
52-
[`DbNode`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/storage/psql_dos/models/node.py#L22)
52+
[`DbNode`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/storage/psql_dos/models/node.py)
5353
model is constructed[^1]:
5454

5555
```python
@@ -117,7 +117,7 @@ Some of the key features of AiiDA's SQLAlchemy models are:
117117
## The abstract interface: `BackendNode`
118118

119119
Above the database layer sits the abstract
120-
[`BackendNode`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/orm/implementation/nodes.py#L27)
120+
[`BackendNode`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/orm/implementation/nodes.py)
121121
class, which defines the interface contract that all database backend implementations must follow:
122122

123123
```python
@@ -152,7 +152,7 @@ The abstract class serves as a __contract__ —any backend implementation must p
152152
## The ORM layer: `SqlaNode`
153153

154154
The
155-
[`SqlaNode`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/storage/psql_dos/orm/nodes.py#L30)
155+
[`SqlaNode`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/storage/psql_dos/orm/nodes.py)
156156
class bridges the abstract `BackendNode` interface with the concrete SQLAlchemy models:
157157

158158
```python
@@ -207,7 +207,7 @@ class SqlaNode(entities.SqlaModelEntity[models.DbNode], ExtrasMixin, BackendNode
207207
```
208208

209209
`SqlaNode` wraps a raw `DbNode` SQLAlchemy model in a
210-
[`ModelWrapper`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/storage/psql_dos/orm/utils.py#L27)
210+
[`ModelWrapper`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/storage/psql_dos/orm/utils.py)
211211
that handles session management automatically.
212212
This wrapping provides two levels of access: `node.model` for the wrapped model with automatic session tracking, and `node.bare_model` for direct access to the raw SQLAlchemy model when you need to bypass AiiDA's management.
213213
Beyond model wrapping, `SqlaNode` is responsible for actual database storage via its `store` method.
@@ -382,7 +382,7 @@ The integration of `pydantic` brings various additional features and advantages:
382382
### The QueryBuilder
383383

384384
The
385-
[`QueryBuilder`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/orm/querybuilder.py#L79)
385+
[`QueryBuilder`](https://github.com/aiidateam/aiida-core/blob/313f342f5d28eeba5967fec8196ed6fce393a77a/src/aiida/orm/querybuilder.py)
386386
is AiiDA's main Python API to retrieve data from the database.
387387
It provides a uniform, backend-agnostic interface:
388388

0 commit comments

Comments
 (0)