Skip to main content

Seamlessly integrate Python with WaveMetrics Igor Pro for data and command exchange.

Project description

PyIgor

PyIgor facilitates communication between Python and WaveMetrics Igor Pro, enabling seamless data and command exchange.

Requirements

  • Igor Pro 7.0 or later: Ensure you have Igor Pro 7.0 or a newer version installed.
  • HDF5 XOP: Install the HDF5 XOP module. Detailed installation instructions are available in the "HDF5 installation" section under Igor Pro's help topics.
  • PyIgor Procedure File: Download the pyigor.ipf file from GitHub and place it in the Igor Procedures folder for convenience.

Installation

To install PyIgor, use the following pip command:

pip install pyigor

Usage

Note: Ensure Igor Pro is running before executing these commands. If Igor Pro is not already running, the commands will start Igor Pro and pause until the process completes.

Accessing Igor Pro from Python

Here’s how you can interact with Igor Pro using PyIgor:

from pyigor import Connection
import numpy as np

# Establish a connection with Igor Pro
igor = Connection()

# Send a numpy array to Igor Pro
array = np.sin(np.linspace(0, 10, 100))
igor.put(array, "sinwave")

# Execute a command in Igor Pro
igor("sinwave += 1")

# Retrieve a wave from Igor Pro
wv = igor.get("sinwave")
print(wv.array)

Accessing Python from Igor Pro

Preparing Python

from pyigor import Connection

# Establish a connection
igor = Connection()

# Register a function callable from Igor Pro
@igor.function 
def myfunc(a):
    return a * a

# Keep the connection open; not required in interactive mode
igor.wait_done()

Use the Connection(security_hole=True) option to call any Python code from Igor Pro. This setting allows executing Python code through HTTP requests to http://localhost/code using eval(code). Important: Use this option only if you understand the security implications.

Calling Python Functions from Igor Pro

Execute Python functions registered via PyIgor from Igor Pro:

print PyIgorCall("myfunc(10)")

Security Note

When enabling security_hole=True, ensure your environment is secure and understand the risks associated with executing arbitrary code.

Contributors

A special thanks to the people who have contributed to this project:

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyigor-0.2.3.tar.gz (6.5 kB view details)

Uploaded Source

File details

Details for the file pyigor-0.2.3.tar.gz.

File metadata

  • Download URL: pyigor-0.2.3.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.19

File hashes

Hashes for pyigor-0.2.3.tar.gz
Algorithm Hash digest
SHA256 d4b4439780e81329bd0c24e3c6b8649fbf93feb13810689ac84bf79df4cb5d27
MD5 9d888ffaff0fb4f0847f70cb48becd0d
BLAKE2b-256 efe0b96b36f28d7bf271639603e709316aa7d4ea5c0adebae6a05b73b1ad649e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page