Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Required dependencies? #17

Closed
project-owner opened this issue May 30, 2024 · 5 comments
Closed

Required dependencies? #17

project-owner opened this issue May 30, 2024 · 5 comments
Assignees
Labels
question Further information is requested

Comments

@project-owner
Copy link

The installation of the 'minim' on Raspberry Pi forced to install Rust compiler and Ffmpeg library. Is it really required?
Thanks!

@bbye98
Copy link
Owner

bbye98 commented May 30, 2024

The Rust compiler is only necessary for the ruff linter, which is not a required dependency in requirements_minimal.txt.

FFmpeg is required for format conversions in the audio submodule. If it's not installed, those features are unavailable.

@bbye98 bbye98 closed this as completed May 30, 2024
@bbye98 bbye98 self-assigned this May 30, 2024
@bbye98 bbye98 added the question Further information is requested label May 30, 2024
@project-owner
Copy link
Author

I think minim.audio logically belongs to a separate project/repository. Or there should be a way to easily exclude it from the 'minim' installation. Just my 2c recommendation/observation :)

@bbye98
Copy link
Owner

bbye98 commented May 30, 2024

I disagree. minim.audio is directly dependent on the APIs for tagging audio files, and certain API endpoints may use minim.audio classes for reading and writing audio files. Minim was designed with this two-way relationship in mind.

@project-owner
Copy link
Author

OK, so far I don't see any dependency on minim.audio in qobuz, itunes, spotify and tidal and I think this is right approach. Anyway, it's up to you. It's just the same issue for me and others - unnessessary large library footprint because of the functionality which I'm not using. Making it more modular would be helpful.
Thank you!

@bbye98
Copy link
Owner

bbye98 commented May 30, 2024

I'm not sure I share your perspective or fully understand what the issue is currently.

  1. Minim is a personal project that does everything I need it to do, and I've open-sourced it on the off chance that others want to manage and maintain their music libraries just like me. The main goal is to be able to work with audio files directly and update metadata as obtained from different music service APIs.

  2. Minim only has three required dependencies: cryptography, Mutagen, and requests. These are lightweight libraries taking up less than 3 MB of disk space when compressed. Minim itself, when packed into a Python wheel, takes around 134 KB. I expect that <<100 MB is required when everything is unpacked.

  3. FFmpeg is NOT required. Not having it installed means that the audio.Audio.convert method (which is inherited by all the audio.*Audio classes) is not available, but the rest of the module is fully functional. I could have made FFmpeg mandatory, but I already took a proactive approach in making it optional.

  4. Likewise, ruff is NOT required. It is a tool I use in the development of Minim, so I include it as a dependency in requirements.txt so that other developers who want to tinker with Minim's source code will have an easier time setting up environments where everything just...works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants