Martin v. Löwis wrote: > M.-A. Lemburg wrote: > >> Martin, there are two reasons for hiding away these details: >> >> 1. we need to be able to change the codec state without >> breaking the APIs > > > That will be possible with the currently-proposed patch. > The _codecs methods are not public API, so changing them > would not be an API change. Uhm, I wasn't talking about the builtin codecs only (of course, we can change those to our liking). I'm after a generic interface for stateful codecs. >> 2. we don't want the state to be altered by the user > > > We are all consenting adults, and we can't *really* > prevent it, anyway. For example, the user may pass an > old state, or a state originating from a different codec > (instance). We need to support this gracefully (i.e. with > a proper Python exception). True, but the codec writer should be in control of the state object, its format and what the user can or cannot change. >> A single object serves this best and does not create >> a whole plethora of new APIs in the _codecs module. >> This is not over-design, but serves a reason. > > It does put a burden on codec developers, which need > to match the "official" state representation policy. > Of course, if they are allowed to return a tuple > representing their state, that would be fine with > me. They can use any object they like to keep the state in whatever format they choose. I think this makes it easier on the codec writer, rather than harder. Furthermore, they can change the way they store state e.g. to accomodate for new features they may want to add to the codec, without breaking the interface. -- Marc-Andre Lemburg eGenix.com Professional Python Services directly from the Source (#1, Aug 26 2004) >>> Python/Zope Consulting and Support ... http://www.egenix.com/ >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/ >>> mxODBC, mxDateTime, mxTextTools ... http://python.egenix.com/ ________________________________________________________________________ ::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! ::::
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4