Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
@classmethod
def translate_list(cls, val):
"""Translate list to scala Seq"""
escaped = ', '.join([cls.translate(v) for v in val])
return 'Seq({})'.format(escaped)
@classmethod
def comment(cls, cmt_str):
return '// {}'.format(cmt_str).strip()
@classmethod
def assign(cls, name, str_val):
return 'val {} = {}'.format(name, str_val)
class JuliaTranslator(Translator):
@classmethod
def translate_none(cls, val):
return 'nothing'
@classmethod
def translate_dict(cls, val):
escaped = ', '.join(
["{} => {}".format(cls.translate_str(k), cls.translate(v)) for k, v in val.items()]
)
return 'Dict({})'.format(escaped)
@classmethod
def translate_list(cls, val):
escaped = ', '.join([cls.translate(v) for v in val])
return '[{}]'.format(escaped)
@classmethod
def translate_list(cls, val):
"""Translate list to array"""
escaped = ', '.join([cls.translate(v) for v in val])
return 'new [] {{ {} }}'.format(escaped)
@classmethod
def comment(cls, cmt_str):
return '// {}'.format(cmt_str).strip()
@classmethod
def assign(cls, name, str_val):
return 'var {} = {};'.format(name, str_val)
class FSharpTranslator(Translator) :
@classmethod
def translate_none(cls, val) :
return 'None'
@classmethod
def translate_bool(cls, val) :
return 'true' if val else 'false'
@classmethod
def translate_int(cls, val):
strval = cls.translate_raw_str(val)
return strval + "L" if (val > 2147483647 or val < -2147483648) else strval
@classmethod
def translate_dict(cls, val):
escaped = ', '.join([cls.translate(v) for v in val])
return 'list({})'.format(escaped)
@classmethod
def comment(cls, cmt_str):
return '# {}'.format(cmt_str).strip()
@classmethod
def assign(cls, name, str_val):
# Leading '_' aren't legal R variable names -- so we drop them when injecting
while (name.startswith("_")):
name = name[1:]
return '{} = {}'.format(name, str_val)
class ScalaTranslator(Translator):
@classmethod
def translate_int(cls, val):
strval = cls.translate_raw_str(val)
return strval + "L" if (val > 2147483647 or val < -2147483648) else strval
@classmethod
def translate_dict(cls, val):
"""Translate dicts to scala Maps"""
escaped = ', '.join(
["{} -> {}".format(cls.translate_str(k), cls.translate(v)) for k, v in val.items()]
)
return 'Map({})'.format(escaped)
@classmethod
def translate_list(cls, val):
"""Translate list to scala Seq"""
escaped = ', '.join([cls.translate(v) for v in val])
return '{{{}}}'.format(escaped)
@classmethod
def comment(cls, cmt_str):
return '% {}'.format(cmt_str).strip()
@classmethod
def codify(cls, parameters):
content = '{}\n'.format(cls.comment('Parameters'))
for name, val in parameters.items():
content += '{};\n'.format(cls.assign(name, cls.translate(val)))
return content
class CSharpTranslator(Translator) :
@classmethod
def translate_none(cls, val) :
# Can't figure out how to do this as nullable
raise NotImplementedError("Option type not implemented for C#.")
@classmethod
def translate_bool(cls, val) :
return 'true' if val else 'false'
@classmethod
def translate_int(cls, val):
strval = cls.translate_raw_str(val)
return strval + "L" if (val > 2147483647 or val < -2147483648) else strval
@classmethod
def comment(cls, cmt_str):
raise NotImplementedError('comment translation not implemented for {}'.format(cls))
@classmethod
def assign(cls, name, str_val):
return '{} = {}'.format(name, str_val)
@classmethod
def codify(cls, parameters):
content = '{}\n'.format(cls.comment('Parameters'))
for name, val in parameters.items():
content += '{}\n'.format(cls.assign(name, cls.translate(val)))
return content
class PythonTranslator(Translator):
@classmethod
def translate_bool(cls, val):
return cls.translate_raw_str(val)
@classmethod
def translate_dict(cls, val):
escaped = ', '.join(
["{}: {}".format(cls.translate_str(k), cls.translate(v)) for k, v in val.items()]
)
return '{{{}}}'.format(escaped)
@classmethod
def translate_list(cls, val):
escaped = ', '.join([cls.translate(v) for v in val])
return '[{}]'.format(escaped)
escaped = ', '.join(
["{}: {}".format(cls.translate_str(k), cls.translate(v)) for k, v in val.items()]
)
return '{{{}}}'.format(escaped)
@classmethod
def translate_list(cls, val):
escaped = ', '.join([cls.translate(v) for v in val])
return '[{}]'.format(escaped)
@classmethod
def comment(cls, cmt_str):
return '# {}'.format(cmt_str).strip()
class RTranslator(Translator):
@classmethod
def translate_none(cls, val):
return 'NULL'
@classmethod
def translate_bool(cls, val):
return 'TRUE' if val else 'FALSE'
@classmethod
def translate_dict(cls, val):
escaped = ', '.join(
['{} = {}'.format(cls.translate_str(k), cls.translate(v)) for k, v in val.items()]
)
return 'list({})'.format(escaped)
@classmethod
escaped = ', '.join(
["{} => {}".format(cls.translate_str(k), cls.translate(v)) for k, v in val.items()]
)
return 'Dict({})'.format(escaped)
@classmethod
def translate_list(cls, val):
escaped = ', '.join([cls.translate(v) for v in val])
return '[{}]'.format(escaped)
@classmethod
def comment(cls, cmt_str):
return '# {}'.format(cmt_str).strip()
class MatlabTranslator(Translator):
@classmethod
def translate_escaped_str(cls, str_val):
"""Translate a string to an escaped Matlab string"""
if isinstance(str_val, string_types):
str_val = str_val.encode('unicode_escape')
if sys.version_info >= (3, 0):
str_val = str_val.decode('utf-8')
str_val = str_val.replace('"', '""')
return '"{}"'.format(str_val)
@staticmethod
def __translate_char_array(str_val):
"""Translates a string to a Matlab char array"""
if isinstance(str_val, string_types):
str_val = str_val.encode('unicode_escape')
if sys.version_info >= (3, 0):