Skip to main content

PyAnsys pypi GH-CI codecov MIT black

Overview

PyAnsys Tools Variable Interop contains definitions of the basic variables, types, metadata, and values intended to provide interoperability between all products that optionally choose to participate.

Characteristics

PyAnsys Tools Variable Interop has these key characteristics:

  • Supports a minimal but complete set of formally defined data types for engineering work.

  • Offers a standard base implementation in each supported language that matches the style and intent of the given language.

  • Implements the same standard data types and conversion rules as all ModelCenter products.

  • Provides the following capabilities:

    • To/from an “API” string (not intended for UI layer) to allow data transfer in human-readable format across products and regions

    • To/from human-readable display strings

    • To/from binary blocks that are platform agnostic

    • Implicit conversion to/from language primitives for lossless conversions

    • Explicit conversion for lossy conversions

  • Uses the visitor pattern to make it easy and reliable to add and reuse new operations with compile-time semantics. A data type library can either make it easy to add new data types or make it easy to add new operations to the existing data types. It is extremely hard to make both possible at the same time. Because this library makes it easy to add new operations to the existing data types, adding new data types is not easy.

  • Defines strongly the most commonly reused metadata.

  • Provides a generic dictionary for custom metadata.

Top-level items

Descriptions follow of the top-level items in PyAnsys Tools Variable Interop:

  • The base metadata type that all variable types extend is CommonVariableMetadata. Metadata is defined as the information about a variable that is static and does not change when a component or workflow is run.

  • The value interface is IVariableValue. These values are defined so that PyAnsys Tools Variable Interop knows how to properly convert from one type to the other via language operators. Lossless conversions are implicit. Operations that are lossy, such as converting a real value to an integer, are explicit. Explicit conversions can throw an exception if there is an overflow or other “bad data” situation.

Project background

After 20 years of work on integration problems, a holistic review was performed around the concept of a variable in some legacy codebases. No less than two dozen classes that represent a variable were found. There were many more switch statements, where one data type needed to be converted to another. This inconsistency brings about the following problems:

  • The behavior of one capability within the product suite does not match that of other capabilities, leading to confusion, bugs, and lost time.

  • Switch statements are notorious for introducing bugs. People tend to cut and paste them, leading to subtle maintenance issues as one is modified and the other diverges. There is no compile-time type checking.

  • Slight differences in data types (int32 versus int64) can lead to unexpected bugs, including disastrous “bad data with no error” class issues.

  • Seemingly simple tasks like reliably converting to a string or byte buffer and back are surprisingly hard to do correctly in all edge cases. Worse, even if you get a “correct” implementation, if it doesn’t match what is used at an API boundary by a different capability or product, errors ensue.

The standards and the standard implementations in several languages came out of this review.

Documentation and issues

Documentation for the latest stable release of this package is hosted at PyAnsys Tools Variable Interop documentation.

In the upper right corner of the documentation’s title bar, there is an option for switching from viewing the documentation for the latest stable release to viewing the documentation for the development version or previously released versions.

On the PyAnsys Tools Variable Interop Issues page, you can create issues to report bugs and request new features. On the PyAnsys Tools Variable Interop Discussions page or the Discussions page on the Ansys Developer portal, you can post questions, share ideas, and get community feedback.

To reach the project support team, email pyansys.core@ansys.com.

Installation

The pyansys-tools-variableinterop package currently supports Python 3.10 through 3.13 on Windows, MacOS, and Linux.

You can install this package with this command:

pip install pyansys-tools-variableinterop

Alternatively, install the latest version from the pyansys-tools-variableinterop GitHub repository with this command:

pip install git+https://github.com/ansys/pyansys-tools-variableinterop

To install a local development version of the project, run these commands:

git clone https://github.com/ansys/pyansys-tools-variableinterop
cd pyansys-tools-variableinterop
pip install -e .

Documentation building

Install the required dependencies for building the documentation with this command:

pip install .[doc]

Build and view documentation with the one or more commands for your operating system:

# For Linux and MacOS
make -C doc/ html && your_browser_name doc/build/html/index.html

# For Windows
.\doc\make.bat html
.\doc\build\html\index.html

Testing

Install the dependencies required for testing with this command:

pip install .[tests]

Run the tests via pytest with this command:

pytest -v

Usage

You can create values and metadata like any other Python object:

import ansys.tools.variableinterop as atvi

width = atvi.RealValue(3.1)
width
width_metadata = atvi.RealMetadata()
width_metadata.lower_bound = 0.1
var(width_metadata)

License

PyAnsys Tools Variable Interop is licensed under the MIT license.

Release files for pyansys-tools-variableinterop 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyansys-tools-variableinterop 0.1.4
File Size Uploaded
pyansys_tools_variableinterop-0.1.4.tar.gz 49.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyansys-tools-variableinterop 0.1.4
File Interpreter ABI Platform
pyansys_tools_variableinterop-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 135.6 kB

Release files / pyansys_tools_variableinterop-0.1.4.tar.gz

Download URL pyansys_tools_variableinterop-0.1.4.tar.gz
Size 49.0 kB
Tags Source
SHA-256 checksum
How to use checksums
e578d05df3512797252b31fae61de3d39c87ac128af76141530389735ca80335
BLAKE2b-256 checksum
How to use checksums
37de67a644ac231552a18351e134b84621ddf9e207e0ed68664567ddaa3654a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.

Transparency log

Release files / pyansys_tools_variableinterop-0.1.4-py3-none-any.whl

Download URL pyansys_tools_variableinterop-0.1.4-py3-none-any.whl
Size 86.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
938c4d4aab4fec4639b9c454b7c0f4f814488c993bf2af3f233a2f980fa98a85
BLAKE2b-256 checksum
How to use checksums
e619e34c0fb584bb9659563fd0af1b9e3b2280782ae2da3ee4c350c156a9748f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.4 This release

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page