Commit 89381488 authored by Kirill Smelkov's avatar Kirill Smelkov

context: Rename things imported at Py level * -> py*

e.g. go -> pygo, select -> pyselect, etc. This will make the followup
transition to non-py mode more clear.
parent 223d7950
...@@ -28,9 +28,9 @@ See the following links about Go contexts: ...@@ -28,9 +28,9 @@ See the following links about Go contexts:
from __future__ import print_function, absolute_import from __future__ import print_function, absolute_import
from golang import go, chan, select, default, nilchan from golang import go as pygo, chan as pychan, select as pyselect, default as pydefault, nilchan as pynilchan
from golang import _sync # avoid cycle: context -> sync -> context from golang import _sync as _pysync # avoid cycle: context -> sync -> context
from golang import time from golang import time as pytime
from cython cimport final from cython cimport final
...@@ -45,7 +45,7 @@ cdef class Context: ...@@ -45,7 +45,7 @@ cdef class Context:
raise NotImplementedError() raise NotImplementedError()
# done returns channel that is closed when the context is canceled. # done returns channel that is closed when the context is canceled.
def done(ctx): # -> chan(dtype='C.structZ') def done(ctx): # -> pychan(dtype='C.structZ')
raise NotImplementedError() raise NotImplementedError()
# err returns None if done is not yet closed, or error that explains why context was canceled. # err returns None if done is not yet closed, or error that explains why context was canceled.
...@@ -101,7 +101,7 @@ def with_deadline(parent, deadline): # -> ctx, cancel ...@@ -101,7 +101,7 @@ def with_deadline(parent, deadline): # -> ctx, cancel
return with_cancel(parent) return with_cancel(parent)
# timeout <= 0 -> already canceled # timeout <= 0 -> already canceled
timeout = deadline - time.now() timeout = deadline - pytime.now()
if timeout <= 0: if timeout <= 0:
ctx, cancel = with_cancel(parent) ctx, cancel = with_cancel(parent)
cancel() cancel()
...@@ -114,7 +114,7 @@ def with_deadline(parent, deadline): # -> ctx, cancel ...@@ -114,7 +114,7 @@ def with_deadline(parent, deadline): # -> ctx, cancel
# #
# it is shorthand for with_deadline(parent, now+timeout). # it is shorthand for with_deadline(parent, now+timeout).
def with_timeout(parent, timeout): # -> ctx, cancel def with_timeout(parent, timeout): # -> ctx, cancel
return with_deadline(parent, time.now() + timeout) return with_deadline(parent, pytime.now() + timeout)
# merge merges 2 contexts into 1. # merge merges 2 contexts into 1.
# #
...@@ -151,7 +151,7 @@ cdef class _Background: ...@@ -151,7 +151,7 @@ cdef class _Background:
return None return None
_background = _Background() _background = _Background()
_nilchanZ = chan.nil('C.structZ') _nilchanZ = pychan.nil('C.structZ')
# _BaseCtx is the common base for Contexts implemented in this package. # _BaseCtx is the common base for Contexts implemented in this package.
cdef class _BaseCtx: cdef class _BaseCtx:
...@@ -167,11 +167,11 @@ cdef class _BaseCtx: ...@@ -167,11 +167,11 @@ cdef class _BaseCtx:
def __init__(ctx, done, *parentv): def __init__(ctx, done, *parentv):
ctx._parentv = parentv ctx._parentv = parentv
ctx._mu = _sync.PyMutex() ctx._mu = _pysync.PyMutex()
ctx._children = set() ctx._children = set()
ctx._err = None ctx._err = None
# chan: if context can be canceled on its own # pychan: if context can be canceled on its own
# None: if context can not be canceled on its own # None: if context can not be canceled on its own
ctx._done = done ctx._done = done
if done is None: if done is None:
...@@ -242,12 +242,12 @@ cdef class _BaseCtx: ...@@ -242,12 +242,12 @@ cdef class _BaseCtx:
# propagateCancel establishes setup so that whenever a parent is canceled, # propagateCancel establishes setup so that whenever a parent is canceled,
# ctx and its children are canceled too. # ctx and its children are canceled too.
def _propagateCancel(ctx): def _propagateCancel(ctx):
pforeignv = [] # parents with !nilchan .done() for foreign contexts pforeignv = [] # parents with !pynilchan .done() for foreign contexts
for parent in ctx._parentv: for parent in ctx._parentv:
# if parent can never be canceled (e.g. it is background) - we # if parent can never be canceled (e.g. it is background) - we
# don't need to propagate cancel from it. # don't need to propagate cancel from it.
pdone = parent.done() pdone = parent.done()
if pdone == nilchan: if pdone == pynilchan:
continue continue
# parent is cancellable - glue to propagate cancel from it to us # parent is cancellable - glue to propagate cancel from it to us
...@@ -269,20 +269,20 @@ cdef class _BaseCtx: ...@@ -269,20 +269,20 @@ cdef class _BaseCtx:
# there are some foreign contexts to propagate cancel from # there are some foreign contexts to propagate cancel from
def _(): def _():
_, _rx = select( _, _rx = pyselect(
ctx._done.recv, # 0 ctx._done.recv, # 0
*[_.done().recv for _ in pforeignv] # 1 + ... *[_.done().recv for _ in pforeignv] # 1 + ...
) )
# 0. nothing - already canceled # 0. nothing - already canceled
if _ > 0: if _ > 0:
ctx._cancel(pforeignv[_-1].err()) ctx._cancel(pforeignv[_-1].err())
go(_) pygo(_)
# _CancelCtx is context that can be canceled. # _CancelCtx is context that can be canceled.
cdef class _CancelCtx(_BaseCtx): cdef class _CancelCtx(_BaseCtx):
def __init__(ctx, *parentv): def __init__(ctx, *parentv):
super(_CancelCtx, ctx).__init__(chan(dtype='C.structZ'), *parentv) super(_CancelCtx, ctx).__init__(pychan(dtype='C.structZ'), *parentv)
# _ValueCtx is context that carries key -> value. # _ValueCtx is context that carries key -> value.
...@@ -306,13 +306,13 @@ cdef class _ValueCtx(_BaseCtx): ...@@ -306,13 +306,13 @@ cdef class _ValueCtx(_BaseCtx):
# _TimeoutCtx is context that is canceled on timeout. # _TimeoutCtx is context that is canceled on timeout.
cdef class _TimeoutCtx(_CancelCtx): cdef class _TimeoutCtx(_CancelCtx):
cdef double _deadline cdef double _deadline
cdef object _timer # time.Timer cdef object _timer # pytime.Timer
def __init__(ctx, timeout, deadline, parent): def __init__(ctx, timeout, deadline, parent):
super(_TimeoutCtx, ctx).__init__(parent) super(_TimeoutCtx, ctx).__init__(parent)
assert timeout > 0 assert timeout > 0
ctx._deadline = deadline ctx._deadline = deadline
ctx._timer = time.after_func(timeout, lambda: ctx._cancel(deadlineExceeded)) ctx._timer = pytime.after_func(timeout, lambda: ctx._cancel(deadlineExceeded))
def deadline(ctx): def deadline(ctx):
return ctx._deadline return ctx._deadline
...@@ -326,9 +326,9 @@ cdef class _TimeoutCtx(_CancelCtx): ...@@ -326,9 +326,9 @@ cdef class _TimeoutCtx(_CancelCtx):
# _ready returns whether channel ch is ready. # _ready returns whether channel ch is ready.
def _ready(ch): def _ready(ch):
_, _rx = select( _, _rx = pyselect(
ch.recv, # 0 ch.recv, # 0
default, # 1 pydefault, # 1
) )
if _ == 0: if _ == 0:
return True return True
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment