Commit Graph

708 Commits

Author SHA1 Message Date
Georg Brandl a4c8c47961 #22613: remaining corrections in extending/reference docs (thanks Jacques Ducasse) 2014-10-31 10:38:49 +01:00
Georg Brandl 93a56cdc37 Doc: fix default role usage (except in unittest mock docs) 2014-10-30 22:25:41 +01:00
Georg Brandl 35aa10be6c merge with 3.4 2014-10-11 15:04:20 +02:00
Georg Brandl e8ea355b72 Closes #21687: delimiter in Py_SetPath is platform dependent 2014-10-11 14:36:02 +02:00
Victor Stinner 8786ea36d0 (Merge 3.4) Closes #22580: Fix documentation of PyUnicode_Tailmatch()
The result type is Py_ssize_t (and not int).
2014-10-09 11:11:49 +02:00
Victor Stinner 13d3aa502d Closes #22580: Fix documentation of PyUnicode_Tailmatch()
The result type is Py_ssize_t (and not int).
2014-10-09 11:11:25 +02:00
Georg Brandl 92b47a4d0f merge with 3.4 2014-10-06 14:38:58 +02:00
Georg Brandl f6d6dc2e36 Clean up the docs of PyObject_IsSubclass and PyObject_IsInstance, and mention that they call the PEP 3119 methods. 2014-10-06 14:38:53 +02:00
Georg Brandl 4ae7839e19 merge with 3.4 2014-10-06 14:15:13 +02:00
Georg Brandl a920b6d762 Closes #22507: document that PyType_IsSubtype does not call __subclasscheck__. 2014-10-06 14:15:06 +02:00
Georg Brandl b65ff1d4f3 merge with 3.4 2014-10-06 12:58:36 +02:00
Georg Brandl 97435166aa Closes #22565: fix argument types of PyErr_WarnEx. 2014-10-06 12:58:00 +02:00
Benjamin Peterson 1fe8ada4e5 merge 3.4 (#18494) 2014-10-05 21:20:51 -04:00
Benjamin Peterson 1c262a6c75 PyObject not PyType (closes #18494) 2014-10-05 21:20:36 -04:00
Georg Brandl 31e34fe7a3 merge with 3.4 2014-10-05 16:38:25 +02:00
Georg Brandl 340c749a3a Closes #19477: remove outdated documentation of tp_print type object slot. 2014-10-05 16:38:02 +02:00
Antoine Pitrou 550ff723a0 Reorganize C API docs of the exception API 2014-09-30 21:56:10 +02:00
Antoine Pitrou 0676a406bf Issue #18711: Add a new `PyErr_FormatV` function, similar to `PyErr_Format` but accepting a `va_list` argument. 2014-09-30 21:16:27 +02:00
Victor Stinner 25e014bd91 Issue #18395, #22108: Update embedded Python examples to decode correctly
command line parameters: use Py_DecodeLocale() and PyUnicode_DecodeFSDefault().
2014-08-01 12:28:49 +02:00
Victor Stinner f6a271ae98 Issue #18395: Rename ``_Py_char2wchar()`` to :c:func:`Py_DecodeLocale`, rename
``_Py_wchar2char()`` to :c:func:`Py_EncodeLocale`, and document these
functions.
2014-08-01 12:28:48 +02:00
Victor Stinner 115171086a Issue #22018: On Windows, signal.set_wakeup_fd() now also supports sockets.
A side effect is that Python depends to the WinSock library.
2014-07-29 23:31:34 +02:00
Victor Stinner 1d8948e023 Backout 42ced0d023cd: oops, i didn't want to push this changeset :-/ 2014-07-24 22:51:05 +02:00
Victor Stinner d18ccd19f0 tets 2014-07-24 21:58:53 +02:00
Benjamin Peterson 0172b115db merge 3.4 (#17210) 2014-07-19 16:35:08 -07:00
Benjamin Peterson 102488b644 args doesn't need to be a tuple (closes #17210) 2014-07-19 16:34:33 -07:00
Andrew Svetlov a6237d822a Merge 3.4 2014-07-03 16:07:57 +03:00
Andrew Svetlov 0d50af45b6 Update docs about tp_richcompare 2014-07-03 16:07:17 +03:00
Stefan Krah d95224ceaf Merge 3.4. 2014-06-30 00:16:09 +02:00
Stefan Krah bb458dbe59 Issue #21778: Clarify use of flags if PyBuffer_FillInfo() is used inside a
getbufferproc().
2014-06-30 00:15:45 +02:00
Jesus Cea 7232986239 MERGE: Closes #21441: Reorder elements in documentation to match actual order in the code 2014-06-25 05:38:40 +02:00
Jesus Cea ca5c7153de MERGE: Closes #21441: Reorder elements in documentation to match actual order in the code 2014-06-25 05:38:06 +02:00
Jesus Cea e8ef8b7a20 Closes #21441: Reorder elements in documentation to match actual order in the code 2014-06-25 05:37:17 +02:00
Zachary Ware 83500dc7a5 Merge quote quashing. 2014-06-06 09:14:33 -05:00
Zachary Ware 780b585fbc Quash extraneous quote. 2014-06-06 09:13:18 -05:00
Victor Stinner d8f0d922d5 Issue #21233: Rename the C structure "PyMemAllocator" to "PyMemAllocatorEx" to
make sure that the code using it will be adapted for the new "calloc" field
(instead of crashing).
2014-06-02 21:57:10 +02:00
Eric Snow b7f1be309e Merge from 3.4 (for #21226). 2014-05-12 18:25:00 -06:00
Eric Snow 08197a4616 Issue #21226: Set all attrs in PyImport_ExecCodeModuleObject. 2014-05-12 17:54:55 -06:00
Victor Stinner db067af12a Issue #21233: Add new C functions: PyMem_RawCalloc(), PyMem_Calloc(),
PyObject_Calloc(), _PyObject_GC_Calloc(). bytes(int) and bytearray(int) are now
using ``calloc()`` instead of ``malloc()`` for large objects which is faster
and use less memory (until the bytearray buffer is filled with data).
2014-05-02 22:31:14 +02:00
Antoine Pitrou 63aeb71909 Issue #9307: document the various Py_TPFLAGS_*_SUBCLASS flags. Patch by Yury V. Zaytsev. 2014-04-29 01:39:26 +02:00
Antoine Pitrou f9f54a2f5f Issue #9307: document the various Py_TPFLAGS_*_SUBCLASS flags. Patch by Yury V. Zaytsev. 2014-04-29 01:39:03 +02:00
Benjamin Peterson d51374ed78 PEP 465: a dedicated infix operator for matrix multiplication (closes #21176) 2014-04-09 23:55:56 -04:00
Benjamin Peterson ce0700ae7a PySequence_Fast generally returns a list not a tuple (closes #16395) 2014-04-08 10:48:36 -04:00
Benjamin Peterson f0f7844f38 the name of the slot of nb_multiply not nb_mul 2014-04-08 10:44:30 -04:00
Brett Cannon 18fc4e70f3 Issue #20942: PyImport_ImportFrozenModuleObject() no longer sets
__file__.

This causes _frozen_importlib to no longer have __file__ set as well
as any frozen module imported using imp.init_frozen() (which is
deprecated).
2014-04-04 10:01:46 -04:00
Andrew Svetlov 08af00047b Get rid of deprecated IOError in the doc 2014-04-01 01:13:30 +03:00
Georg Brandl 1c669c1154 Closes #18456: Doc fix: PyDict_Update only works with dict-like objects, not key-value sequences. Patch by priyapappachan. 2014-03-25 09:34:30 +01:00
Georg Brandl df48b97855 Fix a few scoping issues with versionadded/versionchanged directives. 2014-03-24 09:06:18 +01:00
Larry Hastings 3732ed2414 Merge in all documentation changes since branching 3.4.0rc1. 2014-03-15 21:13:56 -07:00
Éric Araujo fa5e6e4773 Fix note markup (#16805).
Patch by Tshepang Lekhonkhobe, reviewed by Georg Brandl.
2014-03-12 19:51:00 -04:00
Zachary Ware 7bbd101bb1 Fix several C-API doc typos caught by tomo cocoa on docs@.
The signature and description of PyException_SetCause now use "cause"
rather than "ctx" to match the code.
2014-02-26 10:40:38 -06:00
Larry Hastings 8f9f0f12e8 Issue #20517: Removed unnecessary new (short-lived) functions from PyErr. 2014-02-10 03:43:57 -08:00
Larry Hastings b082731fbb Issue #20517: Functions in the os module that accept two filenames
now register both filenames in the exception on failure.
This required adding new C API functions allowing OSError exceptions
to reference two filenames instead of one.
2014-02-09 22:05:19 -08:00
Nick Coghlan c0bc0b46bb Issue #20500: Note other public APIs with the new assertion 2014-02-09 12:00:01 +10:00
Nick Coghlan 3d7b3641d3 Note the new debug assertion in PyObject_Str 2014-02-09 10:57:34 +10:00
Nick Coghlan aa029dad50 Tweaks to What's New and some referenced docs 2014-02-09 10:10:24 +10:00
Martin v. Löwis ca7b04644c Issue #17162: Add PyType_GetSlot. 2014-02-04 09:33:05 +01:00
Zachary Ware 28479d8c7d Issue #20460: Merge with 3.3 2014-01-31 12:06:48 -06:00
Zachary Ware a479b7505e Issue #20460: Render 'bytes' as a class, not a function.
Patch by OSAMU NAKAMURA.
2014-01-31 12:06:14 -06:00
Nick Coghlan 77b286b2cc Close #20105: set __traceback__ when chaining exceptions in C 2014-01-27 00:53:38 +10:00
Larry Hastings 2a727916c5 Issue #20226: Major improvements to Argument Clinic.
* You may now specify an expression as the default value for a
  parameter!  Example: "sys.maxsize - 1".  This support is
  intentionally quite limited; you may only use values that
  can be represented as static C values.
* Removed "doc_default", simplified support for "c_default"
  and "py_default".  (I'm not sure we still even need
  "py_default", but I'm leaving it in for now in case a
  use presents itself.)
* Parameter lines support a trailing '\\' as a line
  continuation character, allowing you to break up long lines.
* The argument parsing code generated when supporting optional
  groups now uses PyTuple_GET_SIZE instead of PyTuple_GetSize,
  leading to a 850% speedup in parsing.  (Just kidding, this
  is an unmeasurable difference.)
* A bugfix for the recent regression where the generated
  prototype from pydoc for builtins would be littered with
  unreadable "=<object ...>"" default values for parameters
  that had no default value.
* Converted some asserts into proper failure messages.
* Many doc improvements and fixes.
2014-01-16 11:32:01 -08:00
Victor Stinner e8453bc136 C API doc: try to group concrete objects 2013-11-07 22:05:48 +01:00
Serhiy Storchaka c679227e31 Issue #1772673: The type of `char*` arguments now changed to `const char*`. 2013-10-19 21:03:34 +03:00
Nick Coghlan 1805a62f1f Issue #16129: Py_SetStandardStreamEncoding cleanups
- don't call PyErr_NoMemory with interpreter is not initialised
- note that it's OK to call _PyMem_RawStrDup here
- don't include this in the limited API
- capitalise "IO"
- be explicit that a non-zero return indicates an error
- include versionadded marker in docs
2013-10-18 23:11:47 +10:00
Nick Coghlan 7d270ee05d Issue #16129: Add `Py_SetStandardStreamEncoding`
This new pre-initialization API allows embedding
applications like Blender to force a particular
encoding and error handler for the standard IO streams.

Also refactors Modules/_testembed.c to let us start
testing multiple embedding scenarios.

(Initial patch by Bastien Montagne)
2013-10-17 22:35:35 +10:00
Georg Brandl 7c11e52f7e merge with 3.3 2013-10-12 20:01:14 +02:00
Georg Brandl 5c01d99c12 Introduce support for documenting which C API elements are not part of the stable/limited API. 2013-10-12 19:54:30 +02:00
Georg Brandl a636c8e150 merge with 3.3 2013-10-12 19:03:47 +02:00
Georg Brandl ae30a813a9 Closes #13833: document PyStructSequence C-API functions. 2013-10-12 19:03:43 +02:00
Victor Stinner 2fe9bac4dc Close #16742: Fix misuse of memory allocations in PyOS_Readline()
The GIL must be held to call PyMem_Malloc(), whereas PyOS_Readline() releases
the GIL to read input.

The result of the C callback PyOS_ReadlineFunctionPointer must now be a string
allocated by PyMem_RawMalloc() or PyMem_RawRealloc() (or NULL if an error
occurred), instead of a string allocated by PyMem_Malloc() or PyMem_Realloc().

Fixing this issue was required to setup a hook on PyMem_Malloc(), for example
using the tracemalloc module.

PyOS_Readline() copies the result of PyOS_ReadlineFunctionPointer() into a new
buffer allocated by PyMem_Malloc(). So the public API of PyOS_Readline() does
not change.
2013-10-10 16:18:20 +02:00
Victor Stinner 6cf185dc06 Issue #18874: _PyObject_Malloc/Realloc/Free() now falls back on
_PyMem_RawMalloc/Realloc/Free, instead of _PyMem_Malloc/Realloc/Free.  So it
becomes possible to use the fast pymalloc allocator for the PYMEM_DOMAIN_MEM
domain (PyMem_Malloc/Realloc/Free functions).
2013-10-10 15:58:42 +02:00
Raymond Hettinger 5ed3bc9adb merge 2013-10-09 22:43:30 -07:00
Raymond Hettinger 8ee7708c7f Issue #19005: Fix documentation for PyIter_Next(). 2013-10-09 22:42:46 -07:00
Serhiy Storchaka d51f42372b Issue 19195: Improved cross-references in C API documentation. 2013-10-09 13:26:57 +03:00
Serhiy Storchaka 0b68a2d675 Issue 19195: Improved cross-references in C API documentation. 2013-10-09 13:26:17 +03:00
Antoine Pitrou c8fb4fc96e Add a "skull and crossbones" to Py_AddPendingCall. 2013-09-30 21:38:49 +02:00
Antoine Pitrou 1a67bee701 Add a "skull and crossbones" to Py_AddPendingCall. 2013-09-30 21:35:44 +02:00
Victor Stinner 14e461d5b9 Close #11619: The parser and the import machinery do not encode Unicode
filenames anymore on Windows.
2013-08-26 22:28:21 +02:00
Serhiy Storchaka bbbf191707 Issue #18743: Fix references to non-existant "StringIO" module. 2013-08-17 00:11:54 +03:00
Serhiy Storchaka e79be877df Issue #18743: Fix references to non-existant "StringIO" module. 2013-08-17 00:09:55 +03:00
Christian Heimes ad73a9cf97 Issue #16400: Add command line option for isolated mode.
-I

    Run Python in isolated mode. This also implies -E and -s. In isolated mode
    sys.path contains neither the script’s directory nor the user’s
    site-packages directory. All PYTHON* environment variables are ignored,
    too. Further restrictions may be imposed to prevent the user from
    injecting malicious code.
2013-08-10 16:36:18 +02:00
Eli Bendersky 562d9cbfe9 Issue #18668: Further clarify m_size setting for non-negative values 2013-08-10 05:58:10 -07:00
Eli Bendersky 43694a50ab Issue #18668: Further clarify m_size setting for non-negative values 2013-08-10 05:57:27 -07:00
Serhiy Storchaka 0738aff368 Fix a typo in PyUnicode_CopyCharacters() documentation. 2013-08-08 16:49:45 +03:00
Serhiy Storchaka cdd0279b0b Fix a typo in PyUnicode_CopyCharacters() documentation. 2013-08-08 16:47:43 +03:00
Eli Bendersky 7533137f4e Closing #18668: Properly document setting m_size in PyModuleDef 2013-08-07 05:54:28 -07:00
Eli Bendersky 0d2d2b8393 Issue #18668: Properly document setting m_size in PyModuleDef 2013-08-07 05:52:20 -07:00
Antoine Pitrou a68cbfa556 Issue #18589: fix hyperlinking of type slots (tp_*) 2013-08-01 21:14:43 +02:00
Antoine Pitrou 39668f57f4 Issue #18589: fix hyperlinking of type slots (tp_*) 2013-08-01 21:12:45 +02:00
Antoine Pitrou 796564c27b Issue #18112: PEP 442 implementation (safe object finalization). 2013-07-30 19:59:21 +02:00
Victor Stinner 0507bf56f0 Issue #3329: Implement the PEP 445
Add new enum:

* PyMemAllocatorDomain

Add new structures:

* PyMemAllocator
* PyObjectArenaAllocator

Add new functions:

* PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree()
* PyMem_GetAllocator(), PyMem_SetAllocator()
* PyObject_GetArenaAllocator(), PyObject_SetArenaAllocator()
* PyMem_SetupDebugHooks()

Changes:

* PyMem_Malloc()/PyObject_Realloc() now always call malloc()/realloc(), instead
  of calling PyObject_Malloc()/PyObject_Realloc() in debug mode.
* PyObject_Malloc()/PyObject_Realloc() now falls back to
  PyMem_Malloc()/PyMem_Realloc() for allocations larger than 512 bytes.
* Redesign debug checks on memory block allocators as hooks, instead of using C
  macros
2013-07-07 02:05:46 +02:00
Brett Cannon 679ecb565b Issue #15767: back out 8a0ed9f63c6e, finishing the removal of
ModuleNotFoundError.
2013-07-04 17:51:50 -04:00
Brett Cannon 82da8886cc Issue #15767: Revert 3a50025f1900 for ModuleNotFoundError 2013-07-04 17:48:16 -04:00
Victor Stinner 36f01ad9ac Revert changeset 6661a8154eb3: Issue #3329: Add new APIs to customize memory allocators
The new API require more discussion.
2013-06-15 03:37:01 +02:00
Victor Stinner 4d7056258b Issue #3329: Add new APIs to customize memory allocators
* Add a new PyMemAllocators structure
* New functions:

  - PyMem_RawMalloc(), PyMem_RawRealloc(), PyMem_RawFree(): GIL-free memory
    allocator functions
  - PyMem_GetRawAllocators(), PyMem_SetRawAllocators()
  - PyMem_GetAllocators(), PyMem_SetAllocators()
  - PyMem_SetupDebugHooks()
  - _PyObject_GetArenaAllocators(), _PyObject_SetArenaAllocators()

* Add unit test for PyMem_Malloc(0) and PyObject_Malloc(0)
* Add unit test for new get/set allocators functions
* PyObject_Malloc() now falls back on PyMem_Malloc() instead of malloc() if
  size is bigger than SMALL_REQUEST_THRESHOLD, and PyObject_Realloc() falls
  back on PyMem_Realloc() instead of realloc()
* PyMem_Malloc() and PyMem_Realloc() now always call malloc() and realloc(),
  instead of calling PyObject_Malloc() and PyObject_Realloc() in debug mode
2013-06-15 00:37:46 +02:00
Brett Cannon 8f5ac5106e Issue #15767: Touch up ModuleNotFoundError usage by import.
Forgot to raise ModuleNotFoundError when None is found in sys.modules.
This led to introducing the C function PyErr_SetImportErrorSubclass()
to make setting ModuleNotFoundError easier.

Also updated the reference docs to mention ModuleNotFoundError
appropriately. Updated the docs for ModuleNotFoundError to mention the
None in sys.modules case.

Lastly, it was noticed that PyErr_SetImportError() was not setting an
exception when returning None in one case. That issue is now fixed.
2013-06-12 23:29:18 -04:00
Brett Cannon b1611e2772 Issue #15767: Introduce ModuleNotFoundError, a subclass of
ImportError.

The exception is raised by import when a module could not be found.
Technically this is defined as no viable loader could be found for the
specified module. This includes ``from ... import`` statements so that
the module usage is consistent for all situations where import
couldn't find what was requested.

This should allow for the common idiom of::

  try:
    import something
  except ImportError:
    pass

to be updated to using ModuleNotFoundError and not accidentally mask
ImportError messages that should propagate (e.g. issues with a
loader).

This work was driven by the fact that the ``from ... import``
statement needed to be able to tell the difference between an
ImportError that simply couldn't find a module (and thus silence the
exception so that ceval can raise it) and an ImportError that
represented an actual problem.
2013-06-12 16:59:46 -04:00
Serhiy Storchaka 1cfebc73e0 Issue #9369: The types of `char*` arguments of PyObject_CallFunction() and
PyObject_CallMethod() now changed to `const char*`.
Based on patches by Jörg Müller and Lars Buitinck.
2013-05-29 18:50:54 +03:00
Andrew Kuchling 1e170bae71 #1554133: Document PyOS_InputHook, PyOS_ReadlineFunctionPointer 2013-05-28 21:48:28 -04:00
Victor Stinner 8cecc8c262 Issue #7330: Implement width and precision (ex: "%5.3s") for the format string
of PyUnicode_FromFormat() function, original patch written by Ysj Ray.
2013-05-06 23:11:54 +02:00
Brett Cannon 4c14b5de1c #17115,17116: Have modules initialize the __package__ and __loader__
attributes to None.

The long-term goal is for people to be able to rely on these
attributes existing and checking for None to see if they have been
set. Since import itself sets these attributes when a loader does not
the only instances when the attributes are None are from someone
overloading __import__() and not using a loader or someone creating a
module from scratch.

This patch also unifies module initialization. Before you could have
different attributes with default values depending on how the module
object was created. Now the only way to not get the same default set
of attributes is to circumvent initialization by calling
ModuleType.__new__() directly.
2013-05-04 13:56:58 -04:00