# m9lib Utility Library
m9lib is a python framework for batch processing. This library also includes general-purpose helper classes for python applications.
The batch processing framework includes:
- A powerful and flexible **Configuration** file format (INI) that drives batch processing
- Support for user-implemented **Command** objects that represent a unit of work to be executed
- A **Control** mechanism for instantiating and executing **Command** objects via configuration
- Integrated **Logging** features, including console logging in color
- Rules-based folder scans using pattern matching, regex, and parent folder
## m9lib Project Creator
The easiest way to get started is with a simple empty project, using the [m9lib project creator](https://github.com/MarcusNyne/m9lib-project).
- Run this application to create an empty vscode project from a template.
- The application itself is a simple example of an m9lib project.
## Sample Projects
A working demonstration of **m9lib** is available from the sample projects below:
- [m9lib-project](https://github.com/MarcusNyne/m9lib-project): Create a simple **m9lib** project from a template. (*simple*)
- [unzip-files](https://github.com/MarcusNyne/unzip-files): Batch process for unziping files. (*simple*)
- [file-sync](https://github.com/MarcusNyne/file-sync): Rules-based folder synchronization process for backing up files. (*intermediate*)
## m9ini Configuration files
**m9lib** uses **m9ini** for reading configuration files.
Read about [m9ini on Github](https://github.com/MarcusNyne/m9ini).
## Basic utilities
| File | Classes | Feature |
| :--- | :--- | :--- |
| u_logger.py | uFileLogger | [Log to a file](docs/logger.md) |
| u_format.py | uFormat | [String formatting](docs/format.md) |
| u_folder.py | uFolder | [Folder utilities](docs/folder.md) |
| u_timer.py | uTimer | [Measure elapsed time](docs/timer.md) |
| u_dictionary.py | uDictionary | [Dictionary wrapper](docs/dictionary.md) |
## Application level
| File | Classes | Feature |
| :--- | :--- | :--- |
| u_args.py | uArgs | [Specify and interpret command line parameters](docs/args.md) |
| u_command.py | uCommand, uCommandResult<br>uCommandRegistry | [Command object representing a unit of work](docs/command.md) |
| u_control.py | uControl | [Command orchestration](docs/control.md) |
## Specialized features
| File | Classes | Feature |
| :--- | :--- | :--- |
| u_csv.py | uCSVFormat, uCSV | [CSV file utilities](docs/csv.md) |
| u_web.py | uWeb, uSoap | [Http helper methods](docs/web.md) |
| u_scan.py | uScanFiles, uScanFolders | [Rules for scanning folder structures](docs/scan.md) |
| u_color.py | uColor, uConsoleColor | [Print to console in color](docs/color.md) |
Raw data
{
"_id": null,
"home_page": null,
"name": "m9lib",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10.6",
"maintainer_email": null,
"keywords": "INI, configuration, config, parse, load, batch, etl, logging, color, folder, files, rules, csv",
"author": "M. Fairbanks",
"author_email": "marcusnyne@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/a6/1d/1f3b7bfbdde3f3f74d26da4f79a59036bd96302e51e9c41eae7fc4db2c41/m9lib-1.0.0.tar.gz",
"platform": null,
"description": "# m9lib Utility Library\n\nm9lib is a python framework for batch processing. This library also includes general-purpose helper classes for python applications.\n\nThe batch processing framework includes:\n- A powerful and flexible **Configuration** file format (INI) that drives batch processing\n- Support for user-implemented **Command** objects that represent a unit of work to be executed\n- A **Control** mechanism for instantiating and executing **Command** objects via configuration\n- Integrated **Logging** features, including console logging in color\n- Rules-based folder scans using pattern matching, regex, and parent folder\n\n## m9lib Project Creator\n\nThe easiest way to get started is with a simple empty project, using the [m9lib project creator](https://github.com/MarcusNyne/m9lib-project).\n- Run this application to create an empty vscode project from a template.\n- The application itself is a simple example of an m9lib project.\n\n## Sample Projects\n\nA working demonstration of **m9lib** is available from the sample projects below:\n- [m9lib-project](https://github.com/MarcusNyne/m9lib-project): Create a simple **m9lib** project from a template. (*simple*)\n- [unzip-files](https://github.com/MarcusNyne/unzip-files): Batch process for unziping files. (*simple*)\n- [file-sync](https://github.com/MarcusNyne/file-sync): Rules-based folder synchronization process for backing up files. (*intermediate*)\n\n## m9ini Configuration files\n\n**m9lib** uses **m9ini** for reading configuration files.\n\nRead about [m9ini on Github](https://github.com/MarcusNyne/m9ini).\n\n## Basic utilities\n\n| File | Classes | Feature |\n| :--- | :--- | :--- |\n| u_logger.py | uFileLogger | [Log to a file](docs/logger.md) |\n| u_format.py | uFormat | [String formatting](docs/format.md) |\n| u_folder.py | uFolder | [Folder utilities](docs/folder.md) |\n| u_timer.py | uTimer | [Measure elapsed time](docs/timer.md) |\n| u_dictionary.py | uDictionary | [Dictionary wrapper](docs/dictionary.md) |\n\n## Application level\n\n| File | Classes | Feature |\n| :--- | :--- | :--- |\n| u_args.py | uArgs | [Specify and interpret command line parameters](docs/args.md) |\n| u_command.py | uCommand, uCommandResult<br>uCommandRegistry | [Command object representing a unit of work](docs/command.md) |\n| u_control.py | uControl | [Command orchestration](docs/control.md) |\n\n## Specialized features\n\n| File | Classes | Feature |\n| :--- | :--- | :--- |\n| u_csv.py | uCSVFormat, uCSV | [CSV file utilities](docs/csv.md) |\n| u_web.py | uWeb, uSoap | [Http helper methods](docs/web.md) |\n| u_scan.py | uScanFiles, uScanFolders | [Rules for scanning folder structures](docs/scan.md) |\n| u_color.py | uColor, uConsoleColor | [Print to console in color](docs/color.md) |\n",
"bugtrack_url": null,
"license": null,
"summary": "m9 utility library",
"version": "1.0.0",
"project_urls": {
"Homepage": "https://github.com/MarcusNyne/m9lib"
},
"split_keywords": [
"ini",
" configuration",
" config",
" parse",
" load",
" batch",
" etl",
" logging",
" color",
" folder",
" files",
" rules",
" csv"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "9c2eab0e5ea3966450b6e951d7d7649c2a2eb32594d8c3e51704b557f7ec8a2e",
"md5": "89cac71f19055b73f4bc33cb35e54325",
"sha256": "ba681b82026380dac35f421a11fb984a438fa453a7d3267a29961a47acf8ada9"
},
"downloads": -1,
"filename": "m9lib-1.0.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "89cac71f19055b73f4bc33cb35e54325",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10.6",
"size": 41049,
"upload_time": "2025-07-11T22:11:45",
"upload_time_iso_8601": "2025-07-11T22:11:45.582422Z",
"url": "https://files.pythonhosted.org/packages/9c/2e/ab0e5ea3966450b6e951d7d7649c2a2eb32594d8c3e51704b557f7ec8a2e/m9lib-1.0.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "a61d1f3b7bfbdde3f3f74d26da4f79a59036bd96302e51e9c41eae7fc4db2c41",
"md5": "2ea5754f352491a8c32cff6ad71c7eb5",
"sha256": "7557d6e901d2af47d1683df9234fa205a34a54703070e85d5ddb0368e21256fa"
},
"downloads": -1,
"filename": "m9lib-1.0.0.tar.gz",
"has_sig": false,
"md5_digest": "2ea5754f352491a8c32cff6ad71c7eb5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10.6",
"size": 82146,
"upload_time": "2025-07-11T22:11:46",
"upload_time_iso_8601": "2025-07-11T22:11:46.814878Z",
"url": "https://files.pythonhosted.org/packages/a6/1d/1f3b7bfbdde3f3f74d26da4f79a59036bd96302e51e9c41eae7fc4db2c41/m9lib-1.0.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-11 22:11:46",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MarcusNyne",
"github_project": "m9lib",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "m9ini",
"specs": []
},
{
"name": "urllib3",
"specs": [
[
"==",
"2.2.2"
]
]
},
{
"name": "beautifulsoup4",
"specs": [
[
"==",
"4.12.3"
]
]
},
{
"name": "soupsieve",
"specs": [
[
"==",
"2.5"
]
]
}
],
"lcname": "m9lib"
}