{"action":"closed","number":190,"pull_request":{"url":"https://api.github.com/repos/sherpa/sherpa/pulls/190","id":61770510,"html_url":"https://github.com/sherpa/sherpa/pull/190","diff_url":"https://github.com/sherpa/sherpa/pull/190.diff","patch_url":"https://github.com/sherpa/sherpa/pull/190.patch","issue_url":"https://api.github.com/repos/sherpa/sherpa/issues/190","number":190,"state":"closed","locked":false,"title":"fix #22 - datastack can be used if no plotter available","user":{"login":"olaurino","id":5692321,"avatar_url":"https://avatars.githubusercontent.com/u/5692321?v=3","gravatar_id":"","url":"https://api.github.com/users/olaurino","html_url":"https://github.com/olaurino","followers_url":"https://api.github.com/users/olaurino/followers","following_url":"https://api.github.com/users/olaurino/following{/other_user}","gists_url":"https://api.github.com/users/olaurino/gists{/gist_id}","starred_url":"https://api.github.com/users/olaurino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olaurino/subscriptions","organizations_url":"https://api.github.com/users/olaurino/orgs","repos_url":"https://api.github.com/users/olaurino/repos","events_url":"https://api.github.com/users/olaurino/events{/privacy}","received_events_url":"https://api.github.com/users/olaurino/received_events","type":"User","site_admin":false},"body":"# Release Note\r\nFix #22 - The datastack package can now be used even if there is no available plotting backend. In this case, plotting functions will not be available, but the rest of the datastack functionality will.\r\n\r\n# Description\r\nThe main goal of this PR is to fix #22. However, it achieves other goals as well. In particular:\r\n  * the package has been refactored to be more testable and modular, encapsulating each backend extension into its own module.\r\n  * a new `sherpa.utils.logging` provide the utility function `config_logger` that allows to easily config a custom logger. The code is rather similar to the original function defined in the datastack package, but it can now be used by other components.\r\n  * a new `public` decorator allows to dynamically define the `__all__` variable for a module.\r\n  * datastack wrapper functions now properly override the documentation of the wrapped function.\r\n\r\n# Testing\r\nThis PR was supposed to be accompanied by proper tests. However, these tests use the `mock` library and some advanced feature of `pytest` in order to simulate the precence or absence of the optional dependencies backing up sherpa back-ends. Since these new OTS have not yet been approved for inclusion in CIAO, I am leaving the tests out. I did run the tests locally, and they are included in commit 5f35850. The commit is available in the repository, and will be run with by travis to prove that the tests are successful, at least in standalone mode.","created_at":"2016-03-04T21:00:03Z","updated_at":"2016-03-30T02:08:10Z","closed_at":"2016-03-30T02:08:10Z","merged_at":"2016-03-30T02:08:10Z","merge_commit_sha":"2366c8ae2888aa1ff8e896b77d6a0151a2bb10c4","assignee":null,"milestone":{"url":"https://api.github.com/repos/sherpa/sherpa/milestones/2","html_url":"https://github.com/sherpa/sherpa/milestones/4.8.1","labels_url":"https://api.github.com/repos/sherpa/sherpa/milestones/2/labels","id":1158745,"number":2,"title":"4.8.1","description":"","creator":{"login":"olaurino","id":5692321,"avatar_url":"https://avatars.githubusercontent.com/u/5692321?v=3","gravatar_id":"","url":"https://api.github.com/users/olaurino","html_url":"https://github.com/olaurino","followers_url":"https://api.github.com/users/olaurino/followers","following_url":"https://api.github.com/users/olaurino/following{/other_user}","gists_url":"https://api.github.com/users/olaurino/gists{/gist_id}","starred_url":"https://api.github.com/users/olaurino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olaurino/subscriptions","organizations_url":"https://api.github.com/users/olaurino/orgs","repos_url":"https://api.github.com/users/olaurino/repos","events_url":"https://api.github.com/users/olaurino/events{/privacy}","received_events_url":"https://api.github.com/users/olaurino/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":26,"state":"open","created_at":"2015-06-10T14:46:15Z","updated_at":"2016-03-30T02:08:10Z","due_on":"2016-04-15T04:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/sherpa/sherpa/pulls/190/commits","review_comments_url":"https://api.github.com/repos/sherpa/sherpa/pulls/190/comments","review_comment_url":"https://api.github.com/repos/sherpa/sherpa/pulls/comments{/number}","comments_url":"https://api.github.com/repos/sherpa/sherpa/issues/190/comments","statuses_url":"https://api.github.com/repos/sherpa/sherpa/statuses/2366c8ae2888aa1ff8e896b77d6a0151a2bb10c4","head":{"label":"sherpa:feature/datastack-backend-support","ref":"feature/datastack-backend-support","sha":"2366c8ae2888aa1ff8e896b77d6a0151a2bb10c4","user":{"login":"sherpa","id":7264900,"avatar_url":"https://avatars.githubusercontent.com/u/7264900?v=3","gravatar_id":"","url":"https://api.github.com/users/sherpa","html_url":"https://github.com/sherpa","followers_url":"https://api.github.com/users/sherpa/followers","following_url":"https://api.github.com/users/sherpa/following{/other_user}","gists_url":"https://api.github.com/users/sherpa/gists{/gist_id}","starred_url":"https://api.github.com/users/sherpa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sherpa/subscriptions","organizations_url":"https://api.github.com/users/sherpa/orgs","repos_url":"https://api.github.com/users/sherpa/repos","events_url":"https://api.github.com/users/sherpa/events{/privacy}","received_events_url":"https://api.github.com/users/sherpa/received_events","type":"Organization","site_admin":false},"repo":{"id":18777006,"name":"sherpa","full_name":"sherpa/sherpa","owner":{"login":"sherpa","id":7264900,"avatar_url":"https://avatars.githubusercontent.com/u/7264900?v=3","gravatar_id":"","url":"https://api.github.com/users/sherpa","html_url":"https://github.com/sherpa","followers_url":"https://api.github.com/users/sherpa/followers","following_url":"https://api.github.com/users/sherpa/following{/other_user}","gists_url":"https://api.github.com/users/sherpa/gists{/gist_id}","starred_url":"https://api.github.com/users/sherpa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sherpa/subscriptions","organizations_url":"https://api.github.com/users/sherpa/orgs","repos_url":"https://api.github.com/users/sherpa/repos","events_url":"https://api.github.com/users/sherpa/events{/privacy}","received_events_url":"https://api.github.com/users/sherpa/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sherpa/sherpa","description":"Sherpa is a modeling and fitting application for Python","fork":false,"url":"https://api.github.com/repos/sherpa/sherpa","forks_url":"https://api.github.com/repos/sherpa/sherpa/forks","keys_url":"https://api.github.com/repos/sherpa/sherpa/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sherpa/sherpa/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sherpa/sherpa/teams","hooks_url":"https://api.github.com/repos/sherpa/sherpa/hooks","issue_events_url":"https://api.github.com/repos/sherpa/sherpa/issues/events{/number}","events_url":"https://api.github.com/repos/sherpa/sherpa/events","assignees_url":"https://api.github.com/repos/sherpa/sherpa/assignees{/user}","branches_url":"https://api.github.com/repos/sherpa/sherpa/branches{/branch}","tags_url":"https://api.github.com/repos/sherpa/sherpa/tags","blobs_url":"https://api.github.com/repos/sherpa/sherpa/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sherpa/sherpa/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sherpa/sherpa/git/refs{/sha}","trees_url":"https://api.github.com/repos/sherpa/sherpa/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sherpa/sherpa/statuses/{sha}","languages_url":"https://api.github.com/repos/sherpa/sherpa/languages","stargazers_url":"https://api.github.com/repos/sherpa/sherpa/stargazers","contributors_url":"https://api.github.com/repos/sherpa/sherpa/contributors","subscribers_url":"https://api.github.com/repos/sherpa/sherpa/subscribers","subscription_url":"https://api.github.com/repos/sherpa/sherpa/subscription","commits_url":"https://api.github.com/repos/sherpa/sherpa/commits{/sha}","git_commits_url":"https://api.github.com/repos/sherpa/sherpa/git/commits{/sha}","comments_url":"https://api.github.com/repos/sherpa/sherpa/comments{/number}","issue_comment_url":"https://api.github.com/repos/sherpa/sherpa/issues/comments{/number}","contents_url":"https://api.github.com/repos/sherpa/sherpa/contents/{+path}","compare_url":"https://api.github.com/repos/sherpa/sherpa/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sherpa/sherpa/merges","archive_url":"https://api.github.com/repos/sherpa/sherpa/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sherpa/sherpa/downloads","issues_url":"https://api.github.com/repos/sherpa/sherpa/issues{/number}","pulls_url":"https://api.github.com/repos/sherpa/sherpa/pulls{/number}","milestones_url":"https://api.github.com/repos/sherpa/sherpa/milestones{/number}","notifications_url":"https://api.github.com/repos/sherpa/sherpa/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sherpa/sherpa/labels{/name}","releases_url":"https://api.github.com/repos/sherpa/sherpa/releases{/id}","deployments_url":"https://api.github.com/repos/sherpa/sherpa/deployments","created_at":"2014-04-14T21:13:46Z","updated_at":"2016-01-29T02:59:47Z","pushed_at":"2016-03-30T02:08:09Z","git_url":"git://github.com/sherpa/sherpa.git","ssh_url":"git@github.com:sherpa/sherpa.git","clone_url":"https://github.com/sherpa/sherpa.git","svn_url":"https://github.com/sherpa/sherpa","homepage":"http://cxc.cfa.harvard.edu/contrib/sherpa","size":16753,"stargazers_count":17,"watchers_count":17,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":17,"mirror_url":null,"open_issues_count":51,"forks":17,"open_issues":51,"watchers":17,"default_branch":"master"}},"base":{"label":"sherpa:master","ref":"master","sha":"40209d87144caa90269b1f85c714e96a03462547","user":{"login":"sherpa","id":7264900,"avatar_url":"https://avatars.githubusercontent.com/u/7264900?v=3","gravatar_id":"","url":"https://api.github.com/users/sherpa","html_url":"https://github.com/sherpa","followers_url":"https://api.github.com/users/sherpa/followers","following_url":"https://api.github.com/users/sherpa/following{/other_user}","gists_url":"https://api.github.com/users/sherpa/gists{/gist_id}","starred_url":"https://api.github.com/users/sherpa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sherpa/subscriptions","organizations_url":"https://api.github.com/users/sherpa/orgs","repos_url":"https://api.github.com/users/sherpa/repos","events_url":"https://api.github.com/users/sherpa/events{/privacy}","received_events_url":"https://api.github.com/users/sherpa/received_events","type":"Organization","site_admin":false},"repo":{"id":18777006,"name":"sherpa","full_name":"sherpa/sherpa","owner":{"login":"sherpa","id":7264900,"avatar_url":"https://avatars.githubusercontent.com/u/7264900?v=3","gravatar_id":"","url":"https://api.github.com/users/sherpa","html_url":"https://github.com/sherpa","followers_url":"https://api.github.com/users/sherpa/followers","following_url":"https://api.github.com/users/sherpa/following{/other_user}","gists_url":"https://api.github.com/users/sherpa/gists{/gist_id}","starred_url":"https://api.github.com/users/sherpa/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sherpa/subscriptions","organizations_url":"https://api.github.com/users/sherpa/orgs","repos_url":"https://api.github.com/users/sherpa/repos","events_url":"https://api.github.com/users/sherpa/events{/privacy}","received_events_url":"https://api.github.com/users/sherpa/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/sherpa/sherpa","description":"Sherpa is a modeling and fitting application for Python","fork":false,"url":"https://api.github.com/repos/sherpa/sherpa","forks_url":"https://api.github.com/repos/sherpa/sherpa/forks","keys_url":"https://api.github.com/repos/sherpa/sherpa/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sherpa/sherpa/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sherpa/sherpa/teams","hooks_url":"https://api.github.com/repos/sherpa/sherpa/hooks","issue_events_url":"https://api.github.com/repos/sherpa/sherpa/issues/events{/number}","events_url":"https://api.github.com/repos/sherpa/sherpa/events","assignees_url":"https://api.github.com/repos/sherpa/sherpa/assignees{/user}","branches_url":"https://api.github.com/repos/sherpa/sherpa/branches{/branch}","tags_url":"https://api.github.com/repos/sherpa/sherpa/tags","blobs_url":"https://api.github.com/repos/sherpa/sherpa/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sherpa/sherpa/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sherpa/sherpa/git/refs{/sha}","trees_url":"https://api.github.com/repos/sherpa/sherpa/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sherpa/sherpa/statuses/{sha}","languages_url":"https://api.github.com/repos/sherpa/sherpa/languages","stargazers_url":"https://api.github.com/repos/sherpa/sherpa/stargazers","contributors_url":"https://api.github.com/repos/sherpa/sherpa/contributors","subscribers_url":"https://api.github.com/repos/sherpa/sherpa/subscribers","subscription_url":"https://api.github.com/repos/sherpa/sherpa/subscription","commits_url":"https://api.github.com/repos/sherpa/sherpa/commits{/sha}","git_commits_url":"https://api.github.com/repos/sherpa/sherpa/git/commits{/sha}","comments_url":"https://api.github.com/repos/sherpa/sherpa/comments{/number}","issue_comment_url":"https://api.github.com/repos/sherpa/sherpa/issues/comments{/number}","contents_url":"https://api.github.com/repos/sherpa/sherpa/contents/{+path}","compare_url":"https://api.github.com/repos/sherpa/sherpa/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sherpa/sherpa/merges","archive_url":"https://api.github.com/repos/sherpa/sherpa/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sherpa/sherpa/downloads","issues_url":"https://api.github.com/repos/sherpa/sherpa/issues{/number}","pulls_url":"https://api.github.com/repos/sherpa/sherpa/pulls{/number}","milestones_url":"https://api.github.com/repos/sherpa/sherpa/milestones{/number}","notifications_url":"https://api.github.com/repos/sherpa/sherpa/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sherpa/sherpa/labels{/name}","releases_url":"https://api.github.com/repos/sherpa/sherpa/releases{/id}","deployments_url":"https://api.github.com/repos/sherpa/sherpa/deployments","created_at":"2014-04-14T21:13:46Z","updated_at":"2016-01-29T02:59:47Z","pushed_at":"2016-03-30T02:08:09Z","git_url":"git://github.com/sherpa/sherpa.git","ssh_url":"git@github.com:sherpa/sherpa.git","clone_url":"https://github.com/sherpa/sherpa.git","svn_url":"https://github.com/sherpa/sherpa","homepage":"http://cxc.cfa.harvard.edu/contrib/sherpa","size":16753,"stargazers_count":17,"watchers_count":17,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":17,"mirror_url":null,"open_issues_count":51,"forks":17,"open_issues":51,"watchers":17,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/sherpa/sherpa/pulls/190"},"html":{"href":"https://github.com/sherpa/sherpa/pull/190"},"issue":{"href":"https://api.github.com/repos/sherpa/sherpa/issues/190"},"comments":{"href":"https://api.github.com/repos/sherpa/sherpa/issues/190/comments"},"review_comments":{"href":"https://api.github.com/repos/sherpa/sherpa/pulls/190/comments"},"review_comment":{"href":"https://api.github.com/repos/sherpa/sherpa/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/sherpa/sherpa/pulls/190/commits"},"statuses":{"href":"https://api.github.com/repos/sherpa/sherpa/statuses/2366c8ae2888aa1ff8e896b77d6a0151a2bb10c4"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"olaurino","id":5692321,"avatar_url":"https://avatars.githubusercontent.com/u/5692321?v=3","gravatar_id":"","url":"https://api.github.com/users/olaurino","html_url":"https://github.com/olaurino","followers_url":"https://api.github.com/users/olaurino/followers","following_url":"https://api.github.com/users/olaurino/following{/other_user}","gists_url":"https://api.github.com/users/olaurino/gists{/gist_id}","starred_url":"https://api.github.com/users/olaurino/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olaurino/subscriptions","organizations_url":"https://api.github.com/users/olaurino/orgs","repos_url":"https://api.github.com/users/olaurino/repos","events_url":"https://api.github.com/users/olaurino/events{/privacy}","received_events_url":"https://api.github.com/users/olaurino/received_events","type":"User","site_admin":false},"comments":2,"review_comments":0,"commits":1,"additions":1414,"deletions":852,"changed_files":19}}