Ram Rachum wrote:
1. I'm making a program that lets people lease machines. They can issue
a command to lease 7 machines. ... If everything goes fine, I do pop_all on
the exit stack so it doesn't get exited and the machines stay leased,
Seems to me that would be done more easily and clearly
On 11/18/2016 12:42 PM, Ram Rachum wrote:
Sure, here are a couple of use cases:
1. I'm making a program that lets people lease machines. They can issue
a command to lease 7 machines. When they do, my program leases them one
by one and adds them all to an exit stack, so in case there aren't 7
Sure, here are a couple of use cases:
1. I'm making a program that lets people lease machines. They can issue a
command to lease 7 machines. When they do, my program leases them one by
one and adds them all to an exit stack, so in case there aren't 7 machines
available, all the machines we leased
On 06.11.2016 09:07, Steven D'Aprano wrote:
I'm having a lot of difficulty in understanding your use-case here,
and so maybe I've completely misunderstood something.
Although, this thread is dead for a week or so, I am still curious to
hear the real-world use-case. I am equally puzzled by
On 11/06/2016 08:11 PM, Nick Coghlan wrote:
On 7 November 2016 at 12:25, Ethan Furman wrote:
On 11/06/2016 12:44 AM, Ram Rachum wrote:
I see that Python does allow you to not call `__exit__` if you don't want
to [...]
Um, how? I was unaware of this (mis-)feature.
On 7 November 2016 at 12:25, Ethan Furman wrote:
> On 11/06/2016 12:44 AM, Ram Rachum wrote:
>
>> I see that Python does allow you to not call `__exit__` if you don't want
>> to [...]
>
> Um, how? I was unaware of this (mis-)feature.
It involves wrapping the context manager
On 11/06/2016 12:44 AM, Ram Rachum wrote:
I see that Python does allow you to not call `__exit__` if you don't want
to [...]
Um, how? I was unaware of this (mis-)feature.
--
~Ethan~
___
Python-ideas mailing list
Python-ideas@python.org
On 11/06/2016 12:18 AM, Ram Rachum wrote:
Well, you think it's weird that I want a `finally` clause to not be called
in some circumstances.
Yes I (we) do.
Do you think it's equally weird to want an `__exit__` method that is not
called in some circumstances?
Yes I (we) do.
--
~Ethan~
On 11/6/2016 2:18 AM, Ram Rachum wrote:
Well, you think it's weird that I want a `finally` clause to not be
called in some circumstances. Do you think it's equally weird to want an
`__exit__` method that is not called in some circumstances?
Without a deeper understanding of why you want to do
On 6 November 2016 at 17:44, Ram Rachum wrote:
> I understand your point of view. I see that Python does allow you to not
> call `__exit__` if you don't want to, so I wish it'll have the same approach
> to not calling `generator.close()` if you don't want to. (This is what it's
>
On Sun, Nov 06, 2016 at 06:46:40AM +0200, Ram Rachum wrote:
> Hi everyone,
>
> Here is a simplification of a problem that's been happening in my code:
>
> import contextlib
>
> @contextlib.contextmanager
> def f():
> print('1')
> try:
> yield
> finally:
> print('2')
On Sun, Nov 6, 2016 at 9:38 AM, Nick Coghlan wrote:
> On 6 November 2016 at 17:18, Ram Rachum wrote:
> > On Sun, Nov 6, 2016 at 8:53 AM, Nick Coghlan wrote:
> >> There's still something seriously odd going in relation to your
> >>
On 6 November 2016 at 17:18, Ram Rachum wrote:
> On Sun, Nov 6, 2016 at 8:53 AM, Nick Coghlan wrote:
>> There's still something seriously odd going in relation to your
>> overall resource management architecture if "cleanup, maybe, unless I
>> decide to tell
On 2016-11-06 00:18, Ram Rachum wrote:
Well, you think it's weird that I want a `finally` clause to not be
called in some circumstances. Do you think it's equally weird to want an
`__exit__` method that is not called in some circumstances?
It's weird to not want the __exit__ to be called if
On Sun, Nov 6, 2016 at 8:53 AM, Nick Coghlan wrote:
> On 6 November 2016 at 16:07, Ram Rachum wrote:
> > Heh, I just played with this, and found a workaround. If I do something
> like
> > this after creating the generator:
> >
> > sys.g = g
> >
> > Then it
On 6 November 2016 at 16:07, Ram Rachum wrote:
> Heh, I just played with this, and found a workaround. If I do something like
> this after creating the generator:
>
> sys.g = g
>
> Then it wouldn't get closed when Python finishes, and the cleanup won't
> happen, which is what I
Heh, I just played with this, and found a workaround. If I do something
like this after creating the generator:
sys.g = g
Then it wouldn't get closed when Python finishes, and the cleanup won't
happen, which is what I want. This is still a bit ugly but now it's
something I can do automatically
Sorry, I was wrong at quoting the workaround I do, it's actually this:
try:
yield
except GeneratorExit:
raise
except:
cleanup()
raise
else:
cleanup()
This works, but
On 6 November 2016 at 14:46, Ram Rachum wrote:
> I worked around this problem by adding `except GeneratorExit: raise` in my
> context manager, but that's an ugly solution.
Adding `except GeneratorExit: raise` to a try statement with a finally
clause won't prevent the finally
19 matches
Mail list logo