Skip to main content

Simple command-line file tagger

Project description

Preface

Most of this project was created before I began using GitHub, which is why the first commit is already almost finished.

I have yet to implement proper error handling, as well as a few commands.

This is just a personal project that I will use for college. The goal is not for it to be perfect, but for it to work.

Any criticism is welcome — especially about my code. It is also worth noting that this is the first documentation I've written, so I apologise if it's not up to your expected standard. Please also tell me how I can improve the docs. Thank you.

This programme has only been tested on Linux. Due to its use of the 'os' module and extended attributes, it may not work on all operating systems.

What Is This Project?

This project is a very simple command-line file tagger. Its main function is to tag files and folders to make organisiation easier. I wrote this programme, as I am going to start college soon, and I wanted a simple way to organise my notes. It is just a personal project. Below is an outline of the features:

  • Tagging files and folders. The 'os' module is used to tag items using extended attributes. Command: at

  • Removing tags from files and folders. Command: rt

  • Searching for items in a directory with a given tag. Command: gi

  • Getting the tags of an item. Command: gt

  • Listing all items in a given directory, along with their tags. Command: li

  • Creating and removing aliases for commands. Commands: ca, ra

  • Listing all aliases. Command: la

  • Recursively adding tags to or removing tags from items to a certain depth. Commands: rc, rr

  • Resetting all dotfiles in ~/.fmdata (aliases, lookup tables, etc). Command: rd

  • Undo. Undo the previous undoable command, up to five commands ago.

Help

Here is the output of running the command with the --help flag:

|   Name   |                   Description                    |           Usage               |
|---------------------------------------------------------------------------------------------|
|    at    |    adds a tag to a file or folder                |    at <path> <tag>            |
|    rt    |    removes a tag from file or folder             |    rt <path> <tag>            |
|    gi    |    searches items by tag                         |    gi <path> <tag>            |
|    gt    |    displays tags of a file or folder             |    gt <path>                  |
|    li    |    lists files and folders and their tags        |    li <path>                  |
|    rc    |    tags all items in a directory                 |    rc <path> <tag> <depth>    |
|    rr    |    removes a tag from all items in a directory   |    rr <path> <tag> <depth>    |
|    ca    |    creates an alias for a command                |    ca <command> <alias>       |
|    ra    |    removes an alias                              |    ra <alias>                 |
|    la    |    lists all existing aliases                    |    la                         |
|    rd    |    resets all alias data                         |    rd                         |

Installation and Uninstallation

To install

pip install ftagger

OR

pipx install ftagger

To uninstall

pip uninstall ftagger

OR

pipx uninstall ftagger

Usage

After installation, you should be able to run the programme from a terminal. Here is an example of what that may look like:

ftagger at file1.txt tag

Here is a breakdown of that example command: ftagger — the command used to invoke this programme. It is like cd, ls, cat, etc at — the 'add tag' command file1.txt — the target. This can be a file or a folder tag — the tag to add to the target

To get help about the usage of the commands, run the following command:

ftagger --help

This will print out the table seen under the 'Help' heading.

Requierments

Python 3.10 and above

The project has only been tested on Linux

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

ftagger-0.1.8.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

ftagger-0.1.8-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file ftagger-0.1.8.tar.gz.

File metadata

  • Download URL: ftagger-0.1.8.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for ftagger-0.1.8.tar.gz
Algorithm Hash digest
SHA256 219a6fcbb569f519bbae0f07499d682fc2c3a569dbd439987fa31d0f266e0d51
MD5 45b8ab3e804d1429341ceed7b7ed7b0d
BLAKE2b-256 371f304f6754a4ce8534fc7378a9ec4fcaa76aa400296583f9e412c7f7652ab9

See more details on using hashes here.

File details

Details for the file ftagger-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: ftagger-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for ftagger-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 3f7c3a5ec6451a0e4c17becb8f4b15a8f20c37f1d1ea1500277287b38af8bf6c
MD5 6b1c2a8f1274faa550ba26836a7c1c79
BLAKE2b-256 36981d83d6c28a02cc5b1780926ee2c2f250e07355e8f5c9fac8f41a36d53ef9

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