On 4 January 2018 at 23:58, Guido van Rossum <guido at python.org> wrote: > On Thu, Jan 4, 2018 at 9:27 AM, Paul Moore <p.f.moore at gmail.com> wrote: >> >> On 4 January 2018 at 15:56, Guido van Rossum <guido at python.org> wrote: >> > It was get_context() in an earlier version of PEP 567. We changed it to >> > copy_context() believing that that would clarify that you get a clone >> > that >> > is unaffected by subsequent ContextVar.set() operations (which affect >> > the >> > *current* context rather than the copy you just got). >> >> Ah thanks. In which case, simply changing the emphasis to avoid the >> implication that Context objects are immutable (while that may be true >> in a technical/implementation sense, it's not really true in a design >> sense if ContextVar.set modifies the value of a variable in a context) >> is probably sufficient. > > > Do you have a specific proposal for a wording change? PEP 567 describes > Context as "a read-only mapping, implemented using an immutable dictionary." > This sounds all right to me -- "read-only" is weaker than "immutable". Maybe > the implementation should not be mentioned here? (The crux here is that a > given Context acts as a variable referencing an immutable dict -- but it may > reference different immutable dicts at different times.) I've been struggling to think of good alternative wordings (it's a case of "I'm not sure what you're trying to say, so I can't work out how you should say it", unfortunately). The best I can come up with is """ A Context is a mapping from ContextVar objects to their values. The Context itself exposes the Mapping interface, so cannot be modified directly - to modify the value associated with a variable you need to use the ContextVar.set() method. """ Does that explain things correctly? One thing I am sure of is that we should remove "implemented using an immutable dictionary" - it's an implementation detail, and adds nothing but confusion to mention it here. Paul
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