[Python-Dev] Decoding incomplete unicode

M.-A. Lemburg mal at egenix.com
Thu Aug 26 17:28:43 CEST 2004


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 ! ::::


More information about the Python-Dev mailing list