Hello community, here is the log from the commit of package python-helpdev for openSUSE:Factory checked in at 2020-05-19 14:47:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-helpdev (Old) and /work/SRC/openSUSE:Factory/.python-helpdev.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-helpdev" Tue May 19 14:47:06 2020 rev:3 rq:806821 version:0.7.1 Changes: -------- --- /work/SRC/openSUSE:Factory/python-helpdev/python-helpdev.changes 2020-03-08 22:24:48.180102103 +0100 +++ /work/SRC/openSUSE:Factory/.python-helpdev.new.2738/python-helpdev.changes 2020-05-19 14:47:08.747898749 +0200 @@ -1,0 +2,24 @@ +Mon May 18 08:11:04 UTC 2020 - Antonio Larrosa <alarr...@suse.com> + +- Update to version 0.7.1 (fixes issue reported in boo#1135733 #c4): + * Fix pipeline, doc8 linting ignores D001, line too long + * Add customize function, part of #1 + * Change _filter to filter_packages and make it public + * Improve filter_package explanation + * Improve docs + * Add check_qt() function + * Add check_numbers() function + * Enhance help from command line parser + * Enhance command line order + * Correct mispelling errors + * Remove importlib_metadata for Python 3.8+, incoporated into std lib, MR#2 + * Add MANIFEST.in, part of #9 + * Improve internal code and linting + * Remove support for Python 2.7 and 3.4, closes #8 + +- There's no 0.7.0 release by upstream. + +- Remove patch already included by upstream: + * python38.patch + +------------------------------------------------------------------- Old: ---- helpdev-v0.6.10.tar.gz python38.patch New: ---- helpdev-v0.7.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-helpdev.spec ++++++ --- /var/tmp/diff_new_pack.VTC2yw/_old 2020-05-19 14:47:10.107901655 +0200 +++ /var/tmp/diff_new_pack.VTC2yw/_new 2020-05-19 14:47:10.111901663 +0200 @@ -18,14 +18,13 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-helpdev -Version: 0.6.10 +Version: 0.7.1 Release: 0 Summary: HelpDev - Extracts information about the Python environment easily License: MIT AND CC-BY-4.0 Group: Development/Languages/Python URL: https://gitlab.com/dpizetta/helpdev Source0: https://gitlab.com/dpizetta/helpdev/-/archive/v%{version}/helpdev-v%{version}.tar.gz -Patch0: python38.patch BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros @@ -44,7 +43,6 @@ %prep %setup -q -n helpdev-v%{version} -%patch0 -p1 sed -i '1{\,^#!%{_bindir}/env python,d}' helpdev/*.py %build ++++++ helpdev-v0.6.10.tar.gz -> helpdev-v0.7.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/.gitlab-ci.yml new/helpdev-v0.7.1/.gitlab-ci.yml --- old/helpdev-v0.6.10/.gitlab-ci.yml 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/.gitlab-ci.yml 2020-05-05 22:16:22.000000000 +0200 @@ -25,40 +25,18 @@ before_script: # OUTSIDE VIRTUAL ENV ----------------------------------------------------- - python -V - - pip install -U setuptools - - pip install -U wheel - - pip install -U pip - - pip install -U virtualenv - - pip install -U tox - - - virtualenv venv - - source venv/bin/activate - - # INSIDE VIRTUAL ENV ----------------------------------------------------- - - python -V - - pip install -U setuptools - - pip install -U wheel - - pip install -U pip - - pip install -U virtualenv - - pip install -U tox - - -py27-build: - stage: build - image: python:2.7 - script: - - export TOXENV=py27-build - - tox -s true - - -py34-build: - stage: build - image: python:3.4 - script: - - export TOXENV=py34-build - - tox -s true - + - python -m ensurepip + - python -m pip install -U pip + - python -m pip install -U setuptools + - python -m pip install -U wheel + - python -m pip install -U virtualenv + - python -m pip install -U tox + +# Python 2.7 end of support 2020-01 +# Python 3.4 end of support 2019-03 +# Python 3.5 end of support 2020-09 +# End of support 2021-12 py36-build: stage: build image: python:3.6 @@ -66,7 +44,7 @@ - export TOXENV=py36-build - tox -s true - +# End of support 2023-06 py37-build: stage: build image: python:3.7 @@ -74,38 +52,49 @@ - export TOXENV=py37-build - tox -s true +# End of support 2024-10 +py38-build: + stage: build + image: python:3.8 + script: + - export TOXENV=py38-build + - tox -s true + -py36-test: +py38-test: stage: test - image: python:3.6 + image: python:3.8 script: - - export TOXENV=py36-test + - export TOXENV=py38-test - tox -s true -py36-lint: +py38-lint: stage: test - image: python:3.6 + image: python:3.8 + allow_failure: false script: - - export TOXENV=py36-lint - - tox -s true + - export TOXENV=py38-lint + - tox -r -s true -py36-safety: +py38-safety: stage: test - image: python:3.6 + image: python:3.8 script: - - export TOXENV=py36-safety + - export TOXENV=py38-safety - tox -s true -py36-metric: +py38-metric: stage: test - image: python:3.6 + image: python:3.8 script: - - export TOXENV=py36-metric + - export TOXENV=py38-metric - tox -s true +include: + - template: Code-Quality.gitlab-ci.yml # py36-test-pyqt: # stage: test diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/CHANGES.rst new/helpdev-v0.7.1/CHANGES.rst --- old/helpdev-v0.6.10/CHANGES.rst 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/CHANGES.rst 2020-05-05 22:16:22.000000000 +0200 @@ -1,10 +1,30 @@ Changes ======= + +v0.7 +---- + +* Add ``customize`` function, part of #1 +* Change _filter to filter_packages and make it public +* Improve filter_package explanation +* Improve docs +* Add check_qt() function +* Add check_numbers() function +* Enhance help from command line parser +* Enhance command line order +* Correct mispelling errors +* Remove importlib_metadata for Pytho 3.8+, incoporated into std lib, MR#2 +* Add MANIFEST.in, part of #9 +* Improve internal code and linting +* Remove support for Python 2.7 and 3.4, closes #8 + + v0.6.10 -------- * Fix gitlab-ci, again +* Whole pipeline working on gitlab, even upload to pypi v0.6.9 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/MANIFEST.in new/helpdev-v0.7.1/MANIFEST.in --- old/helpdev-v0.6.10/MANIFEST.in 1970-01-01 01:00:00.000000000 +0100 +++ new/helpdev-v0.7.1/MANIFEST.in 2020-05-05 22:16:22.000000000 +0200 @@ -0,0 +1,13 @@ +# +# MANIFEST.in +# + +include MANIFEST.in +include setup.py +include CHANGES.rst +include LICENSE.rst +include README.rst +include helpdev/* +include tests/* +include docs/* +include examples/* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/README.rst new/helpdev-v0.7.1/README.rst --- old/helpdev-v0.6.10/README.rst 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/README.rst 2020-05-05 22:16:22.000000000 +0200 @@ -90,10 +90,6 @@ Help ---- -.. code-block:: ruby - - Some Ruby code. - .. code-block:: console diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/docs/tutorials/customizing.rst new/helpdev-v0.7.1/docs/tutorials/customizing.rst --- old/helpdev-v0.6.10/docs/tutorials/customizing.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/helpdev-v0.7.1/docs/tutorials/customizing.rst 2020-05-05 22:16:22.000000000 +0200 @@ -0,0 +1,135 @@ +Customizing for your application +-------------------------------- + +You can use this tool to provide a easy way to the users get necessary +information about their environment when reporting bugs. Even if developers +can use it to *easilly* get all the information necessary. + +1. Add ``helpdev`` to your list of requirements in ``setup.py`` + +.. code-block:: Python + + # ... + + install_requires=['helpdev'...] + + # ... + + +2. Import ``helpdev`` functions that are important for you + +.. code-block:: Python + + # ... + + import helpdev + + report_dict = {} + + # get basic information updating the dictionary + report_dict.update(helpdev.check_hardware()) + report_dict.update(helpdev.check_os()) + report_dict.update(helpdev.check_python()) + report_dict.update(helpdev.check_qt_bindings()) + report_dict.update(helpdev.check_qt_abstractions()) + + # list of important packages for your app + # note that you can use regex (spyder.*) + packages = "spyder.*,ipython,cython,jedi,matplotlib,numpy,pandas," + "psutil,pycodestyle,pyflakes,pygments,pylint,qtconsole," + "rope,sphinx,sympy" + + # get filtered information for those packages + report_dict.update(helpdev.check_python_packages(packages)) + + # ... + + +3. You can use, then, the dictionary-like information or print it + +.. code-block:: Python + + # ... + + # printing the output in the terminal + helpdev.print_output(report_dict) + + # ... + +4. The output for this example is, then + + +.. code-block:: console + + * HARDWARE----------------------------------------------------------------------- + - Machine....................... x86_64 + - Processor..................... Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz + - Total Memory.................. 16689 MB + - Free Memory................... 534 MB + - Total Swap.................... 19999 MB + - Free Swap..................... 19999 MB + * OPERATING SYSTEM--------------------------------------------------------------- + - System........................ Linux + - Release....................... 4.15.0-48-generic + - Platform...................... Linux-4.15.0-48-generic-x86_64-with-debian-buster-sid + - Version....................... #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 + * PYTHON DISTRIBUTION------------------------------------------------------------ + - Version....................... 3.6.8 + - C Compiler.................... GCC 7.3.0 + - C API Version................. 1013 + - Implementation................ cpython + - Implementation Version........ 3.6.8 + * QT BINDINGS-------------------------------------------------------------------- + - PyQt5 Version................. 5.12.2 + - PyQt5 Qt Version.............. 5.12.3 + * QT ABSTRACTIONS---------------------------------------------------------------- + - qtpy Version.................. 1.7.1 + - qtpy Binding.................. pyqt5 + - qtpy Binding Variable......... os.environ['QT_API'] + - qtpy Import Name.............. qtpy + - qtpy Status................... OK + - pyqtgraph Version............. 0.10.0 + - pyqtgraph Binding............. Not set or inexistent + - pyqtgraph Binding Variable.... os.environ['PYQTGRAPH_QT_LIB'] + - pyqtgraph Import Name......... pyqtgraph + - pyqtgraph Status.............. OK + - Qt Version.................... 1.1.0 + - Qt Binding.................... PyQt5 + - Qt Binding Variable........... Qt.__binding__ + - Qt Import Name................ Qt + - Qt Status..................... OK + * PYTHON PACKAGES---------------------------------------------------------------- + - ipython....................... 7.5.0 + - jedi.......................... 0.13.3 + - numpy......................... 1.16.3 + - psutil........................ 5.6.2 + - pycodestyle................... 2.5.0 + - pyflakes...................... 2.1.1 + - Pygments...................... 2.3.1 + - qtconsole..................... 4.4.4 + - rope.......................... 0.14.0 + - Sphinx........................ 2.0.1 + - spyder........................ 3.3.4 + - spyder-kernels................ 0.4.4 + + +You can obtain the same output using the command-line options as follows + +.. code-block:: console + + helpdev --hardware --os --python --qt + + helpdev --packages="spyder.*,ipython,cython,jedi,matplotlib,numpy, + pandas,psutil,pycodestyle,pyflakes,pygments, + pylint,qtconsole,rope,sphinx,sympy" + + +In this example, the packages list was created from the Spyder dependencies +list and *about* which can be seem below: + + +.. image:: ../images/spyder-dep-list.png + + +.. image:: ../images/spyder-about.png + :width: 400 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/docs/tutorials/index.rst new/helpdev-v0.7.1/docs/tutorials/index.rst --- old/helpdev-v0.6.10/docs/tutorials/index.rst 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/docs/tutorials/index.rst 2020-05-05 22:16:22.000000000 +0200 @@ -4,4 +4,4 @@ .. toctree:: :maxdepth: 2 - personalise.rst + customizing.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/docs/tutorials/personalise.rst new/helpdev-v0.7.1/docs/tutorials/personalise.rst --- old/helpdev-v0.6.10/docs/tutorials/personalise.rst 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/docs/tutorials/personalise.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1,135 +0,0 @@ -Personalising for your application ----------------------------------- - -You can use this tool to provide a easy way to the users get necessary -information about their environment when reporting bugs. Even if developers -can use it to *easilly* get all the information necessary. - -1. Add ``helpdev`` to your list of requirements in ``setup.py`` - -.. code-block:: Python - - # ... - - install_requires=['helpdev'...] - - # ... - - -2. Import ``helpdev`` functions that are important for you - -.. code-block:: Python - - # ... - - import helpdev - - report_dict = {} - - # get basic information updating the dictionary - report_dict.update(helpdev.check_hardware()) - report_dict.update(helpdev.check_os()) - report_dict.update(helpdev.check_python()) - report_dict.update(helpdev.check_qt_bindings()) - report_dict.update(helpdev.check_qt_abstractions()) - - # list of important packages for your app - # note that you can use regex (spyder.*) - packages = "spyder.*,ipython,cython,jedi,matplotlib,numpy,pandas," - "psutil,pycodestyle,pyflakes,pygments,pylint,qtconsole," - "rope,sphinx,sympy" - - # get filtered information for those packages - report_dict.update(helpdev.check_python_packages(packages)) - - # ... - - -3. You can use, then, the dictionary-like information or print it - -.. code-block:: Python - - # ... - - # printing the output in the terminal - helpdev.print_output(report_dict) - - # ... - -4. The output for this example is, then - - -.. code-block:: console - - * HARDWARE----------------------------------------------------------------------- - - Machine....................... x86_64 - - Processor..................... Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz - - Total Memory.................. 16689 MB - - Free Memory................... 534 MB - - Total Swap.................... 19999 MB - - Free Swap..................... 19999 MB - * OPERATING SYSTEM--------------------------------------------------------------- - - System........................ Linux - - Release....................... 4.15.0-48-generic - - Platform...................... Linux-4.15.0-48-generic-x86_64-with-debian-buster-sid - - Version....................... #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 - * PYTHON DISTRIBUTION------------------------------------------------------------ - - Version....................... 3.6.8 - - C Compiler.................... GCC 7.3.0 - - C API Version................. 1013 - - Implementation................ cpython - - Implementation Version........ 3.6.8 - * QT BINDINGS-------------------------------------------------------------------- - - PyQt5 Version................. 5.12.2 - - PyQt5 Qt Version.............. 5.12.3 - * QT ABSTRACTIONS---------------------------------------------------------------- - - qtpy Version.................. 1.7.1 - - qtpy Binding.................. pyqt5 - - qtpy Binding Variable......... os.environ['QT_API'] - - qtpy Import Name.............. qtpy - - qtpy Status................... OK - - pyqtgraph Version............. 0.10.0 - - pyqtgraph Binding............. Not set or inexistent - - pyqtgraph Binding Variable.... os.environ['PYQTGRAPH_QT_LIB'] - - pyqtgraph Import Name......... pyqtgraph - - pyqtgraph Status.............. OK - - Qt Version.................... 1.1.0 - - Qt Binding.................... PyQt5 - - Qt Binding Variable........... Qt.__binding__ - - Qt Import Name................ Qt - - Qt Status..................... OK - * PYTHON PACKAGES---------------------------------------------------------------- - - ipython....................... 7.5.0 - - jedi.......................... 0.13.3 - - numpy......................... 1.16.3 - - psutil........................ 5.6.2 - - pycodestyle................... 2.5.0 - - pyflakes...................... 2.1.1 - - Pygments...................... 2.3.1 - - qtconsole..................... 4.4.4 - - rope.......................... 0.14.0 - - Sphinx........................ 2.0.1 - - spyder........................ 3.3.4 - - spyder-kernels................ 0.4.4 - - -You can obtain the same output using the command-line options as follows - -.. code-block:: console - - helpdev --hardware --os --python --qt - - helpdev --packages="spyder.*,ipython,cython,jedi,matplotlib,numpy, - pandas,psutil,pycodestyle,pyflakes,pygments, - pylint,qtconsole,rope,sphinx,sympy" - - -In this example, the packages list was created from the Spyder dependencies -list and *about* which can be seem below: - - -.. image:: ../images/spyder-dep-list.png - - -.. image:: ../images/spyder-about.png - :width: 400 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/examples/all.txt new/helpdev-v0.7.1/examples/all.txt --- old/helpdev-v0.6.10/examples/all.txt 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/examples/all.txt 2020-05-05 22:16:22.000000000 +0200 @@ -1,64 +1,44 @@ -* HARDWARE------------------------------------------------------------------------------------------------------ +* HARDWARE----------------------------------------------------------------------- - Machine....................... x86_64 - Processor..................... Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz - - Total Memory.................. 16689 MB - - Free Memory................... 5689 MB - - Total Swap.................... 19999 MB - - Free Swap..................... 19999 MB -* OPERATING SYSTEM---------------------------------------------------------------------------------------------- + - Total Memory.................. 16661 MB + - Free Memory................... 1560 MB + - Total Swap.................... 2147 MB + - Free Swap..................... 2082 MB +* OPERATING SYSTEM--------------------------------------------------------------- - System........................ Linux - - Release....................... 4.15.0-48-generic - - Platform...................... Linux-4.15.0-48-generic-x86_64-with-debian-buster-sid - - Version....................... #51-Ubuntu SMP Wed Apr 3 08:28:49 UTC 2019 -* THREADS------------------------------------------------------------------------------------------------------- + - Release....................... 5.3.0-51-generic + - Platform...................... Linux-5.3.0-51-generic-x86_64-with-glibc2.10 + - Version....................... #44~18.04.2-Ubuntu SMP Thu Apr 23 14:27:18 UTC 2020 +* THREADS------------------------------------------------------------------------ - Version....................... NPTL 2.27 - Name.......................... pthread - Lock.......................... semaphore -* PYTHON DISTRIBUTION------------------------------------------------------------------------------------------- - - Version....................... 3.6.8 +* PYTHON DISTRIBUTION------------------------------------------------------------ + - Version....................... 3.8.2 - C Compiler.................... GCC 7.3.0 - C API Version................. 1013 - Implementation................ cpython - - Implementation Version........ 3.6.8 -* CONDA DISTRIBUTION-------------------------------------------------------------------------------------------- - - Version....................... 4.6.12 - - Build......................... 3.17.8 -* QT BINDINGS--------------------------------------------------------------------------------------------------- - - PyQt5 Version................. 5.12.1 - - PyQt5 Qt Version.............. 5.12.2 - - PySide2 Version............... 5.12.2 - - PySide2 Qt Version............ 5.12.2 -* QT ABSTRACTIONS----------------------------------------------------------------------------------------------- - - qtpy Version.................. 1.7.0 + - Implementation Version........ 3.8.2 +* CONDA DISTRIBUTION------------------------------------------------------------- + - Version....................... 4.8.3 + - Build......................... 3.18.11 +* QT BINDINGS-------------------------------------------------------------------- + - PyQt5 Version................. 5.14.2 + - PyQt5 Qt Version.............. 5.14.2 +* QT ABSTRACTIONS---------------------------------------------------------------- + - qtpy Version.................. 1.9.0 - qtpy Binding.................. pyqt5 - qtpy Binding Variable......... os.environ['QT_API'] - qtpy Import Name.............. qtpy + - qtpy Status................... OK - pyqtgraph Version............. 0.10.0 - pyqtgraph Binding............. Not set or inexistent - pyqtgraph Binding Variable.... os.environ['PYQTGRAPH_QT_LIB'] - pyqtgraph Import Name......... pyqtgraph -* FLOAT--------------------------------------------------------------------------------------------------------- - - Epsilon....................... 2.220446049250313e-16 - - Digits........................ 15 - - Precision..................... 53 - - Maximum....................... 1.7976931348623157e+308 - - Maximum Exp................... 1024 - - Max. 10 Exp................... 308 - - Minimum....................... 2.2250738585072014e-308 - - Miminim Exp................... -1021 - - Min. 10 Exp................... -307 - - Radix......................... 2 - - Rounds........................ 1 -* INTEGER------------------------------------------------------------------------------------------------------- - - Bits per Digit................ 30 - - Size of Digit................. 4 -* PYTHON PACKAGES----------------------------------------------------------------------------------------------- - - alabaster..................... 0.7.12 - - appdirs....................... 1.4.3 - - asn1crypto.................... 0.24.0 - - ... -* CONDA PACKAGES------------------------------------------------------------------------------------------------ - - alabaster..................... 0.7.12 - - appdirs....................... 1.4.3 - - asn1crypto.................... 0.24.0 - - ... + - pyqtgraph Status.............. OK + - Qt Version.................... 1.2.5 + - Qt Binding.................... PyQt5 + - Qt Binding Variable........... Qt.__binding__ + - Qt Import Name................ Qt + - Qt Status..................... OK diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/examples/help.txt new/helpdev-v0.7.1/examples/help.txt --- old/helpdev-v0.6.10/examples/help.txt 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/examples/help.txt 2020-05-05 22:16:22.000000000 +0200 @@ -1,53 +1,57 @@ -usage: helpdev - [--hardware] [--os] [--thread] [--network [NETWORK]] - [--distributions] [--python] [--conda] - [--qt] [--qt-bindings] [--qt-abstractions] - [--packages [PACKAGES]] - [--packages-pip] [--packages-pip-e] - [--packages-conda] [--packages-conda-e] - [--numbers] [--float] [--int] - [--personal] [--path] [--scope] - [--all] - [--all-for-sure] - [--version] - [--help] +usage: helpdev [--hardware] [--os] [--thread] [--network [NETWORK]] + [--distributions] [--python] [--conda] + [--packages [PACKAGES]] + [--packages-pip] [--packages-pip-e] + [--packages-conda] [--packages-conda-e] + [--qt] [--qt-bindings] [--qt-abstractions] + [--numbers] [--float] [--int] + [--personal] [--path] [--scope] + [--all] [--all-for-sure] + [--report REPORT] + [--help] + [--version] -HelpDev - Extracts information about the Python environment (hardware, OS, -distribution, packages, paths, etc). +HelpDev - Extracts information about the Python environment easily. optional arguments: + --hardware CPU, memory and architecture (PEI) ---hardware CPU, memory and architecture (PEI) ---os Operating system (PEI) ---thread Threads specification in the system (PEI) ---network [NETWORK] Network information, DNS and load for usual sites - (PEI). NETWORK timeout defaults to 5s. 0 is disabled - ---distributions All options for distributions below (PED) ---python Python distribution (PED) ---conda Conda/Anaconda Python distribution (PED) - ---qt All options for Qt below (PEAD) ---qt-bindings Available Qt bindings (PyQt/Pyside) (PEAD) ---qt-abstractions Available Qt abstractions (QtPy/Qt.Py/PyQtGraph) (PEAD) - ---packages [PACKAGES] All options for packages below, except '-e' (PED) - Filter PACKAGE(s) to report. Accepts regex, separator is ',' ---packages-pip PIP installed packages + PIP check (PED) ---packages-pip-e PIP locally installed packages + PIP check (PED) ---packages-conda CONDA installed packages (PED) ---packages-conda-e CONDA locally installed packages (PED) - ---numbers All options for numbers below (PEI) ---float Float representation in the system (PEI) ---int Integer representation in the system (PEI) - ---personal All options for personal information below (PEAD) ---path Show Python current paths i.e. 'sys.path' (PEAD) ---scope Show Python current scope i.e. 'dir()' (PEAD) + --os Operating system (PEI) ---all Run all options above, except 'personal' (PEAD) ---all-for-sure Run all options above, INCLUDING 'PERSONAL' (PEAD) + --thread Thread specification in the system (PEI) ---version, -v Show program's version number and exit ---help, -h Show this help message and exit + --distributions All options for distributions below (PED) + --python Python distribution (PED) + --conda Conda/Anaconda Python distribution (PED) + + --packages [PACKAGES] + All options for packages below, except '-e' (PED). + Filter PACKAGE(s) to show. Accepts regex, separator is ',' + --packages-pip PIP installed packages + PIP check (PED) + --packages-pip-e PIP locally installed packages + PIP check (PED) + --packages-conda CONDA installed packages (PED) + --packages-conda-e CONDA locally installed packages (PED) + + --qt All options for Qt below (PEAD) + --qt-bindings Available Qt bindings (PyQt/Pyside) (PEAD) + --qt-abstractions Available Qt abstractions (QtPy/Qt.Py/PyQtGraph)(PEAD) + + --numbers All options for numbers below (PEI) + --float Float representation in the system (PEI) + --int Integer representation in the system (PEI) + + --network [NETWORK] Network information, DNS and load for usual sites (PEI). + NETWORK timeout defaults to 5s. 0 is disabled + + --personal All options for personal information below (PEAD) + --path Show Python current paths i.e. 'sys.path' (PEAD) + --scope Show Python current scope i.e. 'dir()' (PEAD) + + --all Run all options above, except 'personal' (PEAD) + --all-for-sure Run all options above, INCLUDING 'PERSONAL' (PEAD) + + --report REPORT Apply a custom filter from REPORT package. + The filter is given by REPORT.custom_helpdev(version) + + --help, -h Show the program's help + --version, -v Show the program's version diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/help.txt new/helpdev-v0.7.1/help.txt --- old/helpdev-v0.6.10/help.txt 1970-01-01 01:00:00.000000000 +0100 +++ new/helpdev-v0.7.1/help.txt 2020-05-05 22:16:22.000000000 +0200 @@ -0,0 +1,44 @@ +* HARDWARE----------------------------------------------------------------------- + - Machine....................... x86_64 + - Processor..................... Intel(R) Core(TM) i7-4790K CPU @ 4.00GHz + - Total Memory.................. 16661 MB + - Free Memory................... 1560 MB + - Total Swap.................... 2147 MB + - Free Swap..................... 2082 MB +* OPERATING SYSTEM--------------------------------------------------------------- + - System........................ Linux + - Release....................... 5.3.0-51-generic + - Platform...................... Linux-5.3.0-51-generic-x86_64-with-glibc2.10 + - Version....................... #44~18.04.2-Ubuntu SMP Thu Apr 23 14:27:18 UTC 2020 +* THREADS------------------------------------------------------------------------ + - Version....................... NPTL 2.27 + - Name.......................... pthread + - Lock.......................... semaphore +* PYTHON DISTRIBUTION------------------------------------------------------------ + - Version....................... 3.8.2 + - C Compiler.................... GCC 7.3.0 + - C API Version................. 1013 + - Implementation................ cpython + - Implementation Version........ 3.8.2 +* CONDA DISTRIBUTION------------------------------------------------------------- + - Version....................... 4.8.3 + - Build......................... 3.18.11 +* QT BINDINGS-------------------------------------------------------------------- + - PyQt5 Version................. 5.14.2 + - PyQt5 Qt Version.............. 5.14.2 +* QT ABSTRACTIONS---------------------------------------------------------------- + - qtpy Version.................. 1.9.0 + - qtpy Binding.................. pyqt5 + - qtpy Binding Variable......... os.environ['QT_API'] + - qtpy Import Name.............. qtpy + - qtpy Status................... OK + - pyqtgraph Version............. 0.10.0 + - pyqtgraph Binding............. Not set or inexistent + - pyqtgraph Binding Variable.... os.environ['PYQTGRAPH_QT_LIB'] + - pyqtgraph Import Name......... pyqtgraph + - pyqtgraph Status.............. OK + - Qt Version.................... 1.2.5 + - Qt Binding.................... PyQt5 + - Qt Binding Variable........... Qt.__binding__ + - Qt Import Name................ Qt + - Qt Status..................... OK diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/helpdev/__init__.py new/helpdev-v0.7.1/helpdev/__init__.py --- old/helpdev-v0.6.10/helpdev/__init__.py 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/helpdev/__init__.py 2020-05-05 22:16:22.000000000 +0200 @@ -14,7 +14,7 @@ """ -__version__ = "0.6.10" +__version__ = "0.7.1" import copy import os @@ -26,7 +26,10 @@ import time import warnings -import importlib_metadata +if sys.version_info >= (3, 8): + from importlib import metadata as importlib_metadata +else: + import importlib_metadata # pylint: disable=import-error if sys.version_info >= (3, 4): import importlib.util @@ -60,8 +63,53 @@ } -def _filter(dict_packages, expression): - """Filter the dict_packages with expression. +def _run_subprocess_split(command): + """Run command in subprocess and return the splited output. + + Returns: + str: Splited output from command execution. + """ + + output = subprocess.check_output(command, shell=False) + + if sys.version_info >= (3, 0): + output = str(output, 'utf-8').strip() + else: + output = unicode(output, 'utf-8').strip() # noqa, pylint: disable=undefined-variable + + return output + + +def print_output(info_dict): + """Print output in a nested list format.""" + for key, sub_dict in info_dict.items(): + print('* {:-<79}'.format(key)) + for sub_key, sub_value in sub_dict.items(): + print(' - {:.<30} {}'.format(sub_key, sub_value)) + + +def filter_packages(dict_packages, expression): + """Filter the dict_packages with expression regex. + + In the expression, each item separated by comma is splitted and then + surrounded parenthesis (i.e. group), then joined with OR (``|``). + The expressions are finally started to match the begin until the + end ignoring case (``i``). See the example below :: + + expression = "sphinx.*,qtpy,PYQT5" + + + Then it will be processed resulting in :: + + expression = "(?i:^((sphinx.*)|(qtpy)|(PYQT5))$)" + + + If the expression of all of them not match with the package name, + this package is removed from the dict (a copy of it). + + Args: + dict_packages (dict): Dictionary with package_name:version_number. + expression (str): Regular expression separated by commas. Returns: dict(rst): Filtered dict with that matches the expression. @@ -80,32 +128,78 @@ return cp_dict_packages -def _run_subprocess_split(command): - """Run command in subprocess and return the splited output. +def customize(package): + """Get the custom filter from the package imported. + + This is a way to promote a standard format to get a customized information + from a specific package. This function try to import the package and + run the public method ``get_custom_helpdev(help_dev_version='')`` from + that package which gives a customized filter to provide the results. + + For example, this line :: + + info_dict = helpdev.customize('spyder') + + will try this :: + + from spyder import get_custom_helpdev + custom_filter = get_custom_helpdev(helpdev.__version__) + + Then, it will apply that filter. + + Args: + package (str): Import name to check installation. Returns: - str: Splited output from command execution. + dict(str): Customized information from imported packages. """ - output = subprocess.check_output(command, shell=False) + info = {'REPORT': {}} - if sys.version_info >= (3, 0): - output = str(output, 'utf-8').strip() + # Only contains installed packages + installed = check_installed([package]) + + if installed: + sys_path = sys.path + try: + mod = importlib.import_module(package) + custom_filter = mod.custom_helpdev(__version__) + except AttributeError: + info['REPORT'] = {'Status': "Unknown, package '{}' does not " + "provide 'custom_helpdev()' " + "function.".format(package)} + except Exception as err: # noqa:W0703, pylint: disable=broad-except + info['REPORT'] = {'Status': "Error, '{}'".format(str(err))} + else: + info['REPORT'] = {'Filter': "{}".format(custom_filter)} + for item in custom_filter: + if isinstance(item, str): + info['REPORT'][item] = 'str' + elif isinstance(item, tuple): + info['REPORT'][item[0]] = 'tuple' + else: + msg = "Unknown, filter has a unknown item/format '{}'." + info['REPORT'] = {'Status': msg.format(item)} + break + + sys.path = sys_path else: - output = unicode(output, 'utf-8').strip() # noqa, pylint: disable=undefined-variable + info['REPORT'] = {'Status': "Not installed, package '{}'.".format(package)} - return output + return info def check_installed(import_list): """Return a list of installed packages from import_list. + Note that the strings in the list must match the import name, e.g. + pyqt5 will not work as the import name is PyQt5. + Args: import_list (list(str)): List of of import names to check installation. Returns: list(str): Filtered list of installed packages. - """ # Disable warnings here @@ -116,7 +210,6 @@ # when removing the element, it reflects on for list # so it skips next element for current_import in import_list: - spec = True # Copy the sys path to make sure to not insert anything sys_path = sys.path @@ -147,18 +240,10 @@ return import_list_return -def print_output(info_dict): - """Print output in a nested list format.""" - for key, sub_dict in info_dict.items(): - print('* {:-<79}'.format(key)) - for sub_key, sub_value in sub_dict.items(): - print(' - {:.<30} {}'.format(sub_key, sub_value)) - - def check_hardware(): """Check hardware information. - It uses subprocess commands for each system along with psutil library. + It uses subprocess commands for each system along with ``psutil`` library. So you need to install psutil library. Returns: @@ -186,15 +271,18 @@ all_info = _run_subprocess_split(['wmic', 'cpu', 'get', 'name']) if "Name" in all_info: cpu = all_info.replace('Name', '') + + # Get info about memory try: - import psutil + import psutil # analysis: ignore, pylint: disable=import-outside-toplevel + except ImportError: + mem = 'Unknown, needs psutil library' + swap = swap_free = mem_free = mem + else: mem = str(int(psutil.virtual_memory().total / 1000000)) + " MB" mem_free = str(int(psutil.virtual_memory().free / 1000000)) + " MB" swap = str(int(psutil.swap_memory().total / 1000000)) + " MB" swap_free = str(int(psutil.swap_memory().free / 1000000)) + " MB" - except ImportError: - mem = 'Unknown, needs psutil library' - swap = swap_free = mem_free = mem info = {'HARDWARE': {'Machine': platform.machine(), @@ -305,6 +393,14 @@ return info +def check_numbers(): + """Check numbers related float and integer information.""" + info = {} + info.update(check_float()) + info.update(check_int()) + return info + + def check_network(timeout): """Check network connection for URLS list with timeout. @@ -323,7 +419,7 @@ if timeout > 0: socket.setdefaulttimeout(timeout) else: - info['NETWORK']['Timeout'] = 'Must be > 0s' + info['NETWORK']['Timeout'] = 'Unknown, must be > 0s' return info for name, url in URLS.items(): @@ -421,7 +517,7 @@ info['PYTHON PACKAGES'][cleaned[0]] = cleaned[1] if packages: - info['PYTHON PACKAGES'] = _filter(info['PYTHON PACKAGES'], packages) + info['PYTHON PACKAGES'] = filter_packages(info['PYTHON PACKAGES'], packages) return info @@ -465,7 +561,8 @@ try: if not edit_mode: - all_packages = _run_subprocess_split(['conda', 'list', '--no-pip', '--export']) + all_packages = _run_subprocess_split(['conda', 'list', '--no-pip', + '--export']) else: all_packages = _run_subprocess_split(['conda', 'list', '--no-pip', '--export', '--develop']) @@ -482,7 +579,7 @@ info['CONDA PACKAGES'][cleaned[0]] = cleaned[1] if packages: - info['CONDA PACKAGES'] = _filter(info['CONDA PACKAGES'], packages) + info['CONDA PACKAGES'] = filter_packages(info['CONDA PACKAGES'], packages) return info @@ -530,6 +627,14 @@ return info +def check_qt(): + """Check Qt related bindings and abstractions information.""" + info = {} + info.update(check_qt_bindings) + info.update(check_qt_abstractions) + return info + + def installed_qt_bindings(): """Return a list of qt bindings available. @@ -590,7 +695,7 @@ if import_name == 'pyqtgraph': try: - from pyqtgraph import __version__ as api_version # analysis:ignore + from pyqtgraph import __version__ as api_version # analysis: ignore, pylint: disable=import-outside-toplevel except ImportError: raise ImportError('PyQtGraph cannot be imported.') except Exception as err: # noqa:W0703, pylint: disable=broad-except @@ -606,7 +711,7 @@ elif import_name == 'qtpy': try: - from qtpy import __version__ as api_version # analysis:ignore + from qtpy import __version__ as api_version # analysis: ignore, pylint: disable=import-outside-toplevel except ImportError: raise ImportError('QtPy cannot be imported.') except RuntimeError as err: @@ -623,8 +728,8 @@ elif import_name == 'Qt': try: - from Qt import __version__ as api_version # analysis:ignore - from Qt import __binding__ as env_var # analysis:ignore + from Qt import __version__ as api_version # analysis: ignore, pylint: disable=import-outside-toplevel + from Qt import __binding__ as env_var # analysis: ignore, pylint: disable=import-outside-toplevel except ImportError as err: # this error is the same if a problem with binding appears # as this function should be used with already known installed @@ -669,29 +774,29 @@ if import_name == 'PyQt4': try: - from PyQt4.Qt import PYQT_VERSION_STR as api_version # analysis:ignore - from PyQt4.Qt import QT_VERSION_STR as qt_version # analysis:ignore + from PyQt4.Qt import PYQT_VERSION_STR as api_version # analysis: ignore, pylint: disable=import-outside-toplevel + from PyQt4.Qt import QT_VERSION_STR as qt_version # analysis: ignore, pylint: disable=import-outside-toplevel except ImportError: raise ImportError('PyQt4 cannot be imported.') elif import_name == 'PyQt5': try: - from PyQt5.QtCore import PYQT_VERSION_STR as api_version # analysis:ignore - from PyQt5.QtCore import QT_VERSION_STR as qt_version # analysis:ignore + from PyQt5.QtCore import PYQT_VERSION_STR as api_version # analysis: ignore, pylint: disable=import-outside-toplevel + from PyQt5.QtCore import QT_VERSION_STR as qt_version # analysis: ignore, pylint: disable=import-outside-toplevel except ImportError: raise ImportError('PyQt5 cannot be imported.') elif import_name == 'PySide': try: - from PySide import __version__ as api_version # analysis:ignore - from PySide.QtCore import __version__ as qt_version # analysis:ignore + from PySide import __version__ as api_version # analysis: ignore, pylint: disable=import-outside-toplevel + from PySide.QtCore import __version__ as qt_version # analysis: ignore, pylint: disable=import-outside-toplevel except ImportError: raise ImportError('PySide cannot be imported.') elif import_name == 'PySide2': try: - from PySide2 import __version__ as api_version # analysis:ignore - from PySide2.QtCore import __version__ as qt_version # analysis:ignore + from PySide2 import __version__ as api_version # analysis: ignore, pylint: disable=import-outside-toplevel + from PySide2.QtCore import __version__ as qt_version # analysis: ignore, pylint: disable=import-outside-toplevel except ImportError: raise ImportError('PySide2 cannot be imported.') else: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/helpdev/__main__.py new/helpdev-v0.7.1/helpdev/__main__.py --- old/helpdev-v0.6.10/helpdev/__main__.py 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/helpdev/__main__.py 2020-05-05 22:16:22.000000000 +0200 @@ -28,36 +28,29 @@ argparse.Namespace: parsed arguments. """ parser = argparse.ArgumentParser( - formatter_class=argparse.ArgumentDefaultsHelpFormatter, - description=__doc__.split("\n")[0]) + description=__doc__.split("\n")[0], + add_help=False, + formatter_class=argparse.RawTextHelpFormatter) parser.add_argument('--hardware', action='store_true', - help="CPU, memory and architecture (PEI)") + help="CPU, memory and architecture (PEI)\n\n") + parser.add_argument('--os', action='store_true', - help="Operating system (PEI)") + help="Operating system (PEI)\n\n") + parser.add_argument('--thread', action='store_true', - help="Threads specification in the system (PEI)") - parser.add_argument('--network', nargs='?', const=5, default=None, type=int, - help="Network information, DNS and load for usual sites (PEI). " - "NETWORK timeout defaults to 5s. 0 is disabled.") + help="Thread specification in the system (PEI)\n\n") parser.add_argument('--distributions', action='store_true', help="All options for distributions below (PED)") parser.add_argument('--python', action='store_true', help="Python distribution (PED)") parser.add_argument('--conda', action='store_true', - help="Conda/Anaconda Python distribution (PED)") - - parser.add_argument('--qt', action='store_true', - help="All options for Qt below (PEAD)") - parser.add_argument('--qt-bindings', action='store_true', - help="Available Qt bindings (PyQt/Pyside) (PEAD)") - parser.add_argument('--qt-abstractions', action='store_true', - help="Available Qt abstractions (QtPy/Qt.Py/PyQtGraph) (PEAD)") + help="Conda/Anaconda Python distribution (PED)\n\n") parser.add_argument('--packages', nargs='?', const="", default=None, type=str, - help="All options for packages below, except '-e' (PED)" - "Filter PACKAGE(s) to report. Accepts regex, separator is ','") + help="All options for packages below, except '-e' (PED).\n" + "Filter PACKAGE(s) to show. Accepts regex, separator is ','") parser.add_argument('--packages-pip', action='store_true', help="PIP installed packages + PIP check (PED)") parser.add_argument('--packages-pip-e', action='store_true', @@ -65,29 +58,47 @@ parser.add_argument('--packages-conda', action='store_true', help="CONDA installed packages (PED)") parser.add_argument('--packages-conda-e', action='store_true', - help="CONDA locally installed packages (PED)") + help="CONDA locally installed packages (PED)\n\n") + + parser.add_argument('--qt', action='store_true', + help="All options for Qt below (PEAD)") + parser.add_argument('--qt-bindings', action='store_true', + help="Available Qt bindings (PyQt/Pyside) (PEAD)") + parser.add_argument('--qt-abstractions', action='store_true', + help="Available Qt abstractions (QtPy/Qt.Py/PyQtGraph)(PEAD)\n\n") parser.add_argument('--numbers', action='store_true', help="All options for numbers below (PEI)") parser.add_argument('--float', action='store_true', help="Float representation in the system (PEI)") parser.add_argument('--int', action='store_true', - help="Integer representation in the system (PEI)") + help="Integer representation in the system (PEI)\n\n") + + parser.add_argument('--network', nargs='?', const=5, default=None, type=int, + help="Network information, DNS and load for usual sites (PEI). \n" + "NETWORK timeout defaults to 5s. 0 is disabled\n\n") parser.add_argument('--personal', action='store_true', help="All options for personal information below (PEAD)") parser.add_argument('--path', action='store_true', help="Show Python current paths i.e. 'sys.path' (PEAD)") parser.add_argument('--scope', action='store_true', - help="Show Python current scope i.e. 'dir()' (PEAD)") + help="Show Python current scope i.e. 'dir()' (PEAD)\n\n") parser.add_argument('--all', action='store_true', help="Run all options above, except 'personal' (PEAD)") parser.add_argument('--all-for-sure', action='store_true', - help="Run all options above, INCLUDING 'PERSONAL' (PEAD)") + help="Run all options above, INCLUDING 'PERSONAL' (PEAD)\n\n") + + parser.add_argument('--report', default=None, type=str, + help="Apply a custom filter from REPORT package.\n" + "The filter is given by REPORT.custom_helpdev(version)\n\n") + parser.add_argument('--help', '-h', action='help', + help="Show the program's help") parser.add_argument('--version', '-v', action='version', - version='v{}'.format(helpdev.__version__)) + version='v{}'.format(helpdev.__version__), + help="Show the program's version") arguments = parser.parse_args() @@ -114,16 +125,22 @@ if args.thread or args.all or no_args: info.update(helpdev.check_thread()) - # Network info - if args.network: - info.update(helpdev.check_network(args.network)) - # Distribution info if args.python or args.all or no_args or args.distributions: info.update(helpdev.check_python()) if args.conda or args.all or no_args or args.distributions: info.update(helpdev.check_conda()) + # Packages, PIP and Conda info + if args.packages_pip or args.all or args.packages or args.packages == '': + info.update(helpdev.check_python_packages(packages=args.packages)) + if args.packages_pip_e: + info.update(helpdev.check_python_packages(edit_mode=True, packages=args.packages)) + if args.packages_conda or args.all or args.packages or args.packages == '': + info.update(helpdev.check_conda_packages(packages=args.packages)) + if args.packages_conda_e or args.all: + info.update(helpdev.check_conda_packages(edit_mode=True, packages=args.packages)) + # Qt, binding and abstraction info if args.qt_bindings or args.qt or args.all or no_args: info.update(helpdev.check_qt_bindings()) @@ -136,15 +153,9 @@ if args.int or args.all or args.numbers: info.update(helpdev.check_int()) - # Packages, PIP and Conda info - if args.packages_pip or args.all or args.packages or args.packages == '': - info.update(helpdev.check_python_packages(packages=args.packages)) - if args.packages_pip_e: - info.update(helpdev.check_python_packages(edit_mode=True, packages=args.packages)) - if args.packages_conda or args.all or args.packages or args.packages == '': - info.update(helpdev.check_conda_packages(packages=args.packages)) - if args.packages_conda_e or args.all: - info.update(helpdev.check_conda_packages(edit_mode=True, packages=args.packages)) + # Network info + if args.network: + info.update(helpdev.check_network(args.network)) # Personal info for self-check, not executed when --all is passed # Needs to use all-for-sure to be listed @@ -154,4 +165,9 @@ if args.scope or args.all_for_sure or args.personal: info.update(helpdev.check_scope()) + if args.report: + info.update(helpdev.customize(package=args.report)) + elif args.report == '': + print("You must pass a package name to report [--report PACKAGE_NAME]") + helpdev.print_output(info) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/setup.py new/helpdev-v0.7.1/setup.py --- old/helpdev-v0.6.10/setup.py 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/setup.py 2020-05-05 22:16:22.000000000 +0200 @@ -49,8 +49,6 @@ 'Operating System :: MacOS', 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX', - 'Programming Language :: Python :: 2.7', - 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: 3.8', @@ -62,12 +60,13 @@ 'Topic :: Software Development :: Testing', 'Topic :: Terminals'] -_requires = ['importlib_metadata', 'psutil>=5.6'] +_requires = ['importlib_metadata;python_version<"3.8"'] setup(name='helpdev', version=_version, description='HelpDev - Extracts information about the Python environment easily.', long_description=_long_description, + license='MIT', license_file='LICENSE.rst', author='Daniel Cosmo Pizetta', author_email='daniel.pize...@usp.br', @@ -76,6 +75,10 @@ packages=find_packages(), classifiers=_classifiers, install_requires=_requires, + extras_require={ + 'memory_info': ['psutil>=5.6'], + }, + include_package_data=True, entry_points={"console_scripts": ["helpdev=helpdev.__main__:main"]}, url='https://gitlab.com/dpizetta/helpdev', project_urls={ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/helpdev-v0.6.10/tox.ini new/helpdev-v0.7.1/tox.ini --- old/helpdev-v0.6.10/tox.ini 2019-05-17 04:46:18.000000000 +0200 +++ new/helpdev-v0.7.1/tox.ini 2020-05-05 22:16:22.000000000 +0200 @@ -2,9 +2,9 @@ envlist = # tests without qt binding because they are hard to install via pip - {win,lin,mac}-{py27,py34,py36,py37}-{build} - {win,lin,mac}-{py36}-{doc,release} - {win,lin,mac}-{py36}-{test,lint,safety,metric,develop}-{pyqt,pyside} + {win,lin,mac}-{py36,py37,py38}-{build} + {win,lin,mac}-{py38}-{doc,release} + {win,lin,mac}-{py38}-{test,lint,safety,metric,develop}-{pyqt,pyside} [testenv] @@ -22,9 +22,7 @@ deps = # Must be first - pyqt: vtk pyqt: pyqt5 - pyside: vtk pyside: pyside2 # Dependencies for each environment @@ -49,25 +47,30 @@ # try generate build build: python setup.py sdist bdist_wheel # try install with pip - build: pip install . + build: python -m pip install . # try execute without bindings build: helpdev --all-for-sure # test with abstraction qtpy - build: pip install qtpy + build: python -m pip install qtpy build: helpdev --qt # test with abstraction pyqtgraph - build: pip install pyqtgraph + build: python -m pip install pyqtgraph build: helpdev --qt # test with abstraction qt.py - build: pip install qt.py + build: python -m pip install qt.py build: helpdev --qt - # try execute with bindings + # test with binding pyqt + # It needs to solve many problems in gitlab side to make this work + # build: python -m pip install pyqt5 + # build: helpdev --qt + + # check all info build: helpdev --all-for-sure # check depedencies - build: pip check + build: python -m pip check # TEST ------------------------------------------------------------------- @@ -112,7 +115,7 @@ # Documentation - generate apidocs, build html, build latex, build pdf doc: make clean doc: sphinx-build -b html -j auto -E -d "." "." "{toxworkdir}/../build/docs/html" - doc: sphinx-build -b latex -j auto -E -d "{toxworkdir}/../build/docs/doctrees" . "{toxworkdir}/../build/docs/latex" + doc: sphinx-build -b latex -j auto -E -d "{toxworkdir}/../build/docs/doctrees" "." "{toxworkdir}/../build/docs/latex" doc: make --ignore-errors --keep-going --silent -C "{toxworkdir}/../build/docs/latex" all-pdf # RELEASE --------------------------------------------------------------- @@ -121,11 +124,11 @@ release: twine check dist/* # try upload in test platform before the oficial release: twine upload --repository-url https://test.pypi.org/legacy/ dist/* - release: pip install --index-url https://test.pypi.org/simple/ helpdev + release: python -m pip install --index-url https://test.pypi.org/simple/ helpdev # upload to oficial release: twine upload dist/* - release: pip uninstall helpdev - release: pip install helpdev + release: python -m pip uninstall helpdev + release: python -m pip install helpdev usedevelop = develop: True @@ -155,11 +158,12 @@ [doc8] extension = .rst +ignore = D001 file-encoding = "utf-8" ignore-path = .tox,.env,.venv,build,dist,tests,examples,ui,*.egg-info*,*cache*,.coverage, */.tox/*,*/.env/*,*/.venv/*,*/build/*,*/dist/*,*/tests/*,*/ui/*,*/*.egg*, - */.*,*/.coverage,*/./venv/*,./venv + */.*,*/.coverage,*/./venv/*,./venv,*/examples/* # PYLAMA #####################################################################