Skip to content

Commit 24d0586

Browse files
author
Kevin D Smith
committed
Add better type checking for __setitem__ on CASTables
1 parent 30f7676 commit 24d0586

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

swat/cas/table.py

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import copy
2727
import keyword
28+
import numbers
2829
import re
2930
import sys
3031
import uuid
@@ -7473,16 +7474,31 @@ def __setitem__(self, key, value):
74737474
computedvars = [key]
74747475
computedvarsprogram = []
74757476

7476-
if isinstance(value, CASColumn):
7477+
if value is True:
7478+
computedvarsprogram.append('%s = 1; ' % key)
7479+
7480+
elif value is False:
7481+
computedvarsprogram.append('%s = 0; ' % key)
7482+
7483+
elif value is None:
7484+
computedvarsprogram.append('%s = .; ' % key)
7485+
7486+
elif isinstance(value, CASColumn):
74777487
cexpr, cvars, cpgm = value._to_expression()
74787488
computedvarsprogram.append(cpgm)
74797489
computedvarsprogram.append('%s = %s; ' % (key, cexpr))
74807490

74817491
elif isinstance(value, (text_types, binary_types)):
74827492
computedvarsprogram.append('%s = "%s"; ' % (key, _escape_string(value)))
74837493

7494+
elif isinstance(value, numbers.Number):
7495+
if pd.isnull(value):
7496+
computedvarsprogram.append('%s = .; ' % key)
7497+
else:
7498+
computedvarsprogram.append('%s = %s; ' % (key, value))
7499+
74847500
else:
7485-
computedvarsprogram.append('%s = %s; ' % (key, value))
7501+
raise TypeError('Unrecognized type for column: %s' % type(value))
74867502

74877503
self.append_computed_columns(computedvars, computedvarsprogram)
74887504
self.append_columns(key)

0 commit comments

Comments
 (0)