Skip to content

Commit 341c160

Browse files
authored
Merge pull request #25 from PythonScanClient/python3
Python3 Support
2 parents 5f2b341 + fe34d14 commit 341c160

24 files changed

+278
-238
lines changed

Test/test_alignment.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
33
@author: Kay Kasemir
44
"""
5+
from __future__ import print_function
56
import unittest
67
from scan.commands import Set, CommandSequence
78
from scan.alignment import AlignmentScan
@@ -13,7 +14,7 @@ def testBasics(self):
1314
pre=Set("motor_y", 3),
1415
find_command="FindPeak")
1516
cmds = align.createScan()
16-
print CommandSequence(cmds)
17+
print(CommandSequence(cmds))
1718

1819
self.assertEqual(str(cmds), "[Set('Demo:CS:Scan:Fit:Height', 0), Set('motor_y', 3), Loop('motor_x', 0, 10, 0.5, [ Delay(0.5), Log('signal', 'motor_x'), Script('WriteDataToPV', 'motor_x', 'Demo:CS:Scan:Fit:Data:X'), Script('WriteDataToPV', 'signal', 'Demo:CS:Scan:Fit:Data:Y', '-', '1') ]), Script('FindPeak', 'motor_x', 'signal', '-', '1', 'Demo:CS:Scan:Fit:Pos', 'Demo:CS:Scan:Fit:Height', 'Demo:CS:Scan:Fit:Width')]")
1920

Test/test_commands.py

Lines changed: 91 additions & 91 deletions
Large diffs are not rendered by default.

Test/test_data.py

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import print_function
12
from scan.client.logdata import iterateSamples, getDatetime, parseXMLData, createTable
23

34
# client = ScanClient()
@@ -101,19 +102,19 @@
101102

102103
# client.getData(id) calls this to turn the XML data into a data dict:
103104
data = parseXMLData(xml_text)
104-
print data
105+
print(data)
105106

106107
# Direct access to data dict
107-
print "Times: ", [ str(getDatetime(time)) for time in data['motor_x']['time'] ]
108-
print "Values: ", data['motor_x']['value']
108+
print("Times: ", [ str(getDatetime(time)) for time in data['motor_x']['time'] ])
109+
print("Values: ", data['motor_x']['value'])
109110

110111
# Demo of sample iterator
111112
for s in iterateSamples(data, 'motor_x'):
112-
print "%s (%2d): %s" % (str(getDatetime(s[1])), s[0], str(s[2]))
113+
print("%s (%2d): %s" % (str(getDatetime(s[1])), s[0], str(s[2])))
113114

114115
# Create table, i.e. align samples for different devices by sample ID:
115116
table = createTable(data, 'motor_x', 'motor_y')
116-
print table[0]
117-
print table[1]
117+
print(table[0])
118+
print(table[1])
118119

119120
# With numpy/scipy: plot(table[0], table[1]) etc.

Test/test_ndim.txt

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
>>> from __future__ import print_function
12
>>> from scan import *
23

34
>>> class MyScanSettings(ScanSettings):
@@ -7,7 +8,7 @@
78
...
89
>>> setScanSettings(MyScanSettings())
910

10-
>>> print CommandSequence(createNDimScan(('xpos', 1, 10)))
11+
>>> print(CommandSequence(createNDimScan(('xpos', 1, 10))))
1112
[
1213
Loop('xpos', 1, 10, 1,
1314
[
@@ -17,16 +18,16 @@
1718
>>>
1819

1920

20-
>>> print CommandSequence(createNDimScan(('xpos', 1, 10), 'readback'))
21+
>>> print(CommandSequence(createNDimScan(('xpos', 1, 10), 'readback')))
2122
[
2223
Loop('xpos', 1, 10, 1,
2324
[
2425
Log('xpos', 'readback')
2526
], completion=True)
2627
]
2728

28-
>>> print CommandSequence(createNDimScan(('xpos', 1, 10),
29-
... ('ypos', 1, 5, 0.2), 'readback'))
29+
>>> print(CommandSequence(createNDimScan(('xpos', 1, 10),
30+
... ('ypos', 1, 5, 0.2), 'readback')))
3031
[
3132
Loop('xpos', 1, 10, 1,
3233
[
@@ -37,10 +38,10 @@
3738
], completion=True)
3839
]
3940

40-
>>> print CommandSequence(createNDimScan(
41+
>>> print(CommandSequence(createNDimScan(
4142
... ('xpos', 1, 10),
4243
... ('ypos', 1, 5, 0.2),
43-
... Set('xyz', 1), Set('xyz', 0)))
44+
... Set('xyz', 1), Set('xyz', 0))))
4445
[
4546
Loop('xpos', 1, 10, 1,
4647
[

Test/test_range_helper.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
44
@author: Kay Kasemir
55
"""
6+
from __future__ import print_function
67
from scan.table.range_helper import getRangeOrLoop, range_matcher, loop_matcher, getIterable, expandRanges
78
import unittest
89

@@ -68,26 +69,26 @@ def test_expand(self):
6869
# One range stepping down
6970
[ "Line 4", "range(2)", "Seconds", "range(2,0,-1)" ],
7071
]
71-
print "Original:"
72+
print("Original:")
7273
for row in rows:
73-
print row
74-
print "Expanded:"
74+
print(row)
75+
print("Expanded:")
7576
result = expandRanges(rows)
7677
for row in result:
77-
print row
78+
print(row)
7879
self.assertEqual(len(result), 14)
7980

8081
# List, tuple
8182
rows = [
8283
[ "( 2, 4)", "[ 0, 90, 180]", "Seconds" ],
8384
]
84-
print "Original:"
85+
print("Original:")
8586
for row in rows:
86-
print row
87-
print "Expanded:"
87+
print(row)
88+
print("Expanded:")
8889
result = expandRanges(rows)
8990
for row in result:
90-
print row
91+
print(row)
9192
self.assertEqual(len(result), 6)
9293

9394

@@ -98,13 +99,13 @@ def test_expand(self):
9899
[ "Jane", "[2]", "Seconds" ],
99100
[ "Nop2", "range(2, 0, 2)", "Seconds" ],
100101
]
101-
print "Original:"
102+
print("Original:")
102103
for row in rows:
103-
print row
104-
print "Expanded:"
104+
print(row)
105+
print("Expanded:")
105106
result = expandRanges(rows)
106107
for row in result:
107-
print row
108+
print(row)
108109
self.assertEqual(len(result), 4)
109110

110111

Test/test_scan_settings.py

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
44
@author: Kay Kasemir
55
"""
6+
from __future__ import print_function
67
import unittest
78
from scan.commands.delay import Delay
89
from scan.util.scan_settings import DeviceSettings, ScanSettings, setScanSettings, SettingsBasedSet, SettingsBasedLoop, SettingsBasedWait
@@ -32,17 +33,17 @@ def getReadbackName(self, device_name):
3233
class DeviceSettingsTest(unittest.TestCase):
3334
def testDefaultSettings(self):
3435
s = DeviceSettings("device", readback=False)
35-
print s
36+
print(s)
3637
self.assertEquals(s.getName(), "device")
3738
self.assertEquals(s.getReadback(), None)
3839

3940
s = DeviceSettings("device", readback=True)
40-
print s
41+
print(s)
4142
self.assertEquals(s.getName(), "device")
4243
self.assertEquals(s.getReadback(), "device")
4344

4445
s = DeviceSettings("device", readback="other")
45-
print s
46+
print(s)
4647
self.assertEquals(s.getName(), "device")
4748
self.assertEquals(s.getReadback(), "other")
4849

@@ -51,7 +52,7 @@ def testCustomSettings(self):
5152

5253
# Device that has no specific settings, using the default
5354
s = settings.getDefaultSettings("SomeRandomDevice")
54-
print s
55+
print(s)
5556
self.assertEquals(s.getName(), "SomeRandomDevice")
5657
self.assertEquals(s.getCompletion(), False)
5758
self.assertEquals(s.getReadback(), "SomeRandomDevice")
@@ -60,7 +61,7 @@ def testCustomSettings(self):
6061

6162
# Check device that should have special settings
6263
s = settings.getDefaultSettings("My:Lakeshore1")
63-
print s
64+
print(s)
6465
self.assertEquals(s.getName(), "My:Lakeshore1")
6566
self.assertEquals(s.getCompletion(), True)
6667
self.assertEquals(s.getReadback(), None)
@@ -69,14 +70,14 @@ def testCustomSettings(self):
6970

7071
# Check device that should NOT have them
7172
s = settings.getDefaultSettings("Your:Lakeshore1")
72-
print s
73+
print(s)
7374
self.assertEquals(s.getName(), "Your:Lakeshore1")
7475
self.assertEquals(s.getCompletion(), False)
7576
self.assertEquals(s.getReadback(), "Your:Lakeshore1")
7677

7778
# 'Motor' that uses *.RBV for a readback
7879
s = settings.getDefaultSettings("My:Motor:47")
79-
print s
80+
print(s)
8081
self.assertEquals(s.getName(), "My:Motor:47")
8182
self.assertEquals(s.getCompletion(), True)
8283
self.assertEquals(s.getReadback(), "My:Motor:47.RBV")
@@ -85,11 +86,11 @@ def testCustomSettings(self):
8586

8687
# Different comparisons
8788
s = settings.getDefaultSettings("SomeCounter")
88-
print s
89+
print(s)
8990
self.assertEquals(s.getComparison(), '>=')
9091

9192
s = settings.getDefaultSettings("PerpetualCounter")
92-
print s
93+
print(s)
9394
self.assertEquals(s.getComparison(), 'increase by')
9495

9596

@@ -98,7 +99,7 @@ def testDeviceModifiers(self):
9899

99100
spec = "My:Lakeshore1"
100101
s = settings.parseDeviceSettings(spec)
101-
print "%s -> %s" % (spec, s)
102+
print("%s -> %s" % (spec, s))
102103
self.assertEquals(s.getName(), "My:Lakeshore1")
103104
self.assertEquals(s.getCompletion(), True)
104105
self.assertEquals(s.getReadback(), None)
@@ -111,29 +112,29 @@ def testDeviceModifiers(self):
111112

112113
spec = "-c My:Lakeshore1"
113114
s = settings.parseDeviceSettings(spec)
114-
print "%s -> %s" % (spec, s)
115+
print("%s -> %s" % (spec, s))
115116
self.assertEquals(s.getName(), "My:Lakeshore1")
116117
self.assertEquals(s.getCompletion(), False)
117118
self.assertEquals(s.getReadback(), None)
118119

119120
spec = "+p-c+r My:Lakeshore1"
120121
s = settings.parseDeviceSettings(spec)
121-
print "%s -> %s" % (spec, s)
122+
print("%s -> %s" % (spec, s))
122123
self.assertEquals(s.getName(), "My:Lakeshore1")
123124
self.assertEquals(s.getCompletion(), False)
124125
self.assertEquals(s.getReadback(), "My:Lakeshore1")
125126
self.assertEquals(s.getParallel(), True)
126127

127128
spec = "+pr My:Lakeshore1"
128129
s = settings.parseDeviceSettings(spec)
129-
print "%s -> %s" % (spec, s)
130+
print("%s -> %s" % (spec, s))
130131
self.assertEquals(s.getName(), "My:Lakeshore1")
131132
self.assertEquals(s.getReadback(), "My:Lakeshore1")
132133
self.assertEquals(s.getParallel(), True)
133134

134135
spec = "+p-cr My:Motor:47"
135136
s = settings.parseDeviceSettings(spec)
136-
print "%s -> %s" % (spec, s)
137+
print("%s -> %s" % (spec, s))
137138
self.assertEquals(s.getName(), "My:Motor:47")
138139
self.assertEquals(s.getCompletion(), False)
139140
self.assertEquals(s.getReadback(), None)

Test/test_spreadsheet.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import print_function
12
import unittest
23
import os
34
from scan.util.spreadsheet import readSpreadsheet, writeSpreadsheet
@@ -11,7 +12,7 @@ def testSpreadsheet(self):
1112
writeSpreadsheet(filename, table)
1213

1314
table2 = readSpreadsheet(filename)
14-
print table2
15+
print(table2)
1516
self.assertEqual(table, table2)
1617

1718
os.remove(filename)
@@ -23,7 +24,7 @@ def testTableScan(self):
2324
table.save(filename)
2425

2526
table2 = loadTableScan(filename)
26-
print table
27+
print(table)
2728
self.assertEqual(table.headers, table2.headers)
2829
self.assertEqual(table.rows, table2.rows)
2930

Test/test_standalone.sh

Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,54 @@
11
# Execute all tests that can run without any dependencies
2+
DIRNAME=`dirname "$0"`
3+
4+
PYTHON="${PYTHON:-python}"
25

36
export PYTHONPATH=".."
47

58
FAILED=0
6-
python test_range_helper.py
9+
$PYTHON "$DIRNAME/test_range_helper.py"
10+
if [ $? -ne 0 ]
11+
then
12+
FAILED=`expr $FAILED + 1`
13+
fi
14+
15+
$PYTHON "$DIRNAME/test_scan_settings.py"
16+
if [ $? -ne 0 ]
17+
then
18+
FAILED=`expr $FAILED + 1`
19+
fi
20+
21+
$PYTHON "$DIRNAME/test_commands.py"
722
if [ $? -ne 0 ]
823
then
924
FAILED=`expr $FAILED + 1`
1025
fi
1126

12-
python test_scan_settings.py
27+
$PYTHON "$DIRNAME/test_table_scan.py"
1328
if [ $? -ne 0 ]
1429
then
1530
FAILED=`expr $FAILED + 1`
1631
fi
1732

18-
python test_commands.py
33+
$PYTHON "$DIRNAME/test_data.py"
1934
if [ $? -ne 0 ]
2035
then
2136
FAILED=`expr $FAILED + 1`
2237
fi
2338

24-
python test_table_scan.py
39+
$PYTHON -m doctest "$DIRNAME/test_ndim.txt"
2540
if [ $? -ne 0 ]
2641
then
2742
FAILED=`expr $FAILED + 1`
2843
fi
2944

30-
python test_data.py
45+
$PYTHON -m doctest "$DIRNAME/test_alignment.py"
3146
if [ $? -ne 0 ]
3247
then
3348
FAILED=`expr $FAILED + 1`
3449
fi
3550

36-
python -m doctest test_ndim.txt
51+
$PYTHON -m doctest "$DIRNAME/test_spreadsheet.py"
3752
if [ $? -ne 0 ]
3853
then
3954
FAILED=`expr $FAILED + 1`

0 commit comments

Comments
 (0)