Skip to content
Merged
Changes from 1 commit
Commits
Show all changes
50 commits
Select commit Hold shift + click to select a range
6f0b1fe
print durations
giampaolo Mar 10, 2019
2b16e57
don't print duration if not verbose
giampaolo Mar 10, 2019
49aa791
add cmdline arg (bool) to toggle durations
giampaolo Mar 10, 2019
4830509
make --durations arg accept a mandatory int value
giampaolo Mar 10, 2019
f8a49d3
print durations
giampaolo Mar 10, 2019
875e93d
hide durations < 0.000
giampaolo Mar 10, 2019
59dfc67
minor cosmetic changes
giampaolo Mar 10, 2019
c92bc24
don't use bare except clause
giampaolo Mar 10, 2019
d88087e
add a public addDuration method to TestResult
giampaolo Mar 10, 2019
1952ffa
fix TypeError occurring on skip
giampaolo Mar 10, 2019
9f308dc
Merge branch 'master' into unittest-durations
giampaolo Mar 10, 2019
226288a
fix unit tests
giampaolo Mar 11, 2019
89e915f
add a couple of tests for runner
giampaolo Mar 11, 2019
968c3af
don't add durations multiple times + write durations test
giampaolo Mar 11, 2019
a8b38e9
don't print header if there are no durations
giampaolo Mar 11, 2019
f95edc7
small refactoring
giampaolo Mar 11, 2019
9beb931
add doc
giampaolo Mar 11, 2019
86fc3f8
update doc
giampaolo Mar 11, 2019
a1f5e49
improve test
giampaolo Mar 11, 2019
9d98536
use example from stdlib
giampaolo Mar 11, 2019
7223bc9
ignore me
giampaolo Mar 11, 2019
3c4af91
merge from master
giampaolo Apr 26, 2019
3f4d638
address PR review (amongst which, show slowest tests firsts)
giampaolo Apr 26, 2019
b3bb3e0
update doc samples
giampaolo Apr 26, 2019
a93b460
fix doc syntax
giampaolo Apr 29, 2019
0a6bcbb
Merge branch 'master' into unittest-durations
giampaolo Apr 29, 2019
961ba55
merge from master
giampaolo Feb 15, 2020
d0330f6
update doc
giampaolo Feb 15, 2020
9935349
update doc
giampaolo Feb 15, 2020
f4cd001
rephrasing
giampaolo Feb 16, 2020
4471928
forgot pdb line
giampaolo Feb 16, 2020
6412439
update whatsnew
giampaolo May 26, 2020
1a9c098
update code to latest main branch
giampaolo Nov 24, 2022
c917206
updated Misc/NEWS entry
giampaolo Nov 24, 2022
5a4e21b
merge from main
giampaolo Nov 24, 2022
2ffe250
address review comments
giampaolo Nov 24, 2022
2fdfe1d
add test
giampaolo Nov 24, 2022
c0e137e
no longer print individual test durations
giampaolo Nov 24, 2022
86a094c
remove duplicated test
giampaolo Nov 24, 2022
3649013
calculate duration time after cleanup methods
giampaolo Nov 24, 2022
3217b89
reword doc / cmdline help
giampaolo Nov 24, 2022
b2b37ad
move TextRunner test in test_runner.py
giampaolo Nov 24, 2022
2b7f3dc
improve unit test
giampaolo Nov 24, 2022
cfd65b0
remove code which is no longer used
giampaolo Nov 24, 2022
4772f96
Merge branch 'main' into unittest-durations
giampaolo Nov 24, 2022
3ea0be8
Merge branch 'main' into unittest-durations
giampaolo Nov 28, 2022
19f9c4b
address @ezio-melotti code review comments
giampaolo Nov 28, 2022
ed5f317
Merge branch 'main' into unittest-durations
giampaolo Apr 2, 2023
e6d3b58
Update 3.12.rst
giampaolo Apr 2, 2023
90a3d70
Update 3.12.rst
giampaolo Apr 2, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
merge from master
  • Loading branch information
giampaolo committed Apr 26, 2019
commit 3c4af91c1e7c02561efa752885011ff642725bd8
99 changes: 99 additions & 0 deletions Doc/whatsnew/3.8.rst
Original file line number Diff line number Diff line change
Expand Up @@ -850,6 +850,105 @@ Changes in the Python API
:attr:`unittest.TestResult.collectedDurations` attribute.
(Contributed by Giampaolo Rodola in :issue:`4080`)

* :func:`~os.path.expanduser` on Windows now prefers the :envvar:`USERPROFILE`
environment variable and does not use :envvar:`HOME`, which is not normally
set for regular user accounts.

.. _bpo-36085-whatsnew:

* DLL dependencies for extension modules and DLLs loaded with :mod:`ctypes` on
Windows are now resolved more securely. Only the system paths, the directory
containing the DLL or PYD file, and directories added with
:func:`~os.add_dll_directory` are searched for load-time dependencies.
Specifically, :envvar:`PATH` and the current working directory are no longer
used, and modifications to these will no longer have any effect on normal DLL
resolution. If your application relies on these mechanisms, you should check
for :func:`~os.add_dll_directory` and if it exists, use it to add your DLLs
directory while loading your library. Note that Windows 7 users will need to
ensure that Windows Update KB2533625 has been installed (this is also verified
by the installer).
(See :issue:`36085`.)

* The header files and functions related to pgen have been removed after its
replacement by a pure Python implementation. (Contributed by Pablo Galindo
in :issue:`36623`.)


Changes in the C API
--------------------

* On Unix, C extensions are no longer linked to libpython. When Python is
embedded, ``libpython`` must not be loaded with ``RTLD_LOCAL``, but
``RTLD_GLOBAL`` instead. Previously, using ``RTLD_LOCAL``, it was already not
possible to load C extensions which were not linked to ``libpython``, like C
extensions of the standard library built by the ``*shared*`` section of
``Modules/Setup``.

* Use of ``#`` variants of formats in parsing or building value (e.g.
:c:func:`PyArg_ParseTuple`, :c:func:`Py_BuildValue`, :c:func:`PyObject_CallFunction`,
etc.) without ``PY_SSIZE_T_CLEAN`` defined raises ``DeprecationWarning`` now.
It will be removed in 3.10 or 4.0. Read :ref:`arg-parsing` for detail.
(Contributed by Inada Naoki in :issue:`36381`.)

* Instances of heap-allocated types (such as those created with
:c:func:`PyType_FromSpec`) hold a reference to their type object.
Increasing the reference count of these type objects has been moved from
:c:func:`PyType_GenericAlloc` to the more low-level functions,
:c:func:`PyObject_Init` and :c:func:`PyObject_INIT`.
This makes types created through :c:func:`PyType_FromSpec` behave like
other classes in managed code.

Statically allocated types are not affected.

For the vast majority of cases, there should be no side effect.
However, types that manually increase the reference count after allocating
an instance (perhaps to work around the bug) may now become immortal.
To avoid this, these classes need to call Py_DECREF on the type object
during instance deallocation.

To correctly port these types into 3.8, please apply the following
changes:

* Remove :c:macro:`Py_INCREF` on the type object after allocating an
instance - if any.
This may happen after calling :c:func:`PyObject_New`,
:c:func:`PyObject_NewVar`, :c:func:`PyObject_GC_New`,
:c:func:`PyObject_GC_NewVar`, or any other custom allocator that uses
:c:func:`PyObject_Init` or :c:func:`PyObject_INIT`.

Example::

static foo_struct *
foo_new(PyObject *type) {
foo_struct *foo = PyObject_GC_New(foo_struct, (PyTypeObject *) type);
if (foo == NULL)
return NULL;
#if PY_VERSION_HEX < 0x03080000
// Workaround for Python issue 35810; no longer necessary in Python 3.8
PY_INCREF(type)
#endif
return foo;
}

* Ensure that all custom ``tp_dealloc`` functions of heap-allocated types
decrease the type's reference count.

Example::

static void
foo_dealloc(foo_struct *instance) {
PyObject *type = Py_TYPE(instance);
PyObject_GC_Del(instance);
#if PY_VERSION_HEX >= 0x03080000
// This was not needed before Python 3.8 (Python issue 35810)
Py_DECREF(type);
#endif
}

(Contributed by Eddie Elizondo in :issue:`35810`.)

>>>>>>> master
Comment thread
giampaolo marked this conversation as resolved.
Outdated

CPython bytecode changes
------------------------

Expand Down
You are viewing a condensed version of this merge commit. You can view the full changes here.