Re: [Python-Dev] subprocess shell=True on Windows doesn't escape ^ character

2014-06-13 Thread Tim Golden
On 13/06/2014 03:11, Nikolaus Rath wrote:
 R. David Murray rdmur...@bitdance.com writes:
 Also notice that using a list with shell=True is using the API
 incorrectly.  It wouldn't even work on Linux, so that torpedoes
 the cross-platform concern already :)

 This kind of confusion is why I opened http://bugs.python.org/issue7839.
 
 Can someone describe an use case where shell=True actually makes sense
 at all?

On Windows (where I think the OP is), Popen  friends ultimately invoke
CreateProcess.

In the case where shell=True, subprocess invokes the command interpreter
explictly under the covers and tweaks a few other things to avoid a
Brief Flash of Unstyled Console. This is the relevant snippet from
subprocess.py:

if shell:
startupinfo.dwFlags |= _winapi.STARTF_USESHOWWINDOW
startupinfo.wShowWindow = _winapi.SW_HIDE
comspec = os.environ.get(COMSPEC, cmd.exe)
args = '{} /c {}'.format (comspec, args)


That's all. It's more or less equivalent to your prefixing your commands
with cmd.exe /c.

The only reasons you should need to do this are:

* If you're using one of the few commands which are actually built-in to
cmd.exe. I can't quickly find an online source for these, but typical
examples will be: dir or copy.

* In some situations -- and I've never been able to nail this -- if
you're trying to run a .bat/.cmd file. I've certainly been able to run
batch files without shell=True but other people have failed within what
appears to  be the same configuration unless invoking cmd.exe via
shell=True.

I use hg.exe (from TortoiseHg) but ISTR that the base Mercurial install
supplies a .bat/.cmd. If that's the OP's case then he might find it
necessary to pass shell=True.


TJG
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Raspberry Pi Buildbot

2014-06-13 Thread Tal Einat
Is there one? If not, would you like me to set one up? I've got one at
home with Raspbian installed not doing anything, it could easily run a
buildslave.

Poking around on buildbot.python.org/all/builders, I can only see one
ARM buildbot[1], and it's just called ARM v7.

I also found this python-dev thread[2] along with a blog.python.org
blog post[3] from 2012, which mentioned that Trent Nelson would be
receiving a Raspberry Pi and setting up a buildslave on it. But I
can't find mention of it on buildbot.python.org.

So I can't tell what the current state is. If anyone is interested,
just let me know!

.. [1]: http://buildbot.python.org/all/builders/ARMv7%203.x
.. [2]: http://thread.gmane.org/gmane.comp.python.devel/136388
.. [3]: http://blog.python.org/2012/12/pandaboard-raspberry-pi-coming-to.html

- Tal Einat
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] subprocess shell=True on Windows doesn't escape ^ character

2014-06-13 Thread R. David Murray
On Fri, 13 Jun 2014 16:57:49 +1200, Greg Ewing greg.ew...@canterbury.ac.nz 
wrote:
 Nikolaus Rath wrote:
  you almost certainly want to do
  
  Popen(['/bin/sh', 'for i in `seq 42`; do echo $i; done'], shell=False)
  
  because if your shell happens to be tcsh or cmd.exe, things are going to
  break.
 
 On Unix, the C library's system() and popen() functions
 always use /bin/sh, NOT the user's current login shell,
 for this very reason.
 
 I would hope that the Python versions of these, and also
 the new subprocess stuff, do the same.

They do.

 That still leaves differences between Unix and Windows,
 but explicitly naming the shell won't help with that.

There are some non-windows platforms where /bin/sh doesn't
work (notably Android, where it is /system/bin/sh).  See
http://bugs.python.org/issue16353 for a proposal to create a standard
way to figure out what the system shell should be for Popen's use.
(The conclusion for Windows was to hardcode cmd.exe, though
that isn't what the most recent patch there implements.)

--David
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Moving Python 3.5 on Windows to a new compiler

2014-06-13 Thread Larry Hastings

On 06/10/2014 03:05 PM, Martin v. Löwis wrote:

We certainly don't need to resolve this now. We should discuss it again
when the release schedule for 3.5 is proposed.


I anticipate 3.5 should be released about 18 months after the release of 
3.4, putting it mid-September 2015.



//arry/
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [Idle-dev] KeyConfig, KeyBinding and other related issues.

2014-06-13 Thread Saimadhav Heblikar
Hi,

I would like the keyseq validator to be reviewed.

The diff file: 
https://gist.github.com/sahutd/0a471db8138383fd73b2#file-test-keyseq-diff
A sample test runner file:
https://gist.github.com/sahutd/0a471db8138383fd73b2#file-test-keyseq-runner-py

In its current form, it supports/has
modifiers = ['Shift', 'Control', 'Alt', 'Meta']
alpha_uppercase = ['A']
alpha_lowercase = ['a']
direction = ['Up',]
direction_key = ['Key-Up']

It supports validating combinations upto 4 in length.

Please test for the above set only. (It will extended easily to fully
represent the respective complete sets. The reason it cant be done
*now* is the due to how RE optionals are coded differently in my
patch. See CLEANUP below). I will also add remaining keys like
Backspace, Slash etc tomorrow.

# Cleanup:
If we decide to go ahead with RE validating keys as in the above patch,

0. I made the mistake of not coding RE optionals - ((pat)|(pat)) same
for all sets. The result is that, extending the current key set is not
possible without making all RE optional patterns similar.(Read the
starting lines of is_valid_keyseq method).

1. There is a lot of places where refactoring can be done and
appropriate comment added.

2. I left the asserts as-is. They can be used in testing the validator
method itself.

3. The above patch still needs support for Backspace, slash etc to be
added. I decided to add, once I am sure we will use it.

4. I would like to know how it will affect Mac? What are system
specific differences? Please run the test-runner script on it and do
let me know.

---
My friend told that this thing can be done by defining a grammar and
automata. I did read up about it, but found it hard to grasp
everything. Can you say whether it would be easier to solve it that
way than RE?

Regards



On 13 June 2014 17:15, Saimadhav Heblikar saimadhavhebli...@gmail.com wrote:
 On 13 June 2014 16:58, Tal Einat talei...@gmail.com wrote:
 On Fri, Jun 13, 2014 at 2:22 PM, Saimadhav Heblikar
 saimadhavhebli...@gmail.com wrote:
 Just a heads up to both: I am writing a keyseq validator method.
 It currently works for over 800 permutations of ['Shift', 'Control',
 'Alt', 'Meta', 'Key-a', 'Key-A', 'Up', 'Key-Up', 'a', 'A']. It works
 for permutations of length 2 and 3. Beyond that its not worth it IMO.
 I am currently trying to integrate it with test_configuration.py and
 catching permutations i missed out.

 I post this, so that we dont duplicate work. I hope it to be ready by
 the end of the day.(UTC +5.5)

 What is the method you are using?

 Regex. It is not something elegant. The permutations are coded in.(Not
 all 800+ obviously, but around 15-20 general ones.). The only
 advantage is it can be used without creating a new Tk instance.



 What do you mean by permutations? If you mean what I think, then I'm
 not sure I agree with 3 not being worth it. I've used keyboard
 bindings with more than 2 modifiers before, and we should certainly
 support this properly.

 I am sorry. I meant to write 3 modifier permutations.
 (i.eControl-Shift-Alt-Meta+Key-X is not covered. But
 Control-Shift-Alt-Key-X is.)




 --
 Regards
 Saimadhav Heblikar



-- 
Regards
Saimadhav Heblikar
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] python-dev for MAC OS X

2014-06-13 Thread Pedro Helou
Hey,

does anybody know how to install the python-dev headers and libraries for
MAC OS X?

-- 

Pedro Issa Helou

Network Communication Engineering

+ 36 20 262 9274
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] python-dev for MAC OS X

2014-06-13 Thread Tal Einat
On Fri, Jun 13, 2014 at 12:21 PM, Pedro Helou helou.pe...@gmail.com wrote:
 Hey,

 does anybody know how to install the python-dev headers and libraries for
 MAC OS X?

Hi,

This list is for discussing the development *of* Python, not *with*
Python. Please ask on the python list, python-l...@python.org (more
info here[1]) or on the #python channel on the Freenode IRC server.
StackOverflow is also a good place to search for information and ask
questions.

But while we're on the subject, on OSX I recommend using a binary
package manager such as Homebrew[2] or Macports[3] for this. I have
had good experiences using Homebrew.

Good luck,
- Tal Einat

.. [1]: https://mail.python.org/mailman/listinfo/python-list
.. [2]: http://brew.sh/
.. [3]: http://www.macports.org/
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] [Idle-dev] KeyConfig, KeyBinding and other related issues.

2014-06-13 Thread Saimadhav Heblikar
Apologies for the accidental cross post. I intended to send it to idle-dev.
I am sorry again :(

On 13 June 2014 20:11, Saimadhav Heblikar saimadhavhebli...@gmail.com wrote:
 Hi,

 I would like the keyseq validator to be reviewed.

 The diff file: 
 https://gist.github.com/sahutd/0a471db8138383fd73b2#file-test-keyseq-diff
 A sample test runner file:
 https://gist.github.com/sahutd/0a471db8138383fd73b2#file-test-keyseq-runner-py

 In its current form, it supports/has
 modifiers = ['Shift', 'Control', 'Alt', 'Meta']
 alpha_uppercase = ['A']
 alpha_lowercase = ['a']
 direction = ['Up',]
 direction_key = ['Key-Up']

 It supports validating combinations upto 4 in length.

 Please test for the above set only. (It will extended easily to fully
 represent the respective complete sets. The reason it cant be done
 *now* is the due to how RE optionals are coded differently in my
 patch. See CLEANUP below). I will also add remaining keys like
 Backspace, Slash etc tomorrow.

 # Cleanup:
 If we decide to go ahead with RE validating keys as in the above patch,

 0. I made the mistake of not coding RE optionals - ((pat)|(pat)) same
 for all sets. The result is that, extending the current key set is not
 possible without making all RE optional patterns similar.(Read the
 starting lines of is_valid_keyseq method).

 1. There is a lot of places where refactoring can be done and
 appropriate comment added.

 2. I left the asserts as-is. They can be used in testing the validator
 method itself.

 3. The above patch still needs support for Backspace, slash etc to be
 added. I decided to add, once I am sure we will use it.

 4. I would like to know how it will affect Mac? What are system
 specific differences? Please run the test-runner script on it and do
 let me know.

 ---
 My friend told that this thing can be done by defining a grammar and
 automata. I did read up about it, but found it hard to grasp
 everything. Can you say whether it would be easier to solve it that
 way than RE?

 Regards



 On 13 June 2014 17:15, Saimadhav Heblikar saimadhavhebli...@gmail.com wrote:
 On 13 June 2014 16:58, Tal Einat talei...@gmail.com wrote:
 On Fri, Jun 13, 2014 at 2:22 PM, Saimadhav Heblikar
 saimadhavhebli...@gmail.com wrote:
 Just a heads up to both: I am writing a keyseq validator method.
 It currently works for over 800 permutations of ['Shift', 'Control',
 'Alt', 'Meta', 'Key-a', 'Key-A', 'Up', 'Key-Up', 'a', 'A']. It works
 for permutations of length 2 and 3. Beyond that its not worth it IMO.
 I am currently trying to integrate it with test_configuration.py and
 catching permutations i missed out.

 I post this, so that we dont duplicate work. I hope it to be ready by
 the end of the day.(UTC +5.5)

 What is the method you are using?

 Regex. It is not something elegant. The permutations are coded in.(Not
 all 800+ obviously, but around 15-20 general ones.). The only
 advantage is it can be used without creating a new Tk instance.



 What do you mean by permutations? If you mean what I think, then I'm
 not sure I agree with 3 not being worth it. I've used keyboard
 bindings with more than 2 modifiers before, and we should certainly
 support this properly.

 I am sorry. I meant to write 3 modifier permutations.
 (i.eControl-Shift-Alt-Meta+Key-X is not covered. But
 Control-Shift-Alt-Key-X is.)




 --
 Regards
 Saimadhav Heblikar



 --
 Regards
 Saimadhav Heblikar



-- 
Regards
Saimadhav Heblikar
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Summary of Python tracker Issues

2014-06-13 Thread Python tracker

ACTIVITY SUMMARY (2014-06-06 - 2014-06-13)
Python tracker at http://bugs.python.org/

To view or respond to any of the issues listed below, click on the issue.
Do NOT respond to this message.

Issues counts and deltas:
  open4662 (+12)
  closed 28859 (+57)
  total  33521 (+69)

Open issues with patches: 2150 


Issues opened (52)
==

#15993: Windows: 3.3.0-rc2.msi: test_buffer fails
http://bugs.python.org/issue15993  reopened by skrah

#18910: IDle: test textView.py
http://bugs.python.org/issue18910  reopened by ned.deily

#20043: test_multiprocessing_main_handling fails --without-threads
http://bugs.python.org/issue20043  reopened by berker.peksag

#20578: BufferedIOBase.readinto1 is missing
http://bugs.python.org/issue20578  reopened by benjamin.peterson

#21684: inspect.signature bind doesn't include defaults or empty tuple
http://bugs.python.org/issue21684  opened by rmccampbell7

#21686: IDLE - Test hyperparser
http://bugs.python.org/issue21686  opened by sahutd

#21687: Py_SetPath: Path components separated by colons
http://bugs.python.org/issue21687  opened by fwalch

#21690: re documentation: re.compile links to re.search / re.match ins
http://bugs.python.org/issue21690  opened by jdg

#21694: IDLE - Test ParenMatch
http://bugs.python.org/issue21694  opened by sahutd

#21696: Idle: test configuration files
http://bugs.python.org/issue21696  opened by terry.reedy

#21697: shutil.copytree() handles symbolic directory incorrectly
http://bugs.python.org/issue21697  opened by shajunxing

#21699: Windows Python 3.4.1 pyvenv doesn't work in directories with s
http://bugs.python.org/issue21699  opened by Justin.Engel

#21702: asyncio: remote_addr of create_datagram_endpoint() is not docu
http://bugs.python.org/issue21702  opened by haypo

#21703: IDLE: Test UndoDelegator
http://bugs.python.org/issue21703  opened by sahutd

#21704: _multiprocessing module builds incorrectly when POSIX semaphor
http://bugs.python.org/issue21704  opened by Arfrever

#21705: cgi.py: Multipart with more than one file is misparsed
http://bugs.python.org/issue21705  opened by smurfix

#21706: Add base for enumerations (Functional API)
http://bugs.python.org/issue21706  opened by dkorchem

#21707: modulefinder uses wrong CodeType signature in .replace_paths_i
http://bugs.python.org/issue21707  opened by lemburg

#21708: Deprecate nonstandard behavior of a dumbdbm database
http://bugs.python.org/issue21708  opened by serhiy.storchaka

#21710: --install-base option ignored?
http://bugs.python.org/issue21710  opened by pitrou

#21714: Path.with_name can construct invalid paths
http://bugs.python.org/issue21714  opened by Antony.Lee

#21715: Chaining exceptions at C level
http://bugs.python.org/issue21715  opened by serhiy.storchaka

#21716: 3.4.1 download page link for OpenPGP signatures has no sigs
http://bugs.python.org/issue21716  opened by grossdm

#21717: Exclusive mode for ZipFile and TarFile
http://bugs.python.org/issue21717  opened by Antony.Lee

#21718: sqlite3 cursor.description seems to rely on incomplete stateme
http://bugs.python.org/issue21718  opened by zzzeek

#21719: Returning Windows file attribute information via os.stat()
http://bugs.python.org/issue21719  opened by benhoyt

#21720: TypeError: Item in ``from list'' not a string  message
http://bugs.python.org/issue21720  opened by davidszotten

#21721: socket.sendfile() should use TransmitFile on Windows
http://bugs.python.org/issue21721  opened by giampaolo.rodola

#21722: teach distutils upload to exit with code != 0 when error occ
http://bugs.python.org/issue21722  opened by mdengler

#21723: Float maxsize is treated as infinity in asyncio.Queue
http://bugs.python.org/issue21723  opened by vajrasky

#21724: resetwarnings doesn't reset warnings registry
http://bugs.python.org/issue21724  opened by pitrou

#21725: RFC 6531 (SMTPUTF8) support in smtpd
http://bugs.python.org/issue21725  opened by r.david.murray

#21726: Unnecessary line in documentation
http://bugs.python.org/issue21726  opened by Reid.Price

#21728: Confusing error message when initialising type inheriting obje
http://bugs.python.org/issue21728  opened by Gerrit.Holl

#21729: Use `with` statement in dbm.dumb
http://bugs.python.org/issue21729  opened by Claudiu.Popa

#21730: test_socket fails --without-threads
http://bugs.python.org/issue21730  opened by berker.peksag

#21731: Calendar Problem with Windows (XP)
http://bugs.python.org/issue21731  opened by Juebo

#21732: SubprocessTestsMixin.test_subprocess_terminate() hangs on AMD
http://bugs.python.org/issue21732  opened by haypo

#21734: compilation of the _ctypes module fails on OpenIndiana: ffi_pr
http://bugs.python.org/issue21734  opened by haypo

#21735: test_threading.test_main_thread_after_fork_from_nonmain_thread
http://bugs.python.org/issue21735  opened by haypo

#21736: Add __file__ attribute to frozen modules
http://bugs.python.org/issue21736  opened by lemburg

#21737: runpy.run_path() fails with frozen __main__ 

Re: [Python-Dev] subprocess shell=True on Windows doesn't escape ^ character

2014-06-13 Thread Akira Li
Florian Bruhin m...@the-compiler.org writes:

 * Nikolaus Rath nikol...@rath.org [2014-06-12 19:11:07 -0700]:
 R. David Murray rdmur...@bitdance.com writes:
  Also notice that using a list with shell=True is using the API
  incorrectly.  It wouldn't even work on Linux, so that torpedoes
  the cross-platform concern already :)
 
  This kind of confusion is why I opened http://bugs.python.org/issue7839.
 
 Can someone describe an use case where shell=True actually makes sense
 at all?
 
 It seems to me that whenever you need a shell, the argument's that you
 pass to it will be shell specific. So instead of e.g.
 
 Popen('for i in `seq 42`; do echo $i; done', shell=True)
 
 you almost certainly want to do
 
 Popen(['/bin/sh', 'for i in `seq 42`; do echo $i; done'], shell=False)
 
 because if your shell happens to be tcsh or cmd.exe, things are going to
 break.

 My usecase is a spawn-command in a GUI application, which the user can
 use to spawn an executable. I want the user to be able to use the
 usual shell features from there. However, I also pass an argument to
 that command, and that should be escaped.

You should pass the command as a string and use cmd.exe quote rules [1]
(note: they are different from the one provided by
`subprocess.list2cmdline()` [2] that follows Microsoft C/C++ startup
code rules [3] e.g., `^` is not special unlike in cmd.exe case).

[1]: 
http://blogs.msdn.com/b/twistylittlepassagesallalike/archive/2011/04/23/everyone-quotes-arguments-the-wrong-way.aspx

[2]: 
https://docs.python.org/3.4/library/subprocess.html#converting-an-argument-sequence-to-a-string-on-windows

[3]: http://msdn.microsoft.com/en-us/library/17w5ykft%28v=vs.85%29.aspx


--
akira

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Backwards Incompatibility in logging module in 3.4?

2014-06-13 Thread Don Spaulding
On Thu, Jun 12, 2014 at 6:45 PM, Victor Stinner victor.stin...@gmail.com
wrote:

 Hi,

 2014-06-13 0:38 GMT+02:00 Don Spaulding donspauldin...@gmail.com:
  Is this a bug or an intentional break?  If it's the latter, shouldn't
 this
  at least be mentioned in the What's new in Python 3.4 document?

 IMO the change is intentional. The previous behaviour was not really
 expected.


I agree that the change seems intentional.  However, as Nick mentioned, the
ticket doesn't really discuss the repercussions of changing the output of
the function.  As far as I can tell, this function has returned an int when
given a string since it was introduced in Python 2.3.  I think it's
reasonable to call a function's behavior expected after 11 years in the
wild.



 Python 3.3 documentation is explicit: the result is a string and the
 input paramter is an integer. logging.getLevelName(DEBUG) was more
 an implementation

 https://docs.python.org/3.3/library/logging.html#logging.getLevelName
 Returns the textual representation of logging level lvl. If the level
 is one of the predefined levels CRITICAL, ERROR, WARNING, INFO or
 DEBUG then you get the corresponding string. If you have associated
 levels with names using addLevelName() then the name you have
 associated with lvl is returned. If a numeric value corresponding to
 one of the defined levels is passed in, the corresponding string
 representation is returned. Otherwise, the string ‘Level %s’ % lvl is
 returned.

 If your code uses something like
 logger.setLevel(logging.getLevelName(DEBUG)), use directly
 logger.setLevel(DEBUG).

 This issue was fixed in OpenStack with this change:
 https://review.openstack.org/#/c/94028/6/openstack/common/log.py,cm
 https://review.openstack.org/#/c/94028/6

 Victor


I appreciate the pointer to the OpenStack fix.  I've actually already
worked around the issue in my project (although without much elegance, I'll
readily admit).

I opened up an issue on the tracker for this:
http://bugs.python.org/issue21752

I apologize if that was out of turn.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] python-dev for MAC OS X

2014-06-13 Thread Ned Deily
In article 
CALWZvp6+pi1zXr9ewKuMgzAECV70Zb4p3mutazzgw55dm=g...@mail.gmail.com,
 Tal Einat talei...@gmail.com wrote:
 On Fri, Jun 13, 2014 at 12:21 PM, Pedro Helou helou.pe...@gmail.com wrote:
  does anybody know how to install the python-dev headers and libraries for
  MAC OS X?
 This list is for discussing the development *of* Python, not *with*
 Python. Please ask on the python list, python-l...@python.org (more
 info here[1]) or on the #python channel on the Freenode IRC server.
 StackOverflow is also a good place to search for information and ask
 questions.

Like Tal said.  But I'm guessing you are asking about the headers for 
the Apple-supplied System Pythons.  On recent versions of OS X, they are 
not installed by default; you need to install the Command Line Tools 
component to install system headers include those for Python.  How you 
do that varies by OS X release.  In OS X 10.9 Mavericks, you can run 
xcode-select --install.  For earlier releases, there may be an option 
in Xcode.app's Preferences.  Or you may be able to download the right 
Command Line Tools package from the Apple Developer Connection site.

-- 
 Ned Deily,
 n...@acm.org

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Backwards Incompatibility in logging module in 3.4?

2014-06-13 Thread Nick Coghlan
On 14 Jun 2014 06:18, Don Spaulding donspauldin...@gmail.com wrote:

 I opened up an issue on the tracker for this:
http://bugs.python.org/issue21752

 I apologize if that was out of turn.

At the very least, there should be a note in the porting to Python 3.4
section of the What's New and a versionchanged note on the API docs, so a
docs bug report is appropriate to add those.

Cheers,
Nick.


 ___
 Python-Dev mailing list
 Python-Dev@python.org
 https://mail.python.org/mailman/listinfo/python-dev
 Unsubscribe:
https://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com

___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Why does IOBase.__del__ call .close?

2014-06-13 Thread Nikolaus Rath
Benjamin Peterson benja...@python.org writes:
 On Thu, Jun 12, 2014, at 18:06, Nikolaus Rath wrote:
 Consider this simple example:
 
 $ cat test.py 
 import io
 import warnings
 
 class StridedStream(io.IOBase):
 def __init__(self, name, stride=2):
 super().__init__()
 self.fh = open(name, 'rb')
 self.stride = stride
 
 def read(self, len_):
 return self.fh.read(self.stride*len_)[::self.stride]
 
 def close(self):
 self.fh.close()
 
 class FixedStridedStream(StridedStream):
 def __del__(self):
 # Prevent IOBase.__del__ frombeing called.
 pass
 
 warnings.resetwarnings()
 warnings.simplefilter('error')
 
 print('Creating  loosing StridedStream..')
 r = StridedStream('/dev/zero')
 del r
 
 print('Creating  loosing FixedStridedStream..')
 r = FixedStridedStream('/dev/zero')
 del r
 
 $ python3 test.py 
 Creating  loosing StridedStream..
 Creating  loosing FixedStridedStream..
 Exception ignored in: _io.FileIO name='/dev/zero' mode='rb'
 ResourceWarning: unclosed file _io.BufferedReader name='/dev/zero'
 
 In the first case, the destructor inherited from IOBase actually
 prevents the ResourceWarning from being emitted.

 Ah, I see. I don't see any good ways to fix it, though, besides setting
 some flag if close() is called from __del__.

How about not having IOBase.__del__ call self.close()? Any resources
acquired by the derived class would still clean up after themselves when
they are garbage collected.


Best,
-Nikolaus

-- 
GPG encrypted emails preferred. Key id: 0xD113FCAC3C4E599F
Fingerprint: ED31 791B 2C5C 1613 AF38 8B8A D113 FCAC 3C4E 599F

 »Time flies like an arrow, fruit flies like a Banana.«
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Why does IOBase.__del__ call .close?

2014-06-13 Thread Benjamin Peterson
On Fri, Jun 13, 2014, at 20:04, Nikolaus Rath wrote:
 Benjamin Peterson benja...@python.org writes:
  On Thu, Jun 12, 2014, at 18:06, Nikolaus Rath wrote:
  Consider this simple example:
  
  $ cat test.py 
  import io
  import warnings
  
  class StridedStream(io.IOBase):
  def __init__(self, name, stride=2):
  super().__init__()
  self.fh = open(name, 'rb')
  self.stride = stride
  
  def read(self, len_):
  return self.fh.read(self.stride*len_)[::self.stride]
  
  def close(self):
  self.fh.close()
  
  class FixedStridedStream(StridedStream):
  def __del__(self):
  # Prevent IOBase.__del__ frombeing called.
  pass
  
  warnings.resetwarnings()
  warnings.simplefilter('error')
  
  print('Creating  loosing StridedStream..')
  r = StridedStream('/dev/zero')
  del r
  
  print('Creating  loosing FixedStridedStream..')
  r = FixedStridedStream('/dev/zero')
  del r
  
  $ python3 test.py 
  Creating  loosing StridedStream..
  Creating  loosing FixedStridedStream..
  Exception ignored in: _io.FileIO name='/dev/zero' mode='rb'
  ResourceWarning: unclosed file _io.BufferedReader name='/dev/zero'
  
  In the first case, the destructor inherited from IOBase actually
  prevents the ResourceWarning from being emitted.
 
  Ah, I see. I don't see any good ways to fix it, though, besides setting
  some flag if close() is called from __del__.
 
 How about not having IOBase.__del__ call self.close()? Any resources
 acquired by the derived class would still clean up after themselves when
 they are garbage collected.

Well, yes, but that's probably a backwards compat problem.
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Raspberry Pi Buildbot

2014-06-13 Thread Gregory P. Smith
On Fri, Jun 13, 2014 at 3:24 AM, Tal Einat talei...@gmail.com wrote:

 Is there one? If not, would you like me to set one up? I've got one at
 home with Raspbian installed not doing anything, it could easily run a
 buildslave.

 Poking around on buildbot.python.org/all/builders, I can only see one
 ARM buildbot[1], and it's just called ARM v7.


The ARM v7 buildbot is mine. It's a Samsung chromebook with a dual core
exynos5 cpu and usb3 SSD. ie: It's *at least* 10x faster than a raspberry
pi.

I don't think a pi buildbot would add much value but if you want to run
one, feel free. It should live in the unstable pool.

-gps
___
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com