Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #101715

Re: ignoring or replacing white lines in a diff

Path csiph.com!news.swapon.de!fu-berlin.de!uni-berlin.de!not-for-mail
From "Martin A. Brown" <martin@linux-ip.net>
Newsgroups comp.lang.python
Subject Re: ignoring or replacing white lines in a diff
Date Thu, 14 Jan 2016 12:57:29 -0800
Lines 59
Message-ID <mailman.170.1452805060.13488.python-list@python.org> (permalink)
References <mailman.159.1452786947.13488.python-list@python.org> <5697f08f$0$23822$e4fe514c@news.xs4all.nl> <5698118F0200001B0003B68D@gwsmtp1.astron.nl>
Mime-Version 1.0
Content-Type text/plain; charset=US-ASCII
X-Trace news.uni-berlin.de knagW4AYTkvjCU/ymwc4QAkFFDjHUYaG64si3wWAam5Q==
Return-Path <martin@linux-ip.net>
X-Original-To python-list@python.org
Delivered-To python-list@mail.python.org
X-Spam-Status OK 0.002
X-Spam-Evidence '*H*': 1.00; '*S*': 0.00; 'url:pypi': 0.03; 'diff': 0.05; 'cc:addr:python-list': 0.09; 'cmd': 0.09; 'here?': 0.09; 'regression': 0.09; 'xml.': 0.09; 'python': 0.10; '(other': 0.16; 'formatting,': 0.16; 'from:addr:martin': 0.16; 'happily': 0.16; 'non-python': 0.16; 'received:hsd1.or.comcast.net': 0.16; 'received:io': 0.16; 'received:or.comcast.net': 0.16; 'received:psf.io': 0.16; 'tracer': 0.16; 'byte': 0.18; 'version.': 0.18; 'cc:2**0': 0.20; 'cc:addr:python.org': 0.20; 'issue.': 0.20; 'martin': 0.22; 'cc:no real name:2**0': 0.22; 'seems': 0.23; 'passing': 0.23; 'tried': 0.24; 'xml': 0.24; 'header:In-Reply- To:1': 0.24; 'module': 0.25; 'compare': 0.27; 'received:24': 0.28; 'specifically': 0.28; "skip:' 10": 0.28; 'looks': 0.29; 'quoting': 0.29; 'testing.': 0.29; 'whitespace': 0.29; "i'm": 0.30; "can't": 0.32; 'good.': 0.32; 'skip:. 10': 0.32; 'getting': 0.33; 'run': 0.33; 'url:python': 0.33; 'received:comcast.net': 0.33; 'skip:> 10': 0.35; 'but': 0.36; 'should': 0.36; 'url:org': 0.36; 'tool': 0.36; 'tools,': 0.36; 'subject:: ': 0.37; 'two': 0.37; 'charset :us-ascii': 0.37; '(with': 0.38; 'wrong': 0.38; 'someone': 0.38; 'test': 0.39; 'does': 0.39; 'your': 0.60; 'received:network': 0.61; 'back': 0.62; 'different': 0.63; 'past.': 0.66; 'here': 0.66; 'results': 0.66; 'user,': 0.67; 'lands': 0.84; 'yourself?': 0.84
X-X-Sender mabrown@macron.wonderfrog.net
In-Reply-To <5698118F0200001B0003B68D@gwsmtp1.astron.nl>
X-BeenThere python-list@python.org
X-Mailman-Version 2.1.20+
Precedence list
List-Id General discussion list for the Python programming language <python-list.python.org>
List-Unsubscribe <https://mail.python.org/mailman/options/python-list>, <mailto:python-list-request@python.org?subject=unsubscribe>
List-Archive <http://mail.python.org/pipermail/python-list/>
List-Post <mailto:python-list@python.org>
List-Help <mailto:python-list-request@python.org?subject=help>
List-Subscribe <https://mail.python.org/mailman/listinfo/python-list>, <mailto:python-list-request@python.org?subject=subscribe>
Xref csiph.com comp.lang.python:101715

Show key headers only | View raw


Hello Adriaan,

>Maybe someone here has a clue what is going wrong here? Any help is 
>appreciated.

Have you tried out this tool that does precisely what you need? to 
do yourself?

  https://pypi.python.org/pypi/xmldiff

I can't vouch specifically for it, am simply a user, but I know that 
I have used it happily in the past.  (Other CLI tools, include 
non-Python tools, such as xmllint, which can produce a predictable, 
reproducible XML formatting, too.)

>I'm writing a regression test for a module that generates XML.

Very good.  Good == Testing.

>I'm using diff to compare the results with a pregenerated one from an
>earlier version.

[
Interesting.  I can only speculate randomly about the whitespace 
issue.  Have you examined (with the CLI tools hexdump, od or your 
favorite byte dumper) the two different XML outputs?
]

Back to the lands of Python

>      cmd   = ["diff", "-w", "-I '^[[:space:]]*$'", "./xml/%s.xml" % name, "test.xml"]

It looks like a quoting issue.  I think you are passing the 
following tokens to your OS.  You should be able to run your Python 
program under a system call tracer to see what is actually getting 
exec()d.

I'm accustomed to using strace, but it seems that Macintosh uses 
dtruss.  Anyway, I think your cmd is turning into this (as for as 
your kernel is concerned):

   token 1: diff
   token 2: -w
   token 3: -I '^[[:space:]]*$'
   token 4: ./xml/name.xml
   token 5: test.xml

Try this (untested):

>      cmd = ["diff", "-w", "-I", "^[[:space:]]*$", "./xml/%s.xml" % name, "test.xml"]

But, perhaps the xmldiff module will be what you want.

-Martin

-- 
Martin A. Brown
http://linux-ip.net/

Back to comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

problem Shivam Gupta <mailtoshivamgupta@gmail.com> - 2016-01-14 21:23 +0530
  Re: problem Irmen de Jong <irmen.NOSPAM@xs4all.nl> - 2016-01-14 20:01 +0100
    ignoring or replacing white lines in a diff "Adriaan Renting" <renting@astron.nl> - 2016-01-14 21:22 +0100
    Re: ignoring or replacing white lines in a diff Zachary Ware <zachary.ware+pylist@gmail.com> - 2016-01-14 14:54 -0600
    Re: ignoring or replacing white lines in a diff Nathan Hilterbrand <nhilterbrand@gmail.com> - 2016-01-14 15:57 -0500
    Re: ignoring or replacing white lines in a diff "Martin A. Brown" <martin@linux-ip.net> - 2016-01-14 12:57 -0800
    Re: ignoring or replacing white lines in a diff Peter Otten <__peter__@web.de> - 2016-01-14 22:05 +0100
    Re: problem Chris Angelico <rosuav@gmail.com> - 2016-01-15 08:10 +1100
    Re: problem eryk sun <eryksun@gmail.com> - 2016-01-14 15:39 -0600
    Re: ignoring or replacing white lines in a diff "Adriaan Renting" <renting@astron.nl> - 2016-01-15 10:44 +0100
    Re: ignoring or replacing white lines in a diff Peter Otten <__peter__@web.de> - 2016-01-15 11:20 +0100

csiph-web