Replace filters/join-associations.py usage with orinoco counterpart #41

Open
opened 2026-08-10 14:00:28 +00:00 by msz · 0 comments
Contributor

The contributors-projects.yml workflow uses filters/join-association.py custom script in a few places, e.g.:

- name: Process projects
run: |
cd ${{ steps.codecheckout.outputs.path }}
cat .cache/projects.jsonl \
| qrg inline-records --api-url https://pool.v0.trr379.de/api/ -c public -p associated_with \
| uv run filters/join-association.py --field-name x_had_influence - .cache/trr379.jsonl influenced_by - \
| uv run project.py - ${{ steps.websitecheckout.outputs.path }}/content/projects

To converge on orinoco tooling, we should be using its orinoco counterpart, which is likely inject-links-pid from query-things.

IIRC inject-links-pid performs effectively the same join-like operation as filters/join-associations.py, but these are completely independent implementations. Apart from minor convenience features like `–inline –pop` in the latter) the most significant distinction is in caching. filters/join-associations.py will read any records given to it (these could have been downloaded and transformed beforehand) while inject-links-pid does its own querying (?) - see orinoco/query-things PR #6 (although the PR description may be outdated?).

The `contributors-projects.yml` workflow uses [filters/join-association.py](https://hub.trr379.de/q02/pool-publication-page/src/branch/main/filters/join-association.py) custom script in a few places, e.g.: https://hub.trr379.de/q04/www.trr379.de/src/commit/b019a6cc662e64b1c11f617ecb983a56c209015d/.forgejo/workflows/contributors-projects.yml#L79-L85 To converge on orinoco tooling, we should be using its orinoco counterpart, which is likely `inject-links-pid` from [query-things](https://hub.psychoinformatics.de/orinoco/query-things). IIRC `inject-links-pid` performs effectively the same join-like operation as `filters/join-associations.py`, but these are completely independent implementations. Apart from minor convenience features like \`–inline –pop\` in the latter) the most significant distinction is in caching. `filters/join-associations.py` will read any records given to it (these could have been downloaded and transformed beforehand) while `inject-links-pid` does its own querying (?) - see [orinoco/query-things PR #6](https://hub.psychoinformatics.de/orinoco/query-things/pulls/6) (although the PR description may be outdated?).
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
q04/www.trr379.de#41
No description provided.