Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Gwenaël Samain
cython
Commits
c1e8b921
Commit
c1e8b921
authored
6 years ago
by
scoder
Committed by
GitHub
6 years ago
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #2415 from gabrieldemarmiesse/test_language_basics_5
Added tests for "language basics" part 5
parents
6e6baf58
f6159408
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
30 additions
and
630 deletions
+30
-630
Cython/Includes/Deprecated/python2.5.pxd
Cython/Includes/Deprecated/python2.5.pxd
+0
-622
Cython/Includes/cpython/exc.pxd
Cython/Includes/cpython/exc.pxd
+7
-0
docs/examples/tutorial/external/keyword_args_call.pyx
docs/examples/tutorial/external/keyword_args_call.pyx
+1
-1
docs/examples/userguide/language_basics/open_file.pyx
docs/examples/userguide/language_basics/open_file.pyx
+18
-0
docs/src/userguide/extension_types.rst
docs/src/userguide/extension_types.rst
+1
-1
docs/src/userguide/language_basics.rst
docs/src/userguide/language_basics.rst
+2
-5
docs/src/userguide/parallelism.rst
docs/src/userguide/parallelism.rst
+1
-1
No files found.
Cython/Includes/Deprecated/python2.5.pxd
deleted
100644 → 0
View file @
6e6baf58
# From: Eric Huss <e-huss@netmeridian.com>
#
# Here is my latest copy. It does not cover 100% of the API. It should be
# current up to 2.5.
#
# -Eric
# XXX:
# - Need to support "long long" definitions that are different for different platforms.
# - Support unicode platform dependencies.
# - Add unicode calls.
# - Add setobject calls.
cdef
extern
from
"stdio.h"
:
ctypedef
struct
FILE
:
pass
cdef
extern
from
"Python.h"
:
# XXX: This is platform dependent.
ctypedef
unsigned
short
Py_UNICODE
ctypedef
struct
PyTypeObject
:
pass
ctypedef
struct
PyObject
:
Py_ssize_t
ob_refcnt
PyTypeObject
*
ob_type
###############################################################################################
# bool
###############################################################################################
PyObject
*
Py_False
PyObject
*
Py_True
PyTypeObject
PyBool_Type
int
PyBool_Check
(
object
)
# Always succeeds.
object
PyBool_FromLong
(
long
)
###############################################################################################
# buffer
###############################################################################################
PyTypeObject
PyBuffer_Type
int
Py_END_OF_BUFFER
int
PyBuffer_Check
(
object
)
# Always succeeds.
object
PyBuffer_FromMemory
(
void
*
,
Py_ssize_t
)
object
PyBuffer_FromObject
(
object
,
Py_ssize_t
,
Py_ssize_t
)
object
PyBuffer_FromReadWriteMemory
(
void
*
,
Py_ssize_t
)
object
PyBuffer_FromReadWriteObject
(
object
,
Py_ssize_t
,
Py_ssize_t
)
object
PyBuffer_New
(
Py_ssize_t
)
int
PyObject_AsCharBuffer
(
object
,
char
**
,
Py_ssize_t
*
)
except
-
1
int
PyObject_AsReadBuffer
(
object
,
void
**
,
Py_ssize_t
*
)
except
-
1
int
PyObject_AsWriteBuffer
(
object
,
void
**
,
Py_ssize_t
*
)
except
-
1
int
PyObject_CheckReadBuffer
(
object
)
# Always succeeds.
###############################################################################################
# cobject
###############################################################################################
PyTypeObject
PyCObject_Type
int
PyCObject_Check
(
object
)
# Always succeeds.
object
PyCObject_FromVoidPtr
(
void
*
,
void
(
*
)(
void
*
))
object
PyCObject_FromVoidPtrAndDesc
(
void
*
,
void
*
,
void
(
*
)(
void
*
,
void
*
))
void
*
PyCObject_AsVoidPtr
(
object
)
except
NULL
void
*
PyCObject_GetDesc
(
object
)
except
NULL
void
*
PyCObject_Import
(
char
*
,
char
*
)
except
NULL
###############################################################################################
# compile
###############################################################################################
ctypedef
struct
PyCodeObject
:
int
co_argcount
int
co_nlocals
int
co_stacksize
int
co_flags
PyObject
*
co_code
PyObject
*
co_consts
PyObject
*
co_names
PyObject
*
co_varnames
PyObject
*
co_freevars
PyObject
*
co_cellvars
PyObject
*
co_filename
PyObject
*
co_name
int
co_firstlineno
PyObject
*
co_lnotab
int
PyCode_Addr2Line
(
PyCodeObject
*
,
int
)
###############################################################################################
# complex
###############################################################################################
ctypedef
struct
Py_complex
:
double
real
double
imag
PyTypeObject
PyComplex_Type
Py_complex
PyComplex_AsCComplex
(
object
)
# Always succeeds.
int
PyComplex_Check
(
object
)
# Always succeeds.
int
PyComplex_CheckExact
(
object
)
# Always succeeds.
object
PyComplex_FromCComplex
(
Py_complex
)
object
PyComplex_FromDoubles
(
double
,
double
)
double
PyComplex_ImagAsDouble
(
object
)
except
?
-
1
double
PyComplex_RealAsDouble
(
object
)
except
?
-
1
Py_complex
_Py_c_diff
(
Py_complex
,
Py_complex
)
Py_complex
_Py_c_neg
(
Py_complex
)
Py_complex
_Py_c_pow
(
Py_complex
,
Py_complex
)
Py_complex
_Py_c_prod
(
Py_complex
,
Py_complex
)
Py_complex
_Py_c_quot
(
Py_complex
,
Py_complex
)
Py_complex
_Py_c_sum
(
Py_complex
,
Py_complex
)
###############################################################################################
# dict
###############################################################################################
PyTypeObject
PyDict_Type
int
PyDict_Check
(
object
)
# Always succeeds.
int
PyDict_CheckExact
(
object
)
# Always succeeds.
void
PyDict_Clear
(
object
)
int
PyDict_Contains
(
object
,
object
)
except
-
1
object
PyDict_Copy
(
object
)
int
PyDict_DelItem
(
object
,
object
)
except
-
1
int
PyDict_DelItemString
(
object
,
char
*
)
except
-
1
object
PyDict_Items
(
object
)
object
PyDict_Keys
(
object
)
int
PyDict_Merge
(
object
,
object
,
int
)
except
-
1
int
PyDict_MergeFromSeq2
(
object
,
object
,
int
)
except
-
1
object
PyDict_New
()
# XXX: Pyrex doesn't support pointer to a python object?
#int PyDict_Next (object, Py_ssize_t *, object *, object *) # Always succeeds.
int
PyDict_SetItem
(
object
,
object
,
object
)
except
-
1
int
PyDict_SetItemString
(
object
,
char
*
,
object
)
except
-
1
Py_ssize_t
PyDict_Size
(
object
)
except
-
1
int
PyDict_Update
(
object
,
object
)
except
-
1
object
PyDict_Values
(
object
)
# XXX: Borrowed reference. No exception on NULL.
#object PyDict_GetItem (object, object)
# XXX: Borrowed reference. No exception on NULL
#object PyDict_GetItemString (object, char *)
###############################################################################################
# float
###############################################################################################
PyTypeObject
PyFloat_Type
int
_PyFloat_Pack4
(
double
,
unsigned
char
*
,
int
)
except
-
1
int
_PyFloat_Pack8
(
double
,
unsigned
char
*
,
int
)
except
-
1
double
_PyFloat_Unpack4
(
unsigned
char
*
,
int
)
except
?
-
1
double
_PyFloat_Unpack8
(
unsigned
char
*
,
int
)
except
?
-
1
double
PyFloat_AS_DOUBLE
(
object
)
double
PyFloat_AsDouble
(
object
)
except
?
-
1
void
PyFloat_AsReprString
(
char
*
,
object
)
void
PyFloat_AsString
(
char
*
,
object
)
int
PyFloat_Check
(
object
)
# Always succeeds.
int
PyFloat_CheckExact
(
object
)
# Always succeeds.
object
PyFloat_FromDouble
(
double
)
object
PyFloat_FromString
(
object
,
char
**
)
###############################################################################################
# frame
###############################################################################################
ctypedef
struct
PyFrameObject
:
PyFrameObject
*
f_back
PyCodeObject
*
f_code
PyObject
*
f_builtins
PyObject
*
f_globals
PyObject
*
f_locals
PyObject
*
f_trace
PyObject
*
f_exc_type
PyObject
*
f_exc_value
PyObject
*
f_exc_traceback
int
f_lasti
int
f_lineno
int
f_restricted
int
f_iblock
int
f_nlocals
int
f_ncells
int
f_nfreevars
int
f_stacksize
###############################################################################################
# int
###############################################################################################
PyTypeObject
PyInt_Type
long
PyInt_AS_LONG
(
object
)
# Always succeeds.
long
PyInt_AsLong
(
object
)
except
?
-
1
Py_ssize_t
PyInt_AsSsize_t
(
object
)
except
?
-
1
unsigned
long
long
PyInt_AsUnsignedLongLongMask
(
object
)
except
?
-
1
unsigned
long
PyInt_AsUnsignedLongMask
(
object
)
except
?
-
1
int
PyInt_Check
(
object
)
# Always succeeds.
int
PyInt_CheckExact
(
object
)
# Always succeeds.
object
PyInt_FromLong
(
long
)
object
PyInt_FromSsize_t
(
Py_ssize_t
)
object
PyInt_FromString
(
char
*
,
char
**
,
int
)
object
PyInt_FromUnicode
(
Py_UNICODE
*
,
Py_ssize_t
,
int
)
long
PyInt_GetMax
()
# Always succeeds.
###############################################################################################
# iterator
###############################################################################################
int
PyIter_Check
(
object
)
# Always succeeds.
object
PyIter_Next
(
object
)
###############################################################################################
# list
###############################################################################################
PyTypeObject
PyList_Type
int
PyList_Append
(
object
,
object
)
except
-
1
object
PyList_AsTuple
(
object
)
int
PyList_Check
(
object
)
# Always succeeds.
int
PyList_CheckExact
(
object
)
# Always succeeds.
int
PyList_GET_SIZE
(
object
)
# Always succeeds.
object
PyList_GetSlice
(
object
,
Py_ssize_t
,
Py_ssize_t
)
int
PyList_Insert
(
object
,
Py_ssize_t
,
object
)
except
-
1
object
PyList_New
(
Py_ssize_t
)
int
PyList_Reverse
(
object
)
except
-
1
int
PyList_SetSlice
(
object
,
Py_ssize_t
,
Py_ssize_t
,
object
)
except
-
1
Py_ssize_t
PyList_Size
(
object
)
except
-
1
int
PyList_Sort
(
object
)
except
-
1
###############################################################################################
# long
###############################################################################################
PyTypeObject
PyLong_Type
int
_PyLong_AsByteArray
(
object
,
unsigned
char
*
,
size_t
,
int
,
int
)
except
-
1
object
_PyLong_FromByteArray
(
unsigned
char
*
,
size_t
,
int
,
int
)
size_t
_PyLong_NumBits
(
object
)
except
-
1
int
_PyLong_Sign
(
object
)
# No error.
long
PyLong_AsLong
(
object
)
except
?
-
1
long
long
PyLong_AsLongLong
(
object
)
except
?
-
1
unsigned
long
PyLong_AsUnsignedLong
(
object
)
except
?
-
1
unsigned
long
PyLong_AsUnsignedLongMask
(
object
)
except
?
-
1
unsigned
long
long
PyLong_AsUnsignedLongLong
(
object
)
except
?
-
1
unsigned
long
long
PyLong_AsUnsignedLongLongMask
(
object
)
except
?
-
1
int
PyLong_Check
(
object
)
# Always succeeds.
int
PyLong_CheckExact
(
object
)
# Always succeeds.
object
PyLong_FromDouble
(
double
)
object
PyLong_FromLong
(
long
)
object
PyLong_FromLongLong
(
long
long
)
object
PyLong_FromUnsignedLong
(
unsigned
long
)
object
PyLong_FromUnsignedLongLong
(
unsigned
long
long
)
double
PyLong_AsDouble
(
object
)
except
?
-
1
object
PyLong_FromVoidPtr
(
void
*
)
void
*
PyLong_AsVoidPtr
(
object
)
except
NULL
object
PyLong_FromString
(
char
*
,
char
**
,
int
)
object
PyLong_FromUnicode
(
Py_UNICODE
*
,
Py_ssize_t
,
int
)
###############################################################################################
# mapping
###############################################################################################
int
PyMapping_Check
(
object
)
# Always succeeds.
int
PyMapping_DelItem
(
object
,
object
)
except
-
1
int
PyMapping_DelItemString
(
object
,
char
*
)
except
-
1
object
PyMapping_GetItemString
(
object
,
char
*
)
int
PyMapping_HasKey
(
object
,
object
)
# Always succeeds.
int
PyMapping_HasKeyString
(
object
,
char
*
)
# Always succeeds.
object
PyMapping_Items
(
object
)
object
PyMapping_Keys
(
object
)
Py_ssize_t
PyMapping_Length
(
object
)
except
-
1
int
PyMapping_SetItemString
(
object
,
char
*
,
object
)
except
-
1
Py_ssize_t
PyMapping_Size
(
object
)
except
-
1
object
PyMapping_Values
(
object
)
###############################################################################################
# mem
###############################################################################################
void
PyMem_Free
(
void
*
p
)
void
*
PyMem_Malloc
(
size_t
n
)
void
*
PyMem_Realloc
(
void
*
,
size_t
)
###############################################################################################
# modsupport
###############################################################################################
object
Py_BuildValue
(
char
*
,
...)
object
Py_VaBuildValue
(
char
*
,
va_list
)
###############################################################################################
# number
###############################################################################################
object
PyNumber_Absolute
(
object
)
object
PyNumber_Add
(
object
,
object
)
object
PyNumber_And
(
object
,
object
)
Py_ssize_t
PyNumber_AsSsize_t
(
object
,
object
)
except
?
-
1
int
PyNumber_Check
(
object
)
# Always succeeds.
# XXX: Pyrex doesn't support pointer to python object?
#int PyNumber_Coerce (object*, object*) except -1
object
PyNumber_Divide
(
object
,
object
)
object
PyNumber_Divmod
(
object
,
object
)
object
PyNumber_Float
(
object
)
object
PyNumber_FloorDivide
(
object
,
object
)
object
PyNumber_InPlaceAdd
(
object
,
object
)
object
PyNumber_InPlaceAnd
(
object
,
object
)
object
PyNumber_InPlaceDivide
(
object
,
object
)
object
PyNumber_InPlaceFloorDivide
(
object
,
object
)
object
PyNumber_InPlaceLshift
(
object
,
object
)
object
PyNumber_InPlaceMultiply
(
object
,
object
)
object
PyNumber_InPlaceOr
(
object
,
object
)
object
PyNumber_InPlacePower
(
object
,
object
,
object
)
object
PyNumber_InPlaceRemainder
(
object
,
object
)
object
PyNumber_InPlaceRshift
(
object
,
object
)
object
PyNumber_InPlaceSubtract
(
object
,
object
)
object
PyNumber_InPlaceTrueDivide
(
object
,
object
)
object
PyNumber_InPlaceXor
(
object
,
object
)
object
PyNumber_Int
(
object
)
object
PyNumber_Invert
(
object
)
object
PyNumber_Long
(
object
)
object
PyNumber_Lshift
(
object
,
object
)
object
PyNumber_Multiply
(
object
,
object
)
object
PyNumber_Negative
(
object
)
object
PyNumber_Or
(
object
,
object
)
object
PyNumber_Positive
(
object
)
object
PyNumber_Power
(
object
,
object
,
object
)
object
PyNumber_Remainder
(
object
,
object
)
object
PyNumber_Rshift
(
object
,
object
)
object
PyNumber_Subtract
(
object
,
object
)
object
PyNumber_TrueDivide
(
object
,
object
)
object
PyNumber_Xor
(
object
,
object
)
###############################################################################################
# object
###############################################################################################
int
PyCallable_Check
(
object
)
# Always succeeds.
int
PyObject_AsFileDescriptor
(
object
)
except
-
1
object
PyObject_Call
(
object
,
object
,
object
)
object
PyObject_CallFunction
(
object
,
char
*
,
...)
object
PyObject_CallFunctionObjArgs
(
object
,
...)
object
PyObject_CallMethod
(
object
,
char
*
,
char
*
,
...)
object
PyObject_CallMethodObjArgs
(
object
,
object
,
...)
object
PyObject_CallObject
(
object
,
object
)
int
PyObject_Cmp
(
object
,
object
,
int
*
result
)
except
-
1
# Use PyObject_Cmp instead.
#int PyObject_Compare (object, object)
int
PyObject_DelAttr
(
object
,
object
)
except
-
1
int
PyObject_DelAttrString
(
object
,
char
*
)
except
-
1
int
PyObject_DelItem
(
object
,
object
)
except
-
1
int
PyObject_DelItemString
(
object
,
char
*
)
except
-
1
object
PyObject_Dir
(
object
)
object
PyObject_GetAttr
(
object
,
object
)
object
PyObject_GetAttrString
(
object
,
char
*
)
object
PyObject_GetItem
(
object
,
object
)
object
PyObject_GetIter
(
object
)
int
PyObject_HasAttr
(
object
,
object
)
# Always succeeds.
int
PyObject_HasAttrString
(
object
,
char
*
)
# Always succeeds.
long
PyObject_Hash
(
object
)
except
-
1
int
PyObject_IsInstance
(
object
,
object
)
except
-
1
int
PyObject_IsSubclass
(
object
,
object
)
except
-
1
int
PyObject_IsTrue
(
object
)
except
-
1
Py_ssize_t
PyObject_Length
(
object
)
except
-
1
int
PyObject_Not
(
object
)
except
-
1
int
PyObject_Print
(
object
,
FILE
*
,
int
)
except
-
1
object
PyObject_Repr
(
object
)
object
PyObject_RichCompare
(
object
,
object
,
int
)
int
PyObject_RichCompareBool
(
object
,
object
,
int
)
except
-
1
int
PyObject_SetAttr
(
object
,
object
,
object
)
except
-
1
int
PyObject_SetAttrString
(
object
,
char
*
,
object
)
except
-
1
int
PyObject_SetItem
(
object
,
object
,
object
)
except
-
1
Py_ssize_t
PyObject_Size
(
object
)
except
-
1
object
PyObject_Str
(
object
)
object
PyObject_Type
(
object
)
int
PyObject_TypeCheck
(
object
,
object
)
# Always succeeds.
object
PyObject_Unicode
(
object
)
###############################################################################################
# pyerrors
###############################################################################################
int
PyErr_BadArgument
()
void
PyErr_BadInternalCall
()
int
PyErr_CheckSignals
()
void
PyErr_Clear
()
int
PyErr_ExceptionMatches
(
object
)
object
PyErr_Format
(
object
,
char
*
,
...)
int
PyErr_GivenExceptionMatches
(
object
,
object
)
object
PyErr_NoMemory
()
object
PyErr_Occurred
()
void
PyErr_Restore
(
object
,
object
,
object
)
object
PyErr_SetFromErrno
(
object
)
object
PyErr_SetFromErrnoWithFilename
(
object
,
char
*
)
object
PyErr_SetFromErrnoWithFilenameObject
(
object
,
object
)
void
PyErr_SetInterrupt
()
void
PyErr_SetNone
(
object
)
void
PyErr_SetObject
(
object
,
object
)
void
PyErr_SetString
(
object
,
char
*
)
int
PyErr_Warn
(
object
,
char
*
)
int
PyErr_WarnExplicit
(
object
,
char
*
,
char
*
,
int
,
char
*
,
object
)
void
PyErr_WriteUnraisable
(
object
)
###############################################################################################
# pyeval
# Be extremely careful with these functions.
###############################################################################################
ctypedef
struct
PyThreadState
:
PyFrameObject
*
frame
int
recursion_depth
void
*
curexc_type
,
*
curexc_value
,
*
curexc_traceback
void
*
exc_type
,
*
exc_value
,
*
exc_traceback
void
PyEval_AcquireLock
()
void
PyEval_ReleaseLock
()
void
PyEval_AcquireThread
(
PyThreadState
*
)
void
PyEval_ReleaseThread
(
PyThreadState
*
)
PyThreadState
*
PyEval_SaveThread
()
void
PyEval_RestoreThread
(
PyThreadState
*
)
###############################################################################################
# pystate
# Be extremely careful with these functions. Read PEP 311 for more detail.
###############################################################################################
ctypedef
int
PyGILState_STATE
PyGILState_STATE
PyGILState_Ensure
()
void
PyGILState_Release
(
PyGILState_STATE
)
ctypedef
struct
PyInterpreterState
:
pass
PyThreadState
*
PyThreadState_New
(
PyInterpreterState
*
)
void
PyThreadState_Clear
(
PyThreadState
*
)
void
PyThreadState_Delete
(
PyThreadState
*
)
PyThreadState
*
PyThreadState_Get
()
PyThreadState
*
PyThreadState_Swap
(
PyThreadState
*
tstate
)
# XXX: Borrowed reference.
#object PyThreadState_GetDict ()
###############################################################################################
# run
# Functions for embedded interpreters are not included.
###############################################################################################
ctypedef
struct
PyCompilerFlags
:
int
cf_flags
ctypedef
struct
_node
:
pass
ctypedef
void
(
*
PyOS_sighandler_t
)(
int
)
void
PyErr_Display
(
object
,
object
,
object
)
void
PyErr_Print
()
void
PyErr_PrintEx
(
int
)
char
*
PyOS_Readline
(
FILE
*
,
FILE
*
,
char
*
)
PyOS_sighandler_t
PyOS_getsig
(
int
)
PyOS_sighandler_t
PyOS_setsig
(
int
,
PyOS_sighandler_t
)
_node
*
PyParser_SimpleParseFile
(
FILE
*
,
char
*
,
int
)
except
NULL
_node
*
PyParser_SimpleParseFileFlags
(
FILE
*
,
char
*
,
int
,
int
)
except
NULL
_node
*
PyParser_SimpleParseString
(
char
*
,
int
)
except
NULL
_node
*
PyParser_SimpleParseStringFlagsFilename
(
char
*
,
char
*
,
int
,
int
)
except
NULL
_node
*
PyParser_SimpleParseStringFlags
(
char
*
,
int
,
int
)
except
NULL
int
PyRun_AnyFile
(
FILE
*
,
char
*
)
except
-
1
int
PyRun_AnyFileEx
(
FILE
*
,
char
*
,
int
)
except
-
1
int
PyRun_AnyFileExFlags
(
FILE
*
,
char
*
,
int
,
PyCompilerFlags
*
)
except
-
1
int
PyRun_AnyFileFlags
(
FILE
*
,
char
*
,
PyCompilerFlags
*
)
except
-
1
object
PyRun_File
(
FILE
*
,
char
*
,
int
,
object
,
object
)
object
PyRun_FileEx
(
FILE
*
,
char
*
,
int
,
object
,
object
,
int
)
object
PyRun_FileExFlags
(
FILE
*
,
char
*
,
int
,
object
,
object
,
int
,
PyCompilerFlags
*
)
object
PyRun_FileFlags
(
FILE
*
,
char
*
,
int
,
object
,
object
,
PyCompilerFlags
*
)
int
PyRun_InteractiveLoop
(
FILE
*
,
char
*
)
except
-
1
int
PyRun_InteractiveLoopFlags
(
FILE
*
,
char
*
,
PyCompilerFlags
*
)
except
-
1
int
PyRun_InteractiveOne
(
FILE
*
,
char
*
)
except
-
1
int
PyRun_InteractiveOneFlags
(
FILE
*
,
char
*
,
PyCompilerFlags
*
)
except
-
1
int
PyRun_SimpleFile
(
FILE
*
,
char
*
)
except
-
1
int
PyRun_SimpleFileEx
(
FILE
*
,
char
*
,
int
)
except
-
1
int
PyRun_SimpleFileExFlags
(
FILE
*
,
char
*
,
int
,
PyCompilerFlags
*
)
except
-
1
int
PyRun_SimpleString
(
char
*
)
except
-
1
int
PyRun_SimpleStringFlags
(
char
*
,
PyCompilerFlags
*
)
except
-
1
object
PyRun_String
(
char
*
,
int
,
object
,
object
)
object
PyRun_StringFlags
(
char
*
,
int
,
object
,
object
,
PyCompilerFlags
*
)
int
Py_AtExit
(
void
(
*
func
)())
object
Py_CompileString
(
char
*
,
char
*
,
int
)
object
Py_CompileStringFlags
(
char
*
,
char
*
,
int
,
PyCompilerFlags
*
)
void
Py_Exit
(
int
)
int
Py_FdIsInteractive
(
FILE
*
,
char
*
)
# Always succeeds.
char
*
Py_GetBuildInfo
()
char
*
Py_GetCompiler
()
char
*
Py_GetCopyright
()
char
*
Py_GetExecPrefix
()
char
*
Py_GetPath
()
char
*
Py_GetPlatform
()
char
*
Py_GetPrefix
()
char
*
Py_GetProgramFullPath
()
char
*
Py_GetProgramName
()
char
*
Py_GetPythonHome
()
char
*
Py_GetVersion
()
###############################################################################################
# sequence
###############################################################################################
int
PySequence_Check
(
object
)
# Always succeeds.
object
PySequence_Concat
(
object
,
object
)
int
PySequence_Contains
(
object
,
object
)
except
-
1
Py_ssize_t
PySequence_Count
(
object
,
object
)
except
-
1
int
PySequence_DelItem
(
object
,
Py_ssize_t
)
except
-
1
int
PySequence_DelSlice
(
object
,
Py_ssize_t
,
Py_ssize_t
)
except
-
1
object
PySequence_Fast
(
object
,
char
*
)
int
PySequence_Fast_GET_SIZE
(
object
)
object
PySequence_GetItem
(
object
,
Py_ssize_t
)
object
PySequence_GetSlice
(
object
,
Py_ssize_t
,
Py_ssize_t
)
object
PySequence_ITEM
(
object
,
int
)
int
PySequence_In
(
object
,
object
)
except
-
1
object
PySequence_InPlaceConcat
(
object
,
object
)
object
PySequence_InPlaceRepeat
(
object
,
Py_ssize_t
)
Py_ssize_t
PySequence_Index
(
object
,
object
)
except
-
1
Py_ssize_t
PySequence_Length
(
object
)
except
-
1
object
PySequence_List
(
object
)
object
PySequence_Repeat
(
object
,
Py_ssize_t
)
int
PySequence_SetItem
(
object
,
Py_ssize_t
,
object
)
except
-
1
int
PySequence_SetSlice
(
object
,
Py_ssize_t
,
Py_ssize_t
,
object
)
except
-
1
Py_ssize_t
PySequence_Size
(
object
)
except
-
1
object
PySequence_Tuple
(
object
)
###############################################################################################
# string
###############################################################################################
PyTypeObject
PyString_Type
# Pyrex cannot support resizing because you have no choice but to use
# realloc which may call free() on the object, and there's no way to tell
# Pyrex to "forget" reference counting for the object.
#int _PyString_Resize (object *, Py_ssize_t) except -1
char
*
PyString_AS_STRING
(
object
)
# Always succeeds.
object
PyString_AsDecodedObject
(
object
,
char
*
,
char
*
)
object
PyString_AsEncodedObject
(
object
,
char
*
,
char
*
)
object
PyString_AsEncodedString
(
object
,
char
*
,
char
*
)
char
*
PyString_AsString
(
object
)
except
NULL
int
PyString_AsStringAndSize
(
object
,
char
**
,
Py_ssize_t
*
)
except
-
1
int
PyString_Check
(
object
)
# Always succeeds.
int
PyString_CHECK_INTERNED
(
object
)
# Always succeeds.
int
PyString_CheckExact
(
object
)
# Always succeeds.
# XXX: Pyrex doesn't support pointer to a python object?
#void PyString_Concat (object *, object)
# XXX: Pyrex doesn't support pointer to a python object?
#void PyString_ConcatAndDel (object *, object)
object
PyString_Decode
(
char
*
,
int
,
char
*
,
char
*
)
object
PyString_DecodeEscape
(
char
*
,
int
,
char
*
,
int
,
char
*
)
object
PyString_Encode
(
char
*
,
int
,
char
*
,
char
*
)
object
PyString_Format
(
object
,
object
)
object
PyString_FromFormat
(
char
*
,
...)
object
PyString_FromFormatV
(
char
*
,
va_list
)
object
PyString_FromString
(
char
*
)
object
PyString_FromStringAndSize
(
char
*
,
Py_ssize_t
)
Py_ssize_t
PyString_GET_SIZE
(
object
)
# Always succeeds.
object
PyString_InternFromString
(
char
*
)
# XXX: Pyrex doesn't support pointer to a python object?
#void PyString_InternImmortal (object*)
# XXX: Pyrex doesn't support pointer to a python object?
#void PyString_InternInPlace (object*)
object
PyString_Repr
(
object
,
int
)
Py_ssize_t
PyString_Size
(
object
)
except
-
1
# Disgusting hack to access internal object values.
ctypedef
struct
PyStringObject
:
int
ob_refcnt
PyTypeObject
*
ob_type
int
ob_size
long
ob_shash
int
ob_sstate
char
*
ob_sval
###############################################################################################
# tuple
###############################################################################################
PyTypeObject
PyTuple_Type
# See PyString_Resize note about resizing.
#int _PyTuple_Resize (object*, Py_ssize_t) except -1
int
PyTuple_Check
(
object
)
# Always succeeds.
int
PyTuple_CheckExact
(
object
)
# Always succeeds.
Py_ssize_t
PyTuple_GET_SIZE
(
object
)
# Always succeeds.
object
PyTuple_GetSlice
(
object
,
Py_ssize_t
,
Py_ssize_t
)
object
PyTuple_New
(
Py_ssize_t
)
object
PyTuple_Pack
(
Py_ssize_t
,
...)
Py_ssize_t
PyTuple_Size
(
object
)
except
-
1
###############################################################################################
# Dangerous things!
# Do not use these unless you really, really know what you are doing.
###############################################################################################
void
Py_INCREF
(
object
)
void
Py_XINCREF
(
object
)
void
Py_DECREF
(
object
)
void
Py_XDECREF
(
object
)
void
Py_CLEAR
(
object
)
# XXX: Stolen reference.
void
PyTuple_SET_ITEM
(
object
,
Py_ssize_t
,
value
)
# XXX: Borrowed reference.
object
PyTuple_GET_ITEM
(
object
,
Py_ssize_t
)
# XXX: Borrowed reference.
object
PyTuple_GetItem
(
object
,
Py_ssize_t
)
# XXX: Stolen reference.
int
PyTuple_SetItem
(
object
,
Py_ssize_t
,
object
)
except
-
1
# XXX: Steals reference.
int
PyList_SetItem
(
object
,
Py_ssize_t
,
object
)
except
-
1
# XXX: Borrowed reference
object
PyList_GetItem
(
object
,
Py_ssize_t
)
# XXX: Borrowed reference, no NULL on error.
object
PyList_GET_ITEM
(
object
,
Py_ssize_t
)
# XXX: Stolen reference.
void
PyList_SET_ITEM
(
object
,
Py_ssize_t
,
object
)
# XXX: Borrowed reference.
object
PySequence_Fast_GET_ITEM
(
object
,
Py_ssize_t
)
# First parameter _must_ be a PyStringObject.
object
_PyString_Join
(
object
,
object
)
This diff is collapsed.
Click to expand it.
Cython/Includes/cpython/exc.pxd
View file @
c1e8b921
...
@@ -153,6 +153,13 @@ cdef extern from "Python.h":
...
@@ -153,6 +153,13 @@ cdef extern from "Python.h":
# PyErr_SetFromErrno(type);" when the system call returns an
# PyErr_SetFromErrno(type);" when the system call returns an
# error.
# error.
PyObject
*
PyErr_SetFromErrnoWithFilenameObject
(
object
type
,
object
filenameObject
)
except
NULL
# Similar to PyErr_SetFromErrno(), with the additional behavior
# that if filenameObject is not NULL, it is passed to the
# constructor of type as a third parameter.
# In the case of OSError exception, this is used to define
# the filename attribute of the exception instance.
PyObject
*
PyErr_SetFromErrnoWithFilename
(
object
type
,
char
*
filename
)
except
NULL
PyObject
*
PyErr_SetFromErrnoWithFilename
(
object
type
,
char
*
filename
)
except
NULL
# Return value: Always NULL. Similar to PyErr_SetFromErrno(),
# Return value: Always NULL. Similar to PyErr_SetFromErrno(),
# with the additional behavior that if filename is not NULL, it is
# with the additional behavior that if filename is not NULL, it is
...
...
This diff is collapsed.
Click to expand it.
docs/examples/tutorial/external/keyword_args_call.pyx
View file @
c1e8b921
...
@@ -4,4 +4,4 @@ cdef extern from "string.h":
...
@@ -4,4 +4,4 @@ cdef extern from "string.h":
cdef
char
*
data
=
"hfvcakdfagbcffvschvxcdfgccbcfhvgcsnfxjh"
cdef
char
*
data
=
"hfvcakdfagbcffvschvxcdfgccbcfhvgcsnfxjh"
cdef
char
*
pos
=
strstr
(
needle
=
'akd'
,
haystack
=
data
)
cdef
char
*
pos
=
strstr
(
needle
=
'akd'
,
haystack
=
data
)
print
(
pos
!=
NULL
)
print
(
pos
is
not
NULL
)
This diff is collapsed.
Click to expand it.
docs/examples/userguide/language_basics/open_file.pyx
0 → 100644
View file @
c1e8b921
from
libc.stdio
cimport
FILE
,
fopen
from
libc.stdlib
cimport
malloc
,
free
from
cpython.exc
cimport
PyErr_SetFromErrnoWithFilenameObject
def
open_file
():
cdef
FILE
*
p
p
=
fopen
(
"spam.txt"
,
"r"
)
if
p
is
NULL
:
PyErr_SetFromErrnoWithFilenameObject
(
OSError
,
"spam.txt"
)
...
def
allocating_memory
(
number
=
10
):
cdef
double
*
my_array
=
<
double
*>
malloc
(
number
*
sizeof
(
double
))
if
not
my_array
:
raise
MemoryError
()
...
free
(
my_array
)
This diff is collapsed.
Click to expand it.
docs/src/userguide/extension_types.rst
View file @
c1e8b921
...
@@ -421,7 +421,7 @@ compatible types.::
...
@@ -421,7 +421,7 @@ compatible types.::
cdef void* ptr
cdef void* ptr
def __dealloc__(self):
def __dealloc__(self):
if self.ptr
!=
NULL:
if self.ptr
is not
NULL:
free(self.ptr)
free(self.ptr)
@staticmethod
@staticmethod
...
...
This diff is collapsed.
Click to expand it.
docs/src/userguide/language_basics.rst
View file @
c1e8b921
...
@@ -428,12 +428,9 @@ returns ``NULL``. The except clause doesn't work that way; its only purpose is
...
@@ -428,12 +428,9 @@ returns ``NULL``. The except clause doesn't work that way; its only purpose is
for propagating Python exceptions that have already been raised, either by a Cython
for propagating Python exceptions that have already been raised, either by a Cython
function or a C function that calls Python/C API routines. To get an exception
function or a C function that calls Python/C API routines. To get an exception
from a non-Python-aware function such as :func:`fopen`, you will have to check the
from a non-Python-aware function such as :func:`fopen`, you will have to check the
return value and raise it yourself, for example
,:
:
return value and raise it yourself, for example:
cdef FILE* p
.. literalinclude:: ../../examples/userguide/language_basics/open_file.pyx
p = fopen("spam.txt", "r")
if p == NULL:
raise SpamError("Couldn't open the spam file")
.. _overriding_in_extension_types:
.. _overriding_in_extension_types:
...
...
This diff is collapsed.
Click to expand it.
docs/src/userguide/parallelism.rst
View file @
c1e8b921
...
@@ -131,7 +131,7 @@ It currently supports OpenMP, but later on more backends might be supported.
...
@@ -131,7 +131,7 @@ It currently supports OpenMP, but later on more backends might be supported.
with nogil, parallel():
with nogil, parallel():
local_buf = <int *> malloc(sizeof(int) * size)
local_buf = <int *> malloc(sizeof(int) * size)
if local_buf
==
NULL:
if local_buf
is
NULL:
abort()
abort()
# populate our local buffer in a sequential loop
# populate our local buffer in a sequential loop
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment