Skip to main content

Utility library for providing functions related to the filetags file name convention: https://github.com/novoid/filetags

Project description

* filetagslib

This is a utility library for providing functions related to the
[[https://github.com/novoid/filetags][filetags method]] which is also described [[https://karl-voit.at/managing-digital-photographs/][on this blog entry]].

If you do support its file name convention, you might find here some
valuable tools:

: (<ISO date/time stamp>)?(?<descriptive file name>)?( -- <list of tags separated by spaces>)?.<file extension>

Examples:

: 2019-12-14T11.28.44 Dinner for one -- fun silvester anniversary.mpeg
: 2019-12-14 Tax returns.pdf
: 2019-12-14T15.32 Book for mum 23€ -- bill books.png
: 2019-12-13T10.36.46.jpg
: 2019-10-30T22.19.32 Nata de Coco -- food acquisition.jpg

** Installation

This library needs [[http://www.python.org/downloads/][Python 3]] (version 3.8 or newer) and has
*no runtime dependencies*.

The recommended way to add it to your own project is with [[https://docs.astral.sh/uv/][uv]]:

: uv add filetagslib

This records filetagslib in the =[project.dependencies]= of your
project's =pyproject.toml= and installs it into the project's
environment.

Alternatively, you can install it into the current environment with pip
(optionally driven by uv):

: uv pip install filetagslib

: pip3 install filetagslib

# --- BEGIN SHARED: 0dependencies --- see https://github.com/novoid/screencasts/
[[https://0dependencies.dev][https://0dependencies.dev/0dependencies.svg]] → [[https://0dependencies.dev/][learn more about 0dependencies]]
# --- END SHARED: 0dependencies --- see https://github.com/novoid/screencasts/

** Development

This project is managed with [[https://docs.astral.sh/uv/][uv]]. After cloning the repository,
create the development environment (this sets up a local =.venv= and
installs the development dependencies such as pytest) with:

: uv sync

Run the unit tests with:

: uv run pytest

or via the convenience wrapper:

: ./run_unit_tests.sh

Build the source distribution and the wheel into =./dist/= with:

: uv build

** Changelog

This changelog does not list all commits/changes, just the substantial
ones.

- 2019-12-14: initial version
- 2026-06-06: migrated packaging from =setup.py= to uv / =pyproject.toml=

*** How to Thank Me and Contribute to the Project
# --- BEGIN SHARED: how_to_thank_me --- see https://github.com/novoid/screencasts/

I'm glad if you like my tool. I've got way more projects on:

- [[https://github.com/novoid/][GitHub]] (oldest projects),
- [[https://gitlab.com/publicvoit/][GitLab.com]] (older projects), and
- [[https://codeberg.org/publicvoit/][Codeberg]] (newest projects).

If you want to support me:

- [[https://karl-voit.at/2018/06/07/cardware/][Send old-fashioned *postcard* per snailmail]] - I love personal feedback!
- see [[http://tinyurl.com/j6w8hyo][my address]]
- Send feature wishes or improvements as an issue
- Create issues for bugs
- Contribute merge requests for bug fixes
- Check out my other cool projects on the platforms above

If you want to contribute to this cool project, please fork and
contribute!

I am using [[http://www.python.org/dev/peps/pep-0008/][Python PEP8]] and occasionally some ideas from [[http://en.wikipedia.org/wiki/Test-driven_development][Test Driven
Development (TDD)]]. I fancy Python3 with [[https://typing.python.org/en/latest/spec/annotations.html][type annotations]], although I'm
not using them everywhere at the moment. Starting with 2025, I began
to use help from Claude.ai which is a huge improvement, given my lack
of programming practice and knowledge.

After all, each of my tools was developed because I needed its
functionality and could not get it elsewhere - at least to my
knowledge or taste.

# --- END SHARED: how_to_thank_me --- see https://github.com/novoid/screencasts/

* Local Variables :noexport:
# Local Variables:
# mode: auto-fill
# mode: flyspell
# eval: (ispell-change-dictionary "en_US")
# End:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

filetagslib-2026.6.6.1.tar.gz (29.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

filetagslib-2026.6.6.1-py3-none-any.whl (20.0 kB view details)

Uploaded Python 3

File details

Details for the file filetagslib-2026.6.6.1.tar.gz.

File metadata

  • Download URL: filetagslib-2026.6.6.1.tar.gz
  • Upload date:
  • Size: 29.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for filetagslib-2026.6.6.1.tar.gz
Algorithm Hash digest
SHA256 5203b813db03667d5ee4aca833212db72f82ab08586d29c42a99013b0f3b659d
MD5 ffb92722e9fdda1d6a1f87e25201f86d
BLAKE2b-256 f5a8524dc4b532b31077d7fca7fbb13da8204413695160d7114c4f75e5b0bc25

See more details on using hashes here.

File details

Details for the file filetagslib-2026.6.6.1-py3-none-any.whl.

File metadata

  • Download URL: filetagslib-2026.6.6.1-py3-none-any.whl
  • Upload date:
  • Size: 20.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.9 {"installer":{"name":"uv","version":"0.9.9"},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"13","id":"trixie","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for filetagslib-2026.6.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 19418bd38627c8052b4d7d176cbe1c73c7551b5e4cd88991c18fba6039598f57
MD5 98150cb7bc3eb38ad0dde9c016f39523
BLAKE2b-256 adb85d923e7efce361201dfe147c980d072c91de26f1e08a8a8955e1519dc984

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page