43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
import nazca as nd
|
|
import numpy as np
|
|
|
|
def __cell_arg__(arg,arg_name,func_name):
|
|
if (isinstance(arg,nd.Cell)):
|
|
return arg
|
|
elif (hasattr(arg,'cell')):
|
|
return arg.cell
|
|
else :
|
|
raise Exception("ERROR: In <"+func_name+">, <"+arg_name+"> not a [cell] argument")
|
|
|
|
|
|
def __list_convert__(var,name,func_name):
|
|
if (isinstance(var,str)):
|
|
var = [var]
|
|
elif (isinstance(var,list)):
|
|
var = var
|
|
else : raise Exception("ERROR: in <"+func_name+">, <"+name+"> not defined properly, please input <"+type+"> or <list>")
|
|
|
|
return var
|
|
|
|
def __array_convert__(var,name,func_name,num=1):
|
|
if (isinstance(var,int) or isinstance(var,float)):
|
|
var = var*np.ones(num)
|
|
elif (isinstance(var,list) or isinstance(var,np.ndarray)):
|
|
var = np.array(var)
|
|
else : raise Exception("ERROR: in <"+func_name+">, <"+name+"> not defined properly, please input <"+type+"> or <list> or <np.ndarray>")
|
|
|
|
return var
|
|
|
|
|
|
## Small revision in 2023.1.31
|
|
def __xs_exist__(xs,para_name,func_name):
|
|
if (xs!=None):
|
|
try:
|
|
nd.get_xsection(xs)
|
|
except:
|
|
print("WARNING: In <"+func_name+">, <"+para_name+"> not defined in tapeout")
|
|
|
|
xs=None
|
|
return xs
|
|
else :
|
|
return None |