modelon-impact-client


Namemodelon-impact-client JSON
Version 3.19.0 PyPI version JSON
download
home_pagehttps://www.modelon.com/modelon-impact
SummaryClient library for easy scripting against Modelon Impact
upload_time2024-05-03 07:10:05
maintainerNone
docs_urlNone
authorWEP
requires_python<4.0.0,>=3.8.0
licenseBSD
keywords impact client api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # Modelon-impact-client

Client library for easy scripting against Modelon Impact

## Installation

For installation instructions and requirements, please refer to the [documentation](https://modelon-impact-client.readthedocs.io).

## Develop

### Devcontainer

If you are developing with VS Code you can use the devcontainer which gives gives you a ready to use environment for development. Just click the "Reopen in Container" button after opening the project in VS Code.

#### Tips and tricks

It is possible to run the 'make' commands listed bellow using the devcontainer. It will detect being in a container and bypass Docker parts of the commands.

You can open a project with the dev-container directly without having to open and then re-load. Standing in the project directory you can run:

```
devcontainer open .
```

Note that this requires the [devcontainer-cli](https://code.visualstudio.com/docs/remote/devcontainer-cli).

You can add your own extensions to devcontainers. These extensions will be added for all devcontainers. First open your 'settings' as JSON. Then, to add for example the "GitLens" extension, put the following at the bottom of the settings:

```
    ...
    "remote.containers.defaultExtensions": ["eamodio.gitlens"]
}
```

VS Code also have a `'Install Local Extensions in 'Remote'` command, but it must be repeated for each devcontainer and everytime a devcontainer is re-built.

### Creating a shell

Modelon-impact-client is developed using a Docker container for all build tools.
You can get a shell into said container by running:

```
make shell
```

### Manage dependencies

Dependencies are managed by poetry. Add dependencies by running
`poetry add <package>`  or `poetry add <package> --dev` inside the shell

### Running tests

Tests are executed by running `make test`. You can also run `make test-watch` to get a watcher
that continuously re-runs the tests.

### Running lint

```
make lint
```

## Build

Building modelon-impact-client is done by running

```
make wheel
```

## Test

The tests for modelon-impact-client could be run by executing

```
make test
```

### VCR test

Vcrpy(https://vcrpy.readthedocs.io/en/latest/) is used to mock the http requests and
responses for some of the tests. VCR.py records all HTTP interactions that take place
in a flat file called a 'cassette'. These files could are stored in the `impact-client-python/tests/fixtures/vcr_cassettes` folder. When an API response/request body is updated on MI, these files need to be regenerated. To regenerate these file, follow the following steps:

1. Start Modelon impact cloud - https://impact.modelon.cloud.
2. Generate an MI api key and JH token and store them in secrets folder. See [Readme](.secrets/README.md) for more information.
3. Delete the cassette file you wish to regenerate from `impact-client-python/tests/fixtures/vcr_cassettes` folder.
4. The file could now be regenrated by executing

```
make regenerate-cassette
```

## Release

The modelon-impact-client build process is a fully automated using `Semantic-release`.

Automation is enabled for:

- Bumping version
- Generate changelog

This is done based on git commit semantics as described here: https://semantic-release.gitbook.io/semantic-release/

To make a new release simply run:

```
make publish
```

This command will detect what branch you are on and your git history and make a appropriate release.

Current configuration can be found in `.releaserc` and specifies that commits to branch `master` should be released and
commits to branch `beta` should be released as a `pre-release`.

This workflow make sure that no administrative time needs to be put into managing the release workflow.

            

Raw data

            {
    "_id": null,
    "home_page": "https://www.modelon.com/modelon-impact",
    "name": "modelon-impact-client",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0.0,>=3.8.0",
    "maintainer_email": null,
    "keywords": "impact, client, API",
    "author": "WEP",
    "author_email": "impact@modelon.com",
    "download_url": "https://files.pythonhosted.org/packages/62/7d/710f054c44cc33bc2147e053e94928de110a0d175d7dc9b7d747af185b9a/modelon_impact_client-3.19.0.tar.gz",
    "platform": null,
    "description": "# Modelon-impact-client\n\nClient library for easy scripting against Modelon Impact\n\n## Installation\n\nFor installation instructions and requirements, please refer to the [documentation](https://modelon-impact-client.readthedocs.io).\n\n## Develop\n\n### Devcontainer\n\nIf you are developing with VS Code you can use the devcontainer which gives gives you a ready to use environment for development. Just click the \"Reopen in Container\" button after opening the project in VS Code.\n\n#### Tips and tricks\n\nIt is possible to run the 'make' commands listed bellow using the devcontainer. It will detect being in a container and bypass Docker parts of the commands.\n\nYou can open a project with the dev-container directly without having to open and then re-load. Standing in the project directory you can run:\n\n```\ndevcontainer open .\n```\n\nNote that this requires the [devcontainer-cli](https://code.visualstudio.com/docs/remote/devcontainer-cli).\n\nYou can add your own extensions to devcontainers. These extensions will be added for all devcontainers. First open your 'settings' as JSON. Then, to add for example the \"GitLens\" extension, put the following at the bottom of the settings:\n\n```\n    ...\n    \"remote.containers.defaultExtensions\": [\"eamodio.gitlens\"]\n}\n```\n\nVS Code also have a `'Install Local Extensions in 'Remote'` command, but it must be repeated for each devcontainer and everytime a devcontainer is re-built.\n\n### Creating a shell\n\nModelon-impact-client is developed using a Docker container for all build tools.\nYou can get a shell into said container by running:\n\n```\nmake shell\n```\n\n### Manage dependencies\n\nDependencies are managed by poetry. Add dependencies by running\n`poetry add <package>`  or `poetry add <package> --dev` inside the shell\n\n### Running tests\n\nTests are executed by running `make test`. You can also run `make test-watch` to get a watcher\nthat continuously re-runs the tests.\n\n### Running lint\n\n```\nmake lint\n```\n\n## Build\n\nBuilding modelon-impact-client is done by running\n\n```\nmake wheel\n```\n\n## Test\n\nThe tests for modelon-impact-client could be run by executing\n\n```\nmake test\n```\n\n### VCR test\n\nVcrpy(https://vcrpy.readthedocs.io/en/latest/) is used to mock the http requests and\nresponses for some of the tests. VCR.py records all HTTP interactions that take place\nin a flat file called a 'cassette'. These files could are stored in the `impact-client-python/tests/fixtures/vcr_cassettes` folder. When an API response/request body is updated on MI, these files need to be regenerated. To regenerate these file, follow the following steps:\n\n1. Start Modelon impact cloud - https://impact.modelon.cloud.\n2. Generate an MI api key and JH token and store them in secrets folder. See [Readme](.secrets/README.md) for more information.\n3. Delete the cassette file you wish to regenerate from `impact-client-python/tests/fixtures/vcr_cassettes` folder.\n4. The file could now be regenrated by executing\n\n```\nmake regenerate-cassette\n```\n\n## Release\n\nThe modelon-impact-client build process is a fully automated using `Semantic-release`.\n\nAutomation is enabled for:\n\n- Bumping version\n- Generate changelog\n\nThis is done based on git commit semantics as described here: https://semantic-release.gitbook.io/semantic-release/\n\nTo make a new release simply run:\n\n```\nmake publish\n```\n\nThis command will detect what branch you are on and your git history and make a appropriate release.\n\nCurrent configuration can be found in `.releaserc` and specifies that commits to branch `master` should be released and\ncommits to branch `beta` should be released as a `pre-release`.\n\nThis workflow make sure that no administrative time needs to be put into managing the release workflow.\n",
    "bugtrack_url": null,
    "license": "BSD",
    "summary": "Client library for easy scripting against Modelon Impact",
    "version": "3.19.0",
    "project_urls": {
        "Documentation": "https://modelon-impact-client.readthedocs.io",
        "Homepage": "https://www.modelon.com/modelon-impact",
        "Repository": "https://github.com/modelon-community/impact-client-python"
    },
    "split_keywords": [
        "impact",
        " client",
        " api"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "7def4bcce16ef5e021dca24a4630c9ef8b73f130c53f53b73ac1b7405f3f4834",
                "md5": "abe4b96fec79b5475cdc2169427f78de",
                "sha256": "c026c50e1ddbef645db485786c5ff610b1b9e0bbdde2ed4ef0badbcd6ae58aea"
            },
            "downloads": -1,
            "filename": "modelon_impact_client-3.19.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "abe4b96fec79b5475cdc2169427f78de",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0.0,>=3.8.0",
            "size": 104106,
            "upload_time": "2024-05-03T07:10:01",
            "upload_time_iso_8601": "2024-05-03T07:10:01.737331Z",
            "url": "https://files.pythonhosted.org/packages/7d/ef/4bcce16ef5e021dca24a4630c9ef8b73f130c53f53b73ac1b7405f3f4834/modelon_impact_client-3.19.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "627d710f054c44cc33bc2147e053e94928de110a0d175d7dc9b7d747af185b9a",
                "md5": "4b855f85791e0ffe9724065ab2cfeaba",
                "sha256": "267a4478c30fb1af8fe0f6a50aa134c1fe409995d39396b9eba9ecd2515e1a85"
            },
            "downloads": -1,
            "filename": "modelon_impact_client-3.19.0.tar.gz",
            "has_sig": false,
            "md5_digest": "4b855f85791e0ffe9724065ab2cfeaba",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0.0,>=3.8.0",
            "size": 68953,
            "upload_time": "2024-05-03T07:10:05",
            "upload_time_iso_8601": "2024-05-03T07:10:05.696464Z",
            "url": "https://files.pythonhosted.org/packages/62/7d/710f054c44cc33bc2147e053e94928de110a0d175d7dc9b7d747af185b9a/modelon_impact_client-3.19.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-05-03 07:10:05",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "modelon-community",
    "github_project": "impact-client-python",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": false,
    "lcname": "modelon-impact-client"
}
        
WEP
Elapsed time: 0.34429s