pycaddy


Namepycaddy JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryA Python toolbox caddy for experiment tracking, parameter sweeping, and automation tasks
upload_time2025-08-07 08:31:16
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords automation experiment-tracking parameter-sweep toolbox
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # pycaddy

A Python toolbox caddy for experiment tracking, parameter sweeping, and automation tasks.

## Installation

```bash
pip install pycaddy
```

## Quick Start

### Experiment Tracking

```python
from pycaddy.project import Project

# Create a project for organizing experiments  
project = Project(root="experiments").ensure_folder()

# Start a new experiment run
session = project.session("train", params={"lr": 0.001, "batch_size": 32})
session.start()

# Your experiment code here...
model_path = session.path("model.pt")
# save_model(model_path)

# Mark as completed
session.done()
```

### Parameter Sweeping

```python
from pycaddy.sweeper import DictSweep, StrategyName

# Define parameter space
params = {
    'learning_rate': [0.01, 0.001],
    'batch_size': [16, 32, 64]
}

# Generate all combinations
sweep = DictSweep(parameters=params, strategy=StrategyName.PRODUCT)
for config in sweep.generate():
    print(config)
    # {'learning_rate': 0.01, 'batch_size': 16}
    # {'learning_rate': 0.01, 'batch_size': 32}
    # ... etc
```

## Features

- **Project Management**: Structured folder organization with automatic metadata tracking
- **Session Tracking**: Track experiment runs with unique IDs, status, and file attachments  
- **Parameter Sweeping**: Generate parameter combinations with different strategies
- **Concurrent Safe**: File-based locking for multi-process experiment tracking
- **Lightweight**: Minimal dependencies, designed as a dependency toolbox

## License

MIT License - see [LICENSE](LICENSE) file.

## Links

- **Repository**: https://github.com/HutoriHunzu/pycaddy
- **Author**: Uri Goldblatt (uri.goldblatt@gmail.com)
            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pycaddy",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "automation, experiment-tracking, parameter-sweep, toolbox",
    "author": null,
    "author_email": "Uri Goldblatt <uri.goldblatt@gmail.com>",
    "download_url": "https://files.pythonhosted.org/packages/b1/8e/2a0c465b3a154e735436e5df57d8f33ab9eb327f51ac69f9b5c6e0c40934/pycaddy-0.1.0.tar.gz",
    "platform": null,
    "description": "# pycaddy\n\nA Python toolbox caddy for experiment tracking, parameter sweeping, and automation tasks.\n\n## Installation\n\n```bash\npip install pycaddy\n```\n\n## Quick Start\n\n### Experiment Tracking\n\n```python\nfrom pycaddy.project import Project\n\n# Create a project for organizing experiments  \nproject = Project(root=\"experiments\").ensure_folder()\n\n# Start a new experiment run\nsession = project.session(\"train\", params={\"lr\": 0.001, \"batch_size\": 32})\nsession.start()\n\n# Your experiment code here...\nmodel_path = session.path(\"model.pt\")\n# save_model(model_path)\n\n# Mark as completed\nsession.done()\n```\n\n### Parameter Sweeping\n\n```python\nfrom pycaddy.sweeper import DictSweep, StrategyName\n\n# Define parameter space\nparams = {\n    'learning_rate': [0.01, 0.001],\n    'batch_size': [16, 32, 64]\n}\n\n# Generate all combinations\nsweep = DictSweep(parameters=params, strategy=StrategyName.PRODUCT)\nfor config in sweep.generate():\n    print(config)\n    # {'learning_rate': 0.01, 'batch_size': 16}\n    # {'learning_rate': 0.01, 'batch_size': 32}\n    # ... etc\n```\n\n## Features\n\n- **Project Management**: Structured folder organization with automatic metadata tracking\n- **Session Tracking**: Track experiment runs with unique IDs, status, and file attachments  \n- **Parameter Sweeping**: Generate parameter combinations with different strategies\n- **Concurrent Safe**: File-based locking for multi-process experiment tracking\n- **Lightweight**: Minimal dependencies, designed as a dependency toolbox\n\n## License\n\nMIT License - see [LICENSE](LICENSE) file.\n\n## Links\n\n- **Repository**: https://github.com/HutoriHunzu/pycaddy\n- **Author**: Uri Goldblatt (uri.goldblatt@gmail.com)",
    "bugtrack_url": null,
    "license": null,
    "summary": "A Python toolbox caddy for experiment tracking, parameter sweeping, and automation tasks",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/HutoriHunzu/pycaddy",
        "Repository": "https://github.com/HutoriHunzu/pycaddy"
    },
    "split_keywords": [
        "automation",
        " experiment-tracking",
        " parameter-sweep",
        " toolbox"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "32cec5dbdbb0d94d3f22e2901a351c3bf2cb99ea5dab4a0c791dee2ee44266c1",
                "md5": "d8c35a29be09cb8c29285e465fd98f2e",
                "sha256": "701264fa5567d5ddbd34f018214ae21c7430b333ef1c9db601e52a107bb88892"
            },
            "downloads": -1,
            "filename": "pycaddy-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "d8c35a29be09cb8c29285e465fd98f2e",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 27670,
            "upload_time": "2025-08-07T08:31:14",
            "upload_time_iso_8601": "2025-08-07T08:31:14.864901Z",
            "url": "https://files.pythonhosted.org/packages/32/ce/c5dbdbb0d94d3f22e2901a351c3bf2cb99ea5dab4a0c791dee2ee44266c1/pycaddy-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b18e2a0c465b3a154e735436e5df57d8f33ab9eb327f51ac69f9b5c6e0c40934",
                "md5": "6113fb39a1ee415bb6bf9d24463e79ee",
                "sha256": "b28547f85bdff0822aea72a4ed805d2cae35676d044de7bea12c2e589e497e34"
            },
            "downloads": -1,
            "filename": "pycaddy-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "6113fb39a1ee415bb6bf9d24463e79ee",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.11",
            "size": 27870,
            "upload_time": "2025-08-07T08:31:16",
            "upload_time_iso_8601": "2025-08-07T08:31:16.364082Z",
            "url": "https://files.pythonhosted.org/packages/b1/8e/2a0c465b3a154e735436e5df57d8f33ab9eb327f51ac69f9b5c6e0c40934/pycaddy-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-08-07 08:31:16",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "HutoriHunzu",
    "github_project": "pycaddy",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "pycaddy"
}
        
Elapsed time: 0.90483s