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)