Hello community, here is the log from the commit of package python-pingparsing for openSUSE:Factory checked in at 2020-08-18 15:04:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-pingparsing (Old) and /work/SRC/openSUSE:Factory/.python-pingparsing.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-pingparsing" Tue Aug 18 15:04:58 2020 rev:7 rq:825354 version:1.1.0 Changes: -------- --- /work/SRC/openSUSE:Factory/python-pingparsing/python-pingparsing.changes 2020-05-26 17:18:08.111821933 +0200 +++ /work/SRC/openSUSE:Factory/.python-pingparsing.new.3399/python-pingparsing.changes 2020-08-18 15:05:09.535894447 +0200 @@ -1,0 +2,10 @@ +Sun Aug 9 15:52:27 UTC 2020 - Martin Hauke <[email protected]> + +- Update to version 1.1.0 + * Make it possible to parse ping timeouts includes timestamps. + * Add --addopts option to the CLI. + * Add -O option to ping execution when --timestamp option is + specified on Linux. + * Set default serializer for timestamps of ICMP replies. + +------------------------------------------------------------------- Old: ---- pingparsing-1.0.3.tar.gz New: ---- pingparsing-1.1.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-pingparsing.spec ++++++ --- /var/tmp/diff_new_pack.uEQNqc/_old 2020-08-18 15:05:10.611894893 +0200 +++ /var/tmp/diff_new_pack.uEQNqc/_new 2020-08-18 15:05:10.615894894 +0200 @@ -19,7 +19,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} %define skip_python2 1 Name: python-pingparsing -Version: 1.0.3 +Version: 1.1.0 Release: 0 Summary: CLI-tool/Python-library for parsing ping command output License: MIT ++++++ pingparsing-1.0.3.tar.gz -> pingparsing-1.1.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/.github/FUNDING.yml new/pingparsing-1.1.0/.github/FUNDING.yml --- old/pingparsing-1.0.3/.github/FUNDING.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/pingparsing-1.1.0/.github/FUNDING.yml 2020-08-09 17:38:47.000000000 +0200 @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: thombashi +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/.travis.yml new/pingparsing-1.1.0/.travis.yml --- old/pingparsing-1.0.3/.travis.yml 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/.travis.yml 2020-08-09 17:38:47.000000000 +0200 @@ -2,7 +2,7 @@ cache: pip -matrix: +jobs: include: - os: linux python: 3.5 @@ -48,7 +48,7 @@ - travis_retry bash -x .travis/install.sh script: - - tox + - tox -- --md-report-color text notifications: slack: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/README.rst new/pingparsing-1.1.0/README.rst --- old/pingparsing-1.0.3/README.rst 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/README.rst 2020-08-09 17:38:47.000000000 +0200 @@ -285,8 +285,9 @@ usage: pingparsing [-h] [-V] [--max-workers MAX_WORKERS] [--timestamp {none,epoch,datetime}] [-c COUNT] [-s PACKET_SIZE] [--ttl TTL] [-w DEADLINE] - [--timeout TIMEOUT] [-I INTERFACE] [--indent INDENT] - [--icmp-reply] [--no-color] [--debug | --quiet] + [--timeout TIMEOUT] [-I INTERFACE] [--addopts OPTIONS] + [--indent INDENT] [--icmp-reply] [--no-color] + [--debug | --quiet] destination_or_file [destination_or_file ...] positional arguments: @@ -339,6 +340,7 @@ system. -I INTERFACE, --interface INTERFACE network interface + --addopts OPTIONS extra command line options Output Options: --indent INDENT JSON output will be pretty-printed with the indent @@ -480,24 +482,16 @@ Dependencies ============ -Python 3.5+ - -- `humanreadable <https://github.com/thombashi/humanreadable>`__ -- `pyparsing <https://github.com/pyparsing/pyparsing>`__ -- `subprocrunner <https://github.com/thombashi/subprocrunner>`__ -- `typepy <https://github.com/thombashi/typepy>`__ +- Python 3.5+ +- `Python package dependencies (automatically installed) <https://github.com/thombashi/pingparsing/network/dependencies>`__ Optional Dependencies ------------------------------------ -- `loguru <https://github.com/Delgan/loguru>`__ - - Used for logging if the package installed -- `Pygments <http://pygments.org/>`__ - - Syntax highlighting to ``pingparsing`` command output when installed - -Test Dependencies ------------------ -- `pytest <https://pypi.org/project/pytest>`__ -- `tox <https://pypi.org/project/tox>`__ +- pingparsing[cli] extras + - `loguru <https://github.com/Delgan/loguru>`__ + - Used for logging if the package installed + - `Pygments <http://pygments.org/>`__ + - Syntax highlighting to ``pingparsing`` command output when installed Docker Image @@ -539,3 +533,11 @@ =============== https://pingparsing.rtfd.io/ +Sponsors +==================================== +.. image:: https://avatars0.githubusercontent.com/u/44389260?s=48&u=6da7176e51ae2654bcfd22564772ef8a3bb22318&v=4 + :target: https://github.com/chasbecker + :alt: Charles Becker (chasbecker) + +`Become a sponsor <https://github.com/sponsors/thombashi>`__ + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/docs/index.rst new/pingparsing-1.1.0/docs/index.rst --- old/pingparsing-1.0.3/docs/index.rst 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/docs/index.rst 2020-08-09 17:38:47.000000000 +0200 @@ -14,10 +14,8 @@ :numbered: pages/introduction/index - pages/installation pages/usage/index pages/reference/index - pages/genindex pages/links diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/docs/make_readme.py new/pingparsing-1.1.0/docs/make_readme.py --- old/pingparsing-1.0.3/docs/make_readme.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/docs/make_readme.py 2020-08-09 17:38:47.000000000 +0200 @@ -39,7 +39,7 @@ write_examples(maker) - maker.write_file(maker.doc_page_root_dir_path.joinpath("installation.rst")) + maker.write_introduction_file("installation.rst") maker.write_introduction_file("supported_environment.txt") maker.write_file(maker.doc_page_root_dir_path.joinpath("introduction/premise.txt")) @@ -47,6 +47,8 @@ maker.write_chapter("Documentation") maker.write_lines(["https://{:s}.rtfd.io/".format(PROJECT_NAME)]) + maker.write_file(maker.doc_page_root_dir_path.joinpath("sponsors.rst")) + return 0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/docs/pages/installation.rst new/pingparsing-1.1.0/docs/pages/installation.rst --- old/pingparsing-1.0.3/docs/pages/installation.rst 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/docs/pages/installation.rst 1970-01-01 01:00:00.000000000 +0100 @@ -1,32 +0,0 @@ -Installation -============ -:: - - pip install pingparsing - - -Dependencies -============ -Python 3.5+ - -- `humanreadable <https://github.com/thombashi/humanreadable>`__ -- `pyparsing <https://github.com/pyparsing/pyparsing>`__ -- `subprocrunner <https://github.com/thombashi/subprocrunner>`__ -- `typepy <https://github.com/thombashi/typepy>`__ - -Optional Dependencies ------------------------------------- -- `loguru <https://github.com/Delgan/loguru>`__ - - Used for logging if the package installed -- `Pygments <http://pygments.org/>`__ - - Syntax highlighting to ``pingparsing`` command output when installed - -Test Dependencies ------------------ -- `pytest <https://pypi.org/project/pytest>`__ -- `tox <https://pypi.org/project/tox>`__ - - -Docker Image -================== -`thombashi/pingparsing - Docker Hub <https://hub.docker.com/r/thombashi/pingparsing/>`__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/docs/pages/introduction/index.rst new/pingparsing-1.1.0/docs/pages/introduction/index.rst --- old/pingparsing-1.0.3/docs/pages/introduction/index.rst 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/docs/pages/introduction/index.rst 2020-08-09 17:38:47.000000000 +0200 @@ -8,5 +8,16 @@ ------- .. include:: summary.txt + +.. raw:: html + + <div class='ghscard' src='//raw.githubusercontent.com/thombashi/thombashi.github.io/master/data/thombashi_pingparsing.json'></div> + <script src='//cdn.jsdelivr.net/gh/thombashi/ghscard@master/dist/ghscard.min.js'></script> + <br> + <br> + .. include:: supported_environment.txt + .. include:: premise.txt + +.. include:: installation.rst diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/docs/pages/introduction/installation.rst new/pingparsing-1.1.0/docs/pages/introduction/installation.rst --- old/pingparsing-1.0.3/docs/pages/introduction/installation.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/pingparsing-1.1.0/docs/pages/introduction/installation.rst 2020-08-09 17:38:47.000000000 +0200 @@ -0,0 +1,24 @@ +Installation +============ +:: + + pip install pingparsing + + +Dependencies +============ +- Python 3.5+ +- `Python package dependencies (automatically installed) <https://github.com/thombashi/pingparsing/network/dependencies>`__ + +Optional Dependencies +------------------------------------ +- pingparsing[cli] extras + - `loguru <https://github.com/Delgan/loguru>`__ + - Used for logging if the package installed + - `Pygments <http://pygments.org/>`__ + - Syntax highlighting to ``pingparsing`` command output when installed + + +Docker Image +================== +`thombashi/pingparsing - Docker Hub <https://hub.docker.com/r/thombashi/pingparsing/>`__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/docs/pages/links.rst new/pingparsing-1.1.0/docs/pages/links.rst --- old/pingparsing-1.0.3/docs/pages/links.rst 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/docs/pages/links.rst 2020-08-09 17:38:47.000000000 +0200 @@ -1,6 +1,16 @@ +Changelog +========== +https://github.com/thombashi/pingparsing/releases + + +.. include:: sponsors.rst + + +.. include:: genindex.rst + + Links ===== - `GitHub repository <https://github.com/thombashi/pingparsing>`__ - `Issue tracker <https://github.com/thombashi/pingparsing/issues>`__ -- `PyPI <https://pypi.org/project/pingparsing>`__ - `pip: A tool for installing Python packages <https://pip.pypa.io/en/stable/>`__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/docs/pages/sponsors.rst new/pingparsing-1.1.0/docs/pages/sponsors.rst --- old/pingparsing-1.0.3/docs/pages/sponsors.rst 1970-01-01 01:00:00.000000000 +0100 +++ new/pingparsing-1.1.0/docs/pages/sponsors.rst 2020-08-09 17:38:47.000000000 +0200 @@ -0,0 +1,7 @@ +Sponsors +==================================== +.. image:: https://avatars0.githubusercontent.com/u/44389260?s=48&u=6da7176e51ae2654bcfd22564772ef8a3bb22318&v=4 + :target: https://github.com/chasbecker + :alt: Charles Becker (chasbecker) + +`Become a sponsor <https://github.com/sponsors/thombashi>`__ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/docs/pages/usage/cli_help.txt new/pingparsing-1.1.0/docs/pages/usage/cli_help.txt --- old/pingparsing-1.0.3/docs/pages/usage/cli_help.txt 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/docs/pages/usage/cli_help.txt 2020-08-09 17:38:47.000000000 +0200 @@ -5,8 +5,9 @@ usage: pingparsing [-h] [-V] [--max-workers MAX_WORKERS] [--timestamp {none,epoch,datetime}] [-c COUNT] [-s PACKET_SIZE] [--ttl TTL] [-w DEADLINE] - [--timeout TIMEOUT] [-I INTERFACE] [--indent INDENT] - [--icmp-reply] [--no-color] [--debug | --quiet] + [--timeout TIMEOUT] [-I INTERFACE] [--addopts OPTIONS] + [--indent INDENT] [--icmp-reply] [--no-color] + [--debug | --quiet] destination_or_file [destination_or_file ...] positional arguments: @@ -59,6 +60,7 @@ system. -I INTERFACE, --interface INTERFACE network interface + --addopts OPTIONS extra command line options Output Options: --indent INDENT JSON output will be pretty-printed with the indent diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/invoke_pytest.py new/pingparsing-1.1.0/invoke_pytest.py --- old/pingparsing-1.0.3/invoke_pytest.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/invoke_pytest.py 2020-08-09 17:38:47.000000000 +0200 @@ -1,13 +1,17 @@ +#!/usr/bin/env python3 + """ Unit tests at Windows environments required to invoke from py module, because of multiprocessing: https://py.rtfd.io/en/latest/faq.html?highlight=cmdline#issues-with-py-test-multiprocess-and-setuptools """ +import os import sys import py if __name__ == "__main__": + os.environ["PYTEST_MD_REPORT_COLOR"] = "text" sys.exit(py.test.cmdline.main()) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/pingparsing/__main__.py new/pingparsing-1.1.0/pingparsing/__main__.py --- old/pingparsing-1.0.3/pingparsing/__main__.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/pingparsing/__main__.py 2020-08-09 17:38:47.000000000 +0200 @@ -138,6 +138,7 @@ ), ) group.add_argument("-I", "--interface", dest="interface", help="network interface") + group.add_argument("--addopts", metavar="OPTIONS", help="extra command line options") group = parser.add_argument_group("Output Options") # type: ignore group.add_argument( @@ -227,6 +228,7 @@ timeout: TimeArg, is_parse_icmp_reply: bool, timestamp: str, + addopts: str, ) -> Tuple[str, Any]: if os.path.isfile(dest_or_file): with open(dest_or_file) as f: @@ -242,6 +244,7 @@ transmitter.timeout = timeout transmitter.is_quiet = not is_parse_icmp_reply transmitter.timestamp = timestamp != TimestampFormat.NONE + transmitter.ping_option = addopts try: result = transmitter.ping() @@ -280,8 +283,8 @@ try: from pygments import highlight - from pygments.lexers import JsonLexer from pygments.formatters import TerminalTrueColorFormatter + from pygments.lexers import JsonLexer print( highlight( @@ -313,7 +316,7 @@ timestamp_serialize_map = { - TimestampFormat.NONE: None, + TimestampFormat.NONE: _serialize_datetime, TimestampFormat.EPOCH: _serialize_epoch, TimestampFormat.DATETIME: _serialize_datetime, } @@ -364,6 +367,7 @@ timeout, options.icmp_reply, options.timestamp, + options.addopts, ) ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/pingparsing/__version__.py new/pingparsing-1.1.0/pingparsing/__version__.py --- old/pingparsing-1.0.3/pingparsing/__version__.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/pingparsing/__version__.py 2020-08-09 17:38:47.000000000 +0200 @@ -1,6 +1,6 @@ __author__ = "Tsuyoshi Hombashi" __copyright__ = "Copyright 2016, {}".format(__author__) __license__ = "MIT License" -__version__ = "1.0.3" +__version__ = "1.1.0" __maintainer__ = __author__ __email__ = "[email protected]" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/pingparsing/_cmd_maker.py new/pingparsing-1.1.0/pingparsing/_cmd_maker.py --- old/pingparsing-1.0.3/pingparsing/_cmd_maker.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/pingparsing/_cmd_maker.py 2020-08-09 17:38:47.000000000 +0200 @@ -116,7 +116,7 @@ return "-q" def _get_timestamp_option(self) -> str: - return "-D" + return "-D -O" def _get_count_option(self) -> str: try: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/pingparsing/_logger.py new/pingparsing-1.1.0/pingparsing/_logger.py --- old/pingparsing-1.0.3/pingparsing/_logger.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/pingparsing/_logger.py 2020-08-09 17:38:47.000000000 +0200 @@ -73,4 +73,4 @@ def set_log_level(log_level): # deprecated - return + logger.disable(MODULE_NAME) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/pingparsing/_parser.py new/pingparsing-1.1.0/pingparsing/_parser.py --- old/pingparsing-1.0.3/pingparsing/_parser.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/pingparsing/_parser.py 2020-08-09 17:38:47.000000000 +0200 @@ -21,6 +21,7 @@ class IcmpReplyKey: TIMESTAMP = "timestamp" + TIMESTAMP_NO_ANS = "timestamp_no_ans" SEQUENCE_NO = "icmp_seq" TTL = "ttl" TIME = "time" @@ -43,6 +44,10 @@ pass @property + def _icmp_no_ans_pattern(self) -> str: + return "(?!x)x" # never matching anything + + @property def _duplicate_packet_pattern(self) -> str: return r".+ \(DUP!\)$" @@ -56,21 +61,28 @@ def _parse_icmp_reply(self, ping_lines: Sequence[str]) -> IcmpReplies: icmp_reply_regexp = re.compile(self._icmp_reply_pattern, re.IGNORECASE) + icmp_no_ans_regexp = re.compile(self._icmp_no_ans_pattern, re.IGNORECASE) duplicate_packet_regexp = re.compile(self._duplicate_packet_pattern) icmp_reply_list = [] for line in ping_lines: match = icmp_reply_regexp.search(line) if not match: + match = icmp_no_ans_regexp.search(line) + if not match: continue results = match.groupdict() reply = {} # type: Dict[str, Union[bool, float, int, datetime]] if results.get(IcmpReplyKey.TIMESTAMP): - reply[IcmpReplyKey.TIMESTAMP] = DateTime( - results[IcmpReplyKey.TIMESTAMP].lstrip("[").rstrip("]") - ).force_convert() + reply[IcmpReplyKey.TIMESTAMP] = self.__timestamp_to_datetime( + results[IcmpReplyKey.TIMESTAMP] + ) + elif results.get(IcmpReplyKey.TIMESTAMP_NO_ANS): + reply[IcmpReplyKey.TIMESTAMP] = self.__timestamp_to_datetime( + results[IcmpReplyKey.TIMESTAMP_NO_ANS] + ) if results.get(IcmpReplyKey.SEQUENCE_NO): reply[IcmpReplyKey.SEQUENCE_NO] = int(results[IcmpReplyKey.SEQUENCE_NO]) @@ -115,6 +127,9 @@ return i + def __timestamp_to_datetime(self, timestamp: str) -> datetime: + return DateTime(timestamp.lstrip("[").rstrip("]")).force_convert() + def __validate_stats_body(self, body_line_list: Sequence[str]) -> None: if typepy.is_empty_sequence(body_line_list): raise ParseError(reason=ParseErrorReason.EMPTY_STATISTICS) @@ -168,10 +183,18 @@ def _parser_name(self) -> str: return "Linux" + _TIMESTAMP_PATTERN = r"(?P<timestamp>\[[0-9\.]+\])" + _NO_ANS_TIMESTAMP_PATTERN = r"(?P<timestamp_no_ans>\[[0-9\.]+\])" + + @property + def _icmp_no_ans_pattern(self) -> str: + return self._NO_ANS_TIMESTAMP_PATTERN + " no answer yet for " + self._ICMP_SEQ_PATTERN + @property def _icmp_reply_pattern(self) -> str: return ( - r"(?P<timestamp>\[[0-9\.]+\])?\s?.+ from .+?: " + self._TIMESTAMP_PATTERN + + r"?\s?.+ from .+?: " + self._ICMP_SEQ_PATTERN + " " + self._TTL_PATTERN diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/pingparsing/_pingtransmitter.py new/pingparsing-1.1.0/pingparsing/_pingtransmitter.py --- old/pingparsing-1.0.3/pingparsing/_pingtransmitter.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/pingparsing/_pingtransmitter.py 2020-08-09 17:38:47.000000000 +0200 @@ -25,14 +25,17 @@ Data class to store ``ping`` command execution result. .. py:attribute:: stdout + :type: Optional[str] Standard output of ``ping`` command execution result. .. py:attribute:: stderr + :type: Optional[str] Standard error of ``ping`` command execution result. .. py:attribute:: returncode + :type: int Return code of ``ping`` command execution result. """ @@ -44,34 +47,46 @@ command. .. py:attribute:: count + :type: Optional[int] + :value: None - Number of sending ICMP packets. This attribute ignored if the value is - |None|. Defaults to |None|. + Number of sending ICMP packets. This attribute ignored if the value is |None|. .. py:attribute:: packet_size + :type: Optional[int] + :value: None Specifies the number of data bytes to be sent. .. py:attribute:: ttl + :type: Optional[int] + :value: None Specifies the Time to Live. .. py:attribute:: ping_option + :type: str + :value: "" Additional ``ping`` command option. .. py:attribute:: interface + :type: Optional[str] + :value: None Interface name or zone-id. The attribute required when :py:attr:`~.destination` is IPv6 link-local scope address. - Defaults to |None|. .. py:attribute:: timestamp + :type: bool + :value: False [Only for Linux environment] If |True|, add timestamp for each ping result. Defaults to ``False``. .. py:attribute:: auto_codepage + :type: bool + :value: True [Only for Windows environment] Automatically change code page if ``True``. Defaults to ``True``. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/pyproject.toml new/pingparsing-1.1.0/pyproject.toml --- old/pingparsing-1.0.3/pyproject.toml 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/pyproject.toml 2020-08-09 17:38:47.000000000 +0200 @@ -17,7 +17,6 @@ ''' [tool.isort] -dont_skip="*/**/__init__.py" known_third_party= [ "logbook", "humanreadable", @@ -55,3 +54,11 @@ 'abstractclassmethod', 'warnings.warn', ] + +[tool.pytest.ini_options] +testpaths = [ + "test", +] +md_report = true +md_report_verbose = 0 +md_report_color = "auto" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/requirements/docs_requirements.txt new/pingparsing-1.1.0/requirements/docs_requirements.txt --- old/pingparsing-1.0.3/requirements/docs_requirements.txt 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/requirements/docs_requirements.txt 2020-08-09 17:38:47.000000000 +0200 @@ -1,2 +1,2 @@ sphinx_rtd_theme -Sphinx +Sphinx>=2.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/requirements/test_requirements.txt new/pingparsing-1.1.0/requirements/test_requirements.txt --- old/pingparsing-1.0.3/requirements/test_requirements.txt 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/requirements/test_requirements.txt 2020-08-09 17:38:47.000000000 +0200 @@ -1,2 +1,2 @@ -pytest -simplejson +pytest>=6.0.1 +pytest-md-report>=0.0.12 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/test/test_cli.py new/pingparsing-1.1.0/test/test_cli.py --- old/pingparsing-1.0.3/test/test_cli.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/test/test_cli.py 2020-08-09 17:38:47.000000000 +0200 @@ -2,11 +2,11 @@ .. codeauthor:: Tsuyoshi Hombashi <[email protected]> """ +import json import sys from textwrap import dedent import pytest -import simplejson as json from subprocrunner import SubprocessRunner from .data import DEBIAN_SUCCESS_0, UBUNTU_SUCCESS_2, WINDOWS7SP1_SUCCESS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/test/test_cmd_maker.py new/pingparsing-1.1.0/test/test_cmd_maker.py --- old/pingparsing-1.0.3/test/test_cmd_maker.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/test/test_cmd_maker.py 2020-08-09 17:38:47.000000000 +0200 @@ -83,8 +83,8 @@ @pytest.mark.parametrize( ["maker_class", "host", "expected"], [ - [LinuxPingCmdMaker, "localhost", "ping -c 1 -D localhost"], - [MacosPingCmdMaker, "localhost", "ping -c 1 -D localhost"], + [LinuxPingCmdMaker, "localhost", "ping -c 1 -D -O localhost"], + [MacosPingCmdMaker, "localhost", "ping -c 1 -D -O localhost"], [WindowsPingCmdMaker, "localhost", "ping -n 1 localhost"], ], ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/test/test_pingparsing.py new/pingparsing-1.1.0/test/test_pingparsing.py --- old/pingparsing-1.0.3/test/test_pingparsing.py 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/test/test_pingparsing.py 2020-08-09 17:38:47.000000000 +0200 @@ -2,6 +2,7 @@ .. codeauthor:: Tsuyoshi Hombashi <[email protected]> """ +from datetime import datetime from textwrap import dedent import pytest @@ -64,6 +65,66 @@ DEBIAN_UNREACHABLE_1.value + "\n", DEBIAN_UNREACHABLE_0.expected, [] ) +# Ubuntu 18.04 +UBUNTU_FAIL_0 = PingTestData( + # ping -D -O <ip addr> + dedent( + """\ + PING 192.168.11.222 (192.168.11.222) 56(84) bytes of data. + [1596881133.081556] no answer yet for icmp_seq=1 + [1596881133.081898] 64 bytes from 192.168.11.222: icmp_seq=2 ttl=64 time=0.262 ms + [1596881135.129517] no answer yet for icmp_seq=3 + [1596881136.153055] no answer yet for icmp_seq=4 + [1596881137.180056] no answer yet for icmp_seq=5 + [1596881137.180326] 64 bytes from 192.168.11.222: icmp_seq=6 ttl=64 time=0.221 ms + [1596881138.201538] 64 bytes from 192.168.11.222: icmp_seq=7 ttl=64 time=0.257 ms + ^C + --- 192.168.11.222 ping statistics --- + 8 packets transmitted, 3 received, 62.5% packet loss, time 154ms + """ + ), + { + "destination": "192.168.11.222", + "packet_transmit": 8, + "packet_receive": 3, + "packet_loss_count": 5, + "packet_loss_rate": 62.5, + "rtt_min": None, + "rtt_avg": None, + "rtt_max": None, + "rtt_mdev": None, + "packet_duplicate_count": 0, + "packet_duplicate_rate": 0.0, + }, + [ + {"timestamp": datetime(2020, 8, 8, 10, 5, 33, 81556), "icmp_seq": 1, "duplicate": False,}, + { + "timestamp": datetime(2020, 8, 8, 10, 5, 33, 81898), + "icmp_seq": 2, + "ttl": 64, + "time": 0.262, + "duplicate": False, + }, + {"timestamp": datetime(2020, 8, 8, 10, 5, 35, 129517), "icmp_seq": 3, "duplicate": False,}, + {"timestamp": datetime(2020, 8, 8, 10, 5, 36, 153055), "icmp_seq": 4, "duplicate": False,}, + {"timestamp": datetime(2020, 8, 8, 10, 5, 37, 180056), "icmp_seq": 5, "duplicate": False,}, + { + "timestamp": datetime(2020, 8, 8, 10, 5, 37, 180326), + "icmp_seq": 6, + "ttl": 64, + "time": 0.221, + "duplicate": False, + }, + { + "timestamp": datetime(2020, 8, 8, 10, 5, 38, 201538), + "icmp_seq": 7, + "ttl": 64, + "time": 0.257, + "duplicate": False, + }, + ], +) + FEDORA_DUP_LOSS = PingTestData( dedent( """\ @@ -410,6 +471,7 @@ [DEBIAN_UNREACHABLE_1, "Linux"], [DEBIAN_UNREACHABLE_2, "Linux"], [UBUNTU_SUCCESS_0, "Linux"], + [UBUNTU_FAIL_0, "Linux"], [FEDORA_DUP_LOSS, "Linux"], [FEDORA_UNREACHABLE, "Linux"], [MACOS_SUCCESS_0, "macOS"], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/pingparsing-1.0.3/tox.ini new/pingparsing-1.1.0/tox.ini --- old/pingparsing-1.0.3/tox.ini 2020-04-26 04:02:28.000000000 +0200 +++ new/pingparsing-1.1.0/tox.ini 2020-08-09 17:38:47.000000000 +0200 @@ -17,7 +17,7 @@ pytest {posargs} [testenv:build] -basepython = python3.8 +basepython = python3.7 deps = twine wheel @@ -41,22 +41,22 @@ pytest --cov {posargs:-vv} [testenv:docs] -basepython = python3.8 +basepython = python3.7 deps = -r{toxinidir}/requirements/docs_requirements.txt commands = python setup.py build_sphinx --source-dir=docs/ --build-dir=docs/_build --all-files [testenv:fmt] -basepython = python3.8 +basepython = python3.7 deps = autoflake black - isort[pyproject] + isort>=5 commands = autoflake --in-place --recursive --remove-all-unused-imports --ignore-init-module-imports . - isort --apply --recursive - black setup.py test pingparsing + isort . + black invoke_pytest.py setup.py test pingparsing [testenv:lint] basepython = python3.7 @@ -68,9 +68,9 @@ commands = python setup.py check codespell pingparsing docs/pages examples test -q 2 --check-filenames - pytype --keep-going --jobs 2 --disable import-error pingparsing - mypy pingparsing setup.py --ignore-missing-imports --show-error-context --show-error-codes --python-version 3.5 - pylama + -pytype --keep-going --jobs 2 --disable import-error pingparsing + -mypy pingparsing setup.py --ignore-missing-imports --show-error-context --show-error-codes --python-version 3.5 + -pylama [testenv:readme] changedir = docs
