Мой питон крючком для ртутной


В нашем НД рабочего процесса мы используем по умолчанию , как анализ отрасли и стабильный , как и тот, который содержит стабильный код. Все изменения вносятся в особенность-ветви, которые начали с последней стабильной. Этот обработчик проверяет, если есть "прямые" обязуются по умолчанию или стабильный (они отказывают, только сливает может изменить содержимое по умолчанию и стабильный), либо новую ветку, где был запущен по умолчанию (который запрещен конвенциями тоже).

Любое предложение, чтобы сделать его более "подходящие для Python" (или просто лучше)?

from mercurial import context

def check(ui, repo, hooktype, node=None, source=None, **kwargs):
    for rev in xrange(repo[node].rev(), len(repo)):
        ctx = context.changectx(repo, rev)
        parents = ctx.parents()

        if len(parents) == 1:
            if ctx.branch() in ['default', 'stable']:
                ui.warn('!!! You cannot commit directly to %s at %s !!!' % (ctx.branch(), ctx.hex()))
                return True

            if parents[0].branch() == 'default':
                ui.warn('!!! You cannot start your private branch from default at %s !!!' % (ctx.hex()))
                return True

    return False


642
5
задан 30 августа 2011 в 06:08 Источник Поделиться
Комментарии
1 ответ

    for rev in xrange(repo[node].rev(), len(repo)):
ctx = context.changectx(repo, rev)

В Python, я вообще стараюсь избегать прохода через xrange. Я предпочитаю перебирать то, что меня интересует.

def revisions(repo, start, end):
for revision_number in xrange(start, end):
yield context.changectx(repo, revision_number)

for rev in revisions(repo, repo[node].rev(), len(repo)):
...

Хотя я не уверен, что стоит в этом случае.

Единственный другой вопрос-это использование аббревиатуры, такие как РЕПО и REV. они не так плохо, потому что ее довольно ясно из контекста, что они стоят. Но я мог бы написать их полностью.

5
ответ дан 30 августа 2011 в 12:08 Источник Поделиться