A Python wrapper for Ansys platform instancemanagement
Project description
PyPIM exposes a Pythonic interface to communicate with the Product Instance Management (PIM) API.
What is the PIM API?
The PIM API is a gRPC API enabling library and application developers to start a product in a remote environment and communicate with its API.
The PIM API is intended to be as simple as possible to be adaptable in a variety of network and software infrastructures. Using this API does not require any knowledge of its infrastructure. You need only know which product to start and which API the product exposes. The PIM API itself exposes very few features and assumes that all the configuration is set on a server.
The PIM API is not intended to manage stateless services, to be a job management system, or a fully featured service orchestration API. Its purpose is to expose a minimum feature set for managing service-oriented applications.
Getting Started
To use PyPIM, you must have access to the PIM API.
PyPIM itself is pure Python and relies on gRPC.
Installation
The ansys-platform-instancemanagement package is tested for Python 3.7 through Python 3.10 on Windows and Linux.
pip install ansys-platform-instancemanagement
Configuration
By default, PyPIM is configured externally instead of via code. Anywhere in the local storage, create a configuration file with the following format:
{
"version": 1,
"pim": {
"uri": "dns:pim.svc.com:80",
"headers": {
"metadata-info": "value"
},
"tls": false
}
}
Then, define the environment variable ANSYS_PLATFORM_INSTANCEMANAGEMENT_CONFIG to point to this file.
Usage
PyPIM is a single module called ansys.platform.instancemanagement, shortened to pypim.
To start MAPDL and communicate with PyPIM:
import ansys.platform.instancemanagement as pypim
from ansys.mapdl.core import Mapdl
if pypim.is_configured():
with pypim.connect() as pim:
with pim.create_instance(product_name="mapdl", product_version="221") as instance:
instance.wait_for_ready()
channel = instance.build_grpc_channel(options=[("grpc.max_receive_message_length", 8*1024**2)])
mapdl = Mapdl(channel=channel)
mapdl.prep7()
...
You can also use PyPIM without the with statement:
import ansys.platform.instancemanagement as pypim
from ansys.mapdl.core import Mapdl
if pypim.is_configured():
pim = pypim.connect()
instance = pim.create_instance(product_name="mapdl", product_version="221")
channel = instance.build_grpc_channel(options=[("grpc.max_receive_message_length", 8*1024**2)])
mapdl = Mapdl(channel=channel)
mapdl.prep7()
...
instance.delete()
pim.close()
Integration
PyPIM can be integrated in PyAnsys libraries to transparently switch to a remote instance in a suitable environment. This process is described in the integration guide.
For example, starting MAPDL with PyPIM is actually as simple as:
from ansys.mapdl.core import launch_mapdl
mapdl = launch_mapdl()
PyPIM is integrated in the following libraries:
Library |
Product Name |
Version Scheme |
---|---|---|
PyMAPDL |
mapdl |
Unified 3 digits |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for ansys-platform-instancemanagement-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 01c3027fcfef4101494d6163e02341d1956f850500c43679ae1328b6fd5c4eb4 |
|
MD5 | 7f2ac1f679061af5d75af0f0c295ee56 |
|
BLAKE2b-256 | b22663720abe2d2aec9759d3aa4a65269503886d2df236eb749ec97be4e8d3f1 |
Hashes for ansys_platform_instancemanagement-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89d65ed35aaff5c243e3407f134f05bd961f33dc78ebc94cc412e9bfc273a223 |
|
MD5 | 1e2b61e558a055713e043a3963d27895 |
|
BLAKE2b-256 | 8fc7d61b4aa4e7c43254d68f8c8b2598cb3536f90ead66adcab3da47747800a3 |