yotse


Nameyotse JSON
Version 0.2.0 PyPI version JSON
download
home_pagehttps://github.com/SURFQuantum/yotse
SummaryYour Optimization Tool for Scientific Experiments
upload_time2023-10-23 14:54:47
maintainer
docs_urlNone
authordmark04
requires_python>=3.10,<3.13
licenseApache 2.0
keywords science optimization genetic algorithm gradient experiment
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
[![PyPI Version](https://img.shields.io/pypi/v/yotse.svg)](https://pypi.org/project/yotse)
![Python Version](https://img.shields.io/badge/Python-3.9%20%E2%86%92%203.12-blue)
![CI/CD](https://github.com/SURFQuantum/yotse/actions/workflows/actions.yml/badge.svg)
![Coverage](https://github.com/SURFQuantum/yotse/blob/main/coverage.svg?raw=1)

# YOTSE - Your Optimization Tool for Scientific Experiments
<p align="center">
<img src="https://github.com/SURFQuantum/yotse/raw/main/YOTSE_Logo.png" alt="drawing" width="400"/>
</p>

YOTSE is a powerful tool designed to enable computational experiments using any software, with a particular emphasis on NetSquid in the context of the Quantum Internet Alliance. This library offers a set of predefined functions for performing parameter explorations and optimizations in a scalable and efficient manner.

## Table of Contents
1. [Installation](#installation)
2. [Usage](#usage)
3. [Contributing](#contributing)
4. [Testing](#testing)
5. [License](#license)

## Installation

To install this project, clone the repository. Make sure you have the necessary permissions.

```bash
git clone https://github.com/SURFQuantum/yotse.git
```

Once the repository is cloned, navigate to the project's root directory.

```bash
cd yotse
```

Install any necessary dependencies as per the project's documentation.

## Usage

YOTSE is versatile, catering to a wide range of software. While it has a special focus on NetSquid, it is flexible enough to accommodate any software you wish to use for your computational experiments.

Our library offers predefined functions for parameter exploration and optimization. We base our tools on the QCG-Pilotjob project, a job manager executable both locally and in HPC centers. You can find more information about QCG-Pilotjob here.

The optimization component of YOTSE involves a base class that can be used with any external optimization library. This flexibility allows you to tailor your optimization process to your specific needs and preferences.

Detailed examples of usage will be provided in the /examples directory.

```mermaid
---
title: Workflow
---
flowchart LR
    p("`user_pre
    (Experiment)`")
    a(analysis script)
    s(user script)
    c{{"`csv output
     input params, cost
     (Core)`"}}
    S[[Best Solution]]
    q["`QcgPilotJob
    (Executor)`"]
    G["`GenericOptimization
    (Optimizer)`"]

    p --> q -- schedules jobs of --> s --> c --> G --  generates new datapoints for --> q
    G --> S
    s -.-> a -.-> c

```

## Current structure

```mermaid
---
title: Class diagram
---
flowchart TB
  E["Executor"]
  c["cost function"]
  O["Optimizer"]
  G["GenericOptimization"]
  D[("database_from_csv")]
  Ex["Experiment"]
  E --> Ex --> O
  E -- generates --> O -- contains --> G -- contains --> D
  c -- replaced by --x D
  D -- fitness fun in --> G
```

## Contributing

We appreciate contributions. To contribute:
1. Fork the project
2. Create your feature branch (`git checkout -b feature/MyNewFeature`)
3. Commit your changes (`git commit -am 'Add some feature'`)
4. Push to the branch (`git push origin feature/MyNewFeature`)
5. Execute ```make verify``` to check if your changes pass the required checks
6. Open a Pull Request

## Testing

To run tests on the project, navigate to the project's root directory and use the make test command.

```bash
make test
```
or
```bash
make test-cov
```
to test coverage.

To run the examples, in the root directory execute
```bash
make example
```

## License

This project is licensed under the terms of the Apache License 2.0. For more details, refer to the LICENSE file in the project root.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/SURFQuantum/yotse",
    "name": "yotse",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.10,<3.13",
    "maintainer_email": "",
    "keywords": "science,optimization,genetic,algorithm,gradient,experiment",
    "author": "dmark04",
    "author_email": "dmark04@web.de",
    "download_url": "https://files.pythonhosted.org/packages/e5/1d/5ea5cb37b6cc26bf26cbe42b666f28fe6a84626f4bc80f69160d55b1f2e7/yotse-0.2.0.tar.gz",
    "platform": null,
    "description": "\n[![PyPI Version](https://img.shields.io/pypi/v/yotse.svg)](https://pypi.org/project/yotse)\n![Python Version](https://img.shields.io/badge/Python-3.9%20%E2%86%92%203.12-blue)\n![CI/CD](https://github.com/SURFQuantum/yotse/actions/workflows/actions.yml/badge.svg)\n![Coverage](https://github.com/SURFQuantum/yotse/blob/main/coverage.svg?raw=1)\n\n# YOTSE - Your Optimization Tool for Scientific Experiments\n<p align=\"center\">\n<img src=\"https://github.com/SURFQuantum/yotse/raw/main/YOTSE_Logo.png\" alt=\"drawing\" width=\"400\"/>\n</p>\n\nYOTSE is a powerful tool designed to enable computational experiments using any software, with a particular emphasis on NetSquid in the context of the Quantum Internet Alliance. This library offers a set of predefined functions for performing parameter explorations and optimizations in a scalable and efficient manner.\n\n## Table of Contents\n1. [Installation](#installation)\n2. [Usage](#usage)\n3. [Contributing](#contributing)\n4. [Testing](#testing)\n5. [License](#license)\n\n## Installation\n\nTo install this project, clone the repository. Make sure you have the necessary permissions.\n\n```bash\ngit clone https://github.com/SURFQuantum/yotse.git\n```\n\nOnce the repository is cloned, navigate to the project's root directory.\n\n```bash\ncd yotse\n```\n\nInstall any necessary dependencies as per the project's documentation.\n\n## Usage\n\nYOTSE is versatile, catering to a wide range of software. While it has a special focus on NetSquid, it is flexible enough to accommodate any software you wish to use for your computational experiments.\n\nOur library offers predefined functions for parameter exploration and optimization. We base our tools on the QCG-Pilotjob project, a job manager executable both locally and in HPC centers. You can find more information about QCG-Pilotjob here.\n\nThe optimization component of YOTSE involves a base class that can be used with any external optimization library. This flexibility allows you to tailor your optimization process to your specific needs and preferences.\n\nDetailed examples of usage will be provided in the /examples directory.\n\n```mermaid\n---\ntitle: Workflow\n---\nflowchart LR\n    p(\"`user_pre\n    (Experiment)`\")\n    a(analysis script)\n    s(user script)\n    c{{\"`csv output\n     input params, cost\n     (Core)`\"}}\n    S[[Best Solution]]\n    q[\"`QcgPilotJob\n    (Executor)`\"]\n    G[\"`GenericOptimization\n    (Optimizer)`\"]\n\n    p --> q -- schedules jobs of --> s --> c --> G --  generates new datapoints for --> q\n    G --> S\n    s -.-> a -.-> c\n\n```\n\n## Current structure\n\n```mermaid\n---\ntitle: Class diagram\n---\nflowchart TB\n  E[\"Executor\"]\n  c[\"cost function\"]\n  O[\"Optimizer\"]\n  G[\"GenericOptimization\"]\n  D[(\"database_from_csv\")]\n  Ex[\"Experiment\"]\n  E --> Ex --> O\n  E -- generates --> O -- contains --> G -- contains --> D\n  c -- replaced by --x D\n  D -- fitness fun in --> G\n```\n\n## Contributing\n\nWe appreciate contributions. To contribute:\n1. Fork the project\n2. Create your feature branch (`git checkout -b feature/MyNewFeature`)\n3. Commit your changes (`git commit -am 'Add some feature'`)\n4. Push to the branch (`git push origin feature/MyNewFeature`)\n5. Execute ```make verify``` to check if your changes pass the required checks\n6. Open a Pull Request\n\n## Testing\n\nTo run tests on the project, navigate to the project's root directory and use the make test command.\n\n```bash\nmake test\n```\nor\n```bash\nmake test-cov\n```\nto test coverage.\n\nTo run the examples, in the root directory execute\n```bash\nmake example\n```\n\n## License\n\nThis project is licensed under the terms of the Apache License 2.0. For more details, refer to the LICENSE file in the project root.\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "Your Optimization Tool for Scientific Experiments",
    "version": "0.2.0",
    "project_urls": {
        "Homepage": "https://github.com/SURFQuantum/yotse",
        "Repository": "https://github.com/SURFQuantum/yotse"
    },
    "split_keywords": [
        "science",
        "optimization",
        "genetic",
        "algorithm",
        "gradient",
        "experiment"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "059d15a93e20b2b0716abb6a6c130769982c736438b9fe37c819be8c741b2f1d",
                "md5": "c7368b7b062c064d062f09fb85a00bf4",
                "sha256": "00046b1ae93e1378d02ef3004ac9b1bcc66cafddb2e9b50b20710125ebe5bd02"
            },
            "downloads": -1,
            "filename": "yotse-0.2.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c7368b7b062c064d062f09fb85a00bf4",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10,<3.13",
            "size": 32998,
            "upload_time": "2023-10-23T14:54:45",
            "upload_time_iso_8601": "2023-10-23T14:54:45.805227Z",
            "url": "https://files.pythonhosted.org/packages/05/9d/15a93e20b2b0716abb6a6c130769982c736438b9fe37c819be8c741b2f1d/yotse-0.2.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e51d5ea5cb37b6cc26bf26cbe42b666f28fe6a84626f4bc80f69160d55b1f2e7",
                "md5": "c32ff9b86cfca8ae8cbc624489f53025",
                "sha256": "3b4dbc268cdfe67710787208d92269d4fec2f0aa5602d69d0dda9587844fd2a0"
            },
            "downloads": -1,
            "filename": "yotse-0.2.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c32ff9b86cfca8ae8cbc624489f53025",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10,<3.13",
            "size": 30047,
            "upload_time": "2023-10-23T14:54:47",
            "upload_time_iso_8601": "2023-10-23T14:54:47.495528Z",
            "url": "https://files.pythonhosted.org/packages/e5/1d/5ea5cb37b6cc26bf26cbe42b666f28fe6a84626f4bc80f69160d55b1f2e7/yotse-0.2.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-10-23 14:54:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "SURFQuantum",
    "github_project": "yotse",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "yotse"
}
        
Elapsed time: 0.12766s