Skip to content

Feature: Add new Python API to convert between scopes configuration files#2924

Open
santorofer wants to merge 2 commits intoMDSplus:alphafrom
santorofer:scope-converter
Open

Feature: Add new Python API to convert between scopes configuration files#2924
santorofer wants to merge 2 commits intoMDSplus:alphafrom
santorofer:scope-converter

Conversation

@santorofer
Copy link
Contributor

@santorofer santorofer commented Jun 25, 2025

A new Python API to be able to convert between jScope configuration files and dwscope configuration files.
This new API replaces the old scope API with new functionality.

>>> import MDSplus
>>> MDSplus.Scope
MDSplus.Scope(              MDSplus.ScopePlot(          MDSplus.ScopeSignalColor(   MDSplus.ScopeSignalMode1D(
MDSplus.ScopeGeometry(      MDSplus.ScopeSignal(        MDSplus.ScopeSignalMarker(  MDSplus.ScopeSignalMode2D(

Usage:
For example, convert between dwscope config file to jScope config file:

>>> convert = MDSplus.Scope.load('plasma.dat')
>>> convert.save('plasma.jscp')

A new Python API to be able to convert between jScope configuration files and dwscope configuration files.

>>> import MDSplus
>>> MDSplus.Scope
MDSplus.Scope(              MDSplus.ScopePlot(          MDSplus.ScopeSignalColor(   MDSplus.ScopeSignalMode1D(
MDSplus.ScopeGeometry(      MDSplus.ScopeSignal(        MDSplus.ScopeSignalMarker(  MDSplus.ScopeSignalMode2D(

Usage:
Convert between dwscope config file to jScope config file:

>>> MDSplus.Scope.load('plasma.dat', 'plasma.jscp')
@santorofer santorofer self-assigned this Jun 25, 2025
@santorofer santorofer changed the title Feature: Add new Python API for scope configuration convertion Feature: Add new Python API to convert between scopes configuration files Jun 26, 2025
The new Python API code make use of:

1- from typing import Optional: only for Python >= v3.10
2- @DataClass: only for Python version >= 3.7

Therefore, this API needs Python 3.10 or greater.
@santorofer santorofer added api/python Relates to the Python API feature Indicates new feature requests or implementations tool/jScope Relates to the jScope tool tool/dwscope Relates to the dwscope tool labels Jul 25, 2025
Comment on lines -1 to -25
#
# Copyright (c) 2017, Massachusetts Institute of Technology All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are met:
#
# Redistributions of source code must retain the above copyright notice, this
# list of conditions and the following disclaimer.
#
# Redistributions in binary form must reproduce the above copyright notice, this
# list of conditions and the following disclaimer in the documentation and/or
# other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
# OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is there a reason we're removing the license here?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

api/python Relates to the Python API feature Indicates new feature requests or implementations tool/dwscope Relates to the dwscope tool tool/jScope Relates to the jScope tool

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants