Source code for seamm_util.variable_names

# -*- coding: utf-8 -*-

"""Utility routines to help with variable names for scripts"""

from keyword import iskeyword
import re


[docs] def is_valid(name): """Check if a variable name is valid and is not a keyword""" return name.isidentifier() and not iskeyword(name)
[docs] def clean(raw_name): """Fix up an input string so that it is a valid variable name""" # Remove invalid characters name = re.sub("[^0-9a-zA-Z_]", "_", raw_name) # Check that it is a valid variable name. If not # put an underscore on the front if not is_valid(name): name = "_" + name # should be valid, but check once more if not is_valid(name): raise RuntimeError( "Variable name {} (from {}) is not valid!".format(name, raw_name) ) return name