[PATCH 4 of 8] opener: add read & write utility methods
Adrian Buehlmann
adrian at cadifra.com
Mon Dec 27 09:05:55 CST 2010
On 2010-12-27 12:45, Dirkjan Ochtman wrote:
> On Mon, Dec 27, 2010 at 12:31, Nicolas Dumazet <nicdumz at gmail.com> wrote:
>> Adrian, do we have alternatives here?
>> If you can come up with an alternate patch or suggestion that ensures
>> that things just work (tm) for PyPy, I'd gladly hear it.
>
> Adrian seems to want to use utility functions (that take an opener) in
> util.py instead of methods on opener classes. It seems mostly a matter
> of taste, I haven't seen any convincing arguments either way.
It's more than a matter if taste.
If I see that a change like
On 2010-12-26 12:51, Dan Villiom Podlaski Christiansen wrote:
> A similar method for reading is added to the opener used by static
> HTTP repositories. It doesn't do any actual closing, as the opener
> doesn't have access to any underlying files.
>
> diff --git a/mercurial/statichttprepo.py b/mercurial/statichttprepo.py
> --- a/mercurial/statichttprepo.py
> +++ b/mercurial/statichttprepo.py
> @@ -75,6 +75,8 @@ def build_opener(ui, authinfo):
> raise IOError('Permission denied')
> f = "/".join((p, urllib.quote(path)))
> return httprangereader(f, urlopener)
> + # for compatibility with regular file openers
> + o.read = lambda *args, **kwargs: o(*args, **kwargs).read()
> return o
>
> opener.options = {'nonlazy': 1}
is needed, then I'm fairly convinced that having to add read and write
member functions to every kind of opener is fishy.
See also my reasoning in http://markmail.org/message/otixtvzmcsxbbdvi
More information about the Mercurial-devel
mailing list