Hello community,

here is the log from the commit of package python-psutil for openSUSE:Factory 
checked in at 2018-06-18 13:48:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-psutil (Old)
 and      /work/SRC/openSUSE:Factory/.python-psutil.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-psutil"

Mon Jun 18 13:48:42 2018 rev:43 rq:616701 version:5.4.6

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-psutil/python-psutil.changes      
2018-04-22 14:29:51.566204343 +0200
+++ /work/SRC/openSUSE:Factory/.python-psutil.new/python-psutil.changes 
2018-06-18 13:48:46.428597196 +0200
@@ -1,0 +2,11 @@
+Wed Jun 13 18:12:32 UTC 2018 - toddrme2...@gmail.com
+
+- Update to 5.4.6
+  * 1258_: [Windows] Process.username() may cause a segfault (Python 
interpreter
+    crash).  (patch by Jean-Luc Migot)
+  * 1273_: net_if_addr() namedtuple's name has been renamed from "snic" to
+    "snicaddr".
+  * 1274_: [Linux] there was a small chance Process.children() may swallow
+    AccessDenied exceptions.
+
+-------------------------------------------------------------------

Old:
----
  psutil-5.4.5.tar.gz

New:
----
  psutil-5.4.6.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-psutil.spec ++++++
--- /var/tmp/diff_new_pack.Dn2A0z/_old  2018-06-18 13:48:47.012575611 +0200
+++ /var/tmp/diff_new_pack.Dn2A0z/_new  2018-06-18 13:48:47.016575463 +0200
@@ -17,9 +17,8 @@
 
 
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
-%bcond_with test
 Name:           python-psutil
-Version:        5.4.5
+Version:        5.4.6
 Release:        0
 Summary:        A process utilities module for Python
 License:        BSD-3-Clause
@@ -30,8 +29,17 @@
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
+# SECTION test requirements
+BuildRequires:  python-ipaddress
+BuildRequires:  python-mock
+BuildRequires:  net-tools
+BuildRequires:  procps
+# /SECTION
 Requires:       net-tools
 Requires:       procps
+%ifpython2
+Requires:       python-ipaddress
+%endif
 %python_subpackages
 
 %description
@@ -60,12 +68,6 @@
 %fdupes %{buildroot}%{$python_sitearch}
 }
 
-%if %{with test}
-%check
-make %{?_smp_mflags} test
-make %{?_smp_mflags} memtest
-%endif
-
 %files %{python_files}
 %license LICENSE
 %doc CREDITS HISTORY.rst README.rst

++++++ psutil-5.4.5.tar.gz -> psutil-5.4.6.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/CREDITS new/psutil-5.4.6/CREDITS
--- old/psutil-5.4.5/CREDITS    2018-04-12 10:37:17.000000000 +0200
+++ new/psutil-5.4.6/CREDITS    2018-06-07 17:16:03.000000000 +0200
@@ -535,3 +535,7 @@
 N: Denis Krienbühl
 W: https://github.com/href
 I: 1260
+
+N: Jean-Luc Migot
+W: https://github.com/jmigot-tehtris
+I: 1258, 1289
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/HISTORY.rst new/psutil-5.4.6/HISTORY.rst
--- old/psutil-5.4.5/HISTORY.rst        2018-04-13 19:31:19.000000000 +0200
+++ new/psutil-5.4.6/HISTORY.rst        2018-06-07 17:37:56.000000000 +0200
@@ -1,5 +1,19 @@
 *Bug tracker at https://github.com/giampaolo/psutil/issues*
 
+5.4.6
+=====
+
+2018-06-07
+
+**Bug fixes**
+
+- 1258_: [Windows] Process.username() may cause a segfault (Python interpreter
+  crash).  (patch by Jean-Luc Migot)
+- 1273_: net_if_addr() namedtuple's name has been renamed from "snic" to
+  "snicaddr".
+- 1274_: [Linux] there was a small chance Process.children() may swallow
+  AccessDenied exceptions.
+
 5.4.5
 =====
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/INSTALL.rst new/psutil-5.4.6/INSTALL.rst
--- old/psutil-5.4.5/INSTALL.rst        2018-04-12 10:37:17.000000000 +0200
+++ new/psutil-5.4.6/INSTALL.rst        2018-05-08 17:56:36.000000000 +0200
@@ -76,15 +76,15 @@
 
 The easiest way to install psutil on Windows is to just use the pre-compiled
 exe/wheel installers hosted on
-`PYPI <https://pypi.python.org/pypi/psutil/#downloads>`__ via pip:
+`PYPI <https://pypi.org/project/psutil/#files>`__ via pip:
 
 .. code-block:: bat
 
     C:\Python27\python.exe -m pip install psutil
 
 If you want to compile psutil from sources you'll need **Visual Studio**
-(Mingw32 is no longer supported), which really is a mess. 
-The VS versions are the onle listed below. 
+(Mingw32 is no longer supported), which really is a mess.
+The VS versions are the onle listed below.
 This  `blog post 
<https://blog.ionelmc.ro/2014/12/21/compiling-python-extensions-on-windows/>`__
 provides numerous info on how to properly set up VS (good luck with that).
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/MANIFEST.in new/psutil-5.4.6/MANIFEST.in
--- old/psutil-5.4.5/MANIFEST.in        2018-04-13 19:59:31.000000000 +0200
+++ new/psutil-5.4.6/MANIFEST.in        2018-06-07 17:39:21.000000000 +0200
@@ -109,7 +109,7 @@
 include scripts/internal/generate_manifest.py
 include scripts/internal/print_announce.py
 include scripts/internal/print_timeline.py
-include scripts/internal/purge.py
+include scripts/internal/purge_installation.py
 include scripts/internal/winmake.py
 include scripts/iotop.py
 include scripts/killall.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/Makefile new/psutil-5.4.6/Makefile
--- old/psutil-5.4.5/Makefile   2018-04-12 10:37:17.000000000 +0200
+++ new/psutil-5.4.6/Makefile   2018-05-08 17:56:36.000000000 +0200
@@ -77,7 +77,7 @@
 
 uninstall:  ## Uninstall this package via pip.
        cd ..; $(PYTHON) -m pip uninstall -y -v psutil || true
-       $(PYTHON) scripts/internal/purge.py
+       $(PYTHON) scripts/internal/purge_installation.py
 
 install-pip:  ## Install pip (no-op if already installed).
        $(PYTHON) -c \
@@ -206,7 +206,7 @@
 
 # --- upload
 
-upload-src:  ## Upload source tarball on https://pypi.python.org/pypi/psutil.
+upload-src:  ## Upload source tarball on https://pypi.org/project/psutil/
        ${MAKE} sdist
        $(PYTHON) setup.py sdist upload
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/PKG-INFO new/psutil-5.4.6/PKG-INFO
--- old/psutil-5.4.5/PKG-INFO   2018-04-13 19:59:31.000000000 +0200
+++ new/psutil-5.4.6/PKG-INFO   2018-06-07 17:39:21.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: psutil
-Version: 5.4.5
+Version: 5.4.6
 Summary: Cross-platform lib for process and system monitoring in Python.
 Home-page: https://github.com/giampaolo/psutil
 Author: Giampaolo Rodola
@@ -23,7 +23,7 @@
             :alt: Documentation Status
         
         .. image:: https://img.shields.io/pypi/v/psutil.svg?label=pypi
-            :target: https://pypi.python.org/pypi/psutil/
+            :target: https://pypi.org/project/psutil
             :alt: Latest version
         
         .. image:: https://img.shields.io/github/stars/giampaolo/psutil.svg
@@ -31,7 +31,7 @@
             :alt: Github stars
         
         .. image:: https://img.shields.io/pypi/l/psutil.svg
-            :target: https://pypi.python.org/pypi/psutil/
+            :target: https://pypi.org/project/psutil
             :alt: License
         
         ===========
@@ -41,7 +41,7 @@
         - `Home page <https://github.com/giampaolo/psutil>`_
         - `Install 
<https://github.com/giampaolo/psutil/blob/master/INSTALL.rst>`_
         - `Documentation <http://psutil.readthedocs.io>`_
-        - `Download 
<https://pypi.python.org/pypi?:action=display&name=psutil#downloads>`_
+        - `Download <https://pypi.org/project/psutil/#files>`_
         - `Forum <http://groups.google.com/group/psutil/topics>`_
         - `StackOverflow <https://stackoverflow.com/questions/tagged/psutil>`_
         - `Blog <http://grodola.blogspot.com/search/label/psutil>`_
@@ -94,7 +94,7 @@
         At the time of writing psutil has roughly
         `2.9 milion downloads 
<https://github.com/giampaolo/psutil/issues/1053#issuecomment-340166262>`__
         per month and there are over
-        `7000 open source projects 
<https://libraries.io/pypi/psutil/dependent_repositories?page=1>`__
+        `8000 open source projects 
<https://libraries.io/pypi/psutil/dependent_repositories?page=1>`__
         on github which depend from psutil.
         Here's some I find particularly interesting:
         
@@ -209,12 +209,12 @@
              ...]
             >>>
             >>> psutil.net_if_addrs()
-            {'lo': [snic(family=<AddressFamily.AF_INET: 2>, 
address='127.0.0.1', netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
-                    snic(family=<AddressFamily.AF_INET6: 10>, address='::1', 
netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None),
-                    snic(family=<AddressFamily.AF_LINK: 17>, 
address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', 
ptp=None)],
-             'wlan0': [snic(family=<AddressFamily.AF_INET: 2>, 
address='192.168.1.3', netmask='255.255.255.0', broadcast='192.168.1.255', 
ptp=None),
-                       snic(family=<AddressFamily.AF_INET6: 10>, 
address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', 
broadcast=None, ptp=None),
-                       snic(family=<AddressFamily.AF_LINK: 17>, 
address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', 
ptp=None)]}
+            {'lo': [snicaddr(family=<AddressFamily.AF_INET: 2>, 
address='127.0.0.1', netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
+                    snicaddr(family=<AddressFamily.AF_INET6: 10>, 
address='::1', netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 
broadcast=None, ptp=None),
+                    snicaddr(family=<AddressFamily.AF_LINK: 17>, 
address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', 
ptp=None)],
+             'wlan0': [snicaddr(family=<AddressFamily.AF_INET: 2>, 
address='192.168.1.3', netmask='255.255.255.0', broadcast='192.168.1.255', 
ptp=None),
+                       snicaddr(family=<AddressFamily.AF_INET6: 10>, 
address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', 
broadcast=None, ptp=None),
+                       snicaddr(family=<AddressFamily.AF_LINK: 17>, 
address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', 
ptp=None)]}
             >>>
             >>> psutil.net_if_stats()
             {'eth0': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 
2>, speed=100, mtu=1500),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/README.rst new/psutil-5.4.6/README.rst
--- old/psutil-5.4.5/README.rst 2018-04-12 10:37:17.000000000 +0200
+++ new/psutil-5.4.6/README.rst 2018-05-08 17:56:36.000000000 +0200
@@ -15,7 +15,7 @@
     :alt: Documentation Status
 
 .. image:: https://img.shields.io/pypi/v/psutil.svg?label=pypi
-    :target: https://pypi.python.org/pypi/psutil/
+    :target: https://pypi.org/project/psutil
     :alt: Latest version
 
 .. image:: https://img.shields.io/github/stars/giampaolo/psutil.svg
@@ -23,7 +23,7 @@
     :alt: Github stars
 
 .. image:: https://img.shields.io/pypi/l/psutil.svg
-    :target: https://pypi.python.org/pypi/psutil/
+    :target: https://pypi.org/project/psutil
     :alt: License
 
 ===========
@@ -33,7 +33,7 @@
 - `Home page <https://github.com/giampaolo/psutil>`_
 - `Install <https://github.com/giampaolo/psutil/blob/master/INSTALL.rst>`_
 - `Documentation <http://psutil.readthedocs.io>`_
-- `Download 
<https://pypi.python.org/pypi?:action=display&name=psutil#downloads>`_
+- `Download <https://pypi.org/project/psutil/#files>`_
 - `Forum <http://groups.google.com/group/psutil/topics>`_
 - `StackOverflow <https://stackoverflow.com/questions/tagged/psutil>`_
 - `Blog <http://grodola.blogspot.com/search/label/psutil>`_
@@ -86,7 +86,7 @@
 At the time of writing psutil has roughly
 `2.9 milion downloads 
<https://github.com/giampaolo/psutil/issues/1053#issuecomment-340166262>`__
 per month and there are over
-`7000 open source projects 
<https://libraries.io/pypi/psutil/dependent_repositories?page=1>`__
+`8000 open source projects 
<https://libraries.io/pypi/psutil/dependent_repositories?page=1>`__
 on github which depend from psutil.
 Here's some I find particularly interesting:
 
@@ -201,12 +201,12 @@
      ...]
     >>>
     >>> psutil.net_if_addrs()
-    {'lo': [snic(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', 
netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
-            snic(family=<AddressFamily.AF_INET6: 10>, address='::1', 
netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None),
-            snic(family=<AddressFamily.AF_LINK: 17>, 
address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', 
ptp=None)],
-     'wlan0': [snic(family=<AddressFamily.AF_INET: 2>, address='192.168.1.3', 
netmask='255.255.255.0', broadcast='192.168.1.255', ptp=None),
-               snic(family=<AddressFamily.AF_INET6: 10>, 
address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', 
broadcast=None, ptp=None),
-               snic(family=<AddressFamily.AF_LINK: 17>, 
address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', 
ptp=None)]}
+    {'lo': [snicaddr(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', 
netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
+            snicaddr(family=<AddressFamily.AF_INET6: 10>, address='::1', 
netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None),
+            snicaddr(family=<AddressFamily.AF_LINK: 17>, 
address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', 
ptp=None)],
+     'wlan0': [snicaddr(family=<AddressFamily.AF_INET: 2>, 
address='192.168.1.3', netmask='255.255.255.0', broadcast='192.168.1.255', 
ptp=None),
+               snicaddr(family=<AddressFamily.AF_INET6: 10>, 
address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', 
broadcast=None, ptp=None),
+               snicaddr(family=<AddressFamily.AF_LINK: 17>, 
address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', 
ptp=None)]}
     >>>
     >>> psutil.net_if_stats()
     {'eth0': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 2>, 
speed=100, mtu=1500),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/docs/index.rst 
new/psutil-5.4.6/docs/index.rst
--- old/psutil-5.4.5/docs/index.rst     2018-04-13 19:33:40.000000000 +0200
+++ new/psutil-5.4.6/docs/index.rst     2018-06-07 17:38:38.000000000 +0200
@@ -12,7 +12,7 @@
 - `Install <https://github.com/giampaolo/psutil/blob/master/INSTALL.rst>`_
 - `Blog <http://grodola.blogspot.com/search/label/psutil>`__
 - `Forum <http://groups.google.com/group/psutil/topics>`__
-- `Download 
<https://pypi.python.org/pypi?:action=display&name=psutil#downloads>`__
+- `Download <https://pypi.org/project/psutil/#files>`__
 - `Development guide 
<https://github.com/giampaolo/psutil/blob/master/DEVGUIDE.rst>`_
 - `What's new <https://github.com/giampaolo/psutil/blob/master/HISTORY.rst>`__
 
@@ -39,7 +39,7 @@
 
 ...both **32-bit** and **64-bit** architectures, with Python
 versions from **2.6 to 3.6** (users of Python 2.4 and 2.5 may use
-`2.1.3 
<https://pypi.python.org/pypi?name=psutil&version=2.1.3&:action=files>`__ 
version).
+`2.1.3 <https://pypi.org/project/psutil/2.1.3/#files>`__ version).
 `PyPy <http://pypy.org/>`__ is also known to work.
 
 The psutil documentation you're reading is distributed as a single HTML page.
@@ -53,7 +53,7 @@
 
 On UNIX this requires a C compiler (e.g. gcc) installed. On Windows pip will
 automatically retrieve a pre-compiled wheel version from
-`PYPI repository <https://pypi.python.org/pypi/psutil>`__.
+`PYPI repository <https://pypi.org/project/psutil>`__.
 Alternatively, see more detailed
 `install <https://github.com/giampaolo/psutil/blob/master/INSTALL.rst>`_
 instructions.
@@ -449,7 +449,7 @@
 Network
 -------
 
-.. function:: net_io_counters(pernic=False)
+.. function:: net_io_counters(pernic=False, nowrap=True)
 
   Return system-wide network I/O statistics as a named tuple including the
   following attributes:
@@ -613,12 +613,12 @@
 
     >>> import psutil
     >>> psutil.net_if_addrs()
-    {'lo': [snic(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', 
netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
-            snic(family=<AddressFamily.AF_INET6: 10>, address='::1', 
netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None),
-            snic(family=<AddressFamily.AF_LINK: 17>, 
address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', 
ptp=None)],
-     'wlan0': [snic(family=<AddressFamily.AF_INET: 2>, address='192.168.1.3', 
netmask='255.255.255.0', broadcast='192.168.1.255', ptp=None),
-               snic(family=<AddressFamily.AF_INET6: 10>, 
address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', 
broadcast=None, ptp=None),
-               snic(family=<AddressFamily.AF_LINK: 17>, 
address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', 
ptp=None)]}
+    {'lo': [snicaddr(family=<AddressFamily.AF_INET: 2>, address='127.0.0.1', 
netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
+            snicaddr(family=<AddressFamily.AF_INET6: 10>, address='::1', 
netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None),
+            snicaddr(family=<AddressFamily.AF_LINK: 17>, 
address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', 
ptp=None)],
+     'wlan0': [snicaddr(family=<AddressFamily.AF_INET: 2>, 
address='192.168.1.3', netmask='255.255.255.0', broadcast='192.168.1.255', 
ptp=None),
+               snicaddr(family=<AddressFamily.AF_INET6: 10>, 
address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', 
broadcast=None, ptp=None),
+               snicaddr(family=<AddressFamily.AF_LINK: 17>, 
address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', 
ptp=None)]}
     >>>
 
   See also `nettop.py 
<https://github.com/giampaolo/psutil/blob/master/scripts/nettop.py>`__
@@ -627,7 +627,7 @@
 
   .. note::
     if you're interested in others families (e.g. AF_BLUETOOTH) you can use
-    the more powerful `netifaces <https://pypi.python.org/pypi/netifaces/>`__
+    the more powerful `netifaces <https://pypi.org/project/netifaces/>`__
     extension.
 
   .. note::
@@ -2564,7 +2564,7 @@
 * A: From Windows **Vista** onwards, both 32 and 64 bit versions.
   Latest binary (wheel / exe) release which supports Windows **2000**, **XP**
   and **2003 server** is
-  `psutil 3.4.2 
<https://pypi.python.org/pypi?name=psutil&version=3.4.2&:action=files>`__.
+  `psutil 3.4.2 <https://pypi.org/project/psutil/3.4.2/#files>`__.
   On such old systems psutil is no longer tested or maintained, but it can
   still be compiled from sources (you'll need `Visual Studio 
<(https://github.com/giampaolo/psutil/blob/master/INSTALL.rst#windows>`__)
   and it should "work" (more or less).
@@ -2573,7 +2573,7 @@
 
 * Q: What Python versions are supported?
 * A: From 2.6 to 3.6, both 32 and 64 bit versions. Last version supporting
-  Python 2.4 and 2.5 is `psutil 2.1.3 
<https://pypi.python.org/pypi?name=psutil&version=2.1.3&:action=files>`__.
+  Python 2.4 and 2.5 is `psutil 2.1.3 
<https://pypi.org/project/psutil/2.1.3/#files>`__.
   PyPy is also known to work.
 
 ----
@@ -2624,259 +2624,263 @@
 Timeline
 ========
 
+- 2018-06-07:
+  `5.4.6 <https://pypi.org/project/psutil/5.4.6/#files>`__ -
+  `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#546>`__ -
+  `diff 
<https://github.com/giampaolo/psutil/compare/release-5.4.5...release-5.4.6#files_bucket>`__
 - 2018-04-14:
-  `5.4.5 
<https://pypi.python.org/pypi?name=psutil&version=5.4.5&:action=files>`__ -
+  `5.4.5 <https://pypi.org/project/psutil/5.4.5/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#545>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.4.4...release-5.4.5#files_bucket>`__
 - 2018-04-13:
-  `5.4.4 
<https://pypi.python.org/pypi?name=psutil&version=5.4.4&:action=files>`__ -
+  `5.4.4 <https://pypi.org/project/psutil/5.4.4/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#544>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.4.3...release-5.4.4#files_bucket>`__
 - 2018-01-01:
-  `5.4.3 
<https://pypi.python.org/pypi?name=psutil&version=5.4.3&:action=files>`__ -
+  `5.4.3 <https://pypi.org/project/psutil/5.4.3/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#543>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.4.2...release-5.4.3#files_bucket>`__
 - 2017-12-07:
-  `5.4.2 
<https://pypi.python.org/pypi?name=psutil&version=5.4.2&:action=files>`__ -
+  `5.4.2 <https://pypi.org/project/psutil/5.4.2/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#542>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.4.1...release-5.4.2#files_bucket>`__
 - 2017-11-08:
-  `5.4.1 
<https://pypi.python.org/pypi?name=psutil&version=5.4.1&:action=files>`__ -
+  `5.4.1 <https://pypi.org/project/psutil/5.4.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#541>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.4.0...release-5.4.1#files_bucket>`__
 - 2017-10-12:
-  `5.4.0 
<https://pypi.python.org/pypi?name=psutil&version=5.4.0&:action=files>`__ -
+  `5.4.0 <https://pypi.org/project/psutil/5.4.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#540>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.3.1...release-5.4.0#files_bucket>`__
 - 2017-09-10:
-  `5.3.1 
<https://pypi.python.org/pypi?name=psutil&version=5.3.1&:action=files>`__ -
+  `5.3.1 <https://pypi.org/project/psutil/5.3.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#530>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.3.0...release-5.3.1#files_bucket>`__
 - 2017-09-01:
-  `5.3.0 
<https://pypi.python.org/pypi?name=psutil&version=5.3.0&:action=files>`__ -
+  `5.3.0 <https://pypi.org/project/psutil/5.3.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#530>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.2.2...release-5.3.0#files_bucket>`__
 - 2017-04-10:
-  `5.2.2 
<https://pypi.python.org/pypi?name=psutil&version=5.2.2&:action=files>`__ -
+  `5.2.2 <https://pypi.org/project/psutil/5.2.2/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#522>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.2.1...release-5.2.2#files_bucket>`__
 - 2017-03-24:
-  `5.2.1 
<https://pypi.python.org/pypi?name=psutil&version=5.2.1&:action=files>`__ -
+  `5.2.1 <https://pypi.org/project/psutil/5.2.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#521>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.2.0...release-5.2.1#files_bucket>`__
 - 2017-03-05:
-  `5.2.0 
<https://pypi.python.org/pypi?name=psutil&version=5.2.0&:action=files>`__ -
+  `5.2.0 <https://pypi.org/project/psutil/5.2.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#520>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.1.3...release-5.2.0#files_bucket>`__
 - 2017-02-07:
-  `5.1.3 
<https://pypi.python.org/pypi?name=psutil&version=5.1.3&:action=files>`__ -
+  `5.1.3 <https://pypi.org/project/psutil/5.1.3/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#513>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.1.2...release-5.1.3#files_bucket>`__
 - 2017-02-03:
-  `5.1.2 
<https://pypi.python.org/pypi?name=psutil&version=5.1.2&:action=files>`__ -
+  `5.1.2 <https://pypi.org/project/psutil/5.1.2/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#512>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.1.1...release-5.1.2#files_bucket>`__
 - 2017-02-03:
-  `5.1.1 
<https://pypi.python.org/pypi?name=psutil&version=5.1.1&:action=files>`__ -
+  `5.1.1 <https://pypi.org/project/psutil/5.1.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#511>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.1.0...release-5.1.1#files_bucket>`__
 - 2017-02-01:
-  `5.1.0 
<https://pypi.python.org/pypi?name=psutil&version=5.1.0&:action=files>`__ -
+  `5.1.0 <https://pypi.org/project/psutil/5.1.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#510>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.0.1...release-5.1.0#files_bucket>`__
 - 2016-12-21:
-  `5.0.1 
<https://pypi.python.org/pypi?name=psutil&version=5.0.1&:action=files>`__ -
+  `5.0.1 <https://pypi.org/project/psutil/5.0.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#501>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-5.0.0...release-5.0.1#files_bucket>`__
 - 2016-11-06:
-  `5.0.0 
<https://pypi.python.org/pypi?name=psutil&version=5.0.0&:action=files>`__ -
+  `5.0.0 <https://pypi.org/project/psutil/5.0.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#500>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-4.4.2...release-5.0.0#files_bucket>`__
 - 2016-10-05:
-  `4.4.2 
<https://pypi.python.org/pypi?name=psutil&version=4.4.2&:action=files>`__ -
+  `4.4.2 <https://pypi.org/project/psutil/4.4.2/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#442>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-4.4.1...release-4.4.2#files_bucket>`__
 - 2016-10-25:
-  `4.4.1 
<https://pypi.python.org/pypi?name=psutil&version=4.4.1&:action=files>`__ -
+  `4.4.1 <https://pypi.org/project/psutil/4.4.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#441>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-4.4.0...release-4.4.1#files_bucket>`__
 - 2016-10-23:
-  `4.4.0 
<https://pypi.python.org/pypi?name=psutil&version=4.4.0&:action=files>`__ -
+  `4.4.0 <https://pypi.org/project/psutil/4.4.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#440>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-4.3.1...release-4.4.0#files_bucket>`__
 - 2016-09-01:
-  `4.3.1 
<https://pypi.python.org/pypi?name=psutil&version=4.3.1&:action=files>`__ -
+  `4.3.1 <https://pypi.org/project/psutil/4.3.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#431>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-4.3.0...release-4.3.1#files_bucket>`__
 - 2016-06-18:
-  `4.3.0 
<https://pypi.python.org/pypi?name=psutil&version=4.3.0&:action=files>`__ -
+  `4.3.0 <https://pypi.org/project/psutil/4.3.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#430>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-4.2.0...release-4.3.0#files_bucket>`__
 - 2016-05-14:
-  `4.2.0 
<https://pypi.python.org/pypi?name=psutil&version=4.2.0&:action=files>`__ -
+  `4.2.0 <https://pypi.org/project/psutil/4.2.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#420>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-4.1.0...release-4.2.0#files_bucket>`__
 - 2016-03-12:
-  `4.1.0 
<https://pypi.python.org/pypi?name=psutil&version=4.1.0&:action=files>`__ -
+  `4.1.0 <https://pypi.org/project/psutil/4.1.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#410>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-4.0.0...release-4.1.0#files_bucket>`__
 - 2016-02-17:
-  `4.0.0 
<https://pypi.python.org/pypi?name=psutil&version=4.0.0&:action=files>`__ -
+  `4.0.0 <https://pypi.org/project/psutil/4.0.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#400>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.4.2...release-4.0.0#files_bucket>`__
 - 2016-01-20:
-  `3.4.2 
<https://pypi.python.org/pypi?name=psutil&version=3.4.2&:action=files>`__ -
+  `3.4.2 <https://pypi.org/project/psutil/3.4.2/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#342>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.4.1...release-3.4.2#files_bucket>`__
 - 2016-01-15:
-  `3.4.1 
<https://pypi.python.org/pypi?name=psutil&version=3.4.1&:action=files>`__ -
+  `3.4.1 <https://pypi.org/project/psutil/3.4.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#341>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.3.0...release-3.4.1#files_bucket>`__
 - 2015-11-25:
-  `3.3.0 
<https://pypi.python.org/pypi?name=psutil&version=3.3.0&:action=files>`__ -
+  `3.3.0 <https://pypi.org/project/psutil/3.3.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#330>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.2.2...release-3.3.0#files_bucket>`__
 - 2015-10-04:
-  `3.2.2 
<https://pypi.python.org/pypi?name=psutil&version=3.2.2&:action=files>`__ -
+  `3.2.2 <https://pypi.org/project/psutil/3.2.2/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#322>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.2.1...release-3.2.2#files_bucket>`__
 - 2015-09-03:
-  `3.2.1 
<https://pypi.python.org/pypi?name=psutil&version=3.2.1&:action=files>`__ -
+  `3.2.1 <https://pypi.org/project/psutil/3.2.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#321>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.2.0...release-3.2.1#files_bucket>`__
 - 2015-09-02:
-  `3.2.0 
<https://pypi.python.org/pypi?name=psutil&version=3.2.0&:action=files>`__ -
+  `3.2.0 <https://pypi.org/project/psutil/3.2.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#320>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.1.1...release-3.2.0#files_bucket>`__
 - 2015-07-15:
-  `3.1.1 
<https://pypi.python.org/pypi?name=psutil&version=3.1.1&:action=files>`__ -
+  `3.1.1 <https://pypi.org/project/psutil/3.1.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#311>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.1.0...release-3.1.1#files_bucket>`__
 - 2015-07-15:
-  `3.1.0 
<https://pypi.python.org/pypi?name=psutil&version=3.1.0&:action=files>`__ -
+  `3.1.0 <https://pypi.org/project/psutil/3.1.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#310>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.0.1...release-3.1.0#files_bucket>`__
 - 2015-06-18:
-  `3.0.1 
<https://pypi.python.org/pypi?name=psutil&version=3.0.1&:action=files>`__ -
+  `3.0.1 <https://pypi.org/project/psutil/3.0.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#301>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-3.0.0...release-3.0.1#files_bucket>`__
 - 2015-06-13:
-  `3.0.0 
<https://pypi.python.org/pypi?name=psutil&version=3.0.0&:action=files>`__ -
+  `3.0.0 <https://pypi.org/project/psutil/3.0.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#300>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-2.2.1...release-3.0.0#files_bucket>`__
 - 2015-02-02:
-  `2.2.1 
<https://pypi.python.org/pypi?name=psutil&version=2.2.1&:action=files>`__ -
+  `2.2.1 <https://pypi.org/project/psutil/2.2.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#221>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-2.2.0...release-2.2.1#files_bucket>`__
 - 2015-01-06:
-  `2.2.0 
<https://pypi.python.org/pypi?name=psutil&version=2.2.0&:action=files>`__ -
+  `2.2.0 <https://pypi.org/project/psutil/2.2.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#220>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-2.1.3...release-2.2.0#files_bucket>`__
 - 2014-09-26:
-  `2.1.3 
<https://pypi.python.org/pypi?name=psutil&version=2.1.3&:action=files>`__ -
+  `2.1.3 <https://pypi.org/project/psutil/2.1.3/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#213>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-2.1.2...release-2.1.3#files_bucket>`__
 - 2014-09-21:
-  `2.1.2 
<https://pypi.python.org/pypi?name=psutil&version=2.1.2&:action=files>`__ -
+  `2.1.2 <https://pypi.org/project/psutil/2.1.2/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#212>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-2.1.1...release-2.1.2#files_bucket>`__
 - 2014-04-30:
-  `2.1.1 
<https://pypi.python.org/pypi?name=psutil&version=2.1.1&:action=files>`__ -
+  `2.1.1 <https://pypi.org/project/psutil/2.1.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#211>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-2.1.0...release-2.1.1#files_bucket>`__
 - 2014-04-08:
-  `2.1.0 
<https://pypi.python.org/pypi?name=psutil&version=2.1.0&:action=files>`__ -
+  `2.1.0 <https://pypi.org/project/psutil/2.1.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#210>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-2.0.0...release-2.1.0#files_bucket>`__
 - 2014-03-10:
-  `2.0.0 
<https://pypi.python.org/pypi?name=psutil&version=2.0.0&:action=files>`__ -
+  `2.0.0 <https://pypi.org/project/psutil/2.0.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#200>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-1.2.1...release-2.0.0#files_bucket>`__
 - 2013-11-25:
-  `1.2.1 
<https://pypi.python.org/pypi?name=psutil&version=1.2.1&:action=files>`__ -
+  `1.2.1 <https://pypi.org/project/psutil/1.2.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#121>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-1.2.0...release-1.2.1#files_bucket>`__
 - 2013-11-20:
-  `1.2.0 
<https://pypi.python.org/pypi?name=psutil&version=1.2.0&:action=files>`__ -
+  `1.2.0 <https://pypi.org/project/psutil/1.2.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#120>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-1.1.2...release-1.2.0#files_bucket>`__
 - 2013-10-22:
-  `1.1.2 
<https://pypi.python.org/pypi?name=psutil&version=1.1.2&:action=files>`__ -
+  `1.1.2 <https://pypi.org/project/psutil/1.1.2/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#112>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-1.1.1...release-1.1.2#files_bucket>`__
 - 2013-10-08:
-  `1.1.1 
<https://pypi.python.org/pypi?name=psutil&version=1.1.1&:action=files>`__ -
+  `1.1.1 <https://pypi.org/project/psutil/1.1.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#111>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-1.1.0...release-1.1.1#files_bucket>`__
 - 2013-09-28:
-  `1.1.0 
<https://pypi.python.org/pypi?name=psutil&version=1.1.0&:action=files>`__ -
+  `1.1.0 <https://pypi.org/project/psutil/1.1.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#110>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-1.0.1...release-1.1.0#files_bucket>`__
 - 2013-07-12:
-  `1.0.1 
<https://pypi.python.org/pypi?name=psutil&version=1.0.1&:action=files>`__ -
+  `1.0.1 <https://pypi.org/project/psutil/1.0.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#101>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-1.0.0...release-1.0.1#files_bucket>`__
 - 2013-07-10:
-  `1.0.0 
<https://pypi.python.org/pypi?name=psutil&version=1.0.0&:action=files>`__ -
+  `1.0.0 <https://pypi.org/project/psutil/1.0.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#100>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.7.1...release-1.0.0#files_bucket>`__
 - 2013-05-03:
-  `0.7.1 
<https://pypi.python.org/pypi?name=psutil&version=0.7.1&:action=files>`__ -
+  `0.7.1 <https://pypi.org/project/psutil/0.7.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#071>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.7.0...release-0.7.1#files_bucket>`__
 - 2013-04-12:
-  `0.7.0 
<https://pypi.python.org/pypi?name=psutil&version=0.7.0&:action=files>`__ -
+  `0.7.0 <https://pypi.org/project/psutil/0.7.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#070>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.6.1...release-0.7.0#files_bucket>`__
 - 2012-08-16:
-  `0.6.1 
<https://pypi.python.org/pypi?name=psutil&version=0.6.1&:action=files>`__ -
+  `0.6.1 <https://pypi.org/project/psutil/0.6.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#061>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.6.0...release-0.6.1#files_bucket>`__
 - 2012-08-13:
-  `0.6.0 
<https://pypi.python.org/pypi?name=psutil&version=0.6.0&:action=files>`__ -
+  `0.6.0 <https://pypi.org/project/psutil/0.6.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#060>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.5.1...release-0.6.0#files_bucket>`__
 - 2012-06-29:
-  `0.5.1 
<https://pypi.python.org/pypi?name=psutil&version=0.5.1&:action=files>`__ -
+  `0.5.1 <https://pypi.org/project/psutil/0.5.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#051>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.5.0...release-0.5.1#files_bucket>`__
 - 2012-06-27:
-  `0.5.0 
<https://pypi.python.org/pypi?name=psutil&version=0.5.0&:action=files>`__ -
+  `0.5.0 <https://pypi.org/project/psutil/0.5.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#050>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.4.1...release-0.5.0#files_bucket>`__
 - 2011-12-14:
-  `0.4.1 
<https://pypi.python.org/pypi?name=psutil&version=0.4.1&:action=files>`__ -
+  `0.4.1 <https://pypi.org/project/psutil/0.4.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#041>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.4.0...release-0.4.1#files_bucket>`__
 - 2011-10-29:
-  `0.4.0 
<https://pypi.python.org/pypi?name=psutil&version=0.4.0&:action=files>`__ -
+  `0.4.0 <https://pypi.org/project/psutil/0.4.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#040>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.3.0...release-0.4.0#files_bucket>`__
 - 2011-07-08:
-  `0.3.0 
<https://pypi.python.org/pypi?name=psutil&version=0.3.0&:action=files>`__ -
+  `0.3.0 <https://pypi.org/project/psutil/0.3.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#030>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.2.1...release-0.3.0#files_bucket>`__
 - 2011-03-20:
-  `0.2.1 
<https://pypi.python.org/pypi?name=psutil&version=0.2.1&:action=files>`__ -
+  `0.2.1 <https://pypi.org/project/psutil/0.2.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#021>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.2.0...release-0.2.1#files_bucket>`__
 - 2010-11-13:
-  `0.2.0 
<https://pypi.python.org/pypi?name=psutil&version=0.2.0&:action=files>`__ -
+  `0.2.0 <https://pypi.org/project/psutil/0.2.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#020>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.1.3...release-0.2.0#files_bucket>`__
 - 2010-03-02:
-  `0.1.3 
<https://pypi.python.org/pypi?name=psutil&version=0.1.3&:action=files>`__ -
+  `0.1.3 <https://pypi.org/project/psutil/0.1.3/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#013>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.1.2...release-0.1.3#files_bucket>`__
 - 2009-05-06:
-  `0.1.2 
<https://pypi.python.org/pypi?name=psutil&version=0.1.2&:action=files>`__ -
+  `0.1.2 <https://pypi.org/project/psutil/0.1.2/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#012>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.1.1...release-0.1.2#files_bucket>`__
 - 2009-03-06:
-  `0.1.1 
<https://pypi.python.org/pypi?name=psutil&version=0.1.1&:action=files>`__ -
+  `0.1.1 <https://pypi.org/project/psutil/0.1.1/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#011>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/release-0.1.0...release-0.1.1#files_bucket>`__
 - 2009-01-27:
-  `0.1.0 
<https://pypi.python.org/pypi?name=psutil&version=0.1.0&:action=files>`__ -
+  `0.1.0 <https://pypi.org/project/psutil/0.1.0/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#010>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/d84cc9a783d977368a64016cdb3568d2c9bceacc...release-0.1.0#files_bucket>`__
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/psutil/__init__.py 
new/psutil-5.4.6/psutil/__init__.py
--- old/psutil-5.4.5/psutil/__init__.py 2018-04-13 19:33:08.000000000 +0200
+++ new/psutil-5.4.6/psutil/__init__.py 2018-05-08 18:12:59.000000000 +0200
@@ -218,7 +218,7 @@
 ]
 __all__.extend(_psplatform.__extra__all__)
 __author__ = "Giampaolo Rodola'"
-__version__ = "5.4.5"
+__version__ = "5.4.6"
 version_info = tuple([int(num) for num in __version__.split('.')])
 AF_LINK = _psplatform.AF_LINK
 POWER_TIME_UNLIMITED = _common.POWER_TIME_UNLIMITED
@@ -265,13 +265,9 @@
         ret = {}
         for pid in pids():
             try:
-                proc = _psplatform.Process(pid)
-                ppid = proc.ppid()
-            except (NoSuchProcess, AccessDenied):
-                # Note: AccessDenied is unlikely to happen.
+                ret[pid] = _psplatform.Process(pid).ppid()
+            except (NoSuchProcess, ZombieProcess):
                 pass
-            else:
-                ret[pid] = ppid
         return ret
 
 
@@ -2155,7 +2151,7 @@
             separator = ":" if POSIX else "-"
             while addr.count(separator) < 5:
                 addr += "%s00" % separator
-        ret[name].append(_common.snic(fam, addr, mask, broadcast, ptp))
+        ret[name].append(_common.snicaddr(fam, addr, mask, broadcast, ptp))
     return dict(ret)
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/psutil/_common.py 
new/psutil-5.4.6/psutil/_common.py
--- old/psutil-5.4.5/psutil/_common.py  2018-04-12 10:37:17.000000000 +0200
+++ new/psutil-5.4.6/psutil/_common.py  2018-05-08 17:56:36.000000000 +0200
@@ -59,7 +59,7 @@
     # named tuples
     'pconn', 'pcputimes', 'pctxsw', 'pgids', 'pio', 'pionice', 'popenfile',
     'pthread', 'puids', 'sconn', 'scpustats', 'sdiskio', 'sdiskpart',
-    'sdiskusage', 'snetio', 'snic', 'snicstats', 'sswap', 'suser',
+    'sdiskusage', 'snetio', 'snicaddr', 'snicstats', 'sswap', 'suser',
     # utility functions
     'conn_tmap', 'deprecated_method', 'isfile_strict', 'memoize',
     'parse_environ_block', 'path_exists_strict', 'usage_percent',
@@ -182,7 +182,8 @@
 sconn = namedtuple('sconn', ['fd', 'family', 'type', 'laddr', 'raddr',
                              'status', 'pid'])
 # psutil.net_if_addrs()
-snic = namedtuple('snic', ['family', 'address', 'netmask', 'broadcast', 'ptp'])
+snicaddr = namedtuple('snicaddr',
+                      ['family', 'address', 'netmask', 'broadcast', 'ptp'])
 # psutil.net_if_stats()
 snicstats = namedtuple('snicstats', ['isup', 'duplex', 'speed', 'mtu'])
 # psutil.cpu_stats()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/psutil/_pslinux.py 
new/psutil-5.4.6/psutil/_pslinux.py
--- old/psutil-5.4.5/psutil/_pslinux.py 2018-04-12 10:37:17.000000000 +0200
+++ new/psutil-5.4.6/psutil/_pslinux.py 2018-05-08 17:58:14.000000000 +0200
@@ -1380,9 +1380,8 @@
                 data = f.read()
         except EnvironmentError as err:
             # Note: we should be able to access /stat for all processes
-            # so we won't bump into EPERM, which is good.
-            if err.errno not in (errno.ENOENT, errno.ESRCH,
-                                 errno.EPERM, errno.EACCES):
+            # aka it's unlikely we'll bump into EPERM, which is good.
+            if err.errno not in (errno.ENOENT, errno.ESRCH):
                 raise
         else:
             rpar = data.rfind(b')')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/psutil/_psutil_windows.c 
new/psutil-5.4.6/psutil/_psutil_windows.c
--- old/psutil-5.4.5/psutil/_psutil_windows.c   2018-04-13 10:53:36.000000000 
+0200
+++ new/psutil-5.4.6/psutil/_psutil_windows.c   2018-06-07 17:13:54.000000000 
+0200
@@ -1405,9 +1405,9 @@
     ULONG nameSize;
     ULONG domainNameSize;
     SID_NAME_USE nameUse;
-    PyObject *py_username;
-    PyObject *py_domain;
-    PyObject *py_tuple;
+    PyObject *py_username = NULL;
+    PyObject *py_domain = NULL;
+    PyObject *py_tuple = NULL;
 
     if (! PyArg_ParseTuple(args, "l", &pid))
         return NULL;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/psutil/arch/freebsd/specific.c 
new/psutil-5.4.6/psutil/arch/freebsd/specific.c
--- old/psutil-5.4.5/psutil/arch/freebsd/specific.c     2018-04-12 
10:37:17.000000000 +0200
+++ new/psutil-5.4.6/psutil/arch/freebsd/specific.c     2018-05-22 
17:48:08.000000000 +0200
@@ -273,7 +273,6 @@
     int mib[4];
     int ret;
     size_t size;
-    const char *encoding_errs;
 
     if (! PyArg_ParseTuple(args, "l", &pid))
         return NULL;
@@ -540,7 +539,6 @@
     struct kinfo_file *freep = NULL;
     struct kinfo_file *kif;
     struct kinfo_proc kipp;
-    const char *encoding_errs;
     PyObject *py_path = NULL;
 
     int i, cnt;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/psutil/tests/__init__.py 
new/psutil-5.4.6/psutil/tests/__init__.py
--- old/psutil-5.4.5/psutil/tests/__init__.py   2018-04-12 10:58:41.000000000 
+0200
+++ new/psutil-5.4.6/psutil/tests/__init__.py   2018-05-08 17:56:36.000000000 
+0200
@@ -125,7 +125,7 @@
 # bytes tolerance for system-wide memory related tests
 MEMORY_TOLERANCE = 500 * 1024  # 500KB
 # the timeout used in functions which have to wait
-GLOBAL_TIMEOUT = 3
+GLOBAL_TIMEOUT = 3 if TRAVIS or APPVEYOR else 0.5
 # test output verbosity
 VERBOSITY = 1 if os.getenv('SILENT') or TOX else 2
 # be more tolerant if we're on travis / appveyor in order to avoid
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/psutil/tests/test_linux.py 
new/psutil-5.4.6/psutil/tests/test_linux.py
--- old/psutil-5.4.5/psutil/tests/test_linux.py 2018-04-12 10:37:17.000000000 
+0200
+++ new/psutil-5.4.6/psutil/tests/test_linux.py 2018-05-08 17:56:36.000000000 
+0200
@@ -1408,20 +1408,6 @@
                         "/sys/class/power_supply/BAT0/capacity", b"88"):
                     self.assertEqual(psutil.sensors_battery().percent, 88)
 
-    def test_emulate_no_ac0_online(self):
-        # Emulate a case where /AC0/online file does not exist.
-        def path_exists_mock(name):
-            if name.startswith("/sys/class/power_supply/AC0/online"):
-                return False
-            else:
-                return orig_path_exists(name)
-
-        orig_path_exists = os.path.exists
-        with mock.patch("psutil._pslinux.os.path.exists",
-                        side_effect=path_exists_mock) as m:
-            psutil.sensors_battery()
-            assert m.called
-
     def test_emulate_no_power(self):
         # Emulate a case where /AC0/online file nor /BAT0/status exist.
         with mock_open_exception(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/psutil.egg-info/PKG-INFO 
new/psutil-5.4.6/psutil.egg-info/PKG-INFO
--- old/psutil-5.4.5/psutil.egg-info/PKG-INFO   2018-04-13 19:59:31.000000000 
+0200
+++ new/psutil-5.4.6/psutil.egg-info/PKG-INFO   2018-06-07 17:39:21.000000000 
+0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: psutil
-Version: 5.4.5
+Version: 5.4.6
 Summary: Cross-platform lib for process and system monitoring in Python.
 Home-page: https://github.com/giampaolo/psutil
 Author: Giampaolo Rodola
@@ -23,7 +23,7 @@
             :alt: Documentation Status
         
         .. image:: https://img.shields.io/pypi/v/psutil.svg?label=pypi
-            :target: https://pypi.python.org/pypi/psutil/
+            :target: https://pypi.org/project/psutil
             :alt: Latest version
         
         .. image:: https://img.shields.io/github/stars/giampaolo/psutil.svg
@@ -31,7 +31,7 @@
             :alt: Github stars
         
         .. image:: https://img.shields.io/pypi/l/psutil.svg
-            :target: https://pypi.python.org/pypi/psutil/
+            :target: https://pypi.org/project/psutil
             :alt: License
         
         ===========
@@ -41,7 +41,7 @@
         - `Home page <https://github.com/giampaolo/psutil>`_
         - `Install 
<https://github.com/giampaolo/psutil/blob/master/INSTALL.rst>`_
         - `Documentation <http://psutil.readthedocs.io>`_
-        - `Download 
<https://pypi.python.org/pypi?:action=display&name=psutil#downloads>`_
+        - `Download <https://pypi.org/project/psutil/#files>`_
         - `Forum <http://groups.google.com/group/psutil/topics>`_
         - `StackOverflow <https://stackoverflow.com/questions/tagged/psutil>`_
         - `Blog <http://grodola.blogspot.com/search/label/psutil>`_
@@ -94,7 +94,7 @@
         At the time of writing psutil has roughly
         `2.9 milion downloads 
<https://github.com/giampaolo/psutil/issues/1053#issuecomment-340166262>`__
         per month and there are over
-        `7000 open source projects 
<https://libraries.io/pypi/psutil/dependent_repositories?page=1>`__
+        `8000 open source projects 
<https://libraries.io/pypi/psutil/dependent_repositories?page=1>`__
         on github which depend from psutil.
         Here's some I find particularly interesting:
         
@@ -209,12 +209,12 @@
              ...]
             >>>
             >>> psutil.net_if_addrs()
-            {'lo': [snic(family=<AddressFamily.AF_INET: 2>, 
address='127.0.0.1', netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
-                    snic(family=<AddressFamily.AF_INET6: 10>, address='::1', 
netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', broadcast=None, ptp=None),
-                    snic(family=<AddressFamily.AF_LINK: 17>, 
address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', 
ptp=None)],
-             'wlan0': [snic(family=<AddressFamily.AF_INET: 2>, 
address='192.168.1.3', netmask='255.255.255.0', broadcast='192.168.1.255', 
ptp=None),
-                       snic(family=<AddressFamily.AF_INET6: 10>, 
address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', 
broadcast=None, ptp=None),
-                       snic(family=<AddressFamily.AF_LINK: 17>, 
address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', 
ptp=None)]}
+            {'lo': [snicaddr(family=<AddressFamily.AF_INET: 2>, 
address='127.0.0.1', netmask='255.0.0.0', broadcast='127.0.0.1', ptp=None),
+                    snicaddr(family=<AddressFamily.AF_INET6: 10>, 
address='::1', netmask='ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff', 
broadcast=None, ptp=None),
+                    snicaddr(family=<AddressFamily.AF_LINK: 17>, 
address='00:00:00:00:00:00', netmask=None, broadcast='00:00:00:00:00:00', 
ptp=None)],
+             'wlan0': [snicaddr(family=<AddressFamily.AF_INET: 2>, 
address='192.168.1.3', netmask='255.255.255.0', broadcast='192.168.1.255', 
ptp=None),
+                       snicaddr(family=<AddressFamily.AF_INET6: 10>, 
address='fe80::c685:8ff:fe45:641%wlan0', netmask='ffff:ffff:ffff:ffff::', 
broadcast=None, ptp=None),
+                       snicaddr(family=<AddressFamily.AF_LINK: 17>, 
address='c4:85:08:45:06:41', netmask=None, broadcast='ff:ff:ff:ff:ff:ff', 
ptp=None)]}
             >>>
             >>> psutil.net_if_stats()
             {'eth0': snicstats(isup=True, duplex=<NicDuplex.NIC_DUPLEX_FULL: 
2>, speed=100, mtu=1500),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/psutil.egg-info/SOURCES.txt 
new/psutil-5.4.6/psutil.egg-info/SOURCES.txt
--- old/psutil-5.4.5/psutil.egg-info/SOURCES.txt        2018-04-13 
19:59:31.000000000 +0200
+++ new/psutil-5.4.6/psutil.egg-info/SOURCES.txt        2018-06-07 
17:39:21.000000000 +0200
@@ -133,5 +133,5 @@
 scripts/internal/generate_manifest.py
 scripts/internal/print_announce.py
 scripts/internal/print_timeline.py
-scripts/internal/purge.py
+scripts/internal/purge_installation.py
 scripts/internal/winmake.py
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/scripts/internal/print_announce.py 
new/psutil-5.4.6/scripts/internal/print_announce.py
--- old/psutil-5.4.5/scripts/internal/print_announce.py 2018-04-12 
10:37:17.000000000 +0200
+++ new/psutil-5.4.6/scripts/internal/print_announce.py 2018-05-08 
17:56:36.000000000 +0200
@@ -20,7 +20,7 @@
 PRJ_NAME = 'psutil'
 PRJ_URL_HOME = 'https://github.com/giampaolo/psutil'
 PRJ_URL_DOC = 'http://psutil.readthedocs.io'
-PRJ_URL_DOWNLOAD = 'https://pypi.python.org/pypi/psutil'
+PRJ_URL_DOWNLOAD = 'https://pypi.org/project/psutil/#files'
 PRJ_URL_WHATSNEW = \
     'https://github.com/giampaolo/psutil/blob/master/HISTORY.rst'
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/scripts/internal/print_timeline.py 
new/psutil-5.4.6/scripts/internal/print_timeline.py
--- old/psutil-5.4.5/scripts/internal/print_timeline.py 2018-04-12 
10:37:17.000000000 +0200
+++ new/psutil-5.4.6/scripts/internal/print_timeline.py 2018-05-08 
17:56:36.000000000 +0200
@@ -13,7 +13,7 @@
 
 entry = """\
 - {date}:
-  `{ver} 
<https://pypi.python.org/pypi?name=psutil&version={ver}&:action=files>`__ -
+  `{ver} <https://pypi.org/project/psutil/#files>`__ -
   `what's new 
<https://github.com/giampaolo/psutil/blob/master/HISTORY.rst#{nodotver}>`__ -
   `diff 
<https://github.com/giampaolo/psutil/compare/{prevtag}...{tag}#files_bucket>`__"""
  # NOQA
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/scripts/internal/purge.py 
new/psutil-5.4.6/scripts/internal/purge.py
--- old/psutil-5.4.5/scripts/internal/purge.py  2018-04-12 10:37:17.000000000 
+0200
+++ new/psutil-5.4.6/scripts/internal/purge.py  1970-01-01 01:00:00.000000000 
+0100
@@ -1,42 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2009 Giampaolo Rodola'. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-"""
-Purge psutil installation by removing psutil-related files and
-directories found in site-packages directories. This is needed mainly
-because sometimes "import psutil" imports a leftover installation
-from site-packages directory instead of the main working directory.
-"""
-
-import os
-import shutil
-import site
-
-
-PKGNAME = "psutil"
-
-
-def rmpath(path):
-    if os.path.isdir(path):
-        print("rmdir " + path)
-        shutil.rmtree(path)
-    else:
-        print("rm " + path)
-        os.remove(path)
-
-
-def main():
-    locations = [site.getusersitepackages()]
-    locations.extend(site.getsitepackages())
-    for root in locations:
-        if os.path.isdir(root):
-            for name in os.listdir(root):
-                if PKGNAME in name:
-                    abspath = os.path.join(root, name)
-                    rmpath(abspath)
-
-
-main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/scripts/internal/purge_installation.py 
new/psutil-5.4.6/scripts/internal/purge_installation.py
--- old/psutil-5.4.5/scripts/internal/purge_installation.py     1970-01-01 
01:00:00.000000000 +0100
+++ new/psutil-5.4.6/scripts/internal/purge_installation.py     2018-05-08 
17:56:36.000000000 +0200
@@ -0,0 +1,42 @@
+#!/usr/bin/env python
+
+# Copyright (c) 2009 Giampaolo Rodola'. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+"""
+Purge psutil installation by removing psutil-related files and
+directories found in site-packages directories. This is needed mainly
+because sometimes "import psutil" imports a leftover installation
+from site-packages directory instead of the main working directory.
+"""
+
+import os
+import shutil
+import site
+
+
+PKGNAME = "psutil"
+
+
+def rmpath(path):
+    if os.path.isdir(path):
+        print("rmdir " + path)
+        shutil.rmtree(path)
+    else:
+        print("rm " + path)
+        os.remove(path)
+
+
+def main():
+    locations = [site.getusersitepackages()]
+    locations.extend(site.getsitepackages())
+    for root in locations:
+        if os.path.isdir(root):
+            for name in os.listdir(root):
+                if PKGNAME in name:
+                    abspath = os.path.join(root, name)
+                    rmpath(abspath)
+
+
+main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/psutil-5.4.5/setup.py new/psutil-5.4.6/setup.py
--- old/psutil-5.4.5/setup.py   2018-04-13 19:29:59.000000000 +0200
+++ new/psutil-5.4.6/setup.py   2018-05-08 17:56:36.000000000 +0200
@@ -43,8 +43,6 @@
 macros = []
 if POSIX:
     macros.append(("PSUTIL_POSIX", 1))
-if WINDOWS:
-    macros.append(("PSUTIL_WINDOWS", 1))
 if BSD:
     macros.append(("PSUTIL_BSD", 1))
 
@@ -117,6 +115,7 @@
         msg += "Visual Studio and may also (kind of) work though"
         warnings.warn(msg, UserWarning)
 
+    macros.append(("PSUTIL_WINDOWS", 1))
     macros.extend([
         # be nice to mingw, see:
         # http://www.mingw.org/wiki/Use_more_recent_defined_functions
@@ -252,6 +251,7 @@
             'psutil/arch/aix/ifaddrs.c'],
         libraries=['perfstat'],
         define_macros=macros)
+
 else:
     sys.exit('platform %s is not supported' % sys.platform)
 


Reply via email to