Commit 04897b1f authored by Stefan Behnel's avatar Stefan Behnel

merge 0.18.x branch back into master

parents 86a3d9e7 617e50e6
# cython.* namespace for pure mode.
__version__ = "0.18-pre"
__version__ = "0.18b1"
# Shamelessly copied from Cython/minivect/minitypes.py
# BEGIN shameless copy from Cython/minivect/minitypes.py
class _ArrayType(object):
......@@ -26,6 +27,7 @@ class _ArrayType(object):
return "%s[%s]" % (self.dtype, ", ".join(axes))
def index_type(base_type, item):
"""
Support array type creation by slicing, e.g. double[:, :] specifies
......@@ -34,9 +36,12 @@ def index_type(base_type, item):
"""
assert isinstance(item, (tuple, slice))
class InvalidTypeSpecification(Exception):
pass
def verify_slice(s):
if s.start or s.stop or s.step not in (None, 1):
raise minierror.InvalidTypeSpecification(
raise InvalidTypeSpecification(
"Only a step of 1 may be provided to indicate C or "
"Fortran contiguity")
......@@ -45,7 +50,7 @@ def index_type(base_type, item):
for idx, s in enumerate(item):
verify_slice(s)
if s.step and (step_idx or idx not in (0, len(item) - 1)):
raise minierror.InvalidTypeSpecification(
raise InvalidTypeSpecification(
"Step may only be provided once, and only in the "
"first or last dimension.")
......@@ -61,6 +66,7 @@ def index_type(base_type, item):
# END shameless copy
compiled = False
_Unspecified = object()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment