Digikam database query tool
Project description
digikuery is a script to perform queries in digikam (photo manager) database.
It can
- Query albums which contains tags matching a given regex
- Query most used tags and corresponding albums
- Print other tags present in matching albums
- List digikam database structure
- Provide an interactive python shell for manual queries
Usage
usage: digikuery.py [-h] [-d DBPATH] [-F] [-R ROOT] [-T [FILTER_TAGS]] {shell,schema,album,tag,stats} ...
digikuery - Digikam database query tool - v20230529
positional arguments:
{shell,schema,album,tag,stats}
shell spawn ipython shell to explor digikam database
schema dump digikam database schema
album [album] list tags for one or all albums
tag [tag] list all tags or query single tag
-C sort by result count
-I show image details
stats show digikam database statistics (default)
options:
-h, --help show this help message and exit
-d DBPATH, --dbpath DBPATH
database path
-F, --full-tagname display full tag name
-R ROOT, --root ROOT restrict query to this root album
-T [FILTER_TAGS], --filter-tags [FILTER_TAGS]
show and filter tags for displayed albums
examples:
List albums when tag 'Paquerette' is present, together with other tags of this album
$ digikuery tag Paquerette
Install
$ pip install digikuery
Example: Query which albums contain given tag expression
Bellow we look for the "semaphore" name in all tags.
The query returns 2 tags "TagCommunication/Semaphore/Bleu" and "TagAlphabet/Semaphore", listing for each tag the albums containing tagged pictures.
$ digikuery tag semaphore
3 TagCommunication/Semaphore/Bleu
album_albanie
album_france
album_grece
1 TagAlphabet/Semaphore
album_photos_19e_siecle
Providing -I option would list the picture names.
Let's just sort them by picture count:
$ digikuery tag -C semaphore
3 TagCommunication/Semaphore/Bleu
3 album_france
2 album_grece
2 album_albanie
1 TagAlphabet/Semaphore
19 album_photos_19e_siecle
For each matching album we can show if it contains other tags, for example tags maching "access"
$ digikuery -T access tag semaphore
3 TagCommunication/Semaphore/Bleu
album_france
TagAccess/Walking (9), TagAccess/Train(1)
album_grece
TagAccess/Car(6), TagAccess/Walking (3)
album_albanie
TagAccess/Walking (5)
Interactive shell in database
$ digikuery shell
Interactive mode help:
available objects
dk.session
dk.session.query(Album).count()
dk.session.query(AlbumRoot).all()
dk.session.query(Image).filter(Image.name == 'example.png').all()
dk.session.query(Album, Tag, sqlalchemy.func.count(Tag.name)).join(imagetag).join(Image).join(Album)
dk.engine
access sqlalchemy engine
dk.metadata
access sqlalchemy metadata
available functions
help()
print this message
dk.query_album(album)
dk.query_tag(tag)
dk.schema()
dk.stats()
running ipython...
In [1]:
Internals
digikuery uses sqlalchemy to map digikam database to python objects.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for digikuery-20230529.post2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5b5dc5b9d11b75e24e45285ef1fd38456e9a3705117843a162c367c1edcf3725 |
|
MD5 | b2ee11aeaea8761d84733525179057d0 |
|
BLAKE2b-256 | b3e187734793633aaaf6991aacc46f0e41b5487af2888e9aa9a8aa8466a09094 |