Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
>>> raised[1] is None
False
"""
result = False
should_raise_bool = True if should_raise else False # help the type inference ...
with nogil:
print("WORKS")
with cython.nogil:
result = True
if should_raise_bool:
raise ValueError("RAISED!")
return result
MyUnion = cython.union(n=cython.int, x=cython.double)
MyStruct = cython.struct(is_integral=cython.bint, data=MyUnion)
MyStruct2 = cython.typedef(MyStruct[2])
def test_struct(n, x):
"""
>>> test_struct(389, 1.64493)
(389, 1.64493)
"""
a = cython.declare(MyStruct2)
a[0] = MyStruct(is_integral=True, data=MyUnion(n=n))
a[1] = MyStruct(is_integral=False, data={'x': x})
return a[0].data.n, a[1].data.x
import cython as cy
from cython import declare, cast, locals, address, typedef, p_void, compiled
from cython import declare as my_declare, locals as my_locals, p_void as my_void_star, typedef as my_typedef, compiled as my_compiled
def func():
# Cython types are evaluated as for cdef declarations
x: cython.int # cdef int x
y: cython.double = 0.57721 # cdef double y = 0.57721
z: cython.float = 0.57721 # cdef float z = 0.57721
# Python types shadow Cython types for compatibility reasons
a: float = 0.54321 # cdef double a = 0.54321
b: int = 5 # cdef object b = 5
c: long = 6 # cdef object c = 6
pass
@cython.locals(other="GVector", l1=cython.double, l2_=cython.double)
def linear_combination(self, other, l1, l2=None):
l2_ = 1 - l1 if l2 is None else l2
v = GVector(self.x * l1 + other.x * l2_,
self.y * l1 + other.y * l2_,
self.z * l1 + other.z * l2_)
return v
@cython.locals(d_valve=cython.double,d_port=cython.double,C_D=cython.double,
h_valve=cython.double,a_valve=cython.double, l_valve=cython.double,
rho_valve=cython.double,E=cython.double,x_stopper=cython.double,
key_up=cython.bytes,key_down=cython.bytes)
def __init__(self, d_valve, d_port, C_D, h_valve, a_valve,
l_valve, rho_valve, E, x_stopper, key_up, key_down):
I=(d_valve*h_valve**3)/12 #Moment of Intertia for discharge valve,[m^4]
k_valve=(6*E*I)/(a_valve**2*(3*l_valve-a_valve)) #Valve stiffness
m_eff=(1/3)*rho_valve*l_valve*d_valve*h_valve #Effective mass of valve reeds
self.E = E
self.rho_valve = rho_valve
self.a_valve = a_valve
self.l_valve = l_valve
self.h_valve = h_valve
self.d_valve = d_valve
self.d_port = d_port
def __cpp_calculate_phi(self, x, t):
cython.declare(xx=cython.double[3])
xx[0] = x[0]
xx[1] = x[1]
xx[2] = x[2]
level = self.WT.mwl + self.WT.eta(xx, t)
return x[self.vert_axis] - level
seg_length=cython.double, start=cython.double, end=cython.double,
t=cython.double)
def transform_point(self, point, trafo=None):
x = (point.x - self.minx) / self.width
y = (point.y - self.miny) / self.height
if trafo is None:
trafo = self.get_random_trafo()
start, end = self.splines[trafo[0]].GetDomain()
length = end - start
seg_length = length / self.num_trafos[trafo[0]]
t = start + seg_length * trafo[1] + seg_length * x
basepoint = self.splines[trafo[0]](t)
if t + 1/50000 > end:
neighbour = self.splines[trafo[0]](t - 1/50000)
derivative = neighbour - basepoint
else:
neighbour = self.splines[trafo[0]](t + 1/50000)
@cy.locals(multiplier=cy.double)
def __init__(self, name, multiplier=1):
Node.__init__(self, name, parent=None, children=None)
self._value = 0
self._price = 0
self._weight = 0
self._position = 0
self.multiplier = multiplier
# opt
self._last_pos = 0
self._issec = True
self._needupdate = True
self._outlay = 0
@cy.locals(delta=cy.double, weight=cy.double, base=cy.double)
def rebalance(self, weight, child, base=np.nan, update=True):
"""
Rebalance a child to a given weight.
This is a helper method to simplify code logic. This method is used
when we want to se the weight of a particular child to a set amount.
It is similar to allocate, but it calculates the appropriate allocation
based on the current weight.
Args:
* weight (float): The target weight. Usually between -1.0 and 1.0.
* child (str): child to allocate to - specified by name.
* base (float): If specified, this is the base amount all weight
delta calculations will be based off of. This is useful when we
determine a set of weights and want to rebalance each child
given these new weights. However, as we iterate through each