summaryrefslogtreecommitdiffstats
path: root/Python/import.c
Commit message (Collapse)AuthorAgeFilesLines
* bpo-30876: Relative import from unloaded package now reimports the package ↵Serhiy Storchaka2017-07-121-7/+0
| | | | | | | | | (#2639) instead of failing with SystemError. Relative import from non-package now fails with ImportError rather than SystemError.
* bpo-30891: Fix importlib _find_and_load() race condition (#2646)Victor Stinner2017-07-101-4/+0
| | | | | | * Rewrite importlib _get_module_lock(): it is now responsible to hold the imp lock directly. * _find_and_load() now holds the module lock to check if name is in sys.modules to prevent a race condition
* bpo-30814: Fixed a race condition when import a submodule from a package. ↵Serhiy Storchaka2017-07-061-16/+1
| | | | (#2580)
* bpo-30626: Fix error handling in PyImport_Import(). (#2103)Serhiy Storchaka2017-06-151-2/+6
| | | | In rare circumstances PyImport_Import() could return NULL without raising an error.
* Doc nits for bpo-16500 (#1841)Antoine Pitrou2017-05-281-1/+1
| | | | | | * Doc nits for bpo-16500 * Fix more references
* bpo-6532: Make the thread id an unsigned integer. (#781)Serhiy Storchaka2017-03-231-10/+11
| | | | | | | | | | | * bpo-6532: Make the thread id an unsigned integer. From C API side the type of results of PyThread_start_new_thread() and PyThread_get_thread_ident(), the id parameter of PyThreadState_SetAsyncExc(), and the thread_id field of PyThreadState changed from "long" to "unsigned long". * Restore a check in thread_get_ident().
* Use Py_RETURN_FALSE/Py_RETURN_TRUE rather than ↵Serhiy Storchaka2017-03-081-1/+1
| | | | PyBool_FromLong(0)/PyBool_FromLong(1). (#567)
* Removed redundant Argument Clinic directives.Serhiy Storchaka2017-02-041-5/+0
|
* Issue #28999: Use Py_RETURN_NONE, Py_RETURN_TRUE and Py_RETURN_FALSE whereverSerhiy Storchaka2017-01-231-6/+3
| | | | possible. Patch is writen with Coccinelle.
* Use _PyObject_CallMethodIdObjArgs()Victor Stinner2016-12-091-1/+1
| | | | | | | | | Issue #28915: Replace _PyObject_CallMethodId() with _PyObject_CallMethodIdObjArgs() in various modules when the format string was only made of "O" formats, PyObject* arguments. _PyObject_CallMethodIdObjArgs() avoids the creation of a temporary tuple and doesn't have to parse a format string.
* Backed out changeset b9c9691c72c5Victor Stinner2016-12-041-1/+1
| | | | | | Issue #28858: The change b9c9691c72c5 introduced a regression. It seems like _PyObject_CallArg1() uses more stack memory than PyObject_CallFunctionObjArgs().
* Replace PyObject_CallFunctionObjArgs() with fastcallVictor Stinner2016-12-011-1/+1
| | | | | | | | | | | | | | * PyObject_CallFunctionObjArgs(func, NULL) => _PyObject_CallNoArg(func) * PyObject_CallFunctionObjArgs(func, arg, NULL) => _PyObject_CallArg1(func, arg) PyObject_CallFunctionObjArgs() allocates 40 bytes on the C stack and requires extra work to "parse" C arguments to build a C array of PyObject*. _PyObject_CallNoArg() and _PyObject_CallArg1() are simpler and don't allocate memory on the C stack. This change is part of the fastcall project. The change on listsort() is related to the issue #23507.
* Added the const qualifier to char* variables that refer to readonly internalSerhiy Storchaka2016-11-201-1/+1
| | | | UTF-8 represenatation of Unicode objects.
* Issue #28701: Replace PyUnicode_CompareWithASCIIString with ↵Serhiy Storchaka2016-11-161-13/+7
|\ | | | | | | | | | | _PyUnicode_EqualToASCIIString. The latter function is more readable, faster and doesn't raise exceptions.
| * Issue #28701: Replace PyUnicode_CompareWithASCIIString with ↵Serhiy Storchaka2016-11-161-13/+7
| | | | | | | | | | | | _PyUnicode_EqualToASCIIString. The latter function is more readable, faster and doesn't raise exceptions.
| * [backport to 3.5] - issue26896 - Disambiguate uses of "importer" with "finder".Senthil Kumaran2016-09-071-3/+4
| |
* | Fix potential NULL pointer dereference in _imp_create_builtinChristian Heimes2016-09-081-0/+4
| | | | | | | | | | | | | | PyModule_GetDef() can return NULL. Let's check the return value properly like in the other five cases. CID 1299590
* | Issue #27911: Remove some unnecessary error checks in import.c.Brett Cannon2016-09-081-6/+2
| | | | | | | | Thanks to Xiang Zhang for the patch.
* | Issue #15767: Use ModuleNotFoundError.Eric Snow2016-09-071-1/+2
| |
* | MergeRaymond Hettinger2016-08-311-1/+1
|\ \ | |/
| * Issue #27909: Fix INCREF for possible NULL valueRaymond Hettinger2016-08-311-1/+1
| |
* | Issue #22557: Now importing already imported modules is up to 2.5 times faster.Serhiy Storchaka2016-08-021-218/+177
| |
* | Issue #27419: Added temporary workaround for subinterpreters.Serhiy Storchaka2016-07-171-1/+4
|\ \ | |/
| * Issue #27419: Added temporary workaround for subinterpreters.Serhiy Storchaka2016-07-171-1/+4
| |
* | Issue #27419: Standard __import__() no longer look up "__import__" in globalsSerhiy Storchaka2016-07-171-8/+4
|\ \ | |/ | | | | | | | | or builtins for importing submodules or "from import". Fixed a crash if raise a warning about unabling to resolve package from __spec__ or __package__.
| * Issue #27419: Standard __import__() no longer look up "__import__" in globalsSerhiy Storchaka2016-07-171-8/+4
| | | | | | | | | | or builtins for importing submodules or "from import". Fixed handling an error of non-string package name.
* | Issue #26896: Disambiguate uses of "importer" with "finder".Brett Cannon2016-07-081-3/+4
| | | | | | | | Thanks to Oren Milman for the patch.
* | - Issue #27332: Fixed the type of the first argument of module-level functionsSerhiy Storchaka2016-07-071-28/+28
|\ \ | |/ | | | | generated by Argument Clinic. Patch by Petr Viktorin.
| * Issue #27332: Fixed the type of the first argument of module-level functionsSerhiy Storchaka2016-07-071-28/+28
| | | | | | | | generated by Argument Clinic. Patch by Petr Viktorin.
* | Cleanup import.cVictor Stinner2016-05-201-39/+28
| | | | | | | | | | | | | | | | | | * Replace PyUnicode_RPartition() with PyUnicode_FindChar() and PyUnicode_Substring() to avoid the creation of a temporary tuple. * Use PyUnicode_FromFormat() to build a string and avoid the single_dot ('.') singleton Thanks Serhiy Storchaka for your review.
* | fs_unicode_converter is no longer used.Serhiy Storchaka2016-04-141-8/+0
| |
* | Issue #22570: Renamed Py_SETREF to Py_XSETREF.Serhiy Storchaka2016-04-061-2/+2
|\ \ | |/
* | Issue #25698: Prevent possible replacing imported module with the empty oneSerhiy Storchaka2016-02-101-2/+6
|\ \ | |/ | | | | if the stack is too deep.
| * Issue #25698: Prevent possible replacing imported module with the empty oneSerhiy Storchaka2016-02-101-2/+6
| | | | | | | | if the stack is too deep.
* | Issue #18018: Raise an ImportError if a relative import is attemptedBrett Cannon2016-01-231-3/+8
| | | | | | | | | | | | | | | | with no known parent package. Previously SystemError was raised if the parent package didn't exist (e.g., __package__ was set to ''). Thanks to Florent Xicluna and Yongzhi Pan for reporting the issue.
* | Issue #25791: Warn when __package__ != __spec__.parent.Brett Cannon2016-01-221-39/+58
| | | | | | | | | | | | | | | | | | In a previous change, __spec__.parent was prioritized over __package__. That is a backwards-compatibility break, but we do eventually want __spec__ to be the ground truth for module details. So this change reverts the change in semantics and instead raises an ImportWarning when __package__ != __spec__.parent to give people time to adjust to using spec objects.
* | Issue #25791: Raise an ImportWarning when __spec__ or __package__ areBrett Cannon2016-01-151-21/+43
| | | | | | | | | | | | | | | | not defined for a relative import. This is the start of work to try and clean up import semantics to rely more on a module's spec than on the myriad attributes that get set on a module. Thanks to Rose Ames for the patch.
* | Issue #20440: Cleaning up the code by using Py_SETREF.Serhiy Storchaka2016-01-051-7/+3
| |
* | Issue #25923: Added the const qualifier to static constant arrays.Serhiy Storchaka2015-12-251-3/+3
|/
* Rebuilt Clinic generated code.Larry Hastings2015-08-251-1/+1
|
* Issue #24769: Interpreter now starts properly when dynamic loadingLarry Hastings2015-08-251-23/+46
| | | | is disabled. Patch by Petr Viktorin.
* Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),Serhiy Storchaka2015-05-301-1/+5
|\ | | | | | | | | PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() to check for and handle errors correctly.
| * Issue #24115: Update uses of PyObject_IsTrue(), PyObject_Not(),Serhiy Storchaka2015-05-301-1/+5
| | | | | | | | | | PyObject_IsInstance(), PyObject_RichCompareBool() and _PyDict_Contains() to check for and handle errors correctly.
* | PEP 489: Multi-phase extension module initializationNick Coghlan2015-05-231-66/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Known limitations of the current implementation: - documentation changes are incomplete - there's a reference leak I haven't tracked down yet The leak is most visible by running: ./python -m test -R3:3 test_importlib However, you can also see it by running: ./python -X showrefcount Importing the array or _testmultiphase modules, and then deleting them from both sys.modules and the local namespace shows significant increases in the total number of active references each cycle. By contrast, with _testcapi (which continues to use single-phase initialisation) the global refcounts stabilise after a couple of cycles.
* | Issue #23911: Move path-based bootstrap code to a separate frozen module.Eric Snow2015-05-031-9/+27
| |
* | Issue #23998: PyImport_ReInitLock() now checks for lock allocation errorChristian Heimes2015-04-191-1/+5
|\ \ | |/
| * Issue #23998: PyImport_ReInitLock() now checks for lock allocation errorChristian Heimes2015-04-191-1/+5
| |\
| | * Issue #23998: PyImport_ReInitLock() now checks for lock allocation errorChristian Heimes2015-04-191-1/+5
| | |
* | | Issue #23944: Argument Clinic now wraps long impl prototypes at column 78.Larry Hastings2015-04-141-4/+6
| | |
* | | Issue #23501: Argumen Clinic now generates code into separate files by default.Serhiy Storchaka2015-04-031-2/+1
| | |