# Maialib - Music Analysis Library {#mainpage}
![Maialib CI/CD](https://github.com/nyckmaia/maialib/actions/workflows/wheels.yml/badge.svg)
This library is a multiplatform set of musical tools that enable musical score analisys and composition in a easy and fast way. <br>
The project **core** was wrote in `C++17`, but it also has a `Python` wrapper that allows a greater number of people (ie musicians not trained in IT) to also have in their hands the same power and musical tools available in `maialib`.
## Advantages
- Easy to use to musicians and musical researchers
- High computer perfomance and fast calculations
- Read and write musical scores (MusicXML file format)
## Get Python Package
```python
pip install maialib
```
Or, if you have a older `maialib` version installed on your system, please get the latest version running: `pip install maialib --upgrade`
## Get Started
You can easily import your sheet music (`*.xml` file) to Python environment using:
```python
import maialib as ml
myScore = ml.Score('./Beethoven/Symphony_9th.xml')
```
Now you can explore some `maialib` features like:
- Find musical patterns
- Write your own scores from your custom algorithms
- Analyse scores in a musical statistical data perspective
- And much more!
## Frequent Asked Questions
### 1) Where can I find the XML file of a specific musical score?
To import musical scores the file extensions must be: `*.xml`, `*.mxl` or `*.musicxml` <br>
You can easily export your music files to these file formats above from score editors, like:
- MuseScore (free!)
- Sibelius
- Finale
- Others
Many `MusicXML` files are avaliable for free in the internet for download.
### 2) What can I do if I don't have a `*.xml` file of my target music?
- First, make shure and look at different websites and online repositories trying to find the `*.xml` file
- You can find on the internet the desired MIDI file and import it in a score editor (like MuseScore, Sibelius, Finale, etc.) and then export the `MusicXML` file from it
- You can use scan the sheet music paper and get a PDF version of it, so:
- You can use a OMR software to try to convert the PDF file into a `*.xml` file
- You can pay for other people to type manually note-by-note the PDF into a musical software (link MuseScore, Sibelius, Finale, etc.)
- You can type manually note-by-note the music paper into a musical software (link MuseScore, Sibelius, Finale, etc.)
## Documentation (in development)
This project have 2 documentation levels. One for each user type:
- **Level 1 - User documentation:** for musicians, musical researchers and non-professional IT people (help me to do that!)
- **Level 2 - Developer documentation:** A deeper information for professional C++ programmers (Doxygen)
### Level 1: Python Tutorial
You can explore `maialib` features looking at `python-tutorial` folder ([link here](https://github.com/nyckmaia/maialib/tree/main/python-tutorial)). <br>
There you will learn how to use and mix `maialib` classes and functions to reach your musical goals
If you are starting, please check these 3 basic `maialib` Python tutorials:
- [Create Notes and Chords](https://github.com/nyckmaia/maialib/blob/main/python-tutorial/create_notes_chords.ipynb)
- [Create a Score](https://github.com/nyckmaia/maialib/blob/main/python-tutorial/create_score.ipynb)
- [Using Dataframes](https://github.com/nyckmaia/maialib/blob/main/python-tutorial/dataframe.ipynb)
### Level 2: Developer Documentation
[Maialib Documentation WebSite](https://maialib.com/)
## VS Code Users
- You can write your Python scripts using `*.py` or `*.ipynb` file extensions.
- If you decide to use `*.ipynb` extension, make shure to install `nbformat` Python package to enable visualize maialib graphs on VS Code editor.
To do that: `pip install nbformat --upgrade`
---
# Would you like to improve any maialib function?
## Are you a C++ developer?
### Requirements to build from C++ sources:
- C++17 compatible compiler
- CMake 3.26
- Python 3.8
- Make
- Doxygen (Optional: To build documentation)
- Buildcache (Optional: To accelerate the build process)
- CppCheck (Optional: C++ Static Analyzer)
## Are you a Python developer?
### Python Dev-only dependencies
```
pip install pathlib
pip install cpplint
pip install wheel
pip install mypy
# To generate Python stubs
pip install pybind11-stubgen
# Mac users: May be you have to add the coverage and pybind11-stubgen on your `PATH` - /etc/paths
pybind11_mkdoc (github)
sudo apt install clang (pybind11_mkdoc dependency) - Linux/Mac Only
```
## Tested Environments
| Operational System | Compilers |
| ------------------ | ------------------------------- |
| Windows 10 x64 | Clang 18.0 |
| Linux Ubuntu 20.04 | GCC 9.3 |
| Apple OSX 10.15 | XCode 11.5 (Command Line Tools) |
## Quick Start
### Build Python module from C++ source
Open a terminal (or CMD in Windows), enter inside of the `maialib` folder. <br>
Type: `make` to build the Python module <br>
When the build process finishes, type: `make install` <br>
Done!
## Known issues to build from source
### All Platforms
- Multiple Python versions installed, like: `Official Python`, `Microsoft Python`, `MSYS2 Python` and others can direct the build system to choose a wrong version to build and install the library. <br>
To check all Python versions installed on your system, open the `Terminal` (or `CMD` on Windows) and type: - Linux or Mac: - `which python` - `which python3` - Windows: - `where.exe python` - `where.exe python3`
### Windows-Only
- Disable your antivirus or create a exception (CMake permissions)
## Contact
Nycholas Maia - nyckmaia@gmail.com
## Contributing
- Fork this project
- Make your custumizations and improvments
- Please, send me a pull request
## License
Maialib is licensed under [GPLv3 License](https://www.gnu.org/licenses/gpl-3.0.html)
Raw data
{
"_id": null,
"home_page": "https://github.com/nyckmaia/maialib",
"name": "maialib",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8.0",
"maintainer_email": null,
"keywords": "music, score, sheet music, analysis",
"author": "Nycholas Maia",
"author_email": "nyckmaia@gmail.com",
"download_url": null,
"platform": null,
"description": "# Maialib - Music Analysis Library {#mainpage}\n\n![Maialib CI/CD](https://github.com/nyckmaia/maialib/actions/workflows/wheels.yml/badge.svg)\n\nThis library is a multiplatform set of musical tools that enable musical score analisys and composition in a easy and fast way. <br>\nThe project **core** was wrote in `C++17`, but it also has a `Python` wrapper that allows a greater number of people (ie musicians not trained in IT) to also have in their hands the same power and musical tools available in `maialib`.\n\n## Advantages\n\n- Easy to use to musicians and musical researchers\n- High computer perfomance and fast calculations\n- Read and write musical scores (MusicXML file format)\n\n## Get Python Package\n\n```python\npip install maialib\n```\n\nOr, if you have a older `maialib` version installed on your system, please get the latest version running: `pip install maialib --upgrade`\n\n## Get Started\n\nYou can easily import your sheet music (`*.xml` file) to Python environment using:\n\n```python\nimport maialib as ml\n\nmyScore = ml.Score('./Beethoven/Symphony_9th.xml')\n```\n\nNow you can explore some `maialib` features like:\n\n- Find musical patterns\n- Write your own scores from your custom algorithms\n- Analyse scores in a musical statistical data perspective\n- And much more!\n\n## Frequent Asked Questions\n\n### 1) Where can I find the XML file of a specific musical score?\n\nTo import musical scores the file extensions must be: `*.xml`, `*.mxl` or `*.musicxml` <br>\nYou can easily export your music files to these file formats above from score editors, like:\n\n- MuseScore (free!)\n- Sibelius\n- Finale\n- Others\n\nMany `MusicXML` files are avaliable for free in the internet for download.\n\n### 2) What can I do if I don't have a `*.xml` file of my target music?\n\n- First, make shure and look at different websites and online repositories trying to find the `*.xml` file\n- You can find on the internet the desired MIDI file and import it in a score editor (like MuseScore, Sibelius, Finale, etc.) and then export the `MusicXML` file from it\n- You can use scan the sheet music paper and get a PDF version of it, so:\n - You can use a OMR software to try to convert the PDF file into a `*.xml` file\n - You can pay for other people to type manually note-by-note the PDF into a musical software (link MuseScore, Sibelius, Finale, etc.)\n- You can type manually note-by-note the music paper into a musical software (link MuseScore, Sibelius, Finale, etc.)\n\n## Documentation (in development)\n\nThis project have 2 documentation levels. One for each user type:\n\n- **Level 1 - User documentation:** for musicians, musical researchers and non-professional IT people (help me to do that!)\n- **Level 2 - Developer documentation:** A deeper information for professional C++ programmers (Doxygen)\n\n### Level 1: Python Tutorial\n\nYou can explore `maialib` features looking at `python-tutorial` folder ([link here](https://github.com/nyckmaia/maialib/tree/main/python-tutorial)). <br>\nThere you will learn how to use and mix `maialib` classes and functions to reach your musical goals\nIf you are starting, please check these 3 basic `maialib` Python tutorials:\n\n- [Create Notes and Chords](https://github.com/nyckmaia/maialib/blob/main/python-tutorial/create_notes_chords.ipynb)\n- [Create a Score](https://github.com/nyckmaia/maialib/blob/main/python-tutorial/create_score.ipynb)\n- [Using Dataframes](https://github.com/nyckmaia/maialib/blob/main/python-tutorial/dataframe.ipynb)\n\n### Level 2: Developer Documentation\n\n[Maialib Documentation WebSite](https://maialib.com/)\n\n## VS Code Users\n\n- You can write your Python scripts using `*.py` or `*.ipynb` file extensions.\n- If you decide to use `*.ipynb` extension, make shure to install `nbformat` Python package to enable visualize maialib graphs on VS Code editor.\n To do that: `pip install nbformat --upgrade`\n\n---\n\n# Would you like to improve any maialib function?\n\n## Are you a C++ developer?\n\n### Requirements to build from C++ sources:\n\n- C++17 compatible compiler\n- CMake 3.26\n- Python 3.8\n- Make\n- Doxygen (Optional: To build documentation)\n- Buildcache (Optional: To accelerate the build process)\n- CppCheck (Optional: C++ Static Analyzer)\n\n## Are you a Python developer?\n\n### Python Dev-only dependencies\n\n```\npip install pathlib\npip install cpplint\npip install wheel\npip install mypy\n\n# To generate Python stubs\npip install pybind11-stubgen\n# Mac users: May be you have to add the coverage and pybind11-stubgen on your `PATH` - /etc/paths\n\npybind11_mkdoc (github)\nsudo apt install clang (pybind11_mkdoc dependency) - Linux/Mac Only\n```\n\n## Tested Environments\n\n| Operational System | Compilers |\n| ------------------ | ------------------------------- |\n| Windows 10 x64 | Clang 18.0 |\n| Linux Ubuntu 20.04 | GCC 9.3 |\n| Apple OSX 10.15 | XCode 11.5 (Command Line Tools) |\n\n## Quick Start\n\n### Build Python module from C++ source\n\nOpen a terminal (or CMD in Windows), enter inside of the `maialib` folder. <br>\nType: `make` to build the Python module <br>\nWhen the build process finishes, type: `make install` <br>\nDone!\n\n## Known issues to build from source\n\n### All Platforms\n\n- Multiple Python versions installed, like: `Official Python`, `Microsoft Python`, `MSYS2 Python` and others can direct the build system to choose a wrong version to build and install the library. <br>\n To check all Python versions installed on your system, open the `Terminal` (or `CMD` on Windows) and type: - Linux or Mac: - `which python` - `which python3` - Windows: - `where.exe python` - `where.exe python3`\n\n### Windows-Only\n\n- Disable your antivirus or create a exception (CMake permissions)\n\n## Contact\n\nNycholas Maia - nyckmaia@gmail.com\n\n## Contributing\n\n- Fork this project\n- Make your custumizations and improvments\n- Please, send me a pull request\n\n## License\n\nMaialib is licensed under [GPLv3 License](https://www.gnu.org/licenses/gpl-3.0.html)\n",
"bugtrack_url": null,
"license": "GNU General Public License v3 or later (GPLv3+)",
"summary": "A C++/Python library to manipulate sheet music data",
"version": "1.8.1",
"project_urls": {
"Bug Tracker": "https://github.com/nyckmaia/maialib/issues",
"Homepage": "https://github.com/nyckmaia/maialib"
},
"split_keywords": [
"music",
" score",
" sheet music",
" analysis"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "f5be18352afb040c827d32849a461165cb5e2dcfbad40ffe22a3f1a35e781c03",
"md5": "eb3c1521059ec70d221d9e24c38a36d2",
"sha256": "a266ba46535676c84a501fe335dceecd45a5cc4b2c8ceef676e754c521294da9"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp310-cp310-macosx_10_15_universal2.whl",
"has_sig": false,
"md5_digest": "eb3c1521059ec70d221d9e24c38a36d2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 4347145,
"upload_time": "2024-11-22T16:32:31",
"upload_time_iso_8601": "2024-11-22T16:32:31.990522Z",
"url": "https://files.pythonhosted.org/packages/f5/be/18352afb040c827d32849a461165cb5e2dcfbad40ffe22a3f1a35e781c03/maialib-1.8.1-cp310-cp310-macosx_10_15_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c18327bac0195564904303f338bdb637338cdc066123095c2278ec59bb1a5210",
"md5": "076dc12f7fe17c43f4d7fa04620f283c",
"sha256": "fca8c1315095e596c93e74617a4a9c81608c7ec079b3909a76df6a13380b0f2e"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "076dc12f7fe17c43f4d7fa04620f283c",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 3058831,
"upload_time": "2024-11-22T16:32:34",
"upload_time_iso_8601": "2024-11-22T16:32:34.191658Z",
"url": "https://files.pythonhosted.org/packages/c1/83/27bac0195564904303f338bdb637338cdc066123095c2278ec59bb1a5210/maialib-1.8.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a8fe153d4807ac9b9c330a8b386e7c3c5acd6f1df8f3628bdf5e7c8b244141f3",
"md5": "8324a0f33f22e6019b74a9f295ac7b68",
"sha256": "a13c03679ab7756f79b4e129c7b1cf1412cb998a6eb2070167dd8cd9a68cec60"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp310-cp310-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "8324a0f33f22e6019b74a9f295ac7b68",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 4173574,
"upload_time": "2024-11-22T16:32:35",
"upload_time_iso_8601": "2024-11-22T16:32:35.594459Z",
"url": "https://files.pythonhosted.org/packages/a8/fe/153d4807ac9b9c330a8b386e7c3c5acd6f1df8f3628bdf5e7c8b244141f3/maialib-1.8.1-cp310-cp310-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f6692a1f327a013ec58b2162cf9c1b7b61530411a8eabc45dcb685918779724b",
"md5": "fee3e2d21fd94f92de7e17c7263ba25b",
"sha256": "ffb82e6e0dce32b67ad3cf7f7c619520b934d701cd012b42f15f6e501657b6d0"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "fee3e2d21fd94f92de7e17c7263ba25b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 3922440,
"upload_time": "2024-11-22T16:32:37",
"upload_time_iso_8601": "2024-11-22T16:32:37.521754Z",
"url": "https://files.pythonhosted.org/packages/f6/69/2a1f327a013ec58b2162cf9c1b7b61530411a8eabc45dcb685918779724b/maialib-1.8.1-cp310-cp310-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9e27f1bde06bf732534584ef75ec192e1d66e21b35a2e451c3cebb7bdbfa1b9c",
"md5": "df68c6a72a19f282e03c941f5962efdf",
"sha256": "732cadccad1e7eaf5f267fd06c6b6f277be2ac50ab96741361d89d2183e4a96b"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "df68c6a72a19f282e03c941f5962efdf",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": ">=3.8.0",
"size": 2596302,
"upload_time": "2024-11-22T16:32:39",
"upload_time_iso_8601": "2024-11-22T16:32:39.734681Z",
"url": "https://files.pythonhosted.org/packages/9e/27/f1bde06bf732534584ef75ec192e1d66e21b35a2e451c3cebb7bdbfa1b9c/maialib-1.8.1-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e7b5ebba0371dff8f3f594402023c273020a9df93d0144d2c959a10a6d7a61b3",
"md5": "56f11dd64044dc78a7dc742b20b2872e",
"sha256": "4fea05a7949b65307419d58d173a640d5240a9294030298b1167378fd6555857"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp311-cp311-macosx_10_15_universal2.whl",
"has_sig": false,
"md5_digest": "56f11dd64044dc78a7dc742b20b2872e",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 4351070,
"upload_time": "2024-11-22T16:32:41",
"upload_time_iso_8601": "2024-11-22T16:32:41.616541Z",
"url": "https://files.pythonhosted.org/packages/e7/b5/ebba0371dff8f3f594402023c273020a9df93d0144d2c959a10a6d7a61b3/maialib-1.8.1-cp311-cp311-macosx_10_15_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "df22b5dde695810e67fcffe5a21187deb83867071c49f4a6882ba41257090512",
"md5": "ea2570b23dd0a6b6e662f66746764521",
"sha256": "830ed26e93958361c9b08142fd2628441a23f0645b0ec63f06a17c342817bdf3"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "ea2570b23dd0a6b6e662f66746764521",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 3056057,
"upload_time": "2024-11-22T16:32:43",
"upload_time_iso_8601": "2024-11-22T16:32:43.511962Z",
"url": "https://files.pythonhosted.org/packages/df/22/b5dde695810e67fcffe5a21187deb83867071c49f4a6882ba41257090512/maialib-1.8.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "71a27851eb9497d6d1c9f23cdecb9f22612ea3e5b6715c58df4f41ba64281850",
"md5": "eed1908c466582fc0be9274ce63ddb6c",
"sha256": "dd2c14cc3987ec65ac8cc4713b42280fa4cacc2fd0be24c0b20e4569e01b89e6"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp311-cp311-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "eed1908c466582fc0be9274ce63ddb6c",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 4173483,
"upload_time": "2024-11-22T16:32:44",
"upload_time_iso_8601": "2024-11-22T16:32:44.778367Z",
"url": "https://files.pythonhosted.org/packages/71/a2/7851eb9497d6d1c9f23cdecb9f22612ea3e5b6715c58df4f41ba64281850/maialib-1.8.1-cp311-cp311-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c6686cd98064034c5f06310a1b19cd23997ab8f16f430098e536d362474cf182",
"md5": "d1e19bdf23d9877f6e322604950762a4",
"sha256": "ecea0c8b82d7b718150d1c8da0fc1eac0272dd3c74330102fc69ec1bbad3d830"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "d1e19bdf23d9877f6e322604950762a4",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 3924281,
"upload_time": "2024-11-22T16:32:46",
"upload_time_iso_8601": "2024-11-22T16:32:46.221132Z",
"url": "https://files.pythonhosted.org/packages/c6/68/6cd98064034c5f06310a1b19cd23997ab8f16f430098e536d362474cf182/maialib-1.8.1-cp311-cp311-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2cdd062874326c22d169717e31380f073dab7f0225da93c40f5c9308568e0ae7",
"md5": "e794ef6def18cc4b0831d244ffb5f5fc",
"sha256": "aec47e16f00ada3bb49ebad83649020c191eb0f77ae43293701a8b2222b3762f"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "e794ef6def18cc4b0831d244ffb5f5fc",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": ">=3.8.0",
"size": 2597307,
"upload_time": "2024-11-22T16:32:47",
"upload_time_iso_8601": "2024-11-22T16:32:47.520582Z",
"url": "https://files.pythonhosted.org/packages/2c/dd/062874326c22d169717e31380f073dab7f0225da93c40f5c9308568e0ae7/maialib-1.8.1-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "56ed88d2e83442bc6d044cac915f9d3f4959177c95cb6c03d6cbc7d8ecbc96d3",
"md5": "967805a7addff4866e8eea53d4bb68b9",
"sha256": "d25118e9efe7204b7aac94c2dcf584c3f9641904397f9da41abed681d052dc6e"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp312-cp312-macosx_10_15_universal2.whl",
"has_sig": false,
"md5_digest": "967805a7addff4866e8eea53d4bb68b9",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 4348987,
"upload_time": "2024-11-22T16:32:48",
"upload_time_iso_8601": "2024-11-22T16:32:48.741754Z",
"url": "https://files.pythonhosted.org/packages/56/ed/88d2e83442bc6d044cac915f9d3f4959177c95cb6c03d6cbc7d8ecbc96d3/maialib-1.8.1-cp312-cp312-macosx_10_15_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fc3c13c9473140e1d0b4d2b002a3bae0def70cb373d2e2ddcefe5bd9d7d2cedf",
"md5": "0956febb5c4c555f2dc91b48aca26b8d",
"sha256": "b5b89088c9de9c645e1a56ae30d9adeeca65a9aa5a01309cab75e2227cc4c85e"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0956febb5c4c555f2dc91b48aca26b8d",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 3050239,
"upload_time": "2024-11-22T16:32:51",
"upload_time_iso_8601": "2024-11-22T16:32:51.744775Z",
"url": "https://files.pythonhosted.org/packages/fc/3c/13c9473140e1d0b4d2b002a3bae0def70cb373d2e2ddcefe5bd9d7d2cedf/maialib-1.8.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ca31a140286b6498997f4ecf6d0020e08cef08e0562d6fa6352f53ae69574c1f",
"md5": "467e42a9735faf724c8dcd23c4614c8b",
"sha256": "db2a7990ef1c556da66f67f49a5017fc0381c0136bd37d3d27d2ede32e84a54a"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp312-cp312-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "467e42a9735faf724c8dcd23c4614c8b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 4168981,
"upload_time": "2024-11-22T16:32:54",
"upload_time_iso_8601": "2024-11-22T16:32:54.064108Z",
"url": "https://files.pythonhosted.org/packages/ca/31/a140286b6498997f4ecf6d0020e08cef08e0562d6fa6352f53ae69574c1f/maialib-1.8.1-cp312-cp312-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9d39b26061841302fd7e0d46c165edbf98a9620325828698482408d9388a88d1",
"md5": "a79359a77facbe06a0761de17276ad36",
"sha256": "acc787c7ac4786be39ef3907af0dc76f9afb6f5ec420bee4ea057e1c2ac6f3b9"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "a79359a77facbe06a0761de17276ad36",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 3922805,
"upload_time": "2024-11-22T16:32:56",
"upload_time_iso_8601": "2024-11-22T16:32:56.098963Z",
"url": "https://files.pythonhosted.org/packages/9d/39/b26061841302fd7e0d46c165edbf98a9620325828698482408d9388a88d1/maialib-1.8.1-cp312-cp312-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8447a5f185cd2d03275cf6dbde699b1540b1639f49377e1a22ac91e37659d044",
"md5": "bd90a2e940656bfbe2c8e272a80760c7",
"sha256": "d40435bcb14471bc00a968631a976527b86680f11a102cc687492315ec681009"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "bd90a2e940656bfbe2c8e272a80760c7",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": ">=3.8.0",
"size": 2596181,
"upload_time": "2024-11-22T16:32:58",
"upload_time_iso_8601": "2024-11-22T16:32:58.085517Z",
"url": "https://files.pythonhosted.org/packages/84/47/a5f185cd2d03275cf6dbde699b1540b1639f49377e1a22ac91e37659d044/maialib-1.8.1-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e6bdda0552b7d6f6926ee131154e4bd54a6badef3718007fbddd20dc23484bf5",
"md5": "ec818b3665801da6e48142c1d500c7dc",
"sha256": "db374d1403fd269faef7dcccd1043039c076f54432858ffe6293d6b2232fea97"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp38-cp38-macosx_10_15_universal2.whl",
"has_sig": false,
"md5_digest": "ec818b3665801da6e48142c1d500c7dc",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 4344780,
"upload_time": "2024-11-22T16:32:59",
"upload_time_iso_8601": "2024-11-22T16:32:59.981551Z",
"url": "https://files.pythonhosted.org/packages/e6/bd/da0552b7d6f6926ee131154e4bd54a6badef3718007fbddd20dc23484bf5/maialib-1.8.1-cp38-cp38-macosx_10_15_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "59191e8c97e8db3ef66417814002e4933ede002d617f36fc2b2f684b8833d962",
"md5": "fab2055012ea1dc388296fddbb9831f6",
"sha256": "d24ae0fa899351cccbd9ba09175c68a01c96282d493e4b73c2fc003256643e38"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "fab2055012ea1dc388296fddbb9831f6",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 3056570,
"upload_time": "2024-11-22T16:33:01",
"upload_time_iso_8601": "2024-11-22T16:33:01.768474Z",
"url": "https://files.pythonhosted.org/packages/59/19/1e8c97e8db3ef66417814002e4933ede002d617f36fc2b2f684b8833d962/maialib-1.8.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eec54f44a719e2565094cef60a02cbc1322e20e8d91333b0efb3abf2834391c2",
"md5": "425bb7c7f7ca6edda05e97e6760d5c22",
"sha256": "99b1a6d5a49847c0e5ac57c82d3f805d2e1d8fc788bb529c38a8ca43ff41f9ba"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp38-cp38-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "425bb7c7f7ca6edda05e97e6760d5c22",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 4172292,
"upload_time": "2024-11-22T16:33:03",
"upload_time_iso_8601": "2024-11-22T16:33:03.835957Z",
"url": "https://files.pythonhosted.org/packages/ee/c5/4f44a719e2565094cef60a02cbc1322e20e8d91333b0efb3abf2834391c2/maialib-1.8.1-cp38-cp38-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "45095e1a5fe496035963abcdd1dafd6068bab6aa0b4dcdd04c21f0ec27792a7e",
"md5": "8e047535c5ee24870fc9812e8a1b7063",
"sha256": "46d1ea24802ec90e24792810bd3a9979fae588eb3cd08039aaeb73b3c3141396"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp38-cp38-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "8e047535c5ee24870fc9812e8a1b7063",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 3922129,
"upload_time": "2024-11-22T16:33:05",
"upload_time_iso_8601": "2024-11-22T16:33:05.133902Z",
"url": "https://files.pythonhosted.org/packages/45/09/5e1a5fe496035963abcdd1dafd6068bab6aa0b4dcdd04c21f0ec27792a7e/maialib-1.8.1-cp38-cp38-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "4fa2004edbef9475af03ecea15270547b1e66beb545cad1cdfb2b07e28783218",
"md5": "760c4ebc3e95fd7f3fab4a07e29d8856",
"sha256": "356d7931513c2ab15a74c5f6c069cd29716ff814feb5a6a6cadd69e45cfc7b7f"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "760c4ebc3e95fd7f3fab4a07e29d8856",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": ">=3.8.0",
"size": 2595723,
"upload_time": "2024-11-22T16:33:06",
"upload_time_iso_8601": "2024-11-22T16:33:06.635890Z",
"url": "https://files.pythonhosted.org/packages/4f/a2/004edbef9475af03ecea15270547b1e66beb545cad1cdfb2b07e28783218/maialib-1.8.1-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0dbd9911067e8f2e1ebd4a55ad8ada4fbf00303ede971565ccd4255634440c13",
"md5": "2ae865d28b324f7cd36a4684c1fb1086",
"sha256": "d55206a1dec9b7d96eddecd3dcfadd1fabe0d87563913cd77ff0337934621403"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp39-cp39-macosx_10_15_universal2.whl",
"has_sig": false,
"md5_digest": "2ae865d28b324f7cd36a4684c1fb1086",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 4347225,
"upload_time": "2024-11-22T16:33:07",
"upload_time_iso_8601": "2024-11-22T16:33:07.901046Z",
"url": "https://files.pythonhosted.org/packages/0d/bd/9911067e8f2e1ebd4a55ad8ada4fbf00303ede971565ccd4255634440c13/maialib-1.8.1-cp39-cp39-macosx_10_15_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "dd331cc9024cc60255ce35ee7a62003421741bae9c3d2829154fedcd6df05bdb",
"md5": "697852e7ee003d42476afd449766d679",
"sha256": "c3f816b75c2d82892382f6028d09d185722a577091fcab18a3edc3c8044c52bc"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "697852e7ee003d42476afd449766d679",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 3059258,
"upload_time": "2024-11-22T16:33:09",
"upload_time_iso_8601": "2024-11-22T16:33:09.130185Z",
"url": "https://files.pythonhosted.org/packages/dd/33/1cc9024cc60255ce35ee7a62003421741bae9c3d2829154fedcd6df05bdb/maialib-1.8.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e4a4995ff4cc4e4ea8b0cc7f0eeb815d2c656631d46cfbdd93981185a808ed27",
"md5": "cfe97062501621ce048eec5009795527",
"sha256": "094a7cbf68a31edb30ae3d5be4e264a82eb49ed560aa3e1f6fed9c4894b46d50"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp39-cp39-musllinux_1_2_i686.whl",
"has_sig": false,
"md5_digest": "cfe97062501621ce048eec5009795527",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 4172870,
"upload_time": "2024-11-22T16:33:11",
"upload_time_iso_8601": "2024-11-22T16:33:11.150678Z",
"url": "https://files.pythonhosted.org/packages/e4/a4/995ff4cc4e4ea8b0cc7f0eeb815d2c656631d46cfbdd93981185a808ed27/maialib-1.8.1-cp39-cp39-musllinux_1_2_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "899635fbe9df838e0808585fa647925369fa83eea2b478b52dacf4c994233c26",
"md5": "77069db47314bc74089e61dc3f7329c3",
"sha256": "b4db05f9fadf7e480df861e8a3dca297e02245aae15812899d30d74513a4f55e"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"has_sig": false,
"md5_digest": "77069db47314bc74089e61dc3f7329c3",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 3922901,
"upload_time": "2024-11-22T16:33:12",
"upload_time_iso_8601": "2024-11-22T16:33:12.473692Z",
"url": "https://files.pythonhosted.org/packages/89/96/35fbe9df838e0808585fa647925369fa83eea2b478b52dacf4c994233c26/maialib-1.8.1-cp39-cp39-musllinux_1_2_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2b43c525e1b8814c16d8a7a23167942fabbc42954cdf4c372ee8c7916a55832d",
"md5": "2f6bea413233567ff38d42c5f1621a7d",
"sha256": "6dcc2dad68560b52025eaafc9245b87576cf62f72d424e201f82443526ca549c"
},
"downloads": -1,
"filename": "maialib-1.8.1-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "2f6bea413233567ff38d42c5f1621a7d",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": ">=3.8.0",
"size": 2596121,
"upload_time": "2024-11-22T16:33:14",
"upload_time_iso_8601": "2024-11-22T16:33:14.085817Z",
"url": "https://files.pythonhosted.org/packages/2b/43/c525e1b8814c16d8a7a23167942fabbc42954cdf4c372ee8c7916a55832d/maialib-1.8.1-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "933962ae3693d99f1677946934abf8487b1362ec4667bfe2b5e30740dc4e1978",
"md5": "40a99bf9cf2578a045b15ad055ca8ff1",
"sha256": "9ac0f4d02701168686b99d11c31531bc440cc283c40d0f18e9cd16c2d8f472a8"
},
"downloads": -1,
"filename": "maialib-1.8.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "40a99bf9cf2578a045b15ad055ca8ff1",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.8.0",
"size": 3035612,
"upload_time": "2024-11-22T16:33:16",
"upload_time_iso_8601": "2024-11-22T16:33:16.758459Z",
"url": "https://files.pythonhosted.org/packages/93/39/62ae3693d99f1677946934abf8487b1362ec4667bfe2b5e30740dc4e1978/maialib-1.8.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cd119a99f09083a6387b85e77957d092581f6b7198064adcf1a4de3bed4690e2",
"md5": "a830cfedd735d86529403bce002f6dde",
"sha256": "c30924057521874fb9a8705023be724834c31e55e8712bb81b65fcdd67d50294"
},
"downloads": -1,
"filename": "maialib-1.8.1-pp310-pypy310_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "a830cfedd735d86529403bce002f6dde",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": ">=3.8.0",
"size": 2556579,
"upload_time": "2024-11-22T16:33:19",
"upload_time_iso_8601": "2024-11-22T16:33:19.052445Z",
"url": "https://files.pythonhosted.org/packages/cd/11/9a99f09083a6387b85e77957d092581f6b7198064adcf1a4de3bed4690e2/maialib-1.8.1-pp310-pypy310_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2665a273b0d635494e29574442f735ba21e35322672105a41214e15df77e6dd6",
"md5": "be12694c6b157bf6e07128950776c394",
"sha256": "54a63da7a2b20e10debe5a36215cce3b55245dd252ddbff9fb86b321e7f815a6"
},
"downloads": -1,
"filename": "maialib-1.8.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "be12694c6b157bf6e07128950776c394",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.8.0",
"size": 3035853,
"upload_time": "2024-11-22T16:33:20",
"upload_time_iso_8601": "2024-11-22T16:33:20.957658Z",
"url": "https://files.pythonhosted.org/packages/26/65/a273b0d635494e29574442f735ba21e35322672105a41214e15df77e6dd6/maialib-1.8.1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "637d84b72fe4477076c247e09223a2f71ac63d201379b8dc9a6cd98b97f13245",
"md5": "0ffb4474e8f630e435d7db794fbd2a82",
"sha256": "141d800d2ceaf0c111e7294c76d942110dde780484d0fb6f2df04301da474210"
},
"downloads": -1,
"filename": "maialib-1.8.1-pp38-pypy38_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "0ffb4474e8f630e435d7db794fbd2a82",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": ">=3.8.0",
"size": 2557584,
"upload_time": "2024-11-22T16:33:22",
"upload_time_iso_8601": "2024-11-22T16:33:22.318430Z",
"url": "https://files.pythonhosted.org/packages/63/7d/84b72fe4477076c247e09223a2f71ac63d201379b8dc9a6cd98b97f13245/maialib-1.8.1-pp38-pypy38_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "87788a445c14b3cd46aa7d126f084f455bef4a0e61729550eea1f0ad98c8bbbb",
"md5": "b986925983c14dbfe1984874e35340e2",
"sha256": "7fc9d41fb5ae67b78506068cf4ecf5e393ec9d3258369c2e4cf189cd6bd83eb8"
},
"downloads": -1,
"filename": "maialib-1.8.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "b986925983c14dbfe1984874e35340e2",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.8.0",
"size": 3035273,
"upload_time": "2024-11-22T16:33:23",
"upload_time_iso_8601": "2024-11-22T16:33:23.685930Z",
"url": "https://files.pythonhosted.org/packages/87/78/8a445c14b3cd46aa7d126f084f455bef4a0e61729550eea1f0ad98c8bbbb/maialib-1.8.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "da82709cb9977f5e7e07169a5e4c0580dfa22978a3ea2786ccb29d2a1f6747e3",
"md5": "6793ca59bcaca08e956d80bdf0417fe1",
"sha256": "ad2c9985b6fc79213b68c1fb46e5f02cbb0a34f11d7b028d9b78de0087ce375b"
},
"downloads": -1,
"filename": "maialib-1.8.1-pp39-pypy39_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "6793ca59bcaca08e956d80bdf0417fe1",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": ">=3.8.0",
"size": 2556312,
"upload_time": "2024-11-22T16:33:25",
"upload_time_iso_8601": "2024-11-22T16:33:25.023346Z",
"url": "https://files.pythonhosted.org/packages/da/82/709cb9977f5e7e07169a5e4c0580dfa22978a3ea2786ccb29d2a1f6747e3/maialib-1.8.1-pp39-pypy39_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-22 16:32:31",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "nyckmaia",
"github_project": "maialib",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "maialib"
}