Skip to content
Permalink
Branch: master
Commits on Jan 21, 2020
  1. PyLong_AsLongLong() docs should say 'long long' (#18082)

    keitherskine authored and mdickinson committed Jan 21, 2020
  2. bpo-39406: Add PY_PUTENV_DICT macro to posixmodule.c (GH-18106)

    vstinner committed Jan 21, 2020
    Rename posix_putenv_garbage to putenv_dict.
  3. bpo-39413: Implement os.unsetenv() on Windows (GH-18104)

    vstinner committed Jan 21, 2020
    The os.unsetenv() function is now also available on Windows.
    
    It is implemented with SetEnvironmentVariableW(name, NULL).
  4. Move test_math tests (GH-18098)

    vstinner committed Jan 21, 2020
    testPerm() and testComb() belong to MathTests, not to IsCloseTests().
    
    test_nextafter() and test_ulp() now use assertIsNaN().
  5. bpo-33387: Fix compiler warning in frame_block_unwind() (GH-18099)

    vstinner committed Jan 21, 2020
    Replace int with intptr_t to fix the warning:
    
        objects\frameobject.c(341): warning C4244: 'initializing':
        conversion from '__int64' to 'int', possible loss of data
  6. bpo-39389: gzip: fix compression level metadata (GH-18077)

    wchargin authored and serhiy-storchaka committed Jan 21, 2020
    As described in RFC 1952, section 2.3.1, the XFL (eXtra FLags) byte of a
    gzip member header should indicate whether the DEFLATE algorithm was
    tuned for speed or compression ratio. Prior to this patch, archives
    emitted by the `gzip` module always indicated maximum compression.
  7. bpo-39396: Fix math.nextafter(-0.0, +0.0) on AIX 7.1 (GH-18094)

    vstinner committed Jan 21, 2020
    Move also math.nextafter() on math.ulp() tests from IsCloseTests to
    MathTests.
  8. bpo-32989: IDLE - fix bad editor call of pyparse method (GH-5968)

    csabella and terryjreedy committed Jan 21, 2020
    Fix comments and add tests for editor newline_and_indent_event method.
    Remove unused None default for function parameter of pyparse find_good_parse_start method
    and code triggered by that default.
    
    Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
  9. improve the documentation of the LOAD_METHOD and CALL_METHOD (GH-18079)

    cfbolz authored and methane committed Jan 21, 2020
Commits on Jan 20, 2020
  1. bpo-39383: Mention Darwin as a potential value for platform.system() (G…

    bittner authored and ned-deily committed Jan 20, 2020
  2. bpo-39386: Prevent double awaiting of async iterator (GH-18081)

    asvetlov committed Jan 20, 2020
  3. Fix asyncio.get_event_loop() documentation (GH-18051)

    asvetlov committed Jan 20, 2020
    Mention that the function implicitly creates new event loop only if called from the main thread.
  4. bpo-39377: json: Remove the encoding option. (GH-18075)

    methane committed Jan 20, 2020
  5. bpo-38536: locale: Remove trailing space in formatted currency (GH-16864

    methane committed Jan 20, 2020
    )
Commits on Jan 19, 2020
  1. bpo-35561: Supress valgrind false alarm on epoll_ctl(event) (GH-18060)

    ZackerySpytz authored and vstinner committed Jan 19, 2020
    Update Misc/valgrind-python.supp to suppress the false alarm.
  2. Fix typo from base to based (GH-18055)

    micha2718l authored and csabella committed Jan 19, 2020
Commits on Jan 18, 2020
  1. bpo-39372: Clean header files of declared interfaces with no implemen…

    pablogsal committed Jan 18, 2020
    …tations (GH-18037)
    
    The public API symbols being removed are:
    
    _PyBytes_InsertThousandsGroupingLocale, _PyBytes_InsertThousandsGrouping, _Py_InitializeFromArgs, _Py_InitializeFromWideArgs, _PyFloat_Repr, _PyFloat_Digits,
    _PyFloat_DigitsInit, PyFrame_ExtendStack, _PyAIterWrapper_Type, PyNullImporter_Type, PyCmpWrapper_Type, PySortWrapper_Type, PyNoArgsFunction.
Commits on Jan 17, 2020
  1. Run doctests in GitHub actions Docs targer (GH-18041)

    pablogsal committed Jan 17, 2020
  2. Fix Lock.locked() to remove extra bold highlighting (#18042)

    grantjenks authored and warsaw committed Jan 17, 2020
  3. bpo-39356, zipfile: Remove code handling DeprecationWarning (GH-18027)

    vstinner committed Jan 17, 2020
    Remove old "except DeprecationWarning:" code path added by
    commit bf02e3b. It's no longer
    needed.
    
    struct.pack() no longer emit DeprecationWarning if getting a float
    whereas an integer is expected. It now raises an hard error instead.
  4. bpo-39357: Update bz2 docstring: remove buffering (GH-18036)

    vstinner committed Jan 17, 2020
    Thanks Karthikeyan Singaravelan for the report ;-)
Commits on Jan 16, 2020
  1. bpo-39357: Remove buffering parameter of bz2.BZ2File (GH-18028)

    vstinner committed Jan 16, 2020
    Remove the buffering parameter of bz2.BZ2File. Since Python 3.0, it
    was ignored and using it was emitting a DeprecationWarning. Pass an
    open file object to control how the file is opened.
    
    The compresslevel parameter becomes keyword-only.
  2. bpo-31031: Unify duplicate bits_in_digit and bit_length (GH-2866)

    niklasf authored and vstinner committed Jan 16, 2020
    Add _Py_bit_length() to unify duplicate bits_in_digit() and bit_length().
  3. bpo-39350: Remove deprecated fractions.gcd() (GH-18021)

    vstinner committed Jan 16, 2020
    Remove fractions.gcd() function, deprecated since Python 3.5
    (bpo-22486): use math.gcd() instead.
  4. bpo-39351: Remove base64.encodestring() (GH-18022)

    vstinner committed Jan 16, 2020
    Remove base64.encodestring() and base64.decodestring(), aliases
    deprecated since Python 3.1: use base64.encodebytes() and
    base64.decodebytes() instead.
Commits on Jan 15, 2020
  1. bpo-39348: Fix code highlight for the SOCK_NONBLOCK example (GH-18018)

    oz123 authored and miss-islington committed Jan 15, 2020
    The previous double colon was wrongly place directly after Therefore.
    Which produced a block without syntax highlighting. This fixes it
    by separating the double colon from the text. As a result, sphinx now
    properly highlights the python code.
    
    
    
    
    https://bugs.python.org/issue39348
  2. bpo-37958: Adding get_profile_dict to pstats (GH-15495)

    Olshansk authored and miss-islington committed Jan 15, 2020
    pstats is really useful or profiling and printing the output of the execution of some block of code, but I've found on multiple occasions when I'd like to access this output directly in an easily usable dictionary on which I can further analyze or manipulate.
    
    The proposal is to add a function called get_profile_dict inside of pstats that'll automatically return this data the data in an easily accessible dict.
    
    The output of the following script:
    
    ```
    import cProfile, pstats
    import pprint
    from pstats import func_std_string, f8
    
    def fib(n):
        if n == 0:
            return 0
        if n == 1:
            return 1
        return fib(n-1) + fib(n-2)
    
    pr = cProfile.Profile()
    pr.enable()
    fib(5)
    pr.create_stats()
    
    ps = pstats.Stats(pr).sort_stats('tottime', 'cumtime')
    
    def get_profile_dict(self, keys_filter=None):
        """
            Returns a dict where the key is a function name and the value is a dict
            with the following keys:
                - ncalls
                - tottime
                - percall_tottime
                - cumtime
                - percall_cumtime
                - file_name
                - line_number
    
            keys_filter can be optionally set to limit the key-value pairs in the
            retrieved dict.
        """
        pstats_dict = {}
        func_list = self.fcn_list[:] if self.fcn_list else list(self.stats.keys())
    
        if not func_list:
            return pstats_dict
    
        pstats_dict["total_tt"] = float(f8(self.total_tt))
        for func in func_list:
            cc, nc, tt, ct, callers = self.stats[func]
            file, line, func_name = func
            ncalls = str(nc) if nc == cc else (str(nc) + '/' + str(cc))
            tottime = float(f8(tt))
            percall_tottime = -1 if nc == 0 else float(f8(tt/nc))
            cumtime = float(f8(ct))
            percall_cumtime = -1 if cc == 0 else float(f8(ct/cc))
            func_dict = {
                "ncalls": ncalls,
                "tottime": tottime, # time spent in this function alone
                "percall_tottime": percall_tottime,
                "cumtime": cumtime, # time spent in the function plus all functions that this function called,
                "percall_cumtime": percall_cumtime,
                "file_name": file,
                "line_number": line
            }
            func_dict_filtered = func_dict if not keys_filter else { key: func_dict[key] for key in keys_filter }
            pstats_dict[func_name] = func_dict_filtered
    
        return pstats_dict
    
    pp = pprint.PrettyPrinter(depth=6)
    pp.pprint(get_profile_dict(ps))
    ```
    
    will produce:
    
    ```
    {"<method 'disable' of '_lsprof.Profiler' objects>": {'cumtime': 0.0,
                                                          'file_name': '~',
                                                          'line_number': 0,
                                                          'ncalls': '1',
                                                          'percall_cumtime': 0.0,
                                                          'percall_tottime': 0.0,
                                                          'tottime': 0.0},
     'create_stats': {'cumtime': 0.0,
                      'file_name': '/usr/local/Cellar/python/3.7.4/Frameworks/Python.framework/Versions/3.7/lib/python3.7/cProfile.py',
                      'line_number': 50,
                      'ncalls': '1',
                      'percall_cumtime': 0.0,
                      'percall_tottime': 0.0,
                      'tottime': 0.0},
     'fib': {'cumtime': 0.0,
             'file_name': 'get_profile_dict.py',
             'line_number': 5,
             'ncalls': '15/1',
             'percall_cumtime': 0.0,
             'percall_tottime': 0.0,
             'tottime': 0.0},
     'total_tt': 0.0}
     ```
    
     As an example, this can be used to generate a stacked column chart using various visualization tools which will assist in easily identifying program bottlenecks.
    
    
    
    https://bugs.python.org/issue37958
    
    
    
    Automerge-Triggered-By: @gpshead
  3. Fix typo in multiprocessing.pool.AsyncResult.successful doc. (GH-17932)

    awecx authored and miss-islington committed Jan 15, 2020
    Since 3.7 `successful` raises a `ValueError` as explained in the next text block from the documentation:
    
    _Changed in version 3.7: If the result is not ready, ValueError is raised instead of AssertionError._
    
    No issue associated with this PR.
    Should be backported in 3.7 and 3.8.
  4. Fix compiler warning on Windows (GH-18012)

    ammaraskar authored and zware committed Jan 15, 2020
    Python-ast.h contains a macro named Yield that conflicts with the Yield macro
    in Windows system headers. While Python-ast.h has an "undef Yield" directive
    to prevent this, it means that Python-ast.h must be included before Windows
    header files or we run into a re-declaration warning. In commit c96be81
    an include for pycore_pystate.h was added which indirectly includes Windows
    header files. In this commit we re-order the includes to fix this warning.
  5. bpo-38630: Fix subprocess.Popen.send_signal() race condition (GH-16984)

    vstinner committed Jan 15, 2020
    On Unix, subprocess.Popen.send_signal() now polls the process status.
    Polling reduces the risk of sending a signal to the wrong process if
    the process completed, the Popen.returncode attribute is still None,
    and the pid has been reassigned (recycled) to a new different
    process.
  6. bpo-1635741: Port _json extension module to multiphase initialization…

    shihai1991 authored and vstinner committed Jan 15, 2020
    … (PEP 489) (GH-17835)
  7. bpo-39164: Fix compiler warning in PyErr_GetExcInfo() (GH-18010)

    vstinner committed Jan 15, 2020
    The function has no return value.
  8. Fix AsyncMock base class in the docs (GH-18008)

    elenaoat authored and cjw296 committed Jan 15, 2020
  9. Improve test coverage for AsyncMock. (GH-17906)

    tirkarthi authored and cjw296 committed Jan 15, 2020
    * Add test for nested async decorator patch.
    * Add test for side_effect and wraps with a function.
    * Add test for side_effect with an exception in the iterable.
Older
You can’t perform that action at this time.