Написание плагина Bazaar - зарегистрировать команду? - PullRequest
1 голос
/ 14 июня 2010

У меня проблема с написанием моего плагина Bazaar.

Я пробовал несколько разных вещей, и это текущее состояние моего файла:

''' Testing Bzr plugins '''                                                     
from bzrlib.commands import Command, register_command                           

version_info = (0,0,1, 'dev')                                                   

class cmd_test_foo(Command):                                                    
    ''' Testing is painful. '''                                                 

    def run(self):                                                              
        print "hi"                                                

register_command(cmd_test_foo) 

Вот что происходит, когда я пытаюсь выполнить свою команду:

$bzr test-foo
hi
bzr: ERROR: unknown command "test-foo"

Так что это действительно странно - он явно выполняет мою команду, но говорит мне, что это неизвестно?

Есть ли хорошие источники примеров плагинов? Я посмотрел на builtins.py как предложено здесь , но, похоже, ничего не помогло.

1 Ответ

2 голосов
/ 14 июня 2010

Так как я не смог найти никакой реальной информации об этой ошибке в Интернете или SO, я решил опубликовать и ответить на свой собственный вопрос.

Когда Bazaar импортирует плагин, он просто создает файл .pyc.как обычно импорт из Python.Если происходит что-то волшебное - например, редактирование в одном каталоге и забывание скопировать его, а затем создать символическую ссылку - оно никогда не импортирует изменения.Вызов register_command(cmd_test_foo) необходим для того, чтобы базар зарегистрировал команду, где cmd_test_foo - это имя вашей команды.Когда вы вызываете команды помощи bzr, она также будет отображаться так:

$ bzr help commands
... (snip commands)
test-foo         Testing is painful.  [testCmd]
... (snip other commands)

, а также

$ bzr plugins
testCmd 0.0.1.dev
    Testing Bzr plugins

, конечно, на последнем вы также увидите другие плагины, которые можетеустановили.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...