# CFML — Custom Format Message Log
CFML is a library for parsing, manipulating, searching, and writing a very compact, line-based log format for dated message records.
> **Status:** Experimental, API may change.
---
## Features
- Parse CFML text into structured Python objects
- Add, edit, delete messages or entire date blocks
- Search messages by sender, receiver, or free-text
- Serialize back to the exact CFML text format
- Simple file helpers: load from / save to files
- Clear exception hierarchy for robust error handling
---
## Screenshot

---
## License
Argophor License 1.0
Raw data
{
"_id": null,
"home_page": "https://github.com/hejhdiss/cfml",
"name": "pycfml",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": null,
"keywords": null,
"author": "Muhammed Shafin P",
"author_email": "hejhdiss@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/99/e9/b2cbcbc8f85b4d63ba89d50bd6c1d4579b3faa287a762e913385f7043f6d/pycfml-0.0.1a2.tar.gz",
"platform": null,
"description": "# CFML \u2014 Custom Format Message Log\r\n\r\nCFML is a library for parsing, manipulating, searching, and writing a very compact, line-based log format for dated message records.\r\n\r\n> **Status:** Experimental, API may change.\r\n\r\n---\r\n\r\n## Features\r\n\r\n- Parse CFML text into structured Python objects\r\n- Add, edit, delete messages or entire date blocks\r\n- Search messages by sender, receiver, or free-text\r\n- Serialize back to the exact CFML text format\r\n- Simple file helpers: load from / save to files\r\n- Clear exception hierarchy for robust error handling\r\n\r\n---\r\n\r\n## Screenshot\r\n\r\n\r\n\r\n---\r\n\r\n## License\r\n\r\nArgophor License 1.0\r\n",
"bugtrack_url": null,
"license": "Argophor License 1.0",
"summary": "CFML - Custom Format Message Log",
"version": "0.0.1a2",
"project_urls": {
"Homepage": "https://github.com/hejhdiss/cfml"
},
"split_keywords": [],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e99ff3b2c12abd4b1cd45492c17c09885fde9c7366327929de351a795799a2b0",
"md5": "06f6291810aa36756818030ee1ade73f",
"sha256": "a6c3ee66c05ee467bb915b180606749b04ba3cfe0ff490b69ff37fd7f44079f7"
},
"downloads": -1,
"filename": "pycfml-0.0.1a2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "06f6291810aa36756818030ee1ade73f",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 5141,
"upload_time": "2025-08-16T14:23:34",
"upload_time_iso_8601": "2025-08-16T14:23:34.554064Z",
"url": "https://files.pythonhosted.org/packages/e9/9f/f3b2c12abd4b1cd45492c17c09885fde9c7366327929de351a795799a2b0/pycfml-0.0.1a2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "99e9b2cbcbc8f85b4d63ba89d50bd6c1d4579b3faa287a762e913385f7043f6d",
"md5": "b8492ea683d1b6bca87f7a2c14de85cf",
"sha256": "992d621dec9e4f6e1ee631a2fc476b72470ce420514ba23b1ca91bdbbee52122"
},
"downloads": -1,
"filename": "pycfml-0.0.1a2.tar.gz",
"has_sig": false,
"md5_digest": "b8492ea683d1b6bca87f7a2c14de85cf",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 4511,
"upload_time": "2025-08-16T14:23:35",
"upload_time_iso_8601": "2025-08-16T14:23:35.857014Z",
"url": "https://files.pythonhosted.org/packages/99/e9/b2cbcbc8f85b4d63ba89d50bd6c1d4579b3faa287a762e913385f7043f6d/pycfml-0.0.1a2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-16 14:23:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hejhdiss",
"github_project": "cfml",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "pycfml"
}