Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
finesse
pykat
Commits
e634953f
Commit
e634953f
authored
Feb 25, 2014
by
Daniel Brown
Browse files
Changing SIfloat to only convert last character of the string
parent
183a2756
Changes
1
Hide whitespace changes
Inline
Side-by-side
pykat/SIfloat.py
View file @
e634953f
import
os
import
re
import
pykat.exceptions
as
pkex
#staticmethod
__suffix
=
{
'y'
:
'e-24'
,
# yocto
'z'
:
'e-21'
,
# zepto
'a'
:
'e-18'
,
# atto
'f'
:
'e-15'
,
# femto
'p'
:
'e-12'
,
# pico
'n'
:
'e-9'
,
# nano
'u'
:
'e-6'
,
# micro
'm'
:
'e-3'
,
# mili
'c'
:
'e-2'
,
# centi
'd'
:
'e-1'
,
# deci
'k'
:
'e3'
,
# kilo
'M'
:
'e6'
,
# mega
'G'
:
'e9'
,
# giga
'T'
:
'e12'
,
# tera
'P'
:
'e15'
# peta
}
def
SIfloat
(
value
):
if
value
==
None
:
return
value
if
type
(
value
)
==
list
:
return
[
convertToFloat
(
s
)
for
s
in
value
]
else
:
return
convertToFloat
(
value
)
def
convertToFloat
(
value
):
__suffix
=
{
'y'
:
'e-24'
,
# yocto
'z'
:
'e-21'
,
# zepto
'a'
:
'e-18'
,
# atto
'f'
:
'e-15'
,
# femto
'p'
:
'e-12'
,
# pico
'n'
:
'e-9'
,
# nano
'u'
:
'e-6'
,
# micro
'm'
:
'e-3'
,
# mili
'c'
:
'e-2'
,
# centi
'd'
:
'e-1'
,
# deci
'k'
:
'e3'
,
# kilo
'M'
:
'e6'
,
# mega
'G'
:
'e9'
,
# giga
'T'
:
'e12'
,
# tera
'P'
:
'e15'
# peta
}
value
=
str
(
value
)
for
i
,
j
in
__suffix
.
iteritems
():
value
=
value
.
replace
(
i
,
str
(
j
))
try
:
# first just try and convert the value
return
float
(
value
)
except
ValueError
as
ex
:
# Catch any casting exeception
value
=
value
.
strip
()
# only the last value can be an SI scaling letter
last
=
value
[
-
1
]
if
last
in
__suffix
:
# remove last character and append the SI scaling
value
=
value
[
0
:
-
1
]
+
__suffix
[
last
]
else
:
raise
pkex
.
BasePyKatException
(
"Could not convert SI scaling in '{0}' to a float"
.
format
(
value
))
return
float
(
value
)
try
:
return
float
(
value
)
except
ValueError
as
ex
:
raise
pkex
.
BasePyKatException
(
"Unable to convert '{0}' into a float"
.
format
(
value
))
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment