Metadata-Version: 2.1
Name: music_manager_micro
Version: 0.3.3
Summary: A media file discovery tool, intended to work alone or fit into a larger toolchain
Author: Samuel Shiels
License-File: LICENSE
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: System Administrators
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Multimedia :: Sound/Audio
Classifier: Topic :: Utilities
Requires-Python: >=3.11.5
Requires-Dist: jsonpickle
Description-Content-Type: text/markdown

# MusicManager

Build a list of media files from a root directory

# Usage

First time usage should use the execute function. This will return the python list of entries containing tuples in the form

```
[
(mtime:float,path:str),
...
]
```

```python
from music_manager_micro.music_manager import MusicManager as MM
library = 'my_library'
media_dir = '/media/music'
manager = MM(library,media_dir)
music_list = manager.execute()
```

Since the program stores the result in a sqlite DB in

```
$HOME/.config/MusicManagerMicro/<library_name>
```

We can retrieve the data quickly without re-scanning the directory. We only need to execute when the process running this application is set to check for new files.

Get an existing list

```python
from music_manager_micro.music_manager import MusicManager as MM
library = 'my_library'
media_dir = '/media/music'
manager = MM(library,media_dir)
music_list = manager.get_list()
```

# Features

-   Default searches for .mp3 and .flac files
    -   Override list of extensions
-   Supports absolute and relative root directory
-   Supports changing place storing results

# Maintenance

-   Remove .cache/MusicManagerMicro directory to safely clear all library data, or individual libraries
-   Safely backup .cache/MusicManagerMicro directory if wanted to preserve cache data

# Notes

-   Library name is intended for internal filesystem use so should only contain characters acceptable for a folder name A-Z, a-z, \_, -.

# Build

```bash
python -m build
python -m twine upload dist/*
```
