[issue34529] add the option for json.dumps to return newline delimited json
New submission from ron : Many service providers such as Google BigQuery do not accept Json. They accept newline delimited Json. https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-json#limitations please allow to receive this format directly from the dump. -- messages: 324244 nosy: ronron priority: normal severity: normal status: open title: add the option for json.dumps to return newline delimited json type: enhancement versions: Python 3.7 ___ Python tracker <https://bugs.python.org/issue34529> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue34529] add the option for json.dumps to return newline delimited json
ron added the comment: Raymond Hettinger answer is incorrect. The main difference between Json and new line delimited json is that new line contains valid json in each line. Meaning you can do to line #47 and what you will have in this line is a valid json. Unlike the regular json where if one bracket is wrong the while file is unreadable. You can not just add /n after one "object". You need also to change the brackets. Keep in mind that not all Jsons are simple.. some contains huge amount of nested objects inside of them. You must identify where Json start and where it ends without being confused by nesting jsons. There are many programming solutions to this issue. For example: https://stackoverflow.com/questions/51595072/convert-json-to-newline-json-standard-using-python/ My point is that this is a new format which is going to be widely accepted since Google adopted it for BigQuery. flipping strings can also be easily implemented yet Python still build a function to do that for the user. I think it's wise to allow support for this with in the Json library.. saving the trouble for programmer from thinking how to implement it. -- ___ Python tracker <https://bugs.python.org/issue34529> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue34529] add the option for json.dumps to return newline delimited json
ron added the comment: I'm a bit confused here. On one hand you say it's two lines of code. On other hand you suggest that each service provider will implement it's own functions. What's the harm from adding - small , unbreakable functionality? Your points for small code could have also been raised against implementing reverse() - yet Python still implemented it - saved the 2 line code from the developer. At the end.. small change or not.. This is a new format. Conversion between formats are required from any programming language.. -- ___ Python tracker <https://bugs.python.org/issue34529> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue34529] add the option for json.dumps to return newline delimited json
ron added the comment: Well... when handling GBs of data - it's preferred to generate the file directly in the required format rather than doing conversions. The new line is a format... protocols don't matter here... I still think the library should allow the user to create this format directly. Lets get out of the scope of Google or others... The new line is a great format it allows you to take a "row" in the middle of the file and see it. You don't need to read 1gb file into parser in order to see it you can use copy 1 row... We are adopting this format for all our jsons, so it would be nice to get the service directly from the library. -- ___ Python tracker <https://bugs.python.org/issue34529> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue16438] Numeric operator predecence confusing
ron added the comment: Any progress on this? -- nosy: +ronron ___ Python tracker <https://bugs.python.org/issue16438> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue46575] One-off errors in hashlib.scrypt error messages
New submission from Ron Kaminsky : There are one-off errors in upper bounds given in the error messages for hashlib.scrypt(...). MAX_INT *is* accepted (and at least for maxmem, works). See https://github.com/python/cpython/blob/8fb36494501aad5b0c1d34311c9743c60bb9926c/Modules/_hashopenssl.c#L1375 and https://github.com/python/cpython/blob/8fb36494501aad5b0c1d34311c9743c60bb9926c/Modules/_hashopenssl.c#L1382 With thanks to everyone involved for all the fine work on Python! -- messages: 412103 nosy: ron_kaminsky priority: normal severity: normal status: open title: One-off errors in hashlib.scrypt error messages type: behavior ___ Python tracker <https://bugs.python.org/issue46575> ___ ___ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1230] Tix HList class missing method implementation for info_bbox
Changes by Ron Longo: -- components: Tkinter severity: normal status: open title: Tix HList class missing method implementation for info_bbox type: behavior versions: Python 2.6 __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1230> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1720390] Remove backslash escapes from tokenize.c.
Ron Adam added the comment: Yes, I will update it. _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1720390> _ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1420] Unicode literals in tokenize.py and tests.
New submission from Ron Adam: Replaced Unicode literals in tokenize.py and it's tests files with byte literals. Added a compile step to the test to make sure the text file used in the test are valid python code. This will catch changes that need to be done in to the text (gold file) for future python versions. -- components: Library (Lib) files: tokenize_patch.diff messages: 57366 nosy: ron_adam severity: normal status: open title: Unicode literals in tokenize.py and tests. versions: Python 3.0 Added file: http://bugs.python.org/file8732/tokenize_patch.diff __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1420> __Index: Lib/tokenize.py === --- Lib/tokenize.py (revision 58930) +++ Lib/tokenize.py (working copy) @@ -69,10 +69,10 @@ Single3 = r"[^'\\]*(?:(?:\\.|'(?!''))[^'\\]*)*'''" # Tail end of """ string. Double3 = r'[^"\\]*(?:(?:\\.|"(?!""))[^"\\]*)*"""' -Triple = group("[uU]?[rR]?'''", '[uU]?[rR]?"""') +Triple = group("[bB]?[rR]?'''", '[bB]?[rR]?"""') # Single-line ' or " string. -String = group(r"[uU]?[rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*'", - r'[uU]?[rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*"') +String = group(r"[bB]?[rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*'", + r'[bB]?[rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*"') # Because of leftmost-then-longest match semantics, be sure to put the # longest operators first (e.g., if = came before ==, == would get @@ -90,9 +90,9 @@ Token = Ignore + PlainToken # First (or only) line of ' or " string. -ContStr = group(r"[uU]?[rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*" + +ContStr = group(r"[bB]?[rR]?'[^\n'\\]*(?:\\.[^\n'\\]*)*" + group("'", r'\\\r?\n'), -r'[uU]?[rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*' + +r'[bB]?[rR]?"[^\n"\\]*(?:\\.[^\n"\\]*)*' + group('"', r'\\\r?\n')) PseudoExtras = group(r'\\\r?\n', Comment, Triple) PseudoToken = Whitespace + group(PseudoExtras, Number, Funny, ContStr, Name) @@ -102,28 +102,28 @@ endprogs = {"'": re.compile(Single), '"': re.compile(Double), "'''": single3prog, '"""': double3prog, "r'''": single3prog, 'r"""': double3prog, -"u'''": single3prog, 'u"""': double3prog, -"ur'''": single3prog, 'ur"""': double3prog, +"b'''": single3prog, 'b"""': double3prog, +"br'''": single3prog, 'br"""': double3prog, "R'''": single3prog, 'R"""': double3prog, -"U'''": single3prog, 'U"""': double3prog, -"uR'''": single3prog, 'uR"""': double3prog, -"Ur'''": single3prog, 'Ur"""': double3prog, -"UR'''": single3prog, 'UR"""': double3prog, -'r': None, 'R': None, 'u': None, 'U': None} +"B'''": single3prog, 'B"""': double3prog, +"bR'''": single3prog, 'bR"""': double3prog, +"Br'''": single3prog, 'Br"""': double3prog, +"BR'''": single3prog, 'BR"""': double3prog, +'r': None, 'R': None, 'b': None, 'B': None} triple_quoted = {} for t in ("'''", '"""', "r'''", 'r"""', "R'''", 'R"""', - "u'''", 'u"""', "U'''", 'U"""', - "ur'''", 'ur"""', "Ur''
[issue1420] Unicode literals in tokenize.py and tests.
Ron Adam added the comment: George is correct. The changes are minimal. The only addition is to run the tokenize_tests.txt file though compile() as a way to force an exception if it needs updating in the future. The results of the compile are not used. __ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1420> __ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1720390] Remove backslash escapes from tokenize.c.
Ron Adam added the comment: It looks like the disabling of \u and \U in raw strings is done. Does tokenize.py need to be fixed, to match? While working on this I was able to clean up the string parsing parts of tokenize.c, and have a separate patch with just that. And an updated patch with both the cleaned up tokenize.c and the no escapes in raw strings in case it is desired after all. Added file: http://bugs.python.org/file8762/tokenize_cleanup_patch.diff _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1720390> _Index: Parser/tokenizer.c === --- Parser/tokenizer.c (revision 58951) +++ Parser/tokenizer.c (working copy) @@ -1254,23 +1254,17 @@ /* Identifier (most frequent token!) */ nonascii = 0; if (is_potential_identifier_start(c)) { - /* Process r"", u"" and ur"" */ - switch (c) { - case 'r': - case 'R': + /* Process b"", r"" and br"" */ + if (c == 'b' || c == 'B') { c = tok_nextc(tok); if (c == '"' || c == '\'') goto letter_quote; - break; - case 'b': - case 'B': + } + if (c == 'r' || c == 'R') { c = tok_nextc(tok); - if (c == 'r' || c == 'R') -c = tok_nextc(tok); if (c == '"' || c == '\'') goto letter_quote; - break; - } + } while (is_potential_identifier_char(c)) { if (c >= 128) nonascii = 1; @@ -1417,59 +1411,51 @@ *p_end = tok->cur; return NUMBER; } - + letter_quote: /* String */ if (c == '\'' || c == '"') { - Py_ssize_t quote2 = tok->cur - tok->start + 1; - int quote = c; - int triple = 0; - int tripcount = 0; - for (;;) { - c = tok_nextc(tok); - if (c == '\n') { -if (!triple) { - tok->done = E_EOLS; - tok_backup(tok, c); - return ERRORTOKEN; -} -tripcount = 0; -tok->cont_line = 1; /* multiline string. */ - } - else if (c == EOF) { -if (triple) - tok->done = E_EOFS; -else - tok->done = E_EOLS; -tok->cur = tok->inp; -return ERRORTOKEN; - } - else if (c == quote) { -tripcount++; -if (tok->cur - tok->start == quote2) { - c = tok_nextc(tok); - if (c == quote) { - triple = 1; - tripcount = 0; - continue; - } - tok_backup(tok, c); -} -if (!triple || tripcount == 3) - break; - } - else if (c == '\\') { -tripcount = 0; -c = tok_nextc(tok); -if (c == EOF) { - tok->done = E_EOLS; - tok->cur = tok->inp; - return ERRORTOKEN; -} - } + int quote = c; + int quote_size = 1; /* 1 or 3 */ + int end_quote_size = 0; + + /* Find the quote size and start of string */ + c = tok_nextc(tok); + if (c == quote) { + c = tok_nextc(tok); + if (c == quote) +quote_size = 3; else -tripcount = 0; +end_quote_size = 1; /* empty string found */ } + if (c != quote) + tok_backup(tok, c); + + /* Get rest of string */ + while (end_quote_size != quote_size) { + c = tok_nextc(tok); + if (c == EOF) { +if (quote_size == 3) + tok->done = E_EOFS; + else + tok->done = E_EOLS; + tok->cur = tok->inp; + return ERRORTOKEN; + } + if (quote_size == 1 && c == '\n') { + tok->done = E_EOLS; + tok->cur = tok->inp; + return ERRORTOKEN; + } + if (c == quote) + end_quote_size += 1; + else { + end_quote_size = 0; + if (c == '\\') + c = tok_nextc(tok); /* skip escaped char */ + } + } + *p_start = tok->start; *p_end = tok->cur; return STRING; ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1720390] Remove backslash escapes from tokenize.c.
Changes by Ron Adam: Added file: http://bugs.python.org/file8763/no_raw_escapes_patch.diff _ Tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1720390> _ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13062] Introspection generator and function closure state
Changes by Ron Adam : -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue13062> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11816] Refactor the dis module to provide better building blocks for bytecode analysis
Ron Adam added the comment: Instead of a get_instructions() function, How about using a DisCode class that defines the API for accessing Opinfo tuples of a disassembled object. So instead of... for instr in dis.bytecode_instructions(thing): process(instr) You could use... for instr in dis.DisCode(thing): process(instr) And I would like to be able to do... assertEqual(DisCode(thing1), DisCode(thing2)) It could also have a .dis() method that returns formatted output that matches what dis() currently prints. That would allow tests that use dis.dis() to get rid of capturing stdout with minimal changes. result = DisCode(func).dis() # return a dis compatible string. A DisCode object also offers a nice place to put documentation for the various pieces and an overall view of the new API without getting it confused with the current dis.dis() API. It's easier for me to remember an object with methods than several separate but related functions. (YMMV) This is very near a version of dis I did a while back where I removed the prints and returned a list of list object from dis.dis(). The returned object had __repr__ that formatted the data so it matched the current dis output. That made it work the same in a python shell. But I could still access and alter individual lines and fields by indexing or iterating it. While it worked nicely, it wouldn't be backwards compatible. -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue11816> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11682] PEP 380 reference implementation for 3.3
Ron Adam added the comment: There is a test for 'yield from' as a function argument without the extra parentheses. f(yield from x) You do need them in the case of a regular yield. f((yield)) or f((yield value)) Shouldn't the same rule apply in both cases? * I'm trying to do a version of the patch with 'yield_from' as a separate item from 'yield' in the grammar, but it insists on the parentheses due to it being a yield_expr component. -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue11682> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11682] PEP 380 reference implementation for 3.3
Ron Adam added the comment: Thanks for the updated links Nick. There is a comment in the docs that recommends putting parentheses around any yield expression that returns a value. So it is in agreement with that in the function argument case. The grammar I used does keep it as a variant. yield_expr 'yield' [testlist | yield_from] yield_from 'from' test The purpose of doing that is so I can do ... yield_expr 'yield' [testlist | yield_from | yield_raise] yield_from 'from' test yield_raise 'raise' [test ['from' test]] The yield_raise part is only an interesting exercise to help me understand cpythons internals better. I'm getting there and hope to be able to contribute to more bug fixes, and patches. :-) -- ___ Python tracker <http://bugs.python.org/issue11682> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13607] Move generator specific sections out of ceval.
New submission from Ron Adam : The following changes cleanup the eval loop and result in a pretty solid 2 to 3% improvement in pybench for me. And it is about 5% faster for long generators. * Change why enum type to int and #defines. And moved the why defines to opcode.h so that they can be seen by the genrator objects after a yield, return, or exception. * Added an "int f_why" to frames so the generator can see why it returned from a send. * Refactored generator obj so it can use the "f->f_why" to determine what to do without having to do several checks first. * Moved the generator specific execption save/swap/and clear out of the cevel main loop. No need to check for those on every function call. The only test that fails is the frame size is test_sys. I left that in for now so someone could check that, and tell me if it's ok to fix it, or if I need to do something else. I also considered putting the why on the tstate object. It might save some memory as there wouldn't be as many of those. -- components: Interpreter Core files: f_why.diff keywords: patch messages: 149583 nosy: ron_adam priority: normal severity: normal status: open title: Move generator specific sections out of ceval. type: performance versions: Python 3.3 Added file: http://bugs.python.org/file23969/f_why.diff ___ Python tracker <http://bugs.python.org/issue13607> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13607] Move generator specific sections out of ceval.
Ron Adam added the comment: A simple test to show the difference. BEFORE: $ python3 -mtimeit "def y(n):" " for x in range(n):" "yield x" "sum(y(10))" 10 loops, best of 3: 3.87 usec per loop $ python3 -mtimeit "def y(n):" " for x in range(n):" "yield x" "sum(y(100))" 10 loops, best of 3: 186 msec per loop AFTER: $ ./python -mtimeit "def y(n):" " for x in range(n):" "yield x" "sum(y(10))" 10 loops, best of 3: 3.81 usec per loop $ ./python -mtimeit "def y(n):" " for x in range(n):" "yield x" "sum(y(100))" 10 loops, best of 3: 168 msec per loop before after y(10) usec's 3.873.81 - 1.55% y(100)msec's 186 168 - 9.67% -- ___ Python tracker <http://bugs.python.org/issue13607> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13607] Move generator specific sections out of ceval.
Changes by Ron Adam : Removed file: http://bugs.python.org/file23969/f_why.diff ___ Python tracker <http://bugs.python.org/issue13607> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13607] Move generator specific sections out of ceval.
Ron Adam added the comment: New diff file. The main difference is I moved the saved why value to the tstate object instead of the frame object as why_exit. I'm not seeing the time savings now for some reason. Maybe the previous increase was a case of coincidental noise. (?) Still looking for other reasons though. ;-) Moving the generator code from the eval loop to the generator object may still be a good thing to do. -- Added file: http://bugs.python.org/file24047/f_why1.diff ___ Python tracker <http://bugs.python.org/issue13607> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13607] Move generator specific sections out of ceval.
Ron Adam added the comment: I think the time benefits I saw are dependent on how the C code is compiled. So it may be different on different compilers or the same compiler with only a very minor change. Some of the things I've noticed... A switch is sometimes slower if it has a "default:" block. Moving "why = tstate->why_exit;" to just before the if helps a tiny bit. why = tstate->why_exit; if (why != WHY_EXCEPTION) { Returning directly out of the WHY_YIELD case. case WHY_YIELD: return result; These will be mostly compiler dependent, but they won't slow things down any either. What I was trying to do is clean up things a bit in ceval.c. Having the why available on the frame can help by allowing some things to be moved out of ceval.c where it makes sense to do that. I'll post a new diff tonight with the why_exit moved back to the frame object and the why's back to enums. Yes, I think the frame object is a good place for it. One of the odd issues is the opcode and why values sometimes need to be pushed on the value stack. Which means it needs to be converted to a pyobject first, then converted back after it's pulled off the stack. I'm looking for a way to avoid that. I also was able to make fast_block_end section simpler and more understandable without making it slower. I think it was trying to be too clever in order to save some lines of code. That makes it very hard to figure out by someone else. But first I need to finish my Christmas shopping, I'll post a new patch tonight when I get a chance. :-) -- ___ Python tracker <http://bugs.python.org/issue13607> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13607] Move generator specific sections out of ceval.
Changes by Ron Adam : Removed file: http://bugs.python.org/file24047/f_why1.diff ___ Python tracker <http://bugs.python.org/issue13607> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13607] Move generator specific sections out of ceval.
Ron Adam added the comment: Updated patch with suggested changes. It also has a cleaned up fast_block_end section. Concerning speed. What happens is (as Tim and Raymond have pointed out) that we can make some things a little faster, in exchange for other things being a little slower. You can play around with the order of the why cases in the fast_block_end section and see that effect. By using a switch instead of if-else's, that should result in more consistent balance between the block exit cases. The order I currently have gives a little more priority for exceptions and that seems to help a tiny bit with the ccbench scores. I think that is a better bench mark than the small micro tests like pybench does. The problem with pybench is, it doesn't test deeper nesting where these particular changes will have a greater effect. -- Added file: http://bugs.python.org/file24087/f_why2.diff ___ Python tracker <http://bugs.python.org/issue13607> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue13659] Add a help() viewer for IDLE's Shell.
Ron Adam added the comment: What about having idle open a web browser session with pydocs new browse option? python3 -m pydoc -b We've added input fields to the pages that take the same input as help() command does. It also links to the online help pages, and you can view the source code of the files directly in the browser. (Sometimes that's the best documentation you can get.) -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue13659> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue9319] segfault when searching modules with help()
Ron Adam added the comment: The test in the patch isn't quite right. The following still fails. Python 3.2a3+ (py3k:85719, Oct 18 2010, 22:32:47) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import imp >>> imp.find_module('test/badsyntax_pep3120') Segmentation fault -- ___ Python tracker <http://bugs.python.org/issue9319> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: Nick, I can update the patch and move the server back into pydoc.py if that will help you get this into 3.2 beta. I can also changed the docstrings of the new parts to # comments. -- ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Changes by Ron Adam : Removed file: http://bugs.python.org/file16517/pydoc_gui.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Changes by Ron Adam : Removed file: http://bugs.python.org/file18165/pydoc_server3.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Changes by Ron Adam : Removed file: http://bugs.python.org/file18271/pydoc_server4.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: Here you go Nick. One file with Underscores for the new class's and functions. Where there was some overlap in names, like where some of the older server class's were reused, but don't have exactly the same behavior, I started those with underscores also. This should make it easier for you to review and/or make adjustments where it's needed. -- Added file: http://bugs.python.org/file19476/pydoc_r86133.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: > What about http://bugs.python.org/issue2001#msg114326 ? Thanks for the reminder. To Nick: >However, the public (albeit undocumented) nature of the APIs >implementing the >old Tk GUI means I'm not comfortable committing the >patch in a form that >simply drops them without going through a >deprecation period first. I think it would be ok sense this is a 'user' interface rather than a programming interface, but it won't hurt to ask specifically about this on python dev. I got the impression that pydoc is considered a 'user' tool like idle, that just happens to live in lib, so the rules aren't considered to be quite as strict as it would be if it was a module meant to be used by other modules or programs. >3. A serve() function to start the web server component should be >added back >in There is a _startserver() function. The leading underscore can be removed, or it can be renamed to serve. A serve() function could also just call _startserver(). >2. The gui() function should still open the Tkinter GUI, >and the -g option should be retained with its old functionality. >Invoking >this function should trigger DeprecationWarning. > >4. The new behaviour of opening the web client can be provided >as a "browse()" function (that accepts the port number the >server is listening on as an argument). After the patch the gui() function starts the server with a server text command window, and opens the browser to the correct page. If you close the browser, you can use 'b' at the server prompt to reopen the browser at the address it is serving. It sounds like you want "serve()" to just start the server. and "browse()" to just start the browser. The gui() function does both in one step. What would be the equivalent new way of doing both in one step, if gui() retains the old tk behavior? Cheers, Ron -- ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: Ok, here is the latest patch for review. "issue2001_a.diff' I restored the pydoc.py file and then put most of the new code in these two functions, _startserver(urlhandler, port) _browse(port=0, *, open_browser=True) This creates a bettor organized file, and reduces the number of names with leading underscores. As far as I know you can't import things that are located inside a function. I still need to depreciate the '-g' option and the gui() function along with the old server parts. Is there a guide on how to depreciate things? -- Added file: http://bugs.python.org/file19604/issue2001_a.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: This should be done or very close to done. The -g option, gui(), and serve() functions are deprecated. The new features are browse(port, *, open_browser=True), and a '-b' option. The '-p port' option does browse(port=port, open_browser=False), so _startserver() does not need to be part of the API. If anyone wants to access the server directly, then we can discuss making it it's own module, or a submodule in a package. Because we deprecated the gui() function, I figured we need to make browse() public. The only reason it would need to be private is if we want a different name or signature. (Any thoughts?) I left Lib/urllib/parse.py, Lib/test/test_pyclbr.py, and Lib/test/test_urlparse.py alone. I presumed you fixed bugs in them that needed to be fixed anyway. -- Added file: http://bugs.python.org/file19613/issue2001_b.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Changes by Ron Adam : Removed file: http://bugs.python.org/file19604/issue2001_a.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Changes by Ron Adam : Removed file: http://bugs.python.org/file19476/pydoc_r86133.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10434] Document the rules for "public names"
Ron Adam added the comment: You may also want to update help topics. help("PRIVATENAMES"). Identifiers (Names) *** An identifier occurring as an atom is a name. See section *Identifiers and keywords* for lexical definition and section *Naming and binding* for documentation of naming and binding. When the name is bound to an object, evaluation of the atom yields that object. When a name is not bound, an attempt to evaluate it raises a ``NameError`` exception. **Private name mangling:** When an identifier that textually occurs in a class definition begins with two or more underscore characters and does not end in two or more underscores, it is considered a *private name* of that class. Private names are transformed to a longer form before code is generated for them. The transformation inserts the class name in front of the name, with leading underscores removed, and a single underscore inserted in front of the class name. For example, the identifier ``__spam`` occurring in a class named ``Ham`` will be transformed to ``_Ham__spam``. This transformation is independent of the syntactical context in which the identifier is used. If the transformed name is extremely long (longer than 255 characters), implementation defined truncation may happen. If the class name consists only of underscores, no transformation is done. Other topics that may be of interest. IDENTIFIERS NAMESPACES PACKAGES PRIVATENAMES SPECIALATTRIBUTES SPECIALIDENTIFIERS SPECIALMETHODS -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue10434> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10713] re module doesn't describe string boundaries for \b
Changes by Ron Ridley : -- nosy: +Ron.Ridley ___ Python tracker <http://bugs.python.org/issue10713> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: I just noticed I used "depreciated" in place of "deprecated" in one of the doc strings. I can upload a new patch with that fixed. Before I do that, is there any thing else I can do? Do you agree that the browse function should be public? If not, what do we tell people to use instead of gui(), sense that will be deprecated? -- ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10446] pydoc3 links to 2.x library reference
Ron Adam added the comment: I noticed in your patch, the disclaimer only prints when pydoc can find a doc location (docloc is not None). So it may not get displayed at all depending on how python is installed. I also think having it on every page may be a bit overly cautious. (IMHO) I'm also not sure it is correct to have that when viewing third party modules as the doc location in those cases will be broken anyway. The obvious places to put it are: * top of the pydoc html module index. (first page displayed) * in the welcome message for interactive help() * help(help) * help(pydoc) It can still be defined in one location and then use "+ pydoc_disclaimer" in the desired locations. -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue10446> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: Thanks for the review Éric! The more eyes on this the better it will be. I'm not familiar with rietveld yet. But no time like the present to get started. Here's the link. http://codereview.appspot.com/3151042/ I didn't play around with the html too much. Mostly I just wanted to get it to work for now. I plan on adding support for style sheets, so a lot of the html code will be updated at that time. Alex, the version info is just what sys.version returns, that was just easy to do, we can probably trim that down a bit. The "Index of Modules" can be shortened to "Index" or "Modules". I can have the get, and search box's always be two lines. Something like... Python 3.2a4/rev# Get[]Index Platform Search []Topics : Keywords -- ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: Sense these features reuse other parts of pydoc, they are are covered to some degree by the existing tests. An easy test would be to just start the server and then shut it down after a short timeout. Better than nothing. I'll try reading and writing directly to the socket and working up some tests from that. I don't suppose there's something like that already in the test suite I can copy? -- ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: Here is the patch in the current state which includes the changes in issue2001_c.diff as well as most of the changes Éric suggested. Still to do: * Use the with statement in several places to ensure closing. * Add tests for the server. I did try to make the header a bit less cluttered, but I'm not completely happy with it yet, but I think it will be good enough for now. Fixing the HTML probably should be a separate issue where we can add a style sheet at the same time. Lets get this patch in first. This is also reitveld: http://codereview.appspot.com/3151042/ -- Added file: http://bugs.python.org/file19642/issue2001_d.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
Re: [issue2001] Pydoc interactive browsing enhancement
On 11/19/2010 08:21 AM, Alexander Belopolsky wrote: Alexander Belopolsky added the comment: On Thu, Nov 18, 2010 at 2:37 AM, Ron Adam wrote: .. I'll try reading and writing directly to the socket and working up some tests from that. I don't suppose there's something like that already in the test suite I can copy? I believe you can find relevant code in test/test_httpservers.py. Thanks I'll check it out. What I had in mind was simpler:test_pydoc already checks html output for a module, but this test did not fail after I applied your patch. When I put the old server and gui() function back the existing tests passed with changes. Which is good. Also the old tests didn't actually test the server and the tk interface. There should be something in the tests that checks that the new navigation bar is generated correctly. I'm going to work on this today. ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: I added an empty _pydoc.css file. The server does read it and you'll be able to play around with it, but don't expect it to be pretty if you do until the rest of the html is updated. Should I put that in the pydoc_data? It just needs tests now, which I'll be working on as time permits over the next few days. (And any other minor details we find.) -- Added file: http://bugs.python.org/file19644/issue2001_e.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: Here is the latest patch with tests. In order to test the html pages I separated out the URL handler. So now we have three new functions. pydoc._start_server(urlhandler, port) pydoc._url_handler(url, content_type="text/html") pydoc.browse(port=0, *, open_browser=True) A css file: pydoc_data/_pydoc.css The tests in test_pydoc.py, test that the server can be started and shutdown without an error. And test that the _url_handler() will send back html pages with the correct title for all the different type of requests that it can handle. I think this is ready for a final review now. -- Added file: http://bugs.python.org/file19727/issue2001_f.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10509] PyTokenizer_FindEncoding can lead to a segfault if bad characters are found
Ron Adam added the comment: Is this a duplicate of issue 9319? -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue10509> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: Thanks for the review and style edits Éric. I think it's a much better patch with the changes and suggestions from you, Nick, and Alexander. I'll check my white space settings. Thanks for noticing it. As Nick points out, parts of the patch was written with the idea of having the text server as a separate module. So I made the example in it runnable as a doctest, as if it was going to be a public module. As Nick also suggests, the server example could be changed to a comment, and it could be condensed quite a bit by removing the command line doctest formatting/tutorial style and replacing it with a nice single example as it would be seen in a file. Originally I was hopping to get a complete rewrite into python 3.0. Then it was suggested I try for 2.6. While doing that, I went way overboard with making it have plug in html formatters and converters. (Some people suggested they wanted that). In the end, I found that these parts in this patch, (and some additional stuff), can be used without the complete rewrite. And these parts really help make pydoc much more usable. Not the document generating parts. Maybe we can move some of those parts to a pydoc_lib.py file at some point, and have an API for creating document generators rather than try to have pydoc do everything it self. As you noticed, I used an html style that is similar to what was in the other parts of pydoc. And yes, it's not pretty. As Nick points out, "those things should be fixed", and I agree. But I feel it should be a separate patch. That will make it easier to review and keep the html code changes separate from any functional changes. Hopefully, we can update the html so it makes good use of the style sheet at that time as well. ie... a lot of the html code will probably be changed in the near future, so don't be too nit-picky about it right now. Other things that I hope to add later, are to have more references in the topics and keywords be links. That one is fairly easy. The function to do that is already in pydoc. Add line numbers and color output to the file view page. And eventually look into detecting and using reST to enhance both the html and text output in docstrings, topics, and keywords. As for the imports that arn't at the top of the module, I followed the usage that was in pydoc. It seemed to me that there was probably a conscious reason for why it done that way. I can't find anything I disagree with. Ron -- ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10588] imp.find_module raises unexpected SyntaxError
Changes by Ron Adam : -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue10588> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue9319] imp.find_module('test/badsyntax_pep3120') causes segfault
Ron Adam added the comment: Pydoc skips the badsysntax_pep3120 file for now. When this gets fixed that workaround should be removed. The work around is commented and refers to this issue #. -- ___ Python tracker <http://bugs.python.org/issue9319> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: I uploaded the css file I used in an experimental version of pydoc. It may give some useful starting values. Before this is done, the old server code should be removed (also for 3.3). (another issue?) There are two files in the tools/scripts directory that may need attention as well. pydocgui.pyw and pydoc3. -- Added file: http://bugs.python.org/file20081/defaultstyle.css ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: Eric, most of what's in that file is what I figured out by trial and error in order to get it to work on the different browsers at that time. (about 3 years ago.) You are probably more experienced with css than I am, so you are more than welcome to update and change anything in there. :-) What do you think about starting with a set of static html pages to get the css and html to work nice, and then only after that is done, edit pydoc to generate those pages. That should get us mostly there, and simplify what needs to be done in pydoc. -- ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: I think that's how I ended up with the style sheet I uploaded. It works, but it can be a slow process. Another factor is the pydoc server will reread an external style sheet on browser refreshes. So you can see the results of style sheet changes without restarting pydoc. If it's embedded, you need to edit the program and restart everything each time. I was thinking that I may still be able to make a set of static html files that go along with that style sheet. Then we can adjust the css class names and make other changes, then use that as a guide for replacing the html. Eric, what do you think? -- ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: Ok, I just looked at them again, I didn't remember how different it was. They probably won't be much help other than maybe seeing how some things could be done. Here's a zip file of some saved pages, so you can take a look. -- Added file: http://bugs.python.org/file20088/pydoc sample html files.zip ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8916] Move PEP 362 (function signature objects) into inspect
Changes by Ron Adam : -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue8916> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10087] HTML calendar is broken
Changes by Ron Adam : -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue10087> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10087] HTML calendar is broken
Ron Adam added the comment: The problem is in the following line... return ''.join(v).encode(encoding, "xmlcharrefreplace") The .encode(encoding, "xmlcharrefreplace") is returning a bytes object. Here is the simplest change to resolve the problem. return str(''.join(v).encode(encoding, "xmlcharrefreplace"), encoding=encoding) But maybe a different way to implement "xmlcharrefreplace" is what is needed. Would it be better if it were a function or method in the xml (or html) module? Just because it can be implemented as an encoding doesn't mean it should be. -- ___ Python tracker <http://bugs.python.org/issue10087> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10087] HTML calendar is broken
Ron Adam added the comment: Oops. You're right. I miss understood how the encode method works in this particular case. ;-/ I agree with your comments as well. -- ___ Python tracker <http://bugs.python.org/issue10087> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10573] Consistency in unittest assert methods: order of actual, expected
Ron Adam added the comment: The issue10573.diff file with the time stamp 20:03 has a lot of document changes that don't have corresponding code changes? -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue10573> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: Here is a tentative start on this. (css_v1.diff) The css file is much better. It's shorter, simpler and validated. The header and navbar panel use it in the new server. Added a markup call to the topic page contents. (The same markup call is already used for the doc strings.) Extra items in the css are what I come up with from testing different ways of doing things. -- keywords: +patch Added file: http://bugs.python.org/file20183/css_v1.diff ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: The HtmlDoc class has methods that take colors. Can this be changed or does it need to be depreciated first? def heading(self, title, fgcol, bgcol, extras=''): """Format a page heading.""" return ''' %s%s ''' % (bgcol, fgcol, title, fgcol, extras or ' ') For the interactive server, I can override these methods with no problem, but the generated docs won't benefit from this until the HtmlDoc class is replaced. Any suggestions? -- ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: It may be useful to change those to 'id=' and 'class=' if possible. It isn't clear to me how much of pydoc is still part of the public api in python 3.x. pydoc.__all__ is set only to ['help']. Entering help(pydoc) just gives the basic help and command line arguments along with. DATA __all__ = ['help'] help = There is nothing in the official (online) docs on importing pydoc or any of it's classes or methods. But dir(pydoc) shows all the methods, and the HTMLDoc class is still importable even though they aren't listed in __all__. -- ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: Here is a new diff which updates all the new pydoc pages to use the css file. The css file is simpler and cleaner. I also made a few adjustments to the url handler error handling, and changed the titles in the head sections so they say "Pydoc" instead of "Python" as they are PyDoc pages about Python. None of these changes effect any of the old pydoc code yet. This is about as far as we can go without removing the old tk panel and server. Time for some feed back. And how close do we really need it to be to the original? :-) -- Added file: http://bugs.python.org/file20216/css_v2.diff ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Changes by Ron Adam : Removed file: http://bugs.python.org/file20081/defaultstyle.css ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Changes by Ron Adam : Removed file: http://bugs.python.org/file20088/pydoc sample html files.zip ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Changes by Ron Adam : Removed file: http://bugs.python.org/file20183/css_v1.diff ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: > If the colors are passed directly to the HTML they should be > removed >and left to the CSS(s) only. I don't know the code > well enough to say if this is doable and/or if it requires a > deprecation first; We may have to do dome depreciating when it comes to the old HTMLDoc class methods. Would it be possible to depreciate the whole class instead of the separate methods? If so, it would be good if we can squeeze that into 3.2. Or else we may not be able to finish this until Python 3.4. The empty css elements will be used later. Here is the css_v3.diff for review. I'd like to hear any thoughts about the general html structure and class/id names. Beside validating them, I test with firefox and chromium. I don't have easy access to ms-explorer or the current mac browser. -- Added file: http://bugs.python.org/file20236/css_v3.diff ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: To go forward I can create a new private api instead of changing HTMLDoc, that would be preferable. Should the -w option also use the new html pages? Or do we need a new option for that? -- ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10818] pydoc: refactorize duplicate DocHandler and DocServer classes
Ron Adam added the comment: No refactoring is needed. The second copies are part of the new server. The old server was depreciated in 3.2 and is supposed to be removed along with the tk panel for 3.3. After that there will only be one of each again. This issue can be used for that purpose. -- ___ Python tracker <http://bugs.python.org/issue10818> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10818] pydoc: Remove old server and tk panel
Ron Adam added the comment: Here is a patch for this. Not much to it as the hard parts were already done. Apparently there was no tests for this, test_pydoc still passes without it. Does there need to be any messages for the -g option? Pydoc help is displayed in the case -g is used. That already includes the new -b usage. -- keywords: +patch title: pydoc: refactorize duplicate DocHandler and DocServer classes -> pydoc: Remove old server and tk panel Added file: http://bugs.python.org/file20272/no_tkserve.diff ___ Python tracker <http://bugs.python.org/issue10818> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10918] **kwargs unnecessarily restricted in API
Ron Adam added the comment: Why is this surprising? >>> def foo(c, c=None): ... pass ... File "", line 1 SyntaxError: duplicate argument 'c' in function definition In the previous examples, it finds the duplicate at run time instead of compile time due to not being able to determine the contents of kwargs at compile time. It's just a bug in your code if you do it, and it should raise an exception as it does. -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue10918> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10918] **kwargs unnecessarily restricted in API
Ron Adam added the comment: Is this issue referring to something in Python's library, or a hypothetical function someone may write? If it's in the library, we can look at that case in more detail, otherwise, it's just a bad program design issue and there's nothing to do. -- ___ Python tracker <http://bugs.python.org/issue10918> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10918] **kwargs unnecessarily restricted in concurrent.futures 'submit' API
Ron Adam added the comment: Here is the whole method for reference... def submit(self, fn, *args, **kwargs): with self._shutdown_lock: if self._shutdown_thread: raise RuntimeError('cannot schedule new futures after shutdown') f = _base.Future() w = _WorkItem(f, fn, args, kwargs) self._pending_work_items[self._queue_count] = w self._work_ids.put(self._queue_count) self._queue_count += 1 self._start_queue_management_thread() self._adjust_process_count() return f submit.__doc__ = _base.Executor.submit.__doc__ If self and fn are in kwargs, they are probably a *different* self and fn, than the self and fn passed to submit! The current submit definition doesn't allow that, and pulling out self, and fn, would not be correct either. If it's still possible to change the method call signature, it should be without asterisks... def submit(self, fn, args, kwargs): ... Then the correct way to call it would be... submit(foo, [1, 2], dict(fn=bar)) There wouldn't be a conflict because the args, and keywords, (to be eventually passed to fn), are never unpacked within submit. -- ___ Python tracker <http://bugs.python.org/issue10918> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10918] **kwargs unnecessarily restricted in concurrent.futures 'submit' API
Ron Adam added the comment: Change... "are never unpacked within submit." to... Are completely separate. It's the attempt to mix two function signatures together as one, that was/is the problem. -- ___ Python tracker <http://bugs.python.org/issue10918> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10918] **kwargs unnecessarily restricted in concurrent.futures 'submit' API
Ron Adam added the comment: Yes, you are correct. Pulling the first value off of args would work. This is new for 3.2, can it still be changed? One more thing to consider... One of the things I look at for functions like these is, how easy is it to separate the data from the program interface? I prefer: submit_data = [fn, args, kwds] e.submit(*submit_data) or.. submit_args = [(a, k), (a, k), ... ] for args, kwds in submit_args: e.submit(fn, args, kwds) But its a trade off against easier direct calling. My feelings, is submit will be used more in an indirect way, like these examples, rather than being used directly by writing out each submit separately. -- ___ Python tracker <http://bugs.python.org/issue10918> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
New submission from Ron Adam : A collection of small fix's that only effect the new browser mode. * Change title of html pages from "Python ..." to "PyDoc ...". * Fixed unterminated div float for items returned without a header. example: str, None, True, False * Added "topic?key=..." url command to explicitly get topics. This is to avoid the shadowing when an object has the same name as a topic. * Nicer parsing and error handling in the url handler. -- components: Library (Lib) files: pydoc_misc_fix.diff keywords: patch messages: 126633 nosy: georg.brandl, ron_adam priority: normal severity: normal status: open title: Pydoc touchups in new browser for 3.2 type: behavior versions: Python 3.2 Added file: http://bugs.python.org/file20467/pydoc_misc_fix.diff ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
Ron Adam added the comment: new patch... Adjusted a comment in the _gettopic method. Everything else the same. -- Added file: http://bugs.python.org/file20468/pydoc_misc_fix.diff ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
Changes by Ron Adam : Removed file: http://bugs.python.org/file20467/pydoc_misc_fix.diff ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
Ron Adam added the comment: A few last minute changes.. I think this will be all. Run topic contents through html.markup. That makes ref:, pep:, and html: links if they exist. (I meant to this earlier.) Fix case where topic reference links are to objects rather than another topic. (applies to keywords also.) Skips making an empty reference section if there are no references with a topic. These are all small changes, and nothing should be controversial in this as everything changed only effects the new html browser mode. -- Added file: http://bugs.python.org/file20473/pydoc_misc_fix_c.diff ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
Changes by Ron Adam : Removed file: http://bugs.python.org/file20468/pydoc_misc_fix.diff ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
Changes by Ron Adam : -- nosy: +eric.araujo, rhettinger ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
Ron Adam added the comment: George, My apologies to you for the late corrections. And thanks for doing this. Eric, I replied to your comments on Rietveld. Thanks for taking a look. I'll wait until you have a chance to reply and test it, then upload a new patch with any needed changes. Ron -- ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
Changes by Ron Adam : Removed file: http://bugs.python.org/file20473/pydoc_misc_fix_c.diff ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
Ron Adam added the comment: Ok, after input from Eric, Here is another patch. Removed a set of unneeded parentheses. Changed the title of the pages from PyDoc to Pydoc. A better fix for the uncaught floats. Wrap the main content in div with style="clear:both;". Should work on nearly everything. Also avoided floating the "get" and "search" form inputs. That was causing them to separate too much in IE. To summarize ... Minor fixes for new browser mode only. Fix float problems with the navbar. Change html page titles to "Pydoc" instead of "Python". Call html.markup() on topic contents. Fix topic/object shadowing. Improved error handling. (Part of the shadowing fix.) -- Added file: http://bugs.python.org/file20499/pydoc_misc_fix_d.diff ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10961] Pydoc touchups in new browser for 3.2
Ron Adam added the comment: New and hopefully last patch... pydoc_misc_fix_e.diff I removed the .html in the ?key= links as Eric suggested. I checked the navbar float behavior on browsershots.org. Multiple versions of MSIE, firefox, opera, chrome, and safari were tested on Ubuntu and Windows XP. They all looked very close to each other. Better than I expected. :-) As for clearing floats, there is the html clear="all" attribute, and a css style="clear:both;". The browsershots.org tests confirms style="clear:both;" works as it should where I used it. Cheers, and hopefully this is ready to go. I believe it is. -- Added file: http://bugs.python.org/file20616/pydoc_misc_fix_e.diff ___ Python tracker <http://bugs.python.org/issue10961> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue10716] Modernize pydoc to use CSS
Ron Adam added the comment: A reminder: Check for instances where html.escape is not called on data inserted into the html pages. I'll update the patch as the non-css (error handling) parts made it into python 3.2. :-) -- ___ Python tracker <http://bugs.python.org/issue10716> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1038909] pydoc method documentation lookup enhancement
Ron Adam added the comment: I agree. It is close enough to be a duplicate. I suggest closing it. As Ka-Ping noted in the other issue: "There's a link to the base class provided if you want to find out what the base class does." This is easy to do if your viewing pydoc output in a web browser. And you can also look at the source code to see any comments. At some point we can consider enhancing the command line help mode to make it easier to do the same. -- ___ Python tracker <http://bugs.python.org/issue1038909> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue9364] some problems with the documentation of pydoc
Changes by Ron Adam : -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue9364> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue11182] pydoc.Scanner class not used by anything
New submission from Ron Adam : There doesn't seem to be any references to it in any other part of pydoc, or the Library for that matter. Searching for it on google code search (and also google web search) only turns up auto generated API references for python editing tools like VIM, and of course it's existence in pydoc itself. This doesn't appear to be related to the ModuleScanner class in any way other than possibly being a bit of left over example code. Can it be removed? -- components: Library (Lib) messages: 128365 nosy: ron_adam priority: normal severity: normal status: open title: pydoc.Scanner class not used by anything versions: Python 3.3 ___ Python tracker <http://bugs.python.org/issue11182> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2571] cmd.py always uses raw_input, even when another stdin is specified
Changes by Ron Adam : -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue2571> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2638] tkSimpleDialog Window Flashing
Ron Longo <[EMAIL PROTECTED]> added the comment: Correct. overrideredirect only enables/disables borders. However, what appears as a "flash" when the dialog box first appears is actually a window with only borders being drawn (no contents). Disabling borders BEFORE drawing anything prevents this "flash". I cannot say if this "flash" occurs on all platforms, but it does occur on all windows XP platforms that I've tried it on. In each of these cases the "fixed" tkSimpleDialog.py prevents this "flash". While not vital to application reliability, this fix does make applications appear more professional. -- nosy: +ronlongo ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2638> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue1230] Tix HList class missing method implementation for info_bbox
Changes by Ron Longo <[EMAIL PROTECTED]>: Added file: http://bugs.python.org/file10924/Tix.py ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue1230> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2638] tkSimpleDialog Window Flashing
Ron Longo <[EMAIL PROTECTED]> added the comment: Excellent! That solution works as well. ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2638> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam <[EMAIL PROTECTED]> added the comment: New patch to replace outdated patch due to other changes to pydoc. The easies way to try this out is to: >> import pydoc >> pydoc.gui() Try it before and after the patch. I think most people will prefer the patch. Added file: http://bugs.python.org/file11321/pydoc_gui_.diff ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Changes by Ron Adam <[EMAIL PROTECTED]>: Removed file: http://bugs.python.org/file9350/pydocnotk.diff ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Changes by Ron Adam <[EMAIL PROTECTED]>: Removed file: http://bugs.python.org/file9423/pydocnotk.diff ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Changes by Ron Adam <[EMAIL PROTECTED]>: Removed file: http://bugs.python.org/file9448/pydocnotk.diff ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue3970] Tix Tree widget no longer instantiable.
New submission from Ron Longo <[EMAIL PROTECTED]>: The following code works in Python 2.5 but not in Python 2.6: I've tested on Windows XP and Windows Vista. from Tix import * root = Tk() t = Tree( root ) In Python 2.6 the following exception is thrown while trying to execute the last statement above: Traceback (most recent call last): File "", line 1, in File "C:\Python26\lib\lib-tk\Tix.py", line 1519, in __init__ ['options'], cnf, kw) File "C:\Python26\lib\lib-tk\Tix.py", line 307, in __init__ self.tk.call(widgetName, self._w, *extra) _tkinter.TclError: unknown color name "{#c3c3c3}" -- components: Tkinter messages: 73830 nosy: ronLongo severity: normal status: open title: Tix Tree widget no longer instantiable. versions: Python 2.6 ___ Python tracker <[EMAIL PROTECTED]> <http://bugs.python.org/issue3970> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Changes by Ron Adam : Removed file: http://bugs.python.org/file16411/pydoc_gui.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue2001] Pydoc interactive browsing enhancement
Ron Adam added the comment: Missed a buffer write in the gettopic() method. Fixed. Plus some minor doc string changes. Can someone change the stage to "patch review". I can't do that myself. Or is there something else I need to do first? -- Added file: http://bugs.python.org/file16517/pydoc_gui.diff ___ Python tracker <http://bugs.python.org/issue2001> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com
[issue8525] Small enhancement to help()
Changes by Ron Adam : -- nosy: +ron_adam ___ Python tracker <http://bugs.python.org/issue8525> ___ ___ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com