Files
mxpic_forge/mxpic/components/basic.py
T
2026-06-04 23:21:39 +08:00

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