{"action":"created","comment":{"url":"https://api.github.com/repos/spyder-ide/spyder/pulls/comments/29110512","id":29110512,"diff_hunk":"@@ -14,10 +14,10 @@\n \r\n # Local imports\r\n from spyderlib.baseconfig import get_translation\r\n-_ = get_translation(\"p_breakpoints\", dirname=\"spyderplugins\")\r\n+_ = get_translation(\"p_breakpoints\", dirname=\"spyderplugins.p_breakpoints\")\r","path":"spyderplugins/p_breakpoints/breakpoints.py","position":5,"original_position":5,"commit_id":"02098d31d4bb2b9723d09861eac3948294204305","original_commit_id":"02098d31d4bb2b9723d09861eac3948294204305","user":{"login":"goanpeca","id":3627835,"avatar_url":"https://avatars.githubusercontent.com/u/3627835?v=3","gravatar_id":"","url":"https://api.github.com/users/goanpeca","html_url":"https://github.com/goanpeca","followers_url":"https://api.github.com/users/goanpeca/followers","following_url":"https://api.github.com/users/goanpeca/following{/other_user}","gists_url":"https://api.github.com/users/goanpeca/gists{/gist_id}","starred_url":"https://api.github.com/users/goanpeca/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/goanpeca/subscriptions","organizations_url":"https://api.github.com/users/goanpeca/orgs","repos_url":"https://api.github.com/users/goanpeca/repos","events_url":"https://api.github.com/users/goanpeca/events{/privacy}","received_events_url":"https://api.github.com/users/goanpeca/received_events","type":"User","site_admin":false},"body":"I gues this function would be clear if we added something like a flag to tell it is a plugin... an user/developer should not need to give the directory info..., so it would be better if it was something like:\r\n\r\n```python\r\n_ = get_translation(\"p_breakpoints\", plugin=True)\r\n```\r\n","created_at":"2015-04-26T14:48:07Z","updated_at":"2015-04-26T14:48:07Z","html_url":"https://github.com/spyder-ide/spyder/pull/2362#discussion_r29110512","pull_request_url":"https://api.github.com/repos/spyder-ide/spyder/pulls/2362","_links":{"self":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/comments/29110512"},"html":{"href":"https://github.com/spyder-ide/spyder/pull/2362#discussion_r29110512"},"pull_request":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/2362"}}},"pull_request":{"url":"https://api.github.com/repos/spyder-ide/spyder/pulls/2362","id":34085711,"html_url":"https://github.com/spyder-ide/spyder/pull/2362","diff_url":"https://github.com/spyder-ide/spyder/pull/2362.diff","patch_url":"https://github.com/spyder-ide/spyder/pull/2362.patch","issue_url":"https://api.github.com/repos/spyder-ide/spyder/issues/2362","number":2362,"state":"open","locked":false,"title":"[WIP] Load spyderplugins from directories","user":{"login":"Nodd","id":506348,"avatar_url":"https://avatars.githubusercontent.com/u/506348?v=3","gravatar_id":"","url":"https://api.github.com/users/Nodd","html_url":"https://github.com/Nodd","followers_url":"https://api.github.com/users/Nodd/followers","following_url":"https://api.github.com/users/Nodd/following{/other_user}","gists_url":"https://api.github.com/users/Nodd/gists{/gist_id}","starred_url":"https://api.github.com/users/Nodd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nodd/subscriptions","organizations_url":"https://api.github.com/users/Nodd/orgs","repos_url":"https://api.github.com/users/Nodd/repos","events_url":"https://api.github.com/users/Nodd/events{/privacy}","received_events_url":"https://api.github.com/users/Nodd/received_events","type":"User","site_admin":false},"body":"So, this is the first step towards pip-installable plugins. I converted the 3 plugins (pylint, breakpoints and profiler) so that they each have their own directory structure, as would an external plugin.\r\n\r\nI tried to stay as close as possible to the original layout.\r\n\r\nTODO:\r\n- [x] load images correctly\r\n- [x] check that translations still work\r\n- [ ] update gettext_compile.py and gettext_scan.py\r\n- [x] load from `.spyder/userplugins/`\r\n- [ ] Try to install an external plugin via pip\r\n\r\nThings left for a following PR:\r\n* remove the need to have a name starting with `p_` (needed now to differentiate with `io_` plugins)\r\n* UI to see loaded plugins, error, to install local plugins...\r\n* command-line option to disable plugins (\"fail-safe\" mode)","created_at":"2015-04-24T20:59:41Z","updated_at":"2015-04-26T14:48:07Z","closed_at":null,"merged_at":null,"merge_commit_sha":"18d84d6a13ab3d4287076127502701dbfb1d38c6","assignee":{"login":"Nodd","id":506348,"avatar_url":"https://avatars.githubusercontent.com/u/506348?v=3","gravatar_id":"","url":"https://api.github.com/users/Nodd","html_url":"https://github.com/Nodd","followers_url":"https://api.github.com/users/Nodd/followers","following_url":"https://api.github.com/users/Nodd/following{/other_user}","gists_url":"https://api.github.com/users/Nodd/gists{/gist_id}","starred_url":"https://api.github.com/users/Nodd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nodd/subscriptions","organizations_url":"https://api.github.com/users/Nodd/orgs","repos_url":"https://api.github.com/users/Nodd/repos","events_url":"https://api.github.com/users/Nodd/events{/privacy}","received_events_url":"https://api.github.com/users/Nodd/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/spyder-ide/spyder/milestones/5","html_url":"https://github.com/spyder-ide/spyder/milestones/v3.0","labels_url":"https://api.github.com/repos/spyder-ide/spyder/milestones/5/labels","id":982077,"number":5,"title":"v3.0","description":"","creator":{"login":"spyder-issues-migrator","id":11021581,"avatar_url":"https://avatars.githubusercontent.com/u/11021581?v=3","gravatar_id":"","url":"https://api.github.com/users/spyder-issues-migrator","html_url":"https://github.com/spyder-issues-migrator","followers_url":"https://api.github.com/users/spyder-issues-migrator/followers","following_url":"https://api.github.com/users/spyder-issues-migrator/following{/other_user}","gists_url":"https://api.github.com/users/spyder-issues-migrator/gists{/gist_id}","starred_url":"https://api.github.com/users/spyder-issues-migrator/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spyder-issues-migrator/subscriptions","organizations_url":"https://api.github.com/users/spyder-issues-migrator/orgs","repos_url":"https://api.github.com/users/spyder-issues-migrator/repos","events_url":"https://api.github.com/users/spyder-issues-migrator/events{/privacy}","received_events_url":"https://api.github.com/users/spyder-issues-migrator/received_events","type":"User","site_admin":false},"open_issues":255,"closed_issues":62,"state":"open","created_at":"2015-02-16T23:17:23Z","updated_at":"2015-04-26T14:35:03Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/spyder-ide/spyder/pulls/2362/commits","review_comments_url":"https://api.github.com/repos/spyder-ide/spyder/pulls/2362/comments","review_comment_url":"https://api.github.com/repos/spyder-ide/spyder/pulls/comments{/number}","comments_url":"https://api.github.com/repos/spyder-ide/spyder/issues/2362/comments","statuses_url":"https://api.github.com/repos/spyder-ide/spyder/statuses/02098d31d4bb2b9723d09861eac3948294204305","head":{"label":"Nodd:plugin_directories","ref":"plugin_directories","sha":"02098d31d4bb2b9723d09861eac3948294204305","user":{"login":"Nodd","id":506348,"avatar_url":"https://avatars.githubusercontent.com/u/506348?v=3","gravatar_id":"","url":"https://api.github.com/users/Nodd","html_url":"https://github.com/Nodd","followers_url":"https://api.github.com/users/Nodd/followers","following_url":"https://api.github.com/users/Nodd/following{/other_user}","gists_url":"https://api.github.com/users/Nodd/gists{/gist_id}","starred_url":"https://api.github.com/users/Nodd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nodd/subscriptions","organizations_url":"https://api.github.com/users/Nodd/orgs","repos_url":"https://api.github.com/users/Nodd/repos","events_url":"https://api.github.com/users/Nodd/events{/privacy}","received_events_url":"https://api.github.com/users/Nodd/received_events","type":"User","site_admin":false},"repo":{"id":31228226,"name":"spyder","full_name":"Nodd/spyder","owner":{"login":"Nodd","id":506348,"avatar_url":"https://avatars.githubusercontent.com/u/506348?v=3","gravatar_id":"","url":"https://api.github.com/users/Nodd","html_url":"https://github.com/Nodd","followers_url":"https://api.github.com/users/Nodd/followers","following_url":"https://api.github.com/users/Nodd/following{/other_user}","gists_url":"https://api.github.com/users/Nodd/gists{/gist_id}","starred_url":"https://api.github.com/users/Nodd/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Nodd/subscriptions","organizations_url":"https://api.github.com/users/Nodd/orgs","repos_url":"https://api.github.com/users/Nodd/repos","events_url":"https://api.github.com/users/Nodd/events{/privacy}","received_events_url":"https://api.github.com/users/Nodd/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Nodd/spyder","description":"Official repository for Spyder - The Scientific PYthon Development EnviRonment","fork":true,"url":"https://api.github.com/repos/Nodd/spyder","forks_url":"https://api.github.com/repos/Nodd/spyder/forks","keys_url":"https://api.github.com/repos/Nodd/spyder/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Nodd/spyder/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Nodd/spyder/teams","hooks_url":"https://api.github.com/repos/Nodd/spyder/hooks","issue_events_url":"https://api.github.com/repos/Nodd/spyder/issues/events{/number}","events_url":"https://api.github.com/repos/Nodd/spyder/events","assignees_url":"https://api.github.com/repos/Nodd/spyder/assignees{/user}","branches_url":"https://api.github.com/repos/Nodd/spyder/branches{/branch}","tags_url":"https://api.github.com/repos/Nodd/spyder/tags","blobs_url":"https://api.github.com/repos/Nodd/spyder/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Nodd/spyder/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Nodd/spyder/git/refs{/sha}","trees_url":"https://api.github.com/repos/Nodd/spyder/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Nodd/spyder/statuses/{sha}","languages_url":"https://api.github.com/repos/Nodd/spyder/languages","stargazers_url":"https://api.github.com/repos/Nodd/spyder/stargazers","contributors_url":"https://api.github.com/repos/Nodd/spyder/contributors","subscribers_url":"https://api.github.com/repos/Nodd/spyder/subscribers","subscription_url":"https://api.github.com/repos/Nodd/spyder/subscription","commits_url":"https://api.github.com/repos/Nodd/spyder/commits{/sha}","git_commits_url":"https://api.github.com/repos/Nodd/spyder/git/commits{/sha}","comments_url":"https://api.github.com/repos/Nodd/spyder/comments{/number}","issue_comment_url":"https://api.github.com/repos/Nodd/spyder/issues/comments{/number}","contents_url":"https://api.github.com/repos/Nodd/spyder/contents/{+path}","compare_url":"https://api.github.com/repos/Nodd/spyder/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Nodd/spyder/merges","archive_url":"https://api.github.com/repos/Nodd/spyder/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Nodd/spyder/downloads","issues_url":"https://api.github.com/repos/Nodd/spyder/issues{/number}","pulls_url":"https://api.github.com/repos/Nodd/spyder/pulls{/number}","milestones_url":"https://api.github.com/repos/Nodd/spyder/milestones{/number}","notifications_url":"https://api.github.com/repos/Nodd/spyder/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Nodd/spyder/labels{/name}","releases_url":"https://api.github.com/repos/Nodd/spyder/releases{/id}","created_at":"2015-02-23T20:33:03Z","updated_at":"2015-04-26T12:52:06Z","pushed_at":"2015-04-26T13:39:35Z","git_url":"git://github.com/Nodd/spyder.git","ssh_url":"git@github.com:Nodd/spyder.git","clone_url":"https://github.com/Nodd/spyder.git","svn_url":"https://github.com/Nodd/spyder","homepage":"","size":20978,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"spyder-ide:master","ref":"master","sha":"52e39fe99c3591ca466e9a29367da9b7a63c23ab","user":{"login":"spyder-ide","id":1284937,"avatar_url":"https://avatars.githubusercontent.com/u/1284937?v=3","gravatar_id":"","url":"https://api.github.com/users/spyder-ide","html_url":"https://github.com/spyder-ide","followers_url":"https://api.github.com/users/spyder-ide/followers","following_url":"https://api.github.com/users/spyder-ide/following{/other_user}","gists_url":"https://api.github.com/users/spyder-ide/gists{/gist_id}","starred_url":"https://api.github.com/users/spyder-ide/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spyder-ide/subscriptions","organizations_url":"https://api.github.com/users/spyder-ide/orgs","repos_url":"https://api.github.com/users/spyder-ide/repos","events_url":"https://api.github.com/users/spyder-ide/events{/privacy}","received_events_url":"https://api.github.com/users/spyder-ide/received_events","type":"Organization","site_admin":false},"repo":{"id":30892477,"name":"spyder","full_name":"spyder-ide/spyder","owner":{"login":"spyder-ide","id":1284937,"avatar_url":"https://avatars.githubusercontent.com/u/1284937?v=3","gravatar_id":"","url":"https://api.github.com/users/spyder-ide","html_url":"https://github.com/spyder-ide","followers_url":"https://api.github.com/users/spyder-ide/followers","following_url":"https://api.github.com/users/spyder-ide/following{/other_user}","gists_url":"https://api.github.com/users/spyder-ide/gists{/gist_id}","starred_url":"https://api.github.com/users/spyder-ide/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/spyder-ide/subscriptions","organizations_url":"https://api.github.com/users/spyder-ide/orgs","repos_url":"https://api.github.com/users/spyder-ide/repos","events_url":"https://api.github.com/users/spyder-ide/events{/privacy}","received_events_url":"https://api.github.com/users/spyder-ide/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/spyder-ide/spyder","description":"Official repository for Spyder - The Scientific PYthon Development EnviRonment","fork":false,"url":"https://api.github.com/repos/spyder-ide/spyder","forks_url":"https://api.github.com/repos/spyder-ide/spyder/forks","keys_url":"https://api.github.com/repos/spyder-ide/spyder/keys{/key_id}","collaborators_url":"https://api.github.com/repos/spyder-ide/spyder/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/spyder-ide/spyder/teams","hooks_url":"https://api.github.com/repos/spyder-ide/spyder/hooks","issue_events_url":"https://api.github.com/repos/spyder-ide/spyder/issues/events{/number}","events_url":"https://api.github.com/repos/spyder-ide/spyder/events","assignees_url":"https://api.github.com/repos/spyder-ide/spyder/assignees{/user}","branches_url":"https://api.github.com/repos/spyder-ide/spyder/branches{/branch}","tags_url":"https://api.github.com/repos/spyder-ide/spyder/tags","blobs_url":"https://api.github.com/repos/spyder-ide/spyder/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/spyder-ide/spyder/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/spyder-ide/spyder/git/refs{/sha}","trees_url":"https://api.github.com/repos/spyder-ide/spyder/git/trees{/sha}","statuses_url":"https://api.github.com/repos/spyder-ide/spyder/statuses/{sha}","languages_url":"https://api.github.com/repos/spyder-ide/spyder/languages","stargazers_url":"https://api.github.com/repos/spyder-ide/spyder/stargazers","contributors_url":"https://api.github.com/repos/spyder-ide/spyder/contributors","subscribers_url":"https://api.github.com/repos/spyder-ide/spyder/subscribers","subscription_url":"https://api.github.com/repos/spyder-ide/spyder/subscription","commits_url":"https://api.github.com/repos/spyder-ide/spyder/commits{/sha}","git_commits_url":"https://api.github.com/repos/spyder-ide/spyder/git/commits{/sha}","comments_url":"https://api.github.com/repos/spyder-ide/spyder/comments{/number}","issue_comment_url":"https://api.github.com/repos/spyder-ide/spyder/issues/comments{/number}","contents_url":"https://api.github.com/repos/spyder-ide/spyder/contents/{+path}","compare_url":"https://api.github.com/repos/spyder-ide/spyder/compare/{base}...{head}","merges_url":"https://api.github.com/repos/spyder-ide/spyder/merges","archive_url":"https://api.github.com/repos/spyder-ide/spyder/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/spyder-ide/spyder/downloads","issues_url":"https://api.github.com/repos/spyder-ide/spyder/issues{/number}","pulls_url":"https://api.github.com/repos/spyder-ide/spyder/pulls{/number}","milestones_url":"https://api.github.com/repos/spyder-ide/spyder/milestones{/number}","notifications_url":"https://api.github.com/repos/spyder-ide/spyder/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/spyder-ide/spyder/labels{/name}","releases_url":"https://api.github.com/repos/spyder-ide/spyder/releases{/id}","created_at":"2015-02-16T22:49:48Z","updated_at":"2015-04-26T03:19:23Z","pushed_at":"2015-04-26T14:03:49Z","git_url":"git://github.com/spyder-ide/spyder.git","ssh_url":"git@github.com:spyder-ide/spyder.git","clone_url":"https://github.com/spyder-ide/spyder.git","svn_url":"https://github.com/spyder-ide/spyder","homepage":"","size":31137,"stargazers_count":236,"watchers_count":236,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":66,"mirror_url":null,"open_issues_count":482,"forks":66,"open_issues":482,"watchers":236,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/2362"},"html":{"href":"https://github.com/spyder-ide/spyder/pull/2362"},"issue":{"href":"https://api.github.com/repos/spyder-ide/spyder/issues/2362"},"comments":{"href":"https://api.github.com/repos/spyder-ide/spyder/issues/2362/comments"},"review_comments":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/2362/comments"},"review_comment":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/spyder-ide/spyder/pulls/2362/commits"},"statuses":{"href":"https://api.github.com/repos/spyder-ide/spyder/statuses/02098d31d4bb2b9723d09861eac3948294204305"}}}}