liblaf-cherries 0.4.1__tar.gz → 0.4.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. liblaf_cherries-0.4.2/PKG-INFO +132 -0
  2. liblaf_cherries-0.4.2/README.md +84 -0
  3. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/pyproject.toml +4 -4
  4. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/_version.py +2 -2
  5. liblaf_cherries-0.4.2/src/liblaf/cherries/plugins/logging.py +24 -0
  6. liblaf_cherries-0.4.1/PKG-INFO +0 -166
  7. liblaf_cherries-0.4.1/README.md +0 -119
  8. liblaf_cherries-0.4.1/src/liblaf/cherries/plugins/logging.py +0 -26
  9. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/.gitignore +0 -0
  10. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/LICENSE +0 -0
  11. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/__init__.py +0 -0
  12. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/__init__.pyi +0 -0
  13. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/_entrypoint.py +0 -0
  14. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/_version.pyi +0 -0
  15. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/config/__init__.py +0 -0
  16. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/config/__init__.pyi +0 -0
  17. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/config/_asset.py +0 -0
  18. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/config/_config.py +0 -0
  19. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/core/__init__.py +0 -0
  20. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/core/__init__.pyi +0 -0
  21. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/core/_impl.py +0 -0
  22. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/core/_plugin.py +0 -0
  23. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/core/_run.py +0 -0
  24. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/core/_spec.py +0 -0
  25. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/core/_utils.py +0 -0
  26. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/core/typed.py +0 -0
  27. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/meta/__init__.py +0 -0
  28. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/meta/__init__.pyi +0 -0
  29. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/meta/_git.py +0 -0
  30. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/meta/_name.py +0 -0
  31. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/paths/__init__.py +0 -0
  32. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/paths/__init__.pyi +0 -0
  33. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/paths/_convert.py +0 -0
  34. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/paths/_path.py +0 -0
  35. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/paths/_special.py +0 -0
  36. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/plugins/__init__.py +0 -0
  37. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/plugins/__init__.pyi +0 -0
  38. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/plugins/comet.py +0 -0
  39. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/plugins/dvc.py +0 -0
  40. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/plugins/git_.py +0 -0
  41. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/plugins/local.py +0 -0
  42. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/profiles/__init__.py +0 -0
  43. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/profiles/__init__.pyi +0 -0
  44. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/profiles/_abc.py +0 -0
  45. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/profiles/_default.py +0 -0
  46. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/profiles/_factory.py +0 -0
  47. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/profiles/_playground.py +0 -0
  48. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/py.typed +0 -0
  49. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/typed.py +0 -0
  50. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/utils/__init__.py +0 -0
  51. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/utils/__init__.pyi +0 -0
  52. {liblaf_cherries-0.4.1 → liblaf_cherries-0.4.2}/src/liblaf/cherries/utils/_functools.py +0 -0
@@ -0,0 +1,132 @@
1
+ Metadata-Version: 2.4
2
+ Name: liblaf-cherries
3
+ Version: 0.4.2
4
+ Summary: 🍒 Sweet experiment tracking with Comet, DVC, and Git integration.
5
+ Project-URL: Changelog, https://github.com/liblaf/cherries/blob/main/CHANGELOG.md
6
+ Project-URL: Documentation, https://cherries.readthedocs.io/
7
+ Project-URL: Homepage, https://github.com/liblaf/cherries
8
+ Project-URL: Issue Tracker, https://github.com/liblaf/cherries/issues
9
+ Project-URL: Release Notes, https://github.com/liblaf/cherries/releases
10
+ Project-URL: Source Code, https://github.com/liblaf/cherries
11
+ Author-email: liblaf <30631553+liblaf@users.noreply.github.com>
12
+ License-Expression: MIT
13
+ License-File: LICENSE
14
+ Classifier: Development Status :: 4 - Beta
15
+ Classifier: Intended Audience :: Developers
16
+ Classifier: Intended Audience :: Science/Research
17
+ Classifier: License :: OSI Approved
18
+ Classifier: License :: OSI Approved :: MIT License
19
+ Classifier: Operating System :: OS Independent
20
+ Classifier: Programming Language :: Python
21
+ Classifier: Programming Language :: Python :: 3
22
+ Classifier: Programming Language :: Python :: 3.12
23
+ Classifier: Programming Language :: Python :: 3.13
24
+ Classifier: Topic :: Software Development
25
+ Classifier: Topic :: Software Development :: Bug Tracking
26
+ Classifier: Topic :: Software Development :: Debuggers
27
+ Classifier: Topic :: Software Development :: Libraries
28
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
29
+ Classifier: Topic :: System
30
+ Classifier: Topic :: System :: Logging
31
+ Classifier: Topic :: Utilities
32
+ Classifier: Typing :: Typed
33
+ Requires-Python: >=3.12
34
+ Requires-Dist: attrs<26,>=25
35
+ Requires-Dist: comet-ml<4,>=3
36
+ Requires-Dist: dvc[all]<4,>=3
37
+ Requires-Dist: environs<15,>=14
38
+ Requires-Dist: gitpython<4,>=3
39
+ Requires-Dist: lazy-loader<0.5,>=0.4
40
+ Requires-Dist: liblaf-grapes<5,>=4
41
+ Requires-Dist: loguru<0.8,>=0.7
42
+ Requires-Dist: networkx<4,>=3
43
+ Requires-Dist: pydantic-settings<3,>=2
44
+ Requires-Dist: pydantic<3,>=2
45
+ Requires-Dist: rich<15,>=14
46
+ Requires-Dist: wrapt<2,>=1
47
+ Description-Content-Type: text/markdown
48
+
49
+ <div align="center" markdown>
50
+ <a name="readme-top"></a>
51
+
52
+ ![cherries](https://socialify.git.ci/liblaf/cherries/image?description=1&forks=1&issues=1&language=1&logo=https%3A%2F%2Fraw.githubusercontent.com%2Fmicrosoft%2Ffluentui-emoji%2Frefs%2Fheads%2Fmain%2Fassets%2FCherries%2F3D%2Fcherries_3d.png&name=1&owner=1&pattern=Transparent&pulls=1&stargazers=1&theme=Auto)
53
+
54
+ **[Explore the docs »](https://liblaf.github.io/cherries/)**
55
+
56
+ <!-- tangerine-start: badges/python.md -->
57
+
58
+ [![codecov](https://codecov.io/gh/liblaf/cherries/graph/badge.svg)](https://codecov.io/gh/liblaf/cherries)
59
+ [![MegaLinter](https://github.com/liblaf/cherries/actions/workflows/mega-linter.yaml/badge.svg)](https://github.com/liblaf/cherries/actions/workflows/mega-linter.yaml)
60
+ [![Test](https://github.com/liblaf/cherries/actions/workflows/test.yaml/badge.svg)](https://github.com/liblaf/cherries/actions/workflows/test.yaml)
61
+ [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/liblaf/cherries/main.svg)](https://results.pre-commit.ci/latest/github/liblaf/cherries/main)
62
+ [![CodSpeed Badge](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/liblaf/cherries)
63
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
64
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/liblaf-cherries?logo=PyPI&label=Downloads)](https://pypi.org/project/liblaf-cherries)
65
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/liblaf-cherries?logo=Python&label=Python)](https://pypi.org/project/liblaf-cherries)
66
+ [![PyPI - Version](https://img.shields.io/pypi/v/liblaf-cherries?logo=PyPI&label=PyPI)](https://pypi.org/project/liblaf-cherries)
67
+
68
+ <!-- tangerine-end -->
69
+
70
+ [Changelog](https://github.com/liblaf/cherries/blob/main/CHANGELOG.md) · [Report Bug](https://github.com/liblaf/cherries/issues) · [Request Feature](https://github.com/liblaf/cherries/issues)
71
+
72
+ ![](https://cdn.jsdelivr.net/gh/andreasbm/readme/assets/lines/rainbow.png)
73
+
74
+ </div>
75
+
76
+ ## ✨ Features
77
+
78
+ - 🧪 **Experiment Tracking:** Seamlessly log parameters, metrics, and artifacts with automatic integration to Comet.ml, DVC, and local storage;
79
+ - 🔄 **Automated Versioning:** Automatic Git commits with detailed metadata including inputs, outputs, and parameters for full experiment reproducibility;
80
+ - 🧩 **Plugin Architecture:** Extensible plugin system with dependency-aware execution order and support for custom integrations;
81
+ - 📊 **Rich Configuration:** Pydantic-based configuration with automatic asset tracking for inputs and outputs using type annotations;
82
+ - 🤖 **Smart Automation:** Automatic detection of experiment directories, asset management, and intelligent logging configuration;
83
+ - ⚡ **Quick Setup:** Simple initialization script for DVC configuration and ready-to-use experiment templates;
84
+
85
+ ## 📦 Installation
86
+
87
+ To install `liblaf-cherries`, run the following command:
88
+
89
+ ```bash
90
+ uv add liblaf-cherries
91
+ ```
92
+
93
+ ## ⌨️ Local Development
94
+
95
+ You can use Github Codespaces for online development:
96
+
97
+ [![](https://github.com/codespaces/badge.svg)](https://codespaces.new/liblaf/cherries)
98
+
99
+ Or clone it for local development:
100
+
101
+ ```bash
102
+ gh repo clone liblaf/cherries
103
+ cd cherries
104
+ mise run install
105
+ ```
106
+
107
+ ## 🤝 Contributing
108
+
109
+ Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub [Issues](https://github.com/liblaf/cherries/issues) to get stuck in to show us what you're made of.
110
+
111
+ [![PR Welcome](https://img.shields.io/badge/%F0%9F%A4%AF%20PR%20WELCOME-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge)](https://github.com/liblaf/cherries/pulls)
112
+
113
+ [![Contributors](https://contrib.nn.ci/api?repo=liblaf/cherries)](https://github.com/liblaf/cherries/graphs/contributors)
114
+
115
+ ## 🔗 More Projects
116
+
117
+ <!-- tangerine-start: projects/fruits.md -->
118
+
119
+ - **[🍇 Grapes](https://github.com/liblaf/grapes)** - Supercharge your Python with rich logging, precise timing, and seamless serialization.
120
+ - **[🍉 Melon](https://github.com/liblaf/melon)** - A comprehensive Python library for 3D mesh processing with advanced I/O capabilities, proximity analysis, and integration with external mesh processing tools.
121
+ - **[🍊 Tangerine](https://github.com/liblaf/tangerine)** - Squeeze dynamic content into your files with Tangerine's template magic.
122
+ - **[🍋‍🟩 Lime](https://github.com/liblaf/lime)** - AI-powered Git commit assistant and repository documentation generator
123
+ - **[🍎 Apple](https://github.com/liblaf/apple)** - A JAX and Warp library for differentiable physics simulation, featuring elastic energy models and finite element methods.
124
+ - **[🍒 Cherries](https://github.com/liblaf/cherries)** - Sweet experiment tracking with Comet, DVC, and Git integration.
125
+ <!-- tangerine-end -->
126
+
127
+ ---
128
+
129
+ #### 📝 License
130
+
131
+ Copyright © 2025 [liblaf](https://github.com/liblaf). <br />
132
+ This project is [MIT](https://github.com/liblaf/cherries/blob/main/LICENSE) licensed.
@@ -0,0 +1,84 @@
1
+ <div align="center" markdown>
2
+ <a name="readme-top"></a>
3
+
4
+ ![cherries](https://socialify.git.ci/liblaf/cherries/image?description=1&forks=1&issues=1&language=1&logo=https%3A%2F%2Fraw.githubusercontent.com%2Fmicrosoft%2Ffluentui-emoji%2Frefs%2Fheads%2Fmain%2Fassets%2FCherries%2F3D%2Fcherries_3d.png&name=1&owner=1&pattern=Transparent&pulls=1&stargazers=1&theme=Auto)
5
+
6
+ **[Explore the docs »](https://liblaf.github.io/cherries/)**
7
+
8
+ <!-- tangerine-start: badges/python.md -->
9
+
10
+ [![codecov](https://codecov.io/gh/liblaf/cherries/graph/badge.svg)](https://codecov.io/gh/liblaf/cherries)
11
+ [![MegaLinter](https://github.com/liblaf/cherries/actions/workflows/mega-linter.yaml/badge.svg)](https://github.com/liblaf/cherries/actions/workflows/mega-linter.yaml)
12
+ [![Test](https://github.com/liblaf/cherries/actions/workflows/test.yaml/badge.svg)](https://github.com/liblaf/cherries/actions/workflows/test.yaml)
13
+ [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/liblaf/cherries/main.svg)](https://results.pre-commit.ci/latest/github/liblaf/cherries/main)
14
+ [![CodSpeed Badge](https://img.shields.io/endpoint?url=https://codspeed.io/badge.json)](https://codspeed.io/liblaf/cherries)
15
+ [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)
16
+ [![PyPI - Downloads](https://img.shields.io/pypi/dm/liblaf-cherries?logo=PyPI&label=Downloads)](https://pypi.org/project/liblaf-cherries)
17
+ [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/liblaf-cherries?logo=Python&label=Python)](https://pypi.org/project/liblaf-cherries)
18
+ [![PyPI - Version](https://img.shields.io/pypi/v/liblaf-cherries?logo=PyPI&label=PyPI)](https://pypi.org/project/liblaf-cherries)
19
+
20
+ <!-- tangerine-end -->
21
+
22
+ [Changelog](https://github.com/liblaf/cherries/blob/main/CHANGELOG.md) · [Report Bug](https://github.com/liblaf/cherries/issues) · [Request Feature](https://github.com/liblaf/cherries/issues)
23
+
24
+ ![](https://cdn.jsdelivr.net/gh/andreasbm/readme/assets/lines/rainbow.png)
25
+
26
+ </div>
27
+
28
+ ## ✨ Features
29
+
30
+ - 🧪 **Experiment Tracking:** Seamlessly log parameters, metrics, and artifacts with automatic integration to Comet.ml, DVC, and local storage;
31
+ - 🔄 **Automated Versioning:** Automatic Git commits with detailed metadata including inputs, outputs, and parameters for full experiment reproducibility;
32
+ - 🧩 **Plugin Architecture:** Extensible plugin system with dependency-aware execution order and support for custom integrations;
33
+ - 📊 **Rich Configuration:** Pydantic-based configuration with automatic asset tracking for inputs and outputs using type annotations;
34
+ - 🤖 **Smart Automation:** Automatic detection of experiment directories, asset management, and intelligent logging configuration;
35
+ - ⚡ **Quick Setup:** Simple initialization script for DVC configuration and ready-to-use experiment templates;
36
+
37
+ ## 📦 Installation
38
+
39
+ To install `liblaf-cherries`, run the following command:
40
+
41
+ ```bash
42
+ uv add liblaf-cherries
43
+ ```
44
+
45
+ ## ⌨️ Local Development
46
+
47
+ You can use Github Codespaces for online development:
48
+
49
+ [![](https://github.com/codespaces/badge.svg)](https://codespaces.new/liblaf/cherries)
50
+
51
+ Or clone it for local development:
52
+
53
+ ```bash
54
+ gh repo clone liblaf/cherries
55
+ cd cherries
56
+ mise run install
57
+ ```
58
+
59
+ ## 🤝 Contributing
60
+
61
+ Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub [Issues](https://github.com/liblaf/cherries/issues) to get stuck in to show us what you're made of.
62
+
63
+ [![PR Welcome](https://img.shields.io/badge/%F0%9F%A4%AF%20PR%20WELCOME-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge)](https://github.com/liblaf/cherries/pulls)
64
+
65
+ [![Contributors](https://contrib.nn.ci/api?repo=liblaf/cherries)](https://github.com/liblaf/cherries/graphs/contributors)
66
+
67
+ ## 🔗 More Projects
68
+
69
+ <!-- tangerine-start: projects/fruits.md -->
70
+
71
+ - **[🍇 Grapes](https://github.com/liblaf/grapes)** - Supercharge your Python with rich logging, precise timing, and seamless serialization.
72
+ - **[🍉 Melon](https://github.com/liblaf/melon)** - A comprehensive Python library for 3D mesh processing with advanced I/O capabilities, proximity analysis, and integration with external mesh processing tools.
73
+ - **[🍊 Tangerine](https://github.com/liblaf/tangerine)** - Squeeze dynamic content into your files with Tangerine's template magic.
74
+ - **[🍋‍🟩 Lime](https://github.com/liblaf/lime)** - AI-powered Git commit assistant and repository documentation generator
75
+ - **[🍎 Apple](https://github.com/liblaf/apple)** - A JAX and Warp library for differentiable physics simulation, featuring elastic energy models and finite element methods.
76
+ - **[🍒 Cherries](https://github.com/liblaf/cherries)** - Sweet experiment tracking with Comet, DVC, and Git integration.
77
+ <!-- tangerine-end -->
78
+
79
+ ---
80
+
81
+ #### 📝 License
82
+
83
+ Copyright © 2025 [liblaf](https://github.com/liblaf). <br />
84
+ This project is [MIT](https://github.com/liblaf/cherries/blob/main/LICENSE) licensed.
@@ -3,7 +3,7 @@
3
3
 
4
4
  [project]
5
5
  name = "liblaf-cherries"
6
- description = ""
6
+ description = "🍒 Sweet experiment tracking with Comet, DVC, and Git integration."
7
7
  readme = "README.md"
8
8
  requires-python = ">=3.12"
9
9
  license = "MIT"
@@ -39,11 +39,11 @@ dependencies = [
39
39
  "environs>=14,<15",
40
40
  "gitpython>=3,<4",
41
41
  "lazy-loader>=0.4,<0.5",
42
- "liblaf-grapes>=2,<3",
42
+ "liblaf-grapes>=4,<5",
43
43
  "loguru>=0.7,<0.8",
44
44
  "networkx>=3,<4",
45
- "pydantic-settings>=2,<3",
46
45
  "pydantic>=2,<3",
46
+ "pydantic-settings>=2,<3",
47
47
  "rich>=14,<15",
48
48
  "wrapt>=1,<2",
49
49
  ]
@@ -87,13 +87,13 @@ packages = ["src/liblaf"]
87
87
  source = "vcs"
88
88
 
89
89
  [tool.pyright]
90
- exclude = ["**/.*", "**/__pycache__", "**/marimo", "**/node_modules"]
91
90
  extends = ".config/linters/pyrightconfig.json"
92
91
 
93
92
  [tool.pytest.ini_options]
94
93
  addopts = [
95
94
  "--doctest-modules",
96
95
  "--hypothesis-show-statistics",
96
+ "--import-mode=importlib",
97
97
  "--showlocals",
98
98
  "--strict-config",
99
99
  "--strict-markers",
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '0.4.1'
32
- __version_tuple__ = version_tuple = (0, 4, 1)
31
+ __version__ = version = '0.4.2'
32
+ __version_tuple__ = version_tuple = (0, 4, 2)
33
33
 
34
34
  __commit_id__ = commit_id = None
@@ -0,0 +1,24 @@
1
+ from pathlib import Path
2
+ from typing import override
3
+
4
+ import attrs
5
+
6
+ from liblaf import grapes
7
+ from liblaf.cherries import core
8
+
9
+
10
+ @attrs.define
11
+ class Logging(core.Run):
12
+ @property
13
+ def log_file(self) -> Path:
14
+ return self.plugin_root.exp_dir / "run.log"
15
+
16
+ @override
17
+ @core.impl
18
+ def start(self, *args, **kwargs) -> None:
19
+ grapes.logging.init(enable_link=False, file=self.log_file)
20
+
21
+ @override
22
+ @core.impl
23
+ def end(self, *args, **kwargs) -> None:
24
+ self.plugin_root.log_asset(self.log_file)
@@ -1,166 +0,0 @@
1
- Metadata-Version: 2.4
2
- Name: liblaf-cherries
3
- Version: 0.4.1
4
- Project-URL: Changelog, https://github.com/liblaf/cherries/blob/main/CHANGELOG.md
5
- Project-URL: Documentation, https://cherries.readthedocs.io/
6
- Project-URL: Homepage, https://github.com/liblaf/cherries
7
- Project-URL: Issue Tracker, https://github.com/liblaf/cherries/issues
8
- Project-URL: Release Notes, https://github.com/liblaf/cherries/releases
9
- Project-URL: Source Code, https://github.com/liblaf/cherries
10
- Author-email: liblaf <30631553+liblaf@users.noreply.github.com>
11
- License-Expression: MIT
12
- License-File: LICENSE
13
- Classifier: Development Status :: 4 - Beta
14
- Classifier: Intended Audience :: Developers
15
- Classifier: Intended Audience :: Science/Research
16
- Classifier: License :: OSI Approved
17
- Classifier: License :: OSI Approved :: MIT License
18
- Classifier: Operating System :: OS Independent
19
- Classifier: Programming Language :: Python
20
- Classifier: Programming Language :: Python :: 3
21
- Classifier: Programming Language :: Python :: 3.12
22
- Classifier: Programming Language :: Python :: 3.13
23
- Classifier: Topic :: Software Development
24
- Classifier: Topic :: Software Development :: Bug Tracking
25
- Classifier: Topic :: Software Development :: Debuggers
26
- Classifier: Topic :: Software Development :: Libraries
27
- Classifier: Topic :: Software Development :: Libraries :: Python Modules
28
- Classifier: Topic :: System
29
- Classifier: Topic :: System :: Logging
30
- Classifier: Topic :: Utilities
31
- Classifier: Typing :: Typed
32
- Requires-Python: >=3.12
33
- Requires-Dist: attrs<26,>=25
34
- Requires-Dist: comet-ml<4,>=3
35
- Requires-Dist: dvc[all]<4,>=3
36
- Requires-Dist: environs<15,>=14
37
- Requires-Dist: gitpython<4,>=3
38
- Requires-Dist: lazy-loader<0.5,>=0.4
39
- Requires-Dist: liblaf-grapes<3,>=2
40
- Requires-Dist: loguru<0.8,>=0.7
41
- Requires-Dist: networkx<4,>=3
42
- Requires-Dist: pydantic-settings<3,>=2
43
- Requires-Dist: pydantic<3,>=2
44
- Requires-Dist: rich<15,>=14
45
- Requires-Dist: wrapt<2,>=1
46
- Description-Content-Type: text/markdown
47
-
48
- <!-- -*- mode: markdown; -*- -->
49
-
50
- <div align="center" markdown>
51
- <a name="readme-top"></a>
52
-
53
- <img
54
- height="160"
55
- src="https://cdn.jsdelivr.net/gh/microsoft/fluentui-emoji/assets/Cherries/3D/cherries_3d.png"
56
- />
57
-
58
- # Cherries
59
-
60
- TODO: DESCRIPTION <br />
61
- [**Explore the docs »**](https://liblaf.github.io/cherries/)
62
-
63
- <!-- tangerine-start: badges/python.md.jinja -->
64
-
65
- [![Codecov](https://img.shields.io/codecov/c/github/liblaf/cherries?logo=Codecov&label=Coverage)](https://codecov.io/gh/liblaf/cherries)
66
- [![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/liblaf/cherries/test.yaml?logo=GitHub%20Actions&label=Test)](https://github.com/liblaf/cherries/actions/workflows/test.yaml)
67
- [![Lines of Code](https://tokei.rs/b1/github.com/liblaf/cherries?category=code&label=Lines%20of%20Code&style=flat)](https://github.com/liblaf/cherries)
68
- <br />
69
- [![PyPI - Downloads](https://img.shields.io/pypi/dm/liblaf-cherries?logo=PyPI&label=Downloads)](https://pypi.org/project/liblaf-cherries)
70
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/liblaf-cherries?logo=Python&label=Python)](https://pypi.org/project/liblaf-cherries)
71
- [![PyPI - Version](https://img.shields.io/pypi/v/liblaf-cherries?logo=PyPI&label=PyPI)](https://pypi.org/project/liblaf-cherries)
72
- <br />
73
- [![GitHub Contributors](https://img.shields.io/github/contributors/liblaf/cherries?logo=GitHub&label=Contributors)](https://github.com/liblaf/cherries/graphs/contributors)
74
- [![GitHub Issues](https://img.shields.io/github/issues/liblaf/cherries?logo=GitHub&label=Issues)](https://github.com/liblaf/cherries/issues)
75
- [![GitHub License](https://img.shields.io/github/license/liblaf/cherries?label=License)](https://github.com/liblaf/cherries/blob/main/LICENSE)
76
- [![GitHub Forks](https://img.shields.io/github/forks/liblaf/cherries)](https://github.com/liblaf/cherries/forks)
77
- [![GitHub Repo Stars](https://img.shields.io/github/stars/liblaf/cherries)](https://github.com/liblaf/cherries/stargazers)
78
-
79
- <!-- tangerine-end -->
80
-
81
- [Changelog](https://github.com/liblaf/cherries/blob/main/CHANGELOG.md) · [Report Bug](https://github.com/liblaf/cherries/issues) · [Request Feature](https://github.com/liblaf/cherries/issues)
82
-
83
- ![](https://cdn.jsdelivr.net/gh/andreasbm/readme/assets/lines/rainbow.png)
84
-
85
- </div>
86
-
87
- ## ✨ Features
88
-
89
- - [x] ✨ **TODO:** FEATURES;
90
-
91
- <div align="right" markdown>
92
-
93
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
94
-
95
- </div>
96
-
97
- ## 📦 Installation
98
-
99
- To install `liblaf-cherries`, run the following command:
100
-
101
- ```bash
102
- uv add liblaf-cherries
103
- ```
104
-
105
- <div align="right" markdown>
106
-
107
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
108
-
109
- </div>
110
-
111
- ## ⌨️ Local Development
112
-
113
- You can use Github Codespaces for online development:
114
-
115
- [![](https://github.com/codespaces/badge.svg)](https://codespaces.new/liblaf/cherries)
116
-
117
- Or clone it for local development:
118
-
119
- ```bash
120
- gh repo clone liblaf/cherries
121
- cd cherries
122
- mise run test
123
- ```
124
-
125
- <div align="right" markdown>
126
-
127
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
128
-
129
- </div>
130
-
131
- ## 🤝 Contributing
132
-
133
- Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub [Issues](https://github.com/liblaf/cherries/issues) to get stuck in to show us what you're made of.
134
-
135
- [![](https://img.shields.io/badge/%F0%9F%A4%AF%20PR%20WELCOME-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge)](https://github.com/liblaf/cherries/pulls)
136
-
137
- [![](https://contrib.rocks/image?repo=liblaf%2Fcherries)](https://github.com/liblaf/cherries/graphs/contributors)
138
-
139
- <div align="right" markdown>
140
-
141
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
142
-
143
- </div>
144
-
145
- ## 🔗 Links
146
-
147
- ### More Projects
148
-
149
- - **[🍇 Grapes](https://github.com/liblaf/grapes)** - Powerful Python utilities for logging, timing, and more, making development smoother!
150
-
151
- ### Credits
152
-
153
- - **Python** - <https://www.python.org/>
154
-
155
- <div align="right" markdown>
156
-
157
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
158
-
159
- </div>
160
-
161
- ---
162
-
163
- #### 📝 License
164
-
165
- Copyright © 2025 [liblaf](https://github.com/liblaf). <br />
166
- This project is [MIT](https://github.com/liblaf/cherries/blob/main/LICENSE) licensed.
@@ -1,119 +0,0 @@
1
- <!-- -*- mode: markdown; -*- -->
2
-
3
- <div align="center" markdown>
4
- <a name="readme-top"></a>
5
-
6
- <img
7
- height="160"
8
- src="https://cdn.jsdelivr.net/gh/microsoft/fluentui-emoji/assets/Cherries/3D/cherries_3d.png"
9
- />
10
-
11
- # Cherries
12
-
13
- TODO: DESCRIPTION <br />
14
- [**Explore the docs »**](https://liblaf.github.io/cherries/)
15
-
16
- <!-- tangerine-start: badges/python.md.jinja -->
17
-
18
- [![Codecov](https://img.shields.io/codecov/c/github/liblaf/cherries?logo=Codecov&label=Coverage)](https://codecov.io/gh/liblaf/cherries)
19
- [![GitHub Actions Workflow Status](https://img.shields.io/github/actions/workflow/status/liblaf/cherries/test.yaml?logo=GitHub%20Actions&label=Test)](https://github.com/liblaf/cherries/actions/workflows/test.yaml)
20
- [![Lines of Code](https://tokei.rs/b1/github.com/liblaf/cherries?category=code&label=Lines%20of%20Code&style=flat)](https://github.com/liblaf/cherries)
21
- <br />
22
- [![PyPI - Downloads](https://img.shields.io/pypi/dm/liblaf-cherries?logo=PyPI&label=Downloads)](https://pypi.org/project/liblaf-cherries)
23
- [![PyPI - Python Version](https://img.shields.io/pypi/pyversions/liblaf-cherries?logo=Python&label=Python)](https://pypi.org/project/liblaf-cherries)
24
- [![PyPI - Version](https://img.shields.io/pypi/v/liblaf-cherries?logo=PyPI&label=PyPI)](https://pypi.org/project/liblaf-cherries)
25
- <br />
26
- [![GitHub Contributors](https://img.shields.io/github/contributors/liblaf/cherries?logo=GitHub&label=Contributors)](https://github.com/liblaf/cherries/graphs/contributors)
27
- [![GitHub Issues](https://img.shields.io/github/issues/liblaf/cherries?logo=GitHub&label=Issues)](https://github.com/liblaf/cherries/issues)
28
- [![GitHub License](https://img.shields.io/github/license/liblaf/cherries?label=License)](https://github.com/liblaf/cherries/blob/main/LICENSE)
29
- [![GitHub Forks](https://img.shields.io/github/forks/liblaf/cherries)](https://github.com/liblaf/cherries/forks)
30
- [![GitHub Repo Stars](https://img.shields.io/github/stars/liblaf/cherries)](https://github.com/liblaf/cherries/stargazers)
31
-
32
- <!-- tangerine-end -->
33
-
34
- [Changelog](https://github.com/liblaf/cherries/blob/main/CHANGELOG.md) · [Report Bug](https://github.com/liblaf/cherries/issues) · [Request Feature](https://github.com/liblaf/cherries/issues)
35
-
36
- ![](https://cdn.jsdelivr.net/gh/andreasbm/readme/assets/lines/rainbow.png)
37
-
38
- </div>
39
-
40
- ## ✨ Features
41
-
42
- - [x] ✨ **TODO:** FEATURES;
43
-
44
- <div align="right" markdown>
45
-
46
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
47
-
48
- </div>
49
-
50
- ## 📦 Installation
51
-
52
- To install `liblaf-cherries`, run the following command:
53
-
54
- ```bash
55
- uv add liblaf-cherries
56
- ```
57
-
58
- <div align="right" markdown>
59
-
60
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
61
-
62
- </div>
63
-
64
- ## ⌨️ Local Development
65
-
66
- You can use Github Codespaces for online development:
67
-
68
- [![](https://github.com/codespaces/badge.svg)](https://codespaces.new/liblaf/cherries)
69
-
70
- Or clone it for local development:
71
-
72
- ```bash
73
- gh repo clone liblaf/cherries
74
- cd cherries
75
- mise run test
76
- ```
77
-
78
- <div align="right" markdown>
79
-
80
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
81
-
82
- </div>
83
-
84
- ## 🤝 Contributing
85
-
86
- Contributions of all types are more than welcome, if you are interested in contributing code, feel free to check out our GitHub [Issues](https://github.com/liblaf/cherries/issues) to get stuck in to show us what you're made of.
87
-
88
- [![](https://img.shields.io/badge/%F0%9F%A4%AF%20PR%20WELCOME-%E2%86%92-ffcb47?labelColor=black&style=for-the-badge)](https://github.com/liblaf/cherries/pulls)
89
-
90
- [![](https://contrib.rocks/image?repo=liblaf%2Fcherries)](https://github.com/liblaf/cherries/graphs/contributors)
91
-
92
- <div align="right" markdown>
93
-
94
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
95
-
96
- </div>
97
-
98
- ## 🔗 Links
99
-
100
- ### More Projects
101
-
102
- - **[🍇 Grapes](https://github.com/liblaf/grapes)** - Powerful Python utilities for logging, timing, and more, making development smoother!
103
-
104
- ### Credits
105
-
106
- - **Python** - <https://www.python.org/>
107
-
108
- <div align="right" markdown>
109
-
110
- [![](https://img.shields.io/badge/-BACK_TO_TOP-black?style=flat-square)](#readme-top)
111
-
112
- </div>
113
-
114
- ---
115
-
116
- #### 📝 License
117
-
118
- Copyright © 2025 [liblaf](https://github.com/liblaf). <br />
119
- This project is [MIT](https://github.com/liblaf/cherries/blob/main/LICENSE) licensed.
@@ -1,26 +0,0 @@
1
- from typing import override
2
-
3
- import attrs
4
-
5
- from liblaf import grapes
6
- from liblaf.cherries import core
7
-
8
-
9
- @attrs.define
10
- class Logging(core.Run):
11
- @override
12
- @core.impl
13
- def start(self, *args, **kwargs) -> None:
14
- profile = grapes.logging.profiles.ProfileCherries(
15
- handlers=[
16
- # Comet and many other experiment tracking platforms do not support links
17
- grapes.logging.rich_handler(enable_link=False),
18
- grapes.logging.file_handler(sink=self.plugin_root.exp_dir / "run.log"),
19
- ]
20
- )
21
- grapes.logging.init(profile=profile)
22
-
23
- @override
24
- @core.impl
25
- def end(self, *args, **kwargs) -> None:
26
- self.plugin_root.log_asset(self.plugin_root.exp_dir / "run.log")
File without changes