https://github.com/electric-mass/arrangio
Arranges a set of songs in groups with similar total play time.
https://github.com/electric-mass/arrangio
knapsack minimum-subset-sum-difference python3
Last synced: about 1 month ago
JSON representation
Arranges a set of songs in groups with similar total play time.
- Host: GitHub
- URL: https://github.com/electric-mass/arrangio
- Owner: electric-mass
- License: mit
- Created: 2023-06-21T15:58:28.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2024-10-04T10:53:54.000Z (over 1 year ago)
- Last Synced: 2025-12-15T06:46:49.886Z (7 months ago)
- Topics: knapsack, minimum-subset-sum-difference, python3
- Language: Python
- Homepage:
- Size: 91.8 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# arrangio
Arranges a set of songs in groups with similar total play time.
## Synopsis
This tool will try to arrange a set of songs into subsets of songs
(groups) whose total play time will be the most sililar possible.
## Prerequisites
Python, version 3.8 or above, needs to be installed on your local
computer.
### Python 3.x
Python version 3.8 or above is required for the tool to work. Python
setup can be found [here](https://www.python.org/downloads/).
## Installation
The simplest way to install this tool is using pip:
```shell
pip3 install arrangio
```
## Usage
A simple example of how to use this tool:
```shell
arrangio --groups 2 --song song01:3m24s --song song02:4m01s --song song03:1m47s
```
List of all the options:
```shell
usage: arrangio [-h] [-g [NUM]] [-q] -s LABEL:HHhMMmSSs [LABEL:HHhMMmSSs ...] [-v]
options:
-h, --help show this help message and exit
-g [NUM], --groups [NUM]
number of groups to create (default: 2)
-q, --quiet quiet mode (default: False)
-s LABEL:HHhMMmSSs [LABEL:HHhMMmSSs ...], --song LABEL:HHhMMmSSs [LABEL:HHhMMmSSs ...]
song information (e.g.: song01:00h03m27s) (default: None)
-v, --version show program's version number and exit
```
## Build (from source)
[just](https://just.systems) is used to automate several steps of the
development process.
All of the commands described bellow are to be executed on the root folder
of this project.
A development environment can be created using the following command:
```shell
just init
```
To build a Python package for this library use the following command:
```shell
just build
```
After this you should have a wheel file (`*.whl`) inside a folder called
`dist`.
The library can be install using the wheel file and pip3:
```shell
pip3 --quiet install dist/arrangio-*.whl
```
## Contributing
1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request
Please read the [CONTRIBUTING.md](https://github.com/electric-mass/arrangio/blob/master/CONTRIBUTING.md)
file for more details on how to contribute to this project.
## Versioning
This project uses [SemVer](http://semver.org/) for versioning. For the versions
available, see the [tags on this repository](https://github.com/electric-mass/arrangio/tags).
## Authors
* **Frederico Martins** - [fscm](https://github.com/fscm)
See also the list of [contributors](https://github.com/electric-mass/arrangio/contributors)
who participated in this project.
## License
This project is licensed under the MIT License - see the [LICENSE](https://github.com/electric-mass/arrangio/blob/master/LICENSE)
file for details