[issue5873] Minidom: parsestring() error

2009-04-28 Thread Georg Brandl
Georg Brandl added the comment: You'll have to name your string differently; you can't have "xml" refer to both the string and the package :) Please refer to python-list or the comp.lang.python newsgroup for further usage questions. -- nosy: +georg.brandl resolution: -> invalid status

[issue5873] Minidom: parsestring() error

2009-04-28 Thread Nicolas Frantzen
New submission from Nicolas Frantzen : Hi, I'm pretty new to the community but I get an error using the minidom parseString() method. Here is my code (ulta simple!): import xml.dom.minidom xml = "hello" doc = xml.dom.minidom.parsString(xml) And here is my error trace: Traceback (most recent c

[issue5872] New C API for declaring Python types

2009-04-28 Thread Brett Cannon
Changes by Brett Cannon : -- nosy: +brett.cannon ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.pyt

[issue5872] New C API for declaring Python types

2009-04-28 Thread Larry Hastings
New submission from Larry Hastings : EXECUTIVE SUMMARY I've written a patch against py3k trunk creating a new function-based API for creating extension types in C. This allows PyTypeObject to become a (mostly) private structure. THE PROBLEM Here's how you create an extension type using the

[issue5857] Return namedtuples from tokenize token generator

2009-04-28 Thread Raymond Hettinger
Raymond Hettinger added the comment: Committed in r72086. Needs backporting to 2.7. -- resolution: -> fixed status: open -> closed ___ Python tracker ___ ___

[issue5857] Return namedtuples from tokenize token generator

2009-04-28 Thread Georg Brandl
Georg Brandl added the comment: Note that in tokenize.diff, "TokenInfo" should be in __all__ instead of "Token". I agree with Raymond on the inner tuples. -- nosy: +georg.brandl ___ Python tracker

[issue5753] CVE-2008-5983 python: untrusted python modules search path

2009-04-28 Thread Glyph Lefkowitz
Changes by Glyph Lefkowitz : -- nosy: +glyph ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Changes by Eric Smith : Removed file: http://bugs.python.org/file13805/issue-1588-2-py3k.patch ___ Python tracker ___ ___ Python-bugs-list mail

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Changes by Eric Smith : Removed file: http://bugs.python.org/file13802/issue-1588-1-py3k.patch ___ Python tracker ___ ___ Python-bugs-list mail

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Changes by Eric Smith : Removed file: http://bugs.python.org/file13801/issue-1588-0.patch ___ Python tracker ___ ___ Python-bugs-list mailing l

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Changes by Eric Smith : Added file: http://bugs.python.org/file13808/issue-1588-py3k.patch ___ Python tracker ___ ___ Python-bugs-list mailing

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: I think these patches are complete. One for py3k, one for trunk. If no complaints, I'll apply them before this weekend's py3k beta. -- Added file: http://bugs.python.org/file13807/issue-1588-trunk.patch ___ Python tracke

[issue5870] subprocess.DEVNULL

2009-04-28 Thread Jean Brouwers
Jean Brouwers added the comment: Typo. That should be ..., os.O_RDWR) -- ___ Python tracker ___ ___ Python-bugs-list mailing list Uns

[issue5861] test_urllib fails on windows

2009-04-28 Thread Roumen Petrov
Roumen Petrov added the comment: Or another workaround is to change line "path = '///' + drive + '|' " from file ./Lib/nturl2path.py, i.e. '|' -> ':' . -- nosy: +rpetrov ___ Python tracker _

[issue1524938] PEP MemoryError with a lot of available memory gc not called

2009-04-28 Thread Antoine Pitrou
Antoine Pitrou added the comment: Lowering priority since, as Martin said, it shouldn't be needed in real-life situations. -- nosy: +pitrou priority: high -> low stage: -> needs patch type: feature request -> resource usage ___ Python tracker

[issue1492860] Integer bit operations performance improvement.

2009-04-28 Thread Antoine Pitrou
Antoine Pitrou added the comment: I don't think it's a good thing to special-case bitwise operations in the ceval loop. It will make the whole thing less instruction cache-friendly, just for the purpose of speeding up some very uncommon operations. -- nosy: +pitrou

[issue5871] email.header.Header allow to embed raw newlines into a message

2009-04-28 Thread Benjamin Peterson
Changes by Benjamin Peterson : -- assignee: -> barry nosy: +barry ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe

[issue5871] email.header.Header allow to embed raw newlines into a message

2009-04-28 Thread Jakub Wilk
New submission from Jakub Wilk : >>> from email.mime.text import MIMEText >>> from email.header import Header >>> msg = MIMEText('dummy') >>> h = Header('dummy\nX-Injected-Header: yes') >>> msg['Subject'] = h >>> print msg.as_string() Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0

[issue3297] Python interpreter uses Unicode surrogate pairs only before the pyc is created

2009-04-28 Thread Lino Mastrodomenico
Changes by Lino Mastrodomenico : -- nosy: +l.mastrodomenico ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe: http

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: I also propose to disallow the '=' alignment flag. It means put the padding between the sign and the digits, and since there are 2 signs, it's not clear what this would mean. Remember, by using .real and .imag, you can achieve this level of control in the formattin

[issue4875] find_library can return directories instead of files

2009-04-28 Thread Thomas Heller
Changes by Thomas Heller : -- versions: +Python 2.7, Python 3.0, Python 3.1 ___ Python tracker ___ ___ Python-bugs-list mailing list Un

[issue4538] ctypes could include data type limits

2009-04-28 Thread Thomas Heller
Thomas Heller added the comment: Isn't is easy to find these limits by using ctypes? Something like ctypes.sizeof(ctypes.c_uint32)... -- resolution: -> rejected status: open -> closed ___ Python tracker _

[issue5507] ctypes configuration fails on mips-linux (and probably Irix)

2009-04-28 Thread Thomas Heller
Thomas Heller added the comment: Duplicate of issue 4305. -- resolution: -> duplicate status: open -> closed ___ Python tracker ___ _

[issue5413] urllib ctypes error on Mac OS X Server 10.5

2009-04-28 Thread Thomas Heller
Thomas Heller added the comment: Seems ronald takes care of this issue. -- assignee: theller -> ronaldoussoren ___ Python tracker ___

[issue4305] ctypes fails to build on mipsel-linux-gnu (detects mips instead of mipsel)

2009-04-28 Thread Thomas Heller
Thomas Heller added the comment: I've applied py-issue-4305.patch and reran configure 2.61. Committed as rev 72081 (trunk), 72082 (py3k branch), 72083 (release26-maint branch), 72084 (release30-maint branch). Can someone please confirm that it works now, so that I can close this issue? ---

[issue5870] subprocess.DEVNULL

2009-04-28 Thread Jean Brouwers
New submission from Jean Brouwers : The subprocess module exposes the PIPE and STDOUT constants to be used for the stdin, stdout or stderr keyword arguments. Often, stderr needs to be redirected to /dev/null (on posix). It would nice if another constant was available for that purpose, e.g. s

[issue5869] 100th character truncation in 2.4 tarfile.py

2009-04-28 Thread Neville Bagnall
Neville Bagnall added the comment: Lars, for information. I'm closing as 2.4 isn't being maintained I presume, and while I believe it also affects 2.5, I don't think its a security issue, just data loss -- nosy: +lars.gustaebel status: open -> closed versions: +Python 2.5 _

[issue5869] 100th character truncation in 2.4 tarfile.py

2009-04-28 Thread Neville Bagnall
New submission from Neville Bagnall : When tarinfo.name is exactly 100 characters long, the last character is truncated in the tarfile Attached patch contains the extremely simple fix. -- components: Library (Lib) files: tarfile.patch keywords: patch messages: 86759 nosy: neville.bagnal

[issue5850] Full example for emulating a container type

2009-04-28 Thread Raymond Hettinger
Changes by Raymond Hettinger : -- resolution: -> rejected status: open -> closed ___ Python tracker ___ ___ Python-bugs-list mailing l

[issue5867] No way to create an abstract classmethod

2009-04-28 Thread Benjamin Peterson
Changes by Benjamin Peterson : -- priority: -> normal type: behavior -> feature request versions: +Python 3.1 -Python 3.0 ___ Python tracker ___ _

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: Many thanks. Looks like no double rounding then; that's good news. (32-bit Linux on x86 typically produces 10...0004.0 for this example). -- ___ Python tracker __

[issue5850] Full example for emulating a container type

2009-04-28 Thread Georg Brandl
Georg Brandl added the comment: May I add that the given example is flawed: 1. it shares the data dictionary between all instances 2. just delegating all container interfaces to a dictionary does not really show how to customize your own container. -- _

[issue5866] cPickle defect with tuples and different from pickle output

2009-04-28 Thread Georg Brandl
Georg Brandl added the comment: As long as the different pickle outputs unpickle to the same objects (which they do, since they only differ in pushing objects to the memo), I can't see why this would be a bug. -- nosy: +georg.brandl resolution: -> wont fix status: open -> pending

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: This is a patch against py3k, including tests in test_complex.py. It should deal with the padding, but let me know. -- stage: test needed -> patch review Added file: http://bugs.python.org/file13805/issue-1588-2-py3k.patch _

[issue1492860] Integer bit operations performance improvement.

2009-04-28 Thread Daniel Diniz
Daniel Diniz added the comment: Mark: it was just my cluelessness showing :) -- dependencies: -long int bitwise ops speedup (patch included) ___ Python tracker ___ __

[issue3672] Ill-formed surrogates not treated as errors during encoding/decoding

2009-04-28 Thread Antoine Pitrou
Changes by Antoine Pitrou : -- nosy: +lemburg, loewis ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe: http://mai

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Alan Hourihane
Alan Hourihane added the comment: GCC was munging math.h when it did fixincludes. I'm fixing the GCC port now. Result of 1e16+2.9 is... 10002.00 -- ___ Python tracker _

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: I'm glad you sorted it out. :) Any chance you could tell us what the fix was, in case anyone else runs into something similar? Or is that unlikely to happen? Also, while you're there, I have a favour to ask: could you tell me what the result of doing >>>

[issue5862] multiprocessing 'using a remote manager' example errors and possible 'from_address' code leftover

2009-04-28 Thread R. David Murray
R. David Murray added the comment: OK, so I made the obvious changes to the second remote client example and tried running the three. They all run now, but the output is not as expected. I've attached a composite debug log of what happened for your reference. (I think I ran either t2 or t3 tw

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Alan Hourihane
Alan Hourihane added the comment: It's ok, I see what the problem is. It's GCC's headers that are causing trouble. Closing. -- status: open -> closed ___ Python tracker ___

[issue3143] development docs waste a lot of horizontal space on left nav bar

2009-04-28 Thread Éric Araujo
Changes by Éric Araujo : -- nosy: +Merwok ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org

[issue5864] format(1234.5, '.4') gives misleading result

2009-04-28 Thread Raymond Hettinger
Raymond Hettinger added the comment: I think the change should be deemed a bug and backported. Nothing good can come from having version differences persist or from having the odd looking output. -- nosy: +rhettinger ___ Python tracker

[issue5868] mimetypes.MAGIC_FUNCTION initialization not thread-safe in Python 2.6.2

2009-04-28 Thread Antoine Pitrou
Antoine Pitrou added the comment: Already fixed in r72048. If you try the fix and find out it has some problems, please reopen the bug. -- nosy: +pitrou resolution: -> duplicate status: open -> closed superseder: -> mimetypes.guess_type() hits recursion limit

[issue5868] mimetypes.MAGIC_FUNCTION initialization not thread-safe in Python 2.6.2

2009-04-28 Thread Alain Poirier
New submission from Alain Poirier : In Python 2.6.2, the fix for the issue 5401 changed the way the mimetypes module is initialized. But now the initialization is not thread-safe : a thread can set ``inited`` to ``True`` and then be preempted before to overwrite the functions guess_type(), guess

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: > Note that cmathmodule.c compiles fine and that does reference > log1p() too. Now that's *really* peculiar. I can't imagine why one would work and the other not. Some ideas about how to proceed from here: - try doing a debug build (./configure --with-pydebu

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Alan Hourihane
Alan Hourihane added the comment: Ah. right. I see what you mean about the macro expansion. So I'm on an Atari FreeMiNT platform which is an m68k box which has no shared libraries so I'm setting up for static only via Setup.dist. Note that cmathmodule.c compiles fine and that does reference lo

[issue5867] No way to create an abstract classmethod

2009-04-28 Thread Matteo Dell'Amico
New submission from Matteo Dell'Amico : Is there a way to define an abstract classmethod? The two obvious ways don't seem to work properly. Python 3.0.1+ (r301:69556, Apr 15 2009, 17:25:52) [GCC 4.3.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import a

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: It might also be helpful if you could tell me how you're building Python (what configure options, etc.), and which version of the source you have---is this the 2.6.2 tarball from python.org, or a recent svn; if the latter, which revision? Thanks! --

[issue5866] cPickle defect with tuples and different from pickle output

2009-04-28 Thread Jelle
Changes by Jelle : -- type: -> behavior ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/

[issue5864] format(1234.5, '.4') gives misleading result

2009-04-28 Thread Eric Smith
Eric Smith added the comment: I agree this should be changed. This: >>> format(1234.56, '.4') '1235.0' is definitely a problem. -- ___ Python tracker ___ ___

[issue5866] cPickle defect with tuples and different from pickle output

2009-04-28 Thread Jelle
New submission from Jelle : Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49) [GCC 4.3.2] on linux2 >>> print cPickle.dumps(('a','b')) == cPickle.dumps(('a', str('b'))) False >>> print pickle.dumps(('a','b')) == pickle.dumps(('a', str('b'))) True >>> print pickle.dumps(('a','b')) == cPickle.dump

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: math_log1p should be produced by the line FUNC1(log1p, log1p, 1, ... FUNC1 is a macro that (in this instance) creates the math_log1p function. The original error message that you posted seems to say that it's log1p that's undeclared, not math_log1p. It's str

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Alan Hourihane
Alan Hourihane added the comment: I do have log1p() available... checking for log1p... yes And it's in math.h and libm.a on my system. I still can't see any reference to math_log1p() in mathmodule.c which is why it's barfing. -- ___ Python tracker

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: Thanks for the report. Could you please tell me what platform you're on? And does the configure script detect that log1p is available? (There should be a line in the (stdout) output of the configure script that looks something like: checking for log1p... yes

[issue2571] cmd.py always uses raw_input, even when another stdin is specified

2009-04-28 Thread Daniel Diniz
Daniel Diniz added the comment: Changing into a RFE: "automatically set use_rawinput when 'stdin' is not None". Will be closed unless someone voices interest. -- components: +Library (Lib) -Extension Modules keywords: +easy priority: -> low stage: -> test needed status: open -> pendin

[issue1514420] Missing module code does spurious file search

2009-04-28 Thread Ronald Oussoren
Changes by Ronald Oussoren : -- nosy: -ronaldoussoren ___ Python tracker ___ ___ Python-bugs-list mailing list Unsubscribe: http:/

[issue3672] Ill-formed surrogates not treated as errors during encoding/decoding

2009-04-28 Thread Antoine Pitrou
Antoine Pitrou added the comment: We could fix it for 3.1, and perhaps leave 2.7 unchanged if some people rely on this (for whatever reason). -- nosy: +pitrou priority: -> high stage: -> test needed versions: +Python 3.1 ___ Python tracker

[issue1514420] Missing module code does spurious file search

2009-04-28 Thread Zbyszek Szmek
Zbyszek Szmek added the comment: The bug is certainly not catastrophic, but creates a slight security risk: ln -s /etc/shadow '' some-suid-program -with-error or whatever. -- nosy: +zbysz ___ Python tracker __

[issue5668] file "" on disk creates garbage output in stack trace

2009-04-28 Thread Daniel Diniz
Daniel Diniz added the comment: Duplicate of #1514420. -- nosy: +ajaksu2 resolution: -> duplicate stage: -> committed/rejected status: open -> closed ___ Python tracker ___ ___

[issue5865] mathmodule.c fails to compile due to missing math_log1p() function

2009-04-28 Thread Alan Hourihane
New submission from Alan Hourihane : mathmodule.c fails to compile because math_log1p() is missing in mathmodule.c... gcc -fno-strict-aliasing -DNDEBUG -O2 -pipe -fomit-frame-pointer -I. -IInclude -I./Include -DPy_BUILD_CORE -c ./Modules/mathmodule.c -o Modules/mathmodule.o ./Modules/mathmod

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: ... > Is this intentional? I was expecting to get strings of length 20, > with the substring '(123+4j)' positioned either in the middle > or on the left or right. No, not intentional. I'll fix it and add some tests. Thanks. -- __

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: With your patch, I'm getting quite strange results when using alignment specifiers: >>> z = 123+4j >>> format(z, '=20') '( 123+ 4j)' >>> format(z, '^20') '(123 +4 j)' >>> format(z, '<20') '(123

[issue5862] multiprocessing 'using a remote manager' example errors and possible 'from_address' code leftover

2009-04-28 Thread Jesse Noller
Jesse Noller added the comment: Ugh, I do think this is a doc bug; I think there was an amount of shear when we performed the merge into core and subsequent bug fixes. I'll take a look when I get a chance. -- ___ Python tracker

[issue2245] aifc cannot handle unrecognised chunk type "CHAN"

2009-04-28 Thread Santiago Peresón
Santiago Peresón added the comment: the attached file triggers the bug. -- Added file: http://bugs.python.org/file13803/Sine-1000Hz-300ms.aif.zip ___ Python tracker ___ _

[issue5864] format(1234.5, '.4') gives misleading result

2009-04-28 Thread Mark Dickinson
New submission from Mark Dickinson : In all versions of Python from 2.6 up, I get the following behaviour: >>> format(123.456, '.4') '123.5' >>> format(1234.56, '.4') '1235.0' >>> format(12345.6, '.4') '1.235e+04' The first and third results are as I expect, but the second is somewhat misleadin

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: Here's a patch against py3k, with one slight change with non-empty presentation types. -- Added file: http://bugs.python.org/file13802/issue-1588-1-py3k.patch ___ Python tracker __

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: Mark Dickinson wrote: > The trailing zeros thing is heavily bound up with issue 5858, of course; > I think we need a decision on that, one way or the other. One problem > is that I'm only proposing the issue 5858 change for py3k, not trunk. I don't have a problem

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: I'll take a look. The trailing zeros thing is heavily bound up with issue 5858, of course; I think we need a decision on that, one way or the other. One problem is that I'm only proposing the issue 5858 change for py3k, not trunk. -- stage: patch revi

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: See the attached patch. Comments welcome. I'm not sure I'm doing the right thing with 'g' and appending zeros: >>> format(3+4j, '.2') '(3+4j)' >>> format(3+4j, '.2g') '3.0+4.0j' >>> format(3+0j, '.2') '(3+0j)' >>> format(3+0j, '.2g') '3.0+0.0j' >>> format(1j, '.2')

[issue5858] Make complex repr and str more like float repr and str

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: I'm still flip-flopping on this one. On the minus side, this change risks breaking doctests without any enormous gain to show for it. On the plus side, Eric Smith is currently working on implementing sensible formatting for complex numbers (issue 1588), and ag

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: Mark Dickinson wrote: >> Although I guess if we wanted to, we could say that the empty >> presentation type is equivalent to 'g', but gives you parens. > > This works for me. Me, too. > [about suppressing real zeros...] >> Again, we could say that the empty pres

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: > Complex would be the first one. But that doesn't really bother me. It bothers me a little. I see '' as a special case of the empty presentation type, even if that's not what a strict reading of PEP 3101 says, so I expect '', '>' '<20' all to format the numbe

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: Mark Dickinson wrote: > (1) What about parentheses? The current complex repr and str have > parentheses in them, for reasons that I still don't really understand. > > I'd suggest leaving them out altogether; except that I have > the impression (perhaps wrongly) th

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: Two things that haven't come up so far: (1) What about parentheses? The current complex repr and str have parentheses in them, for reasons that I still don't really understand. I'd suggest leaving them out altogether; except that I have the impression (perhap

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Mark Dickinson
Mark Dickinson added the comment: > I'm also going to disallow the '%' format code. Sounds good to me. > I don't think it makes any sense to convert a complex number to a > percentage. Well, I think it's clear what the numbers would be (just scale both real and imaginary parts by 100 before u

[issue1588] str.format() wrongly formats complex() numbers (Py30a2)

2009-04-28 Thread Eric Smith
Eric Smith added the comment: I'm also going to disallow the '%' format code. I don't think it makes any sense to convert a complex number to a percentage. -- ___ Python tracker