modelpark


Namemodelpark JSON
Version 0.1.19 PyPI version JSON
download
home_pagehttps://github.com/model-park/modelpark
SummaryVersatile solution for sharing apps through secure URLs
upload_time2024-08-07 12:36:33
maintainerNone
docs_urlNone
authorVeysel Kocaman
requires_pythonNone
licenseMIT
keywords modelpark deployment cloud api
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            
# ModelPark

ModelPark provides a versatile platform to share and manage your ML models directly from your machine, offering a convenient Python API to manage these tasks programmatically, including controlling access and publishing applications.

This library provides a more Pythonic way of managing your applications with [ModelPark](https://modelpark.app/)  compared to using the CLI directly.

See [ModelPark](https://modelpark.app/) website and platform for more details.

![image](https://github.com/model-park/modelpark/assets/25637056/6eac80e7-91e9-477a-bcce-bd7d369d932e)

![image](https://github.com/model-park/modelpark/assets/25637056/be495106-915d-4989-818d-dad7bb5abc71)

## Features

- Share models directly from the Python API.
- Publish and manage applications using the ModelPark Python API.
- Configure access management according to your needs through Python methods.

## Installation

To install ModelPark, you can use pip:
```bash
pip install modelpark
```

## Configuration

Ensure Python and pip are installed on your machine. This API interfaces with the ModelPark CLI but manages interactions programmatically through Python.

## Usage

Here's how you can use the ModelPark Python package:

### Initialize and Login
```python
from modelpark import ModelPark

mp = ModelPark() # downloads the modelpark CLI binary/ executable to your home folder as "~/modelpark'
mp.login(username="your_username", password="your_password")
mp.init()
```

#### clear cache while init (remove existing modelpark CLI binaries from system)
```python
from modelpark import ModelPark

mp = ModelPark(clear_cache=True)
```

### Register an Application 

#### Register an app running on a certain port
```python
mp.register(port=3000, name="my-app", access="public") 
# access='private' if private (not visible/ accessible in modelpark dashboard)
```
#### Register a password protected app running on a certain port

```python
mp.register_port(port=3000, name="my-app", access="public", password='123')
```

#### Register an app running on a certain port

```python
mp.register_port(port=3000, name="my-app", access="public")
```

#### Register a streamlit app that is not run yet (this starts the app as well)
```python
mp.run_with_streamlit_and_register(port=3000, name="my-app", file_path="~/my-app/streamlit-app.py", access="public", framework="streamlit")
# generic registration also works >> 
# mp.register(port=3000, name="my-app", file_path="~/my-app/streamlit-app.py", access="public", framework="streamlit")

```

#### Register a streamlit app that is not run yet 
```python
mp.register(port=3000, name="my-app", file_path="~/my-app/streamlit-app.py", access="public", framework="streamlit")
```

#### Register a Fast API app while deploying 
add `register_port` within startup_event() function in FAST API app
```python
@app.on_event("startup")
async def startup_event():
    mp.register_port(port=5000, name="my-fast-api", access="public") 
```    

### List Registered Applications
```python
mp.ls()
# or mp.status()
```

### Stop and Logout
```python
mp.stop()
mp.logout()
```

### Kill an Application
```python
mp.kill(name="my-app")
```

### Kill all the registrations in this session
```python
mp.kill(all=True)
```


### Make an API Call to a Registered Application 
```python
from modelpark import APIManager
mp_api = APIManager()

user_credentials = {'username': 'your_username', 'password': 'your_password'}
app_name = 'my-app'
extension = 'api_extension' # or None
password = 'psw' # or None if no password protection
request_payload = {'key': 'value'}  # Payload required by the application

# Make the API call
response = mp_api.make_api_call(app_name, user_credentials, request_payload=request_payload, password=password, extension=extension)
print(response.json())  # Assuming the response is in JSON format

# get an access token to hit a modelpark api endpoint

import requests

expire ='7d' # x days or None
password = '1234' # or None if no password protection
auth_token = mp_api.get_auth_token(user_credentials)
access_token = mp_api.get_access_token(app_name, auth_token, password=password, expire=expire)

headers = {
    "x-access-token": access_token}

query = {'key': 'value'} 

requests.get(url, headers=headers, params=query).json()
```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/model-park/modelpark",
    "name": "modelpark",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "modelpark, deployment, cloud, api",
    "author": "Veysel Kocaman",
    "author_email": "info@modelpark.app",
    "download_url": "https://files.pythonhosted.org/packages/05/90/761eb3df6defd79c1050ca7634f82cec2ed4f04cbd8784c57e0dcf802a46/modelpark-0.1.19.tar.gz",
    "platform": null,
    "description": "\n# ModelPark\n\nModelPark provides a versatile platform to share and manage your ML models directly from your machine, offering a convenient Python API to manage these tasks programmatically, including controlling access and publishing applications.\n\nThis library provides a more Pythonic way of managing your applications with [ModelPark](https://modelpark.app/)  compared to using the CLI directly.\n\nSee [ModelPark](https://modelpark.app/) website and platform for more details.\n\n![image](https://github.com/model-park/modelpark/assets/25637056/6eac80e7-91e9-477a-bcce-bd7d369d932e)\n\n![image](https://github.com/model-park/modelpark/assets/25637056/be495106-915d-4989-818d-dad7bb5abc71)\n\n## Features\n\n- Share models directly from the Python API.\n- Publish and manage applications using the ModelPark Python API.\n- Configure access management according to your needs through Python methods.\n\n## Installation\n\nTo install ModelPark, you can use pip:\n```bash\npip install modelpark\n```\n\n## Configuration\n\nEnsure Python and pip are installed on your machine. This API interfaces with the ModelPark CLI but manages interactions programmatically through Python.\n\n## Usage\n\nHere's how you can use the ModelPark Python package:\n\n### Initialize and Login\n```python\nfrom modelpark import ModelPark\n\nmp = ModelPark() # downloads the modelpark CLI binary/ executable to your home folder as \"~/modelpark'\nmp.login(username=\"your_username\", password=\"your_password\")\nmp.init()\n```\n\n#### clear cache while init (remove existing modelpark CLI binaries from system)\n```python\nfrom modelpark import ModelPark\n\nmp = ModelPark(clear_cache=True)\n```\n\n### Register an Application \n\n#### Register an app running on a certain port\n```python\nmp.register(port=3000, name=\"my-app\", access=\"public\") \n# access='private' if private (not visible/ accessible in modelpark dashboard)\n```\n#### Register a password protected app running on a certain port\n\n```python\nmp.register_port(port=3000, name=\"my-app\", access=\"public\", password='123')\n```\n\n#### Register an app running on a certain port\n\n```python\nmp.register_port(port=3000, name=\"my-app\", access=\"public\")\n```\n\n#### Register a streamlit app that is not run yet (this starts the app as well)\n```python\nmp.run_with_streamlit_and_register(port=3000, name=\"my-app\", file_path=\"~/my-app/streamlit-app.py\", access=\"public\", framework=\"streamlit\")\n# generic registration also works >> \n# mp.register(port=3000, name=\"my-app\", file_path=\"~/my-app/streamlit-app.py\", access=\"public\", framework=\"streamlit\")\n\n```\n\n#### Register a streamlit app that is not run yet \n```python\nmp.register(port=3000, name=\"my-app\", file_path=\"~/my-app/streamlit-app.py\", access=\"public\", framework=\"streamlit\")\n```\n\n#### Register a Fast API app while deploying \nadd `register_port` within startup_event() function in FAST API app\n```python\n@app.on_event(\"startup\")\nasync def startup_event():\n    mp.register_port(port=5000, name=\"my-fast-api\", access=\"public\") \n```    \n\n### List Registered Applications\n```python\nmp.ls()\n# or mp.status()\n```\n\n### Stop and Logout\n```python\nmp.stop()\nmp.logout()\n```\n\n### Kill an Application\n```python\nmp.kill(name=\"my-app\")\n```\n\n### Kill all the registrations in this session\n```python\nmp.kill(all=True)\n```\n\n\n### Make an API Call to a Registered Application \n```python\nfrom modelpark import APIManager\nmp_api = APIManager()\n\nuser_credentials = {'username': 'your_username', 'password': 'your_password'}\napp_name = 'my-app'\nextension = 'api_extension' # or None\npassword = 'psw' # or None if no password protection\nrequest_payload = {'key': 'value'}  # Payload required by the application\n\n# Make the API call\nresponse = mp_api.make_api_call(app_name, user_credentials, request_payload=request_payload, password=password, extension=extension)\nprint(response.json())  # Assuming the response is in JSON format\n\n# get an access token to hit a modelpark api endpoint\n\nimport requests\n\nexpire ='7d' # x days or None\npassword = '1234' # or None if no password protection\nauth_token = mp_api.get_auth_token(user_credentials)\naccess_token = mp_api.get_access_token(app_name, auth_token, password=password, expire=expire)\n\nheaders = {\n    \"x-access-token\": access_token}\n\nquery = {'key': 'value'} \n\nrequests.get(url, headers=headers, params=query).json()\n```\n\n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "Versatile solution for sharing apps through secure URLs",
    "version": "0.1.19",
    "project_urls": {
        "Homepage": "https://github.com/model-park/modelpark"
    },
    "split_keywords": [
        "modelpark",
        " deployment",
        " cloud",
        " api"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "ac9843c88603cd92a22a660e2afd86cfa13014e147e7712a14612b4f862c1377",
                "md5": "30b186a2239808b42eaa42380cddf204",
                "sha256": "63ab121896a1f2c62786ed9ef0d8ba5746ad4812e84d4f6eca3b5309531a2f7b"
            },
            "downloads": -1,
            "filename": "modelpark-0.1.19-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "30b186a2239808b42eaa42380cddf204",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 7096,
            "upload_time": "2024-08-07T12:36:32",
            "upload_time_iso_8601": "2024-08-07T12:36:32.160529Z",
            "url": "https://files.pythonhosted.org/packages/ac/98/43c88603cd92a22a660e2afd86cfa13014e147e7712a14612b4f862c1377/modelpark-0.1.19-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "0590761eb3df6defd79c1050ca7634f82cec2ed4f04cbd8784c57e0dcf802a46",
                "md5": "fac402c78085de6aebbbd63fc4e9babf",
                "sha256": "1e9d9e49bca7b3e7a7385692d4942ace8350f336c711058630e5171955a3810d"
            },
            "downloads": -1,
            "filename": "modelpark-0.1.19.tar.gz",
            "has_sig": false,
            "md5_digest": "fac402c78085de6aebbbd63fc4e9babf",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 7041,
            "upload_time": "2024-08-07T12:36:33",
            "upload_time_iso_8601": "2024-08-07T12:36:33.621854Z",
            "url": "https://files.pythonhosted.org/packages/05/90/761eb3df6defd79c1050ca7634f82cec2ed4f04cbd8784c57e0dcf802a46/modelpark-0.1.19.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-07 12:36:33",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "model-park",
    "github_project": "modelpark",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [],
    "lcname": "modelpark"
}
        
Elapsed time: 2.56589s