<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language>
<!-- Python syntax highlightning v0.9 by Per Wigren -->
<!-- Python syntax highlighting v1.9 by Michael Bueker (improved keyword differentiation) -->
<!-- Python syntax highlighting v1.97 by Paul Giannaros -->
<!-- Pyrex syntax highlighting v0.1 by Matthew Marshall -->
<!-- Cython syntax highlighting v1.0 by Martin Gysel -->
<!-- Cython syntax highlighting v2.0 by Sturla Molden -->

<!--

Disclaimer: IANAL. This file is a derivative work of KDE's Python
syntax file. KDE does not specify a license for the syntax file python.xml
in it's katepart component. However, katepart and KATE as a whole is
released with LGPL v2. Assuing python.xml is LGPL'd, this file is hereby
released with the same license. Note that this only applies to this XML
file. It does not apply to any work written using this file to highlighting
syntax. Any changes  you make to this file will be covered by the LGPL,
but it does not to my knowledge taint your source code. At least not
any more than using KDE would do. Sturla Molden

Thus:

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Library General Public License for more details.

You should have received a copy of the GNU Library General Public
License along with this library; if not, write to the
Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
Boston, MA  02110-1301, USA.



-->

<language name="Cython with NumPy" version="1.1" kateversion="2.4" section="Sources" extensions="*.pyx;*.pxi;*.pxd" mimetype="application/x-cython;text/x-cython" casesensitive="1" author="Sturla Molden" license="LGPL">
	<highlighting>
        <list name="as">
            <item> as </item>
        </list>
       	<list name="imports">
			<item> cimport </item>
            <item> import </item>
            <item> from </item>
            <item> as </item>
        </list>
        <list name="prep">
            <item> DEF </item>
            <item> IF </item>
            <item> ELIF </item>
            <item> ELSE </item>
            <item> include </item>
        </list>
        <list name="defs">
            <item> class </item>
			<item> cpdef </item>
            <item> def </item>
        </list>
        <list name="cdef">
            <item> cdef </item>
            <item> ctypedef </item>
        </list>
        <list name="keyw" >
			<item> extern </item>
            <item> api </item>
			<item> del </item>
			<item> global </item>
			<item> property </item>
            <item> nogil </item>
			<item> gil </item>
            <item> inline </item>
		</list>
        <list name="access">
            <item> readonly </item>
            <item> public </item>
        </list>
		<list name="operators">
			<item> and </item>
			<item> assert </item>
			<item> in </item>
			<item> is </item>
            <item> by </item>
			<item> not </item>
			<item> or </item>
            <item> sizeof </item>
		</list>
		<list name="commands">
			<!-- <item> exec </item> -->
			<item> print </item>
		</list>
		<list name="flow">
			<item> break </item>
			<item> continue </item>
			<item> elif </item>
			<item> else </item>
			<item> except </item>
			<item> finally </item>
			<item> for </item>
			<item> if </item>
			<item> pass </item>
			<item> raise </item>
			<item> return </item>
			<item> try </item>
			<item> while </item>
			<item> with </item>
            <!-- <item> yield </item> -->
		</list>
		<list name="builtinfuncs">
			<item> __import__ </item>
			<item> abs </item>
			<item> all </item>
			<item> any </item>
			<item> apply </item>
			<item> basestring </item>
			<item> buffer </item>
			<item> callable </item>
			<item> chr </item>
			<item> classmethod </item>
			<item> cmp </item>
			<item> coerce </item>
			<item> compile </item>
			<item> delattr </item>
			<item> dir </item>
			<item> divmod </item>
			<item> enumerate </item>
			<item> eval </item>
			<item> execfile </item>
			<item> filter </item>
			<item> getattr </item>
			<!-- <item> globals </item> -->
			<item> hasattr </item>
			<item> hash </item>
			<item> hex </item>
			<item> id </item>
			<item> input </item>
			<item> intern </item>
			<item> isinstance </item>
			<item> issubclass </item>
			<item> iter </item>
			<item> len </item>
			<!-- <item> locals </item> -->
			<item> map </item>
			<item> max </item>
			<item> min </item>
			<item> oct </item>
			<item> open </item>
			<item> ord </item>
			<item> pow </item>
			<!-- <item> property </item> -->
			<item> range </item>
			<item> raw_input </item>
			<item> reduce </item>
			<item> reload </item>
			<item> repr </item>
			<item> reversed </item>
			<item> round </item>
			<item> setattr </item>
			<item> sorted </item>
			<item> staticmethod </item>
			<item> sum </item>
			<item> super </item>
			<item> type </item>
			<item> unichr </item>
			<item> unicode </item>
			<!-- <item> vars </item> -->
			<item> xrange </item>
			<item> zip </item>
  		</list>
		<list name="ctypes">
            <!-- native types -->
			<item> unsigned </item>
			<item> void </item>
			<item> enum </item>
            <item> double </item>
			<item> long </item>
			<item> short </item>
			<item> char </item>
			<item> Py_ssize_t </item>
            <item> Py_intptr_t </item>
            <item> Py_buffer </item>
            <item> bint </item>
            <item> struct </item>
            <item> union </item>
            <item> enum </item>
            <!-- python types -->
        </list>
        <list name="pytypes">
            <item> int </item>
            <item> float </item>
            <item> object </item>
            <item> list </item>
            <item> tuple </item>
            <item> str </item>
            <item> dict </item>
            <item> set </item>
            <item> frozenset </item>
            <item> slice </item>
            <item> bool </item>
            <item> complex </item>
            <item> file </item>
            <!-- numpy types -->
        </list>
        <list name="numpyselector">
            <item> np </item>
            <item> numpy </item>
        </list>
        <list name="numpymodule">
            <item> numpy </item>
        </list>
        <list name="cythonmodule">
            <item> cython </item>
        </list>
        <list name="numpytypes">
            <item>  dtype </item>
            <item>  flatiter </item>
            <item>  broadcast </item>
            <item>  ndarray </item>
            <item>  int8_t </item>
            <item>  int16_t </item>
            <item>  int32_t </item>
            <item>  int64_t </item>
            <item>  uint8_t </item>
            <item>  uint16_t </item>
            <item>  uint32_t </item>
            <item>  uint64_t </item>
            <item>  float32_t </item>
            <item>  float64_t </item>
            <item>  complex64_t </item>
            <item>  complex128_t </item>
            <item>  int_t </item>
            <item>  long_t </item>
            <item>  uint_t </item>
            <item>  ulong_t </item>
            <item>  float_t </item>
            <item>  double_t </item>
            <item>  longdouble_t </item>
            <item>  cfloat_t </item>
            <item>  cdouble_t </item>
            <item>  clongdouble_t </item>
            <item>  complex_t </item>
            <item>  npy_int8 </item>
            <item>  npy_int16 </item>
            <item>  npy_int32 </item>
            <item>  npy_int64 </item>
            <item>  npy_int96 </item>
            <item>  npy_int128 </item>
            <item>  npy_uint8 </item>
            <item>  npy_uint16 </item>
            <item>  npy_uint32 </item>
            <item>  npy_uint64 </item>
            <item>  npy_uint96 </item>
            <item>  npy_uint128 </item>
            <item>  npy_float32 </item>
            <item>  npy_float64 </item>
            <item>  npy_float80 </item>
            <item>  npy_float96 </item>
            <item>  npy_float128 </item>
            <item>  npy_complex64 </item>
            <item>  npy_complex128 </item>
            <item>  npy_complex120 </item>
            <item>  npy_complex192 </item>
            <item>  npy_complex256 </item>
            <item>  npy_cfloat </item>
            <item>  npy_cdouble </item>
            <item>  npy_clongdouble </item>
            <item>  npy_bool </item>
            <item>  npy_byte </item>
            <item>  npy_short </item>
            <item>  npy_int </item>
            <item>  npy_long </item>
            <item>  npy_longlong </item>
            <item>  npy_ubyte </item>
            <item>  npy_ushort </item>
            <item>  npy_uint </item>
            <item>  npy_ulong </item>
            <item>  npy_ulonglong </item>
            <item>  npy_float </item>
            <item>  npy_double </item>
            <item>  npy_longdouble </item>
            <item>  npy_intp </item>
   		</list>
        <list name="numpyfuncs">
            <item> DataSource </item>
            <item> MachAr </item>
            <item> PackageLoader </item>
            <item> RankWarning </item>
            <item> Tester </item>
            <item> abs </item>
            <item> absolute </item>
            <item> add </item>
            <item> add_docstring </item>
            <item> add_newdoc </item>
            <item> alen </item>
            <item> all </item>
            <item> allclose </item>
            <item> alltrue </item>
            <item> alterdot </item>
            <item> amax </item>
            <item> amin </item>
            <item> angle </item>
            <item> any </item>
            <item> append </item>
            <item> apply_along_axis </item>
            <item> apply_over_axes </item>
            <item> arange </item>
            <item> arccos </item>
            <item> arccosh </item>
            <item> arcsin </item>
            <item> arcsinh </item>
            <item> arctan </item>
            <item> arctan2 </item>
            <item> arctanh </item>
            <item> argmax </item>
            <item> argmin </item>
            <item> argsort </item>
            <item> argwhere </item>
            <item> around </item>
            <item> array </item>
            <item> array2string </item>
            <item> array_equal </item>
            <item> array_equiv </item>
            <item> array_repr </item>
            <item> array_split </item>
            <item> array_str </item>
            <item> asanyarray </item>
            <item> asarray </item>
            <item> asarray_chkfinite </item>
            <item> ascontiguousarray </item>
            <item> asfarray </item>
            <item> asfortranarray </item>
            <item> asmatrix </item>
            <item> asscalar </item>
            <item> atleast_1d </item>
            <item> atleast_2d </item>
            <item> atleast_3d </item>
            <item> average </item>
            <item> bartlett </item>
            <item> base_repr </item>
            <item> bench </item>
            <item> binary_repr </item>
            <item> bincount </item>
            <item> bitwise_and </item>
            <item> bitwise_not </item>
            <item> bitwise_or </item>
            <item> bitwise_xor </item>
            <item> blackman </item>
            <item> bmat </item>
            <item> bool </item>
            <item> bool8 </item>
            <item> bool_ </item>
            <item> broadcast </item>
            <item> broadcast_arrays </item>
            <item> byte </item>
            <item> byte_bounds </item>
            <item> can_cast </item>
            <item> cdouble </item>
            <item> ceil </item>
            <item> cfloat </item>
            <item> character </item>
            <item> chararray </item>
            <item> choose </item>
            <item> clip </item>
            <item> clongdouble </item>
            <item> clongfloat </item>
            <item> column_stack </item>
            <item> common_type </item>
            <item> compare_chararrays </item>
            <item> complex </item>
            <item> complex128 </item>
            <item> complex192 </item>
            <item> complex64 </item>
            <item> complex_ </item>
            <item> complexfloating </item>
            <item> compress </item>
            <item> concatenate </item>
            <item> conj </item>
            <item> conjugate </item>
            <item> convolve </item>
            <item> copy </item>
            <item> corrcoef </item>
            <item> correlate </item>
            <item> cos </item>
            <item> cosh </item>
            <item> cov </item>
            <item> cross </item>
            <item> csingle </item>
            <item> cumprod </item>
            <item> cumproduct </item>
            <item> cumsum </item>
            <item> deg2rad </item>
            <item> degrees </item>
            <item> delete </item>
            <item> deprecate </item>
            <item> deprecate_with_doc </item>
            <item> diag </item>
            <item> diagflat </item>
            <item> diagonal </item>
            <item> diff </item>
            <item> digitize </item>
            <item> disp </item>
            <item> divide </item>
            <item> dot </item>
            <item> double </item>
            <item> dsplit </item>
            <item> dstack </item>
            <item> dtype </item>
            <item> ediff1d </item>
            <item> empty </item>
            <item> empty_like </item>
            <item> equal </item>
            <item> errstate </item>
            <item> exp </item>
            <item> exp2 </item>
            <item> expand_dims </item>
            <item> expm1 </item>
            <item> extract </item>
            <item> eye </item>
            <item> fabs </item>
            <item> fastCopyAndTranspose </item>
            <item> find_common_type </item>
            <item> finfo </item>
            <item> fix </item>
            <item> flatiter </item>
            <item> flatnonzero </item>
            <item> flexible </item>
            <item> fliplr </item>
            <item> flipud </item>
            <item> float </item>
            <item> float32 </item>
            <item> float64 </item>
            <item> float96 </item>
            <item> float_ </item>
            <item> floating </item>
            <item> floor </item>
            <item> floor_divide </item>
            <item> fmax </item>
            <item> fmin </item>
            <item> fmod </item>
            <item> frexp </item>
            <item> frombuffer </item>
            <item> fromfile </item>
            <item> fromfunction </item>
            <item> fromiter </item>
            <item> frompyfunc </item>
            <item> fromregex </item>
            <item> fromstring </item>
            <item> fv </item>
            <item> generic </item>
            <item> genfromtxt </item>
            <item> get_array_wrap </item>
            <item> get_include </item>
            <item> get_numarray_include </item>
            <item> get_numpy_include </item>
            <item> get_printoptions </item>
            <item> getbuffer </item>
            <item> getbufsize </item>
            <item> geterr </item>
            <item> geterrcall </item>
            <item> geterrobj </item>
            <item> gradient </item>
            <item> greater </item>
            <item> greater_equal </item>
            <item> hamming </item>
            <item> hanning </item>
            <item> histogram </item>
            <item> histogram2d </item>
            <item> histogramdd </item>
            <item> hsplit </item>
            <item> hstack </item>
            <item> hypot </item>
            <item> i0 </item>
            <item> identity </item>
            <item> imag </item>
            <item> indices </item>
            <item> inexact </item>
            <item> info </item>
            <item> inner </item>
            <item> insert </item>
            <item> int </item>
            <item> int0 </item>
            <item> int16 </item>
            <item> int32 </item>
            <item> int64 </item>
            <item> int8 </item>
            <item> int_ </item>
            <item> int_asbuffer </item>
            <item> intc </item>
            <item> integer </item>
            <item> interp </item>
            <item> intersect1d </item>
            <item> intersect1d_nu </item>
            <item> intp </item>
            <item> invert </item>
            <item> ipmt </item>
            <item> irr </item>
            <item> iscomplex </item>
            <item> iscomplexobj </item>
            <item> isfinite </item>
            <item> isfortran </item>
            <item> isinf </item>
            <item> isnan </item>
            <item> isneginf </item>
            <item> isposinf </item>
            <item> isreal </item>
            <item> isrealobj </item>
            <item> isscalar </item>
            <item> issctype </item>
            <item> issubclass_ </item>
            <item> issubdtype </item>
            <item> issubsctype </item>
            <item> iterable </item>
            <item> ix_ </item>
            <item> kaiser </item>
            <item> kron </item>
            <item> ldexp </item>
            <item> left_shift </item>
            <item> less </item>
            <item> less_equal </item>
            <item> lexsort </item>
            <item> linspace </item>
            <item> load </item>
            <item> loads </item>
            <item> loadtxt </item>
            <item> log </item>
            <item> log10 </item>
            <item> log1p </item>
            <item> log2 </item>
            <item> logaddexp </item>
            <item> logaddexp2 </item>
            <item> logical_and </item>
            <item> logical_not </item>
            <item> logical_or </item>
            <item> logical_xor </item>
            <item> logspace </item>
            <item> long </item>
            <item> longcomplex </item>
            <item> longdouble </item>
            <item> longfloat </item>
            <item> longlong </item>
            <item> lookfor </item>
            <item> mafromtxt </item>
            <item> mat </item>
            <item> matrix </item>
            <item> max </item>
            <item> maximum </item>
            <item> maximum_sctype </item>
            <item> may_share_memory </item>
            <item> mean </item>
            <item> median </item>
            <item> memmap </item>
            <item> meshgrid </item>
            <item> min </item>
            <item> minimum </item>
            <item> mintypecode </item>
            <item> mirr </item>
            <item> mod </item>
            <item> modf </item>
            <item> msort </item>
            <item> multiply </item>
            <item> nan_to_num </item>
            <item> nanargmax </item>
            <item> nanargmin </item>
            <item> nanmax </item>
            <item> nanmin </item>
            <item> nansum </item>
            <item> ndarray </item>
            <item> ndenumerate </item>
            <item> ndfromtxt </item>
            <item> ndim </item>
            <item> ndindex </item>
            <item> negative </item>
            <item> newbuffer </item>
            <item> nonzero </item>
            <item> not_equal </item>
            <item> nper </item>
            <item> npv </item>
            <item> number </item>
            <item> obj2sctype </item>
            <item> object </item>
            <item> object0 </item>
            <item> object_ </item>
            <item> ones </item>
            <item> ones_like </item>
            <item> outer </item>
            <item> packbits </item>
            <item> piecewise </item>
            <item> pkgload </item>
            <item> place </item>
            <item> pmt </item>
            <item> poly </item>
            <item> poly1d </item>
            <item> polyadd </item>
            <item> polyder </item>
            <item> polydiv </item>
            <item> polyfit </item>
            <item> polyint </item>
            <item> polymul </item>
            <item> polysub </item>
            <item> polyval </item>
            <item> power </item>
            <item> ppmt </item>
            <item> prod </item>
            <item> product </item>
            <item> ptp </item>
            <item> put </item>
            <item> putmask </item>
            <item> pv </item>
            <item> rad2deg </item>
            <item> radians </item>
            <item> rank </item>
            <item> rate </item>
            <item> ravel </item>
            <item> real </item>
            <item> real_if_close </item>
            <item> recarray </item>
            <item> recfromcsv </item>
            <item> recfromtxt </item>
            <item> reciprocal </item>
            <item> record </item>
            <item> remainder </item>
            <item> repeat </item>
            <item> require </item>
            <item> reshape </item>
            <item> resize </item>
            <item> restoredot </item>
            <item> right_shift </item>
            <item> rint </item>
            <item> roll </item>
            <item> rollaxis </item>
            <item> roots </item>
            <item> rot90 </item>
            <item> round </item>
            <item> round_ </item>
            <item> row_stack </item>
            <item> safe_eval </item>
            <item> save </item>
            <item> savetxt </item>
            <item> savez </item>
            <item> sctype2char </item>
            <item> searchsorted </item>
            <item> select </item>
            <item> set_numeric_ops </item>
            <item> set_printoptions </item>
            <item> set_string_function </item>
            <item> setbufsize </item>
            <item> setdiff1d </item>
            <item> seterr </item>
            <item> seterrcall </item>
            <item> seterrobj </item>
            <item> setmember1d </item>
            <item> setxor1d </item>
            <item> shape </item>
            <item> short </item>
            <item> show_config </item>
            <item> sign </item>
            <item> signbit </item>
            <item> signedinteger </item>
            <item> sin </item>
            <item> sinc </item>
            <item> single </item>
            <item> singlecomplex </item>
            <item> sinh </item>
            <item> size </item>
            <item> sometrue </item>
            <item> sort </item>
            <item> sort_complex </item>
            <item> source </item>
            <item> split </item>
            <item> sqrt </item>
            <item> square </item>
            <item> squeeze </item>
            <item> std </item>
            <item> str </item>
            <item> str_ </item>
            <item> string0 </item>
            <item> string_ </item>
            <item> subtract </item>
            <item> sum </item>
            <item> swapaxes </item>
            <item> take </item>
            <item> tan </item>
            <item> tanh </item>
            <item> tensordot </item>
            <item> test </item>
            <item> tile </item>
            <item> trace </item>
            <item> transpose </item>
            <item> trapz </item>
            <item> tri </item>
            <item> tril </item>
            <item> trim_zeros </item>
            <item> triu </item>
            <item> true_divide </item>
            <item> trunc </item>
            <item> typename </item>
            <item> ubyte </item>
            <item> ufunc </item>
            <item> uint </item>
            <item> uint0 </item>
            <item> uint16 </item>
            <item> uint32 </item>
            <item> uint64 </item>
            <item> uint8 </item>
            <item> uintc </item>
            <item> uintp </item>
            <item> ulonglong </item>
            <item> unicode </item>
            <item> unicode0 </item>
            <item> unicode_ </item>
            <item> union1d </item>
            <item> unique </item>
            <item> unique1d </item>
            <item> unpackbits </item>
            <item> unravel_index </item>
            <item> unsignedinteger </item>
            <item> unwrap </item>
            <item> ushort </item>
            <item> vander </item>
            <item> var </item>
            <item> vdot </item>
            <item> vectorize </item>
            <item> void </item>
            <item> void0 </item>
            <item> vsplit </item>
            <item> vstack </item>
            <item> where </item>
            <item> who </item>
            <item> zeros </item>
            <item> zeros_like </item>
        </list>
        <list name="specialvars">
            <item> __future__ </item>
            <item> __import__ </item>
            <item> __name__ </item>
            <item> __cythonbufferdefaults__ </item>
            <item> __weakref__ </item>
			<item> None </item>
			<item> self </item>
			<item> True </item>
			<item> False </item>
			<item> NotImplemented </item>
			<item> Ellipsis </item>
			<item> NULL </item>
		</list>
        <list name="overloaders">
            <item>__new__</item>
            <item>__init__</item>
            <item> __cinit__ </item>
            <item> __dealloc__ </item>
            <item> __cmp__ </item>
            <item> __richcmp__ </item>
            <item> __str__ </item>
            <item> __repr__ </item>
            <item> __hash__ </item>
            <item> __call__ </item>
            <item> __iter__ </item>
            <item> __getattr__ </item>
            <item> __setattr__ </item>
            <item> __delattr__ </item>
            <item> __add__ </item>
            <item> __sub__ </item>
            <item> __mul__ </item>
            <item> __div__ </item>
            <item> __floordiv__ </item>
            <item> __truediv__ </item>
            <item> __mod__ </item>
            <item> __divmod__ </item>
            <item> __pow__ </item>
            <item> __neg__ </item>
            <item> __pos__ </item>
            <item> __abs__ </item>
            <item> __nonzero__ </item>
            <item> __invert__ </item>
            <item> __lshift__ </item>
            <item> __rshift__ </item>
            <item> __and__ </item>
            <item> __or__ </item>
            <item> __xor__ </item>
            <item> __int__ </item>
            <item> __long__ </item>
            <item> __float__ </item>
            <item> __oct__ </item>
            <item> __hex__ </item>
            <item> __index__ </item>
            <item> __iadd__ </item>
            <item> __isub__ </item>
            <item> __imul__ </item>
            <item> __idiv__ </item>
            <item> __ifloordiv__ </item>
            <item> __itruediv__ </item>
            <item> __imod__ </item>
            <item> __ipow__ </item>
            <item> __ilshift__ </item>
            <item> __irshift__ </item>
            <item> __iand__ </item>
            <item> __ior__ </item>
            <item> __ixor__ </item>
            <item> __len__ </item>
            <item> __getitem__ </item>
            <item> __setitem__ </item>
            <item> __delitem__ </item>
            <item> __getslice__ </item>
            <item> __setslice__ </item>
            <item> __delslice__ </item>
            <item> __contains__ </item>
            <item> __next__ </item>
            <item> __getreadbuffer__ </item>
            <item> __getwritebuffer__ </item>
            <item> __getsegcount__ </item>
            <item> __getcharbuffer__ </item>
            <item> __get__ </item>
            <item> __set__ </item>
            <item> __delete__ </item>
            <item> __getbuffer__ </item>
            <item> __releasebuffer__ </item>
        </list>
        <list name="exceptions">
            <item>ArithmeticError</item>
            <item>AssertionError</item>
            <item>AttributeError</item>
            <item>BaseException</item>
            <item>DeprecationWarning</item>
            <item>EnvironmentError</item>
            <item>EOFError</item>
            <item>Exception</item>
            <item>FloatingPointError</item>
            <item>FutureWarning</item>
            <item>GeneratorExit</item>
            <item>IOError</item>
            <item>ImportError</item>
            <item>ImportWarning</item>
            <item>IndexError</item>
            <item>KeyError</item>
            <item>KeyboardInterrupt</item>
            <item>LookupError</item>
            <item>MemoryError</item>
            <item>NameError</item>
            <item>NotImplementedError</item>
            <item>OSError</item>
            <item>OverflowError</item>
            <item>PendingDeprecationWarning</item>
            <item>ReferenceError</item>
            <item>RuntimeError</item>
            <item>RuntimeWarning</item>
            <item>StandardError</item>
            <item>StopIteration</item>
            <item>SyntaxError</item>
            <item>SyntaxWarning</item>
            <item>SystemError</item>
            <item>SystemExit</item>
            <item>TypeError</item>
            <item>UnboundLocalError</item>
            <item>UserWarning</item>
            <item>UnicodeError</item>
            <item>UnicodeWarning</item>
            <item>UnicodeEncodeError</item>
            <item>UnicodeDecodeError</item>
            <item>UnicodeTranslateError</item>
            <item>ValueError</item>
            <item>Warning</item>
            <item>WindowsError</item>
            <item>ZeroDivisionError</item>
        </list>

        <contexts>

			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">

                <keyword attribute="Definition Keyword" String="cdef" context="cdefname"/>
                <keyword attribute="Definition Keyword" String="defs" context="defname"/>
                <keyword attribute="Definition Keyword" String="keyw" context="#stay"/>

				<keyword attribute="Import Keyword" String="imports" context="#stay"/>
                <keyword attribute="Preprocessor" String="prep" context="#stay"/>
				<keyword attribute="Operator" String="operators" context="#stay"/>
				<keyword attribute="Command Keyword" String="commands" context="#stay"/>
				<keyword attribute="Flow Control Keyword" String="flow" context="#stay"/>
				<keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/>

				<keyword attribute="Special Variable" String="specialvars" context="#stay"/>
				<keyword attribute="Special Variable" String="exceptions" context="#stay"/>
                <keyword attribute="Special Variable" String="overloaders" context="#stay"/>

                <keyword attribute="C Type" context="#stay" String="ctypes" />
				<keyword attribute="Python Type" context="#stay" String="pytypes" />

                <RegExpr attribute="Hex" String="0[Xx][0-9a-fA-F]+" context="#stay"/>
                <RegExpr attribute="Octal" String="0[1-9][0-9]*" context="#stay"/>
                <RegExpr attribute="Binary" String="0[Bb][0-9a-fA-F]+" context="#stay"/>

				<RegExpr attribute="Complex" String=" ((([0-9]*\.[0-9]+|[0-9]+\.)|([0-9]+|([0-9]*\.[0-9]+|[0-9]+\.))[eE](\+|-)?[0-9]+)|[0-9]+)[jJ]" context="#stay"/>
				<RegExpr attribute="Float" String="([0-9]+\.[0-9]*|\.[0-9]+)([eE][0-9]+)?" context="#stay"/>

                <RegExpr attribute="Int" String="([1-9][0-9]*([eE][0-9]+)?|0)" context="#stay"/>
				<RegExpr attribute="Long" String="[1-9][0-9]*([eE][0-9.]+)?[Ll]" context="#stay"/>

                <keyword attribute="NumPyAttr" String="numpyselector" context="numpy"/>

                <RegExpr attribute="Decorator" String="@[a-zA-Z_][a-zA-Z_0-9\.]+" context="#stay"/>

                <RegExpr attribute="Normal" String="[a-zA-Z_][a-zA-Z_0-9]+" context="#stay"/>

				<RegExpr attribute="Raw String" String="[rR]'''" context="Raw Tripple A-string"/>
				<RegExpr attribute="Raw String" String="[rR]&quot;&quot;&quot;" context="Raw Tripple Q-string"/>

				<RegExpr attribute="Raw String" String="[rR]'" context="Raw A-string"/>
				<RegExpr attribute="Raw String" String="[rR]&quot;" context="Raw Q-string"/>

				<RegExpr attribute="Comment" String="#.*$" context="#stay"/>
				<RegExpr attribute="Comment" String="^\s*'''" context="Tripple A-comment" beginRegion="Tripple A-region"/>
				<RegExpr attribute="Comment" String="^\s*&quot;&quot;&quot;" context="Tripple Q-comment" beginRegion="Tripple Q-region"/>

  				<StringDetect attribute="String" String="'''" context="Tripple A-string" beginRegion="Tripple A-region"/>
				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="Tripple Q-string" beginRegion="Tripple Q-region"/>
				<DetectChar attribute="String" char="'" context="Single A-string"/>
				<DetectChar attribute="String" char="&quot;" context="Single Q-string"/>


                <DetectChar attribute="Operator" char="(" context="parenthesis" />

                <DetectChar attribute="Operator" char="[" context="bracet" />

                <DetectChar attribute="Operator" char="{" context="dict" />

				<RegExpr attribute="Operator" String="[+*/%\|=;\!&lt;&gt;!^&amp;~-]" context="#stay"/>

				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>

            </context>

             <context name="numpy" attribute="Normal Text" lineEndContext="#pop" noIndentationBasedFolding="True">
                <!-- highlight types in numpy.pxd after cimport numpy -->
                <keyword attribute="Import Keyword" context="#pop" String="as" />
                <DetectChar attribute="Dot" context="#stay" char="." />
                <keyword attribute="NumPy Type" context="#pop" String="numpytypes" />
                <keyword attribute="NumPy Function" context="#pop" String="numpyfuncs" />
            </context>

			<context name="parenthesis" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True">
                <DetectChar attribute="Operator" char=")" context="#pop" />
				<IncludeRules context="Normal" />
			</context>

            <context name="bracet" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True">
                <StringDetect attribute="Normal" String="readonly" context="#stay" />
                <DetectChar attribute="Operator" char="]" context="#pop" />
                <IncludeRules context="Normal" />
            </context>

            <context name="dict" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True">
                <DetectChar attribute="Operator" char="}" context="#pop" />
                <IncludeRules context="Normal" />
            </context>

            <context name="defname" attribute="Normal Text" lineEndContext="#pop" noIndentationBasedFolding="True">
                <RegExpr attribute="Definition Name" String="[a-zA-Z_][a-zA-Z_0-9]+" context="#stay"/>
                <DetectChar attribute="Operator" char="(" context="callargs" />
                <DetectChar attribute="Operator" char="[" context="callbracket" />
                <IncludeRules context="Normal" />
            </context>

            <context name="callargs" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True">
                <DetectChar attribute="Operator" char=")" context="#pop#pop" />
                <IncludeRules context="Normal" />
            </context>

            <context name="callbracket" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True">
                <DetectChar attribute="Operator" char="]" context="#pop#pop" />
                <IncludeRules context="Normal" />
            </context>


            <context name="cdefname" attribute="Normal Text" lineEndContext="#pop" noIndentationBasedFolding="True">
                <keyword attribute="Definition Keyword" String="defs" context="defname"/>
                <keyword attribute="Definition Keyword" String="keyw" context="#stay"/>
                <keyword attribute="Definition Keyword" String="access" context="#stay"/>
                <keyword attribute="Import Keyword" String="imports" context="#stay"/>
                <keyword attribute="Special Variable" String="specialvars" context="#stay"/>

                <keyword attribute="C Type" context="#pop" String="ctypes" />
                <keyword attribute="Python Type" context="#pop" String="pytypes" />

                <RegExpr attribute="Hex" String="0[Xx][0-9a-fA-F]+" context="#stay"/>
                <RegExpr attribute="Octal" String="0[1-9][0-9]*" context="#stay"/>
                <RegExpr attribute="Binary" String="0[Bb][0-9a-fA-F]+" context="#stay"/>

                <RegExpr attribute="Complex" String=" ((([0-9]*\.[0-9]+|[0-9]+\.)|([0-9]+|([0-9]*\.[0-9]+|[0-9]+\.))[eE](\+|-)?[0-9]+)|[0-9]+)[jJ]" context="#stay"/>
                <RegExpr attribute="Float" String="([0-9]+\.[0-9]*|\.[0-9]+)([eE][0-9]+)?" context="#stay"/>

                <RegExpr attribute="Int" String="([1-9][0-9]*([eE][0-9]+)?|0)" context="#stay"/>
                <RegExpr attribute="Long" String="[1-9][0-9]*([eE][0-9.]+)?[Ll]" context="#stay"/>

                <keyword attribute="NumPyAttr" String="numpyselector" context="numpy2"/>

                <RegExpr attribute="C Definition Name" String="[a-zA-Z_][a-zA-Z_0-9]+" context="#stay"/>
                <DetectChar attribute="Operator" char="(" context="callargs" />
                <IncludeRules context="Normal" />
            </context>

            <context name="callargs" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="True">
                <DetectChar attribute="Operator" char=")" context="#pop#pop" />
                <IncludeRules context="Normal" />
            </context>








            <context name="numpy2" attribute="Normal Text" lineEndContext="#pop" noIndentationBasedFolding="True">
                <!-- highlight types in numpy.pxd after cimport numpy -->
                <DetectChar attribute="Dot" context="#stay" char="." />
                <keyword attribute="NumPy Type" context="#pop#pop" String="numpytypes" />
            </context>




			<context name="Tripple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="True">
				<StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Tripple A-region"/>
			</context>
			<context name="Tripple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="True">
				<HlCChar attribute="Comment" context="#stay"/>
				<RegExpr attribute="Comment" String="&quot;&quot;&quot;" context="#pop" endRegion="Tripple Q-region"/>
			</context>
			<context name="Tripple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="True">
				<HlCStringChar attribute="String Char" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String" String="'''" context="#pop" endRegion="Tripple A-region"/>
			</context>
			<context name="Raw Tripple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="True">
				<HlCStringChar attribute="Raw String" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String" String="'''" context="#pop" endRegion="Tripple A-region"/>
			</context>
			<context name="Tripple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="True">
				<HlCStringChar attribute="String Char" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String" String="&quot;&quot;&quot;" context="#pop" endRegion="Tripple Q-region"/>
			</context>
			<context name="Raw Tripple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="True">
				<HlCStringChar attribute="Raw String" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String" String="&quot;&quot;&quot;" context="#pop" endRegion="Tripple Q-region"/>
			</context>
			<context name="Single A-comment" attribute="Comment" lineEndContext="#stay">
				<HlCStringChar attribute="Comment" context="#stay"/>
				<DetectChar attribute="Comment" char="'" context="#pop"/>
			</context>
			<context name="Single Q-comment" attribute="Comment" lineEndContext="#stay">
				<HlCStringChar attribute="Comment" context="#stay"/>
				<DetectChar attribute="Comment" char="&quot;" context="#pop"/>
			</context>
			<context name="Single A-string" attribute="String" lineEndContext="#stay">
				<HlCStringChar attribute="String Char" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
				<DetectChar attribute="String" char="'" context="#pop"/>
			</context>
			<context name="Single Q-string" attribute="String" lineEndContext="#stay">
				<HlCStringChar attribute="String Char" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
				<DetectChar attribute="String" char="&quot;" context="#pop"/>
			</context>
			<context name="Raw A-string" attribute="Raw String" lineEndContext="#stay">
				<HlCStringChar attribute="Raw String" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
				<DetectChar attribute="Raw String" char="'" context="#pop"/>
			</context>
			<context name="Raw Q-string" attribute="Raw String" lineEndContext="#stay">
				<HlCStringChar attribute="Raw String" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
				<DetectChar attribute="Raw String" char="&quot;" context="#pop"/>
			</context>
		</contexts>
		<itemDatas>
			<itemData name="Normal Text" defStyleNum="dsNormal"/>
			<itemData name="Import Keyword" defStyleNum="dsKeyword"/>
            <itemData name="Definition Keyword" defStyleNum="dsKeyword"/>
            <itemData name="Definition Name" defStyleNum="dsOthers"/>
            <itemData name="Operator" defStyleNum="dsKeyword"/>
			<itemData name="String Substitution" defStyleNum="dsNormal"/>
			<itemData name="Command Keyword" defStyleNum="dsFunction"/>
			<itemData name="Flow Control Keyword" defStyleNum="dsKeyword"/>
			<itemData name="Builtin Function" defStyleNum="dsFunction"/>
			<itemData name="C Type" defStyleNum="dsDataType"/>
            <itemData name="Python Type" defStyleNum="dsDataType"/>
            <itemData name="NumPy Type" defStyleNum="dsDataType"/>
            <itemData name="NumPy Function" defStyleNum="dsFunction"/>
   			<itemData name="Special Variable" defStyleNum="dsOthers"/>
			<itemData name="Preprocessor" defStyleNum="dsOthers"/>
            <itemData name="Decorator" defStyleNum="dsFunction"/>
			<itemData name="String Char" defStyleNum="dsChar"/>
			<itemData name="Long" defStyleNum="dsOthers"/>
			<itemData name="Float" defStyleNum="dsFloat"/>
			<itemData name="Int" defStyleNum="dsDecVal"/>
			<itemData name="Hex" defStyleNum="dsOthers"/>
			<itemData name="Octal" defStyleNum="dsOthers"/>
            <itemData name="Binary" defStyleNum="dsOthers"/>
			<itemData name="Complex" defStyleNum="dsOthers"/>
			<itemData name="Comment" defStyleNum="dsComment"/>
			<itemData name="String" defStyleNum="dsString"/>
			<itemData name="Raw String" defStyleNum="dsString"/>
		</itemDatas>
	</highlighting>
	<general>
		<folding indentationsensitive="1" />
		<emptyLines>
			<emptyLine regexpr="\s+" casesensitive="false"/>
			<emptyLine regexpr="\s*#.*$" casesensitive="false"/>
		</emptyLines>
		<comments>
			<comment name="singleLine" start="#" position="afterwhitespace"/>
		</comments>
		<keywords casesensitive="1"/>
	</general>
</language>
