{"action":"created","comment":{"url":"https://api.github.com/repos/acquaman/acquaman/pulls/comments/48191478","id":48191478,"diff_hunk":"@@ -0,0 +1,363 @@\n+#include \"BioXASBiStateGroup.h\"\n+#include \"actions3/AMActionSupport.h\"\n+#include \"actions3/AMListAction3.h\"\n+\n+BioXASBiStateGroup::BioXASBiStateGroup(const QString &name, QObject *parent) :\n+\tAMEnumeratedControl(name, \"\", parent)\n+{\n+\n+}\n+\n+BioXASBiStateGroup::~BioXASBiStateGroup()\n+{\n+\n+}\n+\n+bool BioXASBiStateGroup::canMeasure() const\n+{\n+\tbool result = false;\n+\n+\tif (isConnected()) {\n+\n+\t\t// Iterate through the list of children, finding out if\n+\t\t// all can be measured.\n+\n+\t\tQList<AMControl*> children = childControls();\n+\n+\t\tif (children.count() > 0) {\n+\t\t\tbool measurable = true;\n+\n+\t\t\tfor (int i = 0, count = children.count(); i < count && measurable; i++) { // we want to stop if any one child is not measurable.\n+\t\t\t\tAMControl *child = children.at(i);\n+\n+\t\t\t\tif (child && child->canMeasure())\n+\t\t\t\t\tmeasurable = true;\n+\t\t\t\telse\n+\t\t\t\t\tmeasurable = false;\n+\t\t\t}\n+\n+\t\t\tresult = measurable;\n+\t\t}\n+\t}\n+\n+\treturn result;\n+}\n+\n+bool BioXASBiStateGroup::canMove() const\n+{\n+\tbool result = false;\n+\n+\tif (isConnected()) {\n+\n+\t\t// Iterate through the list of children, finding out if\n+\t\t// any can be moved.\n+\n+\t\tQList<AMControl*> children = childControls();\n+\n+\t\tif (children.count() > 0) {\n+\t\t\tbool movable = false;\n+\n+\t\t\tfor (int i = 0, count = children.count(); i < count && !movable; i++) { // we want to stop if we find one child that can be moved.\n+\t\t\t\tAMControl *child = children.at(i);\n+\n+\t\t\t\tif (child && child->canMove())\n+\t\t\t\t\tmovable = true;\n+\t\t\t\telse\n+\t\t\t\t\tmovable = false;\n+\t\t\t}\n+\n+\t\t\tresult = movable;\n+\t\t}\n+\t}\n+\n+\treturn result;\n+}\n+\n+bool BioXASBiStateGroup::canStop() const\n+{\n+\tbool result = false;\n+\n+\tif (isConnected()) {\n+\n+\t\t// Iterate through the list of children, finding out if\n+\t\t// those that can move can also be stopped.\n+\n+\t\tQList<AMControl*> children = childControls();\n+\n+\t\tif (children.count() > 0) {\n+\t\t\tbool childrenValid = true;\n+\t\t\tbool childrenStoppable = true;\n+\n+\t\t\tfor (int i = 0, count = children.count(); i < count && childrenValid && childrenStoppable; i++) { // we want to stop if we come across any invalid children or children that 'should' be stoppable but aren't.\n+\t\t\t\tAMControl *child = children.at(i);\n+\n+\t\t\t\tif (child) {\n+\t\t\t\t\tif (child->canMove() && !child->canStop()) // we want to know if we have any children that can move but can't be stopped. Potential problem!\n+\t\t\t\t\t\tchildrenStoppable = false;\n+\n+\t\t\t\t} else {\n+\t\t\t\t\tchildrenValid = false; // we want to know if we have any children that aren't valid. Another potential problem.\n+\t\t\t\t}\n+\t\t\t}\n+\n+\t\t\tresult = childrenValid && childrenStoppable;\n+\t\t}\n+\t}\n+\n+\treturn result;\n+}\n+\n+void BioXASBiStateGroup::updateConnected()\n+{\n+\tbool connected = false;\n+\n+\t// Iterate through list of children, finding out if\n+\t// all are connected.\n+\n+\tQList<AMControl*> children = childControls();\n+\n+\tif (children.count() > 0) {\n+\n+\t\tbool childrenConnected = true;\n+\n+\t\tfor (int i = 0, count = children.count(); i < count && childrenConnected; i++) { // we want to stop if any one child isn't connected.\n+\t\t\tAMControl *child = children.at(i);\n+\n+\t\t\tif (child && child->isConnected())\n+\t\t\t\tchildrenConnected = true;\n+\t\t\telse\n+\t\t\t\tchildrenConnected = false;\n+\t\t}\n+\n+\t\tconnected = childrenConnected;\n+\t}\n+\n+\tsetConnected(connected);\n+}\n+\n+void BioXASBiStateGroup::updateMoving()\n+{\n+\t// Iterate through list of children, finding out if\n+\t// any are moving.\n+\n+\tQList<AMControl*> children = childControls();\n+\n+\tif (children.count() > 0) {\n+\t\tbool moving = false;\n+\n+\t\tfor (int i = 0, count = children.count(); i < count && !moving; i++) { // we want to stop if any one child IS moving.\n+\t\t\tAMControl *child = children.at(i);\n+\n+\t\t\tif (child && child->isMoving())\n+\t\t\t\tmoving = true;\n+\t\t\telse\n+\t\t\t\tmoving = false;\n+\t\t}\n+\n+\t\tsetIsMoving(moving);\n+\t}\n+}\n+\n+bool BioXASBiStateGroup::addBiStateControl(AMControl *control, double state1Value, double state2Value)\n+{\n+\tbool result = false;\n+\n+\tif (control) {\n+\t\tcontrolState1ValueMap_.insert(control, state1Value);\n+\t\tcontrolState2ValueMap_.insert(control, state2Value);\n+\n+\t\taddChildControl(control);\n+\n+\t\tresult = true;\n+\t}\n+\n+\treturn result;\n+}\n+\n+bool BioXASBiStateGroup::removeBiStateControl(AMControl *control)\n+{\n+\tbool result = false;\n+\n+\tif ( control && (controlState1ValueMap_.contains(control) || controlState2ValueMap_.contains(control)) ) {\n+\t\tcontrolState1ValueMap_.remove(control);\n+\t\tcontrolState2ValueMap_.remove(control);\n+\n+\t\tremoveChildControl(control);\n+\n+\t\tresult = true;\n+\t}\n+\n+\treturn result;\n+}\n+\n+bool BioXASBiStateGroup::clearBiStateControls()\n+{\n+\tbool result = false;\n+\n+\tQList<AMControl*> children = childControls();\n+\n+\tif (children.count() > 0) {\n+\t\tforeach (AMControl *child, childControls())\n+\t\t\tremoveBiStateControl(child);\n+\n+\t\tresult = true;\n+\t}\n+\n+\treturn result;\n+}\n+\n+bool BioXASBiStateGroup::areChildrenState1() const\n+{\n+\tbool result = false;\n+\n+\t// Iterate through list of children, finding out if\n+\t// all are in state 1.\n+\n+\tQList<AMControl*> children = childControls();\n+\n+\tif (children.count() > 0) {\n+\t\tbool stateOK = true;\n+\n+\t\tfor (int i = 0, count = children.count(); i < count && stateOK; i++) { // we want to stop if any one child isn't ok.\n+\t\t\tAMControl *child = children.at(i);\n+\n+\t\t\tif (child && isChildState1(child))\n+\t\t\t\tstateOK = true;\n+\t\t\telse\n+\t\t\t\tstateOK = false;\n+\t\t}\n+\n+\t\tresult = stateOK;\n+\t}\n+\n+\treturn result;\n+}\n+\n+bool BioXASBiStateGroup::areChildrenState2() const\n+{\n+\tbool result = false;\n+\n+\t// Iterate through list of children, finding out if\n+\t// all are are state 2.\n+\n+\tQList<AMControl*> children = childControls();\n+\n+\tif (children.count() > 0) {\n+\t\tbool stateOK = true;\n+\n+\t\tfor (int i = 0, count = children.count(); i < count && stateOK; i++) { // we want to stop if any one child isn't ok.\n+\t\t\tAMControl *child = children.at(i);\n+\n+\t\t\tif (child && isChildState2(child))\n+\t\t\t\tstateOK = true;\n+\t\t\telse\n+\t\t\t\tstateOK = false;\n+\t\t}\n+\n+\t\tresult = stateOK;\n+\t}\n+\n+\treturn result;\n+}\n+\n+bool BioXASBiStateGroup::isChildState1(AMControl *child) const\n+{\n+\tbool result = false;\n+\n+\tif (child && controlState1ValueMap_.keys().contains(child)) {\n+\t\tif (child->value() == controlState1ValueMap_.value(child))\n+\t\t\tresult = true;\n+\t}\n+\n+\treturn result;\n+}\n+\n+bool BioXASBiStateGroup::isChildState2(AMControl *child) const\n+{\n+\tbool result = false;\n+\n+\tif (child && controlState2ValueMap_.keys().contains(child)) {\n+\t\tif (child->value() == controlState2ValueMap_.value(child))\n+\t\t\tresult = true;\n+\t}\n+\n+\treturn result;\n+}\n+\n+AMAction3* BioXASBiStateGroup::createMoveChildrenToState1Action()\n+{\n+\tAMListAction3 *moveChildren = new AMListAction3(new AMListActionInfo3(\"Moving bistate group.\", \"Moving bistate group.\"), AMListAction3::Parallel);\n+\n+\tforeach (AMControl *child, children_) {\n+\t\tAMAction3 *action = 0;\n+\n+\t\tif (child) {","path":"source/beamline/BioXAS/BioXASBiStateGroup.cpp","position":294,"original_position":294,"commit_id":"46eab4d3e553a0e4483537d6a7bea214cee5621f","original_commit_id":"46eab4d3e553a0e4483537d6a7bea214cee5621f","user":{"login":"dretrex","id":602741,"avatar_url":"https://avatars.githubusercontent.com/u/602741?v=3","gravatar_id":"","url":"https://api.github.com/users/dretrex","html_url":"https://github.com/dretrex","followers_url":"https://api.github.com/users/dretrex/followers","following_url":"https://api.github.com/users/dretrex/following{/other_user}","gists_url":"https://api.github.com/users/dretrex/gists{/gist_id}","starred_url":"https://api.github.com/users/dretrex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dretrex/subscriptions","organizations_url":"https://api.github.com/users/dretrex/orgs","repos_url":"https://api.github.com/users/dretrex/repos","events_url":"https://api.github.com/users/dretrex/events{/privacy}","received_events_url":"https://api.github.com/users/dretrex/received_events","type":"User","site_admin":false},"body":"Since this is a BioXAS class it is probably fine, but is it valid to assume that if you can't move that you just wait for it to go to a certain value?  There is probably an assumption made somewhere that makes sense for this situation, but I haven't noticed it yet.","created_at":"2015-12-21T21:02:22Z","updated_at":"2015-12-21T21:02:22Z","html_url":"https://github.com/acquaman/acquaman/pull/1803#discussion_r48191478","pull_request_url":"https://api.github.com/repos/acquaman/acquaman/pulls/1803","_links":{"self":{"href":"https://api.github.com/repos/acquaman/acquaman/pulls/comments/48191478"},"html":{"href":"https://github.com/acquaman/acquaman/pull/1803#discussion_r48191478"},"pull_request":{"href":"https://api.github.com/repos/acquaman/acquaman/pulls/1803"}}},"pull_request":{"url":"https://api.github.com/repos/acquaman/acquaman/pulls/1803","id":54043455,"html_url":"https://github.com/acquaman/acquaman/pull/1803","diff_url":"https://github.com/acquaman/acquaman/pull/1803.diff","patch_url":"https://github.com/acquaman/acquaman/pull/1803.patch","issue_url":"https://api.github.com/repos/acquaman/acquaman/issues/1803","number":1803,"state":"open","locked":false,"title":"Pull Request for Issue1630: creating beam on/off controls","user":{"login":"helfrij","id":5216607,"avatar_url":"https://avatars.githubusercontent.com/u/5216607?v=3","gravatar_id":"","url":"https://api.github.com/users/helfrij","html_url":"https://github.com/helfrij","followers_url":"https://api.github.com/users/helfrij/followers","following_url":"https://api.github.com/users/helfrij/following{/other_user}","gists_url":"https://api.github.com/users/helfrij/gists{/gist_id}","starred_url":"https://api.github.com/users/helfrij/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/helfrij/subscriptions","organizations_url":"https://api.github.com/users/helfrij/orgs","repos_url":"https://api.github.com/users/helfrij/repos","events_url":"https://api.github.com/users/helfrij/events{/privacy}","received_events_url":"https://api.github.com/users/helfrij/received_events","type":"User","site_admin":false},"body":"This pull request initially tackled this task by developing a series of subcontrols handled in separate requests: #1651, #1652, #1656. The class structure developed was pretty unwieldy, so it was refactored in a separate branch (https://github.com/acquaman/acquaman/tree/valvesRefactor). The new structure is as follows:\r\n- BioXASM1MirrorMask ~ inherits from BioXASBeamlineComponent, contains information about the M1 mirror mask: the upper blade control and the current state.\r\n\r\n- BioXASM1MirrorMaskState ~ inherits from AMSingleEnumeratedControl, reports the current Open/Closed state of the mirror mask. This control presently supports closing only.\r\n\r\n- BioXASSSRLMonochromatorMask ~ inherits from BioXASBeamlineComponent, contains information about the mono mask: the upper and lower blade motors and the current state.\r\n\r\n- BioXASSSRLMonochromatorMaskState ~ inherits from AMSingleEnumeratedControl, reports the current Open/Closed state of the mask. This control presently supports closing only.\r\n\r\n- BioXASBiStateGroup ~ inherits from AMEnumeratedControl. A general kind of bi-state control that can determine the current state or move to a new state by mapping controls to appropriate bistate values.\r\n\r\n  - BioXASValves ~ inherits from BioXASBiStateGroup. Provides general group functionality specific to valves. Can recognize Open/Closed states, but only moves to Open state.\r\n\r\n    - BioXAS{FrontEnd, Side, Main, Imaging, Master}Valves ~ inherits from BioXASValves, contains instances of specific valves in that particular area. Master valves has instances of all valves.\r\n\r\n  - BioXASShutters ~ inherits from BioXASBiStateGroup. Provides general group functionality specific to shutters. Can recognize Open/Closed states, but only moves to Open state.\r\n\r\n    - BioXASFrontEndShutters ~ inherits from BioXASShutters, contains instances of the front-end shutters.\r\n\r\n  - BioXASBeamStatus ~ inherits from BioXASBiStateGroup. Provides general group functionality specific to beam status. Can recognize On/Off states, but is read-only by default (for now).\r\n\r\n    - BioXASFrontEndBeamStatus ~ inherits from BioXASBeamStatus, takes information about the front end valves and shutters to determine the beam status for in the front-end.\r\n\r\n      - BioXASSidePOEBeamStatus ~ inherits from BioXASFrontEndBeamStatus, considers front-end information as well as the mirror mask and mono mask to determine the beam status for the Side POE.\r\n\r\n        - BioXASSideSOEBeamStatus ~ inherits from BioXASSidePOEBeamStatus, considers front-end and POE information as well as the endstation shutter to determine the beam status for the Side SOE.\r\n\r\n          - BioXASSideBeamStatus ~ inherits from BioXASSideSOEBeamStatus, considers same information as the Side SOE status but also contains instances of the front-end, POE, and SOE controls. To identify the beam status, only the SideBeamStatus needs to be created.\r\n\r\nThe result is a collection of largely read-only controls for the front-end and BioXAS Side. Main has access to the front-end controls, but no Main-specific work has been done yet. I expect it would follow the same structure as Side pretty closely.\r\n","created_at":"2015-12-17T22:54:34Z","updated_at":"2015-12-21T21:02:22Z","closed_at":null,"merged_at":null,"merge_commit_sha":"01f7f6363688e55fcd95ce72d0dd98ceadbba2e0","assignee":{"login":"dretrex","id":602741,"avatar_url":"https://avatars.githubusercontent.com/u/602741?v=3","gravatar_id":"","url":"https://api.github.com/users/dretrex","html_url":"https://github.com/dretrex","followers_url":"https://api.github.com/users/dretrex/followers","following_url":"https://api.github.com/users/dretrex/following{/other_user}","gists_url":"https://api.github.com/users/dretrex/gists{/gist_id}","starred_url":"https://api.github.com/users/dretrex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dretrex/subscriptions","organizations_url":"https://api.github.com/users/dretrex/orgs","repos_url":"https://api.github.com/users/dretrex/repos","events_url":"https://api.github.com/users/dretrex/events{/privacy}","received_events_url":"https://api.github.com/users/dretrex/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/acquaman/acquaman/pulls/1803/commits","review_comments_url":"https://api.github.com/repos/acquaman/acquaman/pulls/1803/comments","review_comment_url":"https://api.github.com/repos/acquaman/acquaman/pulls/comments{/number}","comments_url":"https://api.github.com/repos/acquaman/acquaman/issues/1803/comments","statuses_url":"https://api.github.com/repos/acquaman/acquaman/statuses/46eab4d3e553a0e4483537d6a7bea214cee5621f","head":{"label":"acquaman:Issue1630","ref":"Issue1630","sha":"46eab4d3e553a0e4483537d6a7bea214cee5621f","user":{"login":"acquaman","id":602716,"avatar_url":"https://avatars.githubusercontent.com/u/602716?v=3","gravatar_id":"","url":"https://api.github.com/users/acquaman","html_url":"https://github.com/acquaman","followers_url":"https://api.github.com/users/acquaman/followers","following_url":"https://api.github.com/users/acquaman/following{/other_user}","gists_url":"https://api.github.com/users/acquaman/gists{/gist_id}","starred_url":"https://api.github.com/users/acquaman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acquaman/subscriptions","organizations_url":"https://api.github.com/users/acquaman/orgs","repos_url":"https://api.github.com/users/acquaman/repos","events_url":"https://api.github.com/users/acquaman/events{/privacy}","received_events_url":"https://api.github.com/users/acquaman/received_events","type":"Organization","site_admin":false},"repo":{"id":1333343,"name":"acquaman","full_name":"acquaman/acquaman","owner":{"login":"acquaman","id":602716,"avatar_url":"https://avatars.githubusercontent.com/u/602716?v=3","gravatar_id":"","url":"https://api.github.com/users/acquaman","html_url":"https://github.com/acquaman","followers_url":"https://api.github.com/users/acquaman/followers","following_url":"https://api.github.com/users/acquaman/following{/other_user}","gists_url":"https://api.github.com/users/acquaman/gists{/gist_id}","starred_url":"https://api.github.com/users/acquaman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acquaman/subscriptions","organizations_url":"https://api.github.com/users/acquaman/orgs","repos_url":"https://api.github.com/users/acquaman/repos","events_url":"https://api.github.com/users/acquaman/events{/privacy}","received_events_url":"https://api.github.com/users/acquaman/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/acquaman/acquaman","description":"Acquisition and Data Management for Big Science","fork":false,"url":"https://api.github.com/repos/acquaman/acquaman","forks_url":"https://api.github.com/repos/acquaman/acquaman/forks","keys_url":"https://api.github.com/repos/acquaman/acquaman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/acquaman/acquaman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/acquaman/acquaman/teams","hooks_url":"https://api.github.com/repos/acquaman/acquaman/hooks","issue_events_url":"https://api.github.com/repos/acquaman/acquaman/issues/events{/number}","events_url":"https://api.github.com/repos/acquaman/acquaman/events","assignees_url":"https://api.github.com/repos/acquaman/acquaman/assignees{/user}","branches_url":"https://api.github.com/repos/acquaman/acquaman/branches{/branch}","tags_url":"https://api.github.com/repos/acquaman/acquaman/tags","blobs_url":"https://api.github.com/repos/acquaman/acquaman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/acquaman/acquaman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/acquaman/acquaman/git/refs{/sha}","trees_url":"https://api.github.com/repos/acquaman/acquaman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/acquaman/acquaman/statuses/{sha}","languages_url":"https://api.github.com/repos/acquaman/acquaman/languages","stargazers_url":"https://api.github.com/repos/acquaman/acquaman/stargazers","contributors_url":"https://api.github.com/repos/acquaman/acquaman/contributors","subscribers_url":"https://api.github.com/repos/acquaman/acquaman/subscribers","subscription_url":"https://api.github.com/repos/acquaman/acquaman/subscription","commits_url":"https://api.github.com/repos/acquaman/acquaman/commits{/sha}","git_commits_url":"https://api.github.com/repos/acquaman/acquaman/git/commits{/sha}","comments_url":"https://api.github.com/repos/acquaman/acquaman/comments{/number}","issue_comment_url":"https://api.github.com/repos/acquaman/acquaman/issues/comments{/number}","contents_url":"https://api.github.com/repos/acquaman/acquaman/contents/{+path}","compare_url":"https://api.github.com/repos/acquaman/acquaman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/acquaman/acquaman/merges","archive_url":"https://api.github.com/repos/acquaman/acquaman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/acquaman/acquaman/downloads","issues_url":"https://api.github.com/repos/acquaman/acquaman/issues{/number}","pulls_url":"https://api.github.com/repos/acquaman/acquaman/pulls{/number}","milestones_url":"https://api.github.com/repos/acquaman/acquaman/milestones{/number}","notifications_url":"https://api.github.com/repos/acquaman/acquaman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/acquaman/acquaman/labels{/name}","releases_url":"https://api.github.com/repos/acquaman/acquaman/releases{/id}","created_at":"2011-02-06T02:19:01Z","updated_at":"2015-10-19T00:50:56Z","pushed_at":"2015-12-19T00:23:22Z","git_url":"git://github.com/acquaman/acquaman.git","ssh_url":"git@github.com:acquaman/acquaman.git","clone_url":"https://github.com/acquaman/acquaman.git","svn_url":"https://github.com/acquaman/acquaman","homepage":"","size":140863,"stargazers_count":9,"watchers_count":9,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":169,"forks":2,"open_issues":169,"watchers":9,"default_branch":"master"}},"base":{"label":"acquaman:masterBioXAS","ref":"masterBioXAS","sha":"7098616e1b92f60e68ad667f72e3209ae4b864e4","user":{"login":"acquaman","id":602716,"avatar_url":"https://avatars.githubusercontent.com/u/602716?v=3","gravatar_id":"","url":"https://api.github.com/users/acquaman","html_url":"https://github.com/acquaman","followers_url":"https://api.github.com/users/acquaman/followers","following_url":"https://api.github.com/users/acquaman/following{/other_user}","gists_url":"https://api.github.com/users/acquaman/gists{/gist_id}","starred_url":"https://api.github.com/users/acquaman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acquaman/subscriptions","organizations_url":"https://api.github.com/users/acquaman/orgs","repos_url":"https://api.github.com/users/acquaman/repos","events_url":"https://api.github.com/users/acquaman/events{/privacy}","received_events_url":"https://api.github.com/users/acquaman/received_events","type":"Organization","site_admin":false},"repo":{"id":1333343,"name":"acquaman","full_name":"acquaman/acquaman","owner":{"login":"acquaman","id":602716,"avatar_url":"https://avatars.githubusercontent.com/u/602716?v=3","gravatar_id":"","url":"https://api.github.com/users/acquaman","html_url":"https://github.com/acquaman","followers_url":"https://api.github.com/users/acquaman/followers","following_url":"https://api.github.com/users/acquaman/following{/other_user}","gists_url":"https://api.github.com/users/acquaman/gists{/gist_id}","starred_url":"https://api.github.com/users/acquaman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/acquaman/subscriptions","organizations_url":"https://api.github.com/users/acquaman/orgs","repos_url":"https://api.github.com/users/acquaman/repos","events_url":"https://api.github.com/users/acquaman/events{/privacy}","received_events_url":"https://api.github.com/users/acquaman/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/acquaman/acquaman","description":"Acquisition and Data Management for Big Science","fork":false,"url":"https://api.github.com/repos/acquaman/acquaman","forks_url":"https://api.github.com/repos/acquaman/acquaman/forks","keys_url":"https://api.github.com/repos/acquaman/acquaman/keys{/key_id}","collaborators_url":"https://api.github.com/repos/acquaman/acquaman/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/acquaman/acquaman/teams","hooks_url":"https://api.github.com/repos/acquaman/acquaman/hooks","issue_events_url":"https://api.github.com/repos/acquaman/acquaman/issues/events{/number}","events_url":"https://api.github.com/repos/acquaman/acquaman/events","assignees_url":"https://api.github.com/repos/acquaman/acquaman/assignees{/user}","branches_url":"https://api.github.com/repos/acquaman/acquaman/branches{/branch}","tags_url":"https://api.github.com/repos/acquaman/acquaman/tags","blobs_url":"https://api.github.com/repos/acquaman/acquaman/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/acquaman/acquaman/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/acquaman/acquaman/git/refs{/sha}","trees_url":"https://api.github.com/repos/acquaman/acquaman/git/trees{/sha}","statuses_url":"https://api.github.com/repos/acquaman/acquaman/statuses/{sha}","languages_url":"https://api.github.com/repos/acquaman/acquaman/languages","stargazers_url":"https://api.github.com/repos/acquaman/acquaman/stargazers","contributors_url":"https://api.github.com/repos/acquaman/acquaman/contributors","subscribers_url":"https://api.github.com/repos/acquaman/acquaman/subscribers","subscription_url":"https://api.github.com/repos/acquaman/acquaman/subscription","commits_url":"https://api.github.com/repos/acquaman/acquaman/commits{/sha}","git_commits_url":"https://api.github.com/repos/acquaman/acquaman/git/commits{/sha}","comments_url":"https://api.github.com/repos/acquaman/acquaman/comments{/number}","issue_comment_url":"https://api.github.com/repos/acquaman/acquaman/issues/comments{/number}","contents_url":"https://api.github.com/repos/acquaman/acquaman/contents/{+path}","compare_url":"https://api.github.com/repos/acquaman/acquaman/compare/{base}...{head}","merges_url":"https://api.github.com/repos/acquaman/acquaman/merges","archive_url":"https://api.github.com/repos/acquaman/acquaman/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/acquaman/acquaman/downloads","issues_url":"https://api.github.com/repos/acquaman/acquaman/issues{/number}","pulls_url":"https://api.github.com/repos/acquaman/acquaman/pulls{/number}","milestones_url":"https://api.github.com/repos/acquaman/acquaman/milestones{/number}","notifications_url":"https://api.github.com/repos/acquaman/acquaman/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/acquaman/acquaman/labels{/name}","releases_url":"https://api.github.com/repos/acquaman/acquaman/releases{/id}","created_at":"2011-02-06T02:19:01Z","updated_at":"2015-10-19T00:50:56Z","pushed_at":"2015-12-19T00:23:22Z","git_url":"git://github.com/acquaman/acquaman.git","ssh_url":"git@github.com:acquaman/acquaman.git","clone_url":"https://github.com/acquaman/acquaman.git","svn_url":"https://github.com/acquaman/acquaman","homepage":"","size":140863,"stargazers_count":9,"watchers_count":9,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":169,"forks":2,"open_issues":169,"watchers":9,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/acquaman/acquaman/pulls/1803"},"html":{"href":"https://github.com/acquaman/acquaman/pull/1803"},"issue":{"href":"https://api.github.com/repos/acquaman/acquaman/issues/1803"},"comments":{"href":"https://api.github.com/repos/acquaman/acquaman/issues/1803/comments"},"review_comments":{"href":"https://api.github.com/repos/acquaman/acquaman/pulls/1803/comments"},"review_comment":{"href":"https://api.github.com/repos/acquaman/acquaman/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/acquaman/acquaman/pulls/1803/commits"},"statuses":{"href":"https://api.github.com/repos/acquaman/acquaman/statuses/46eab4d3e553a0e4483537d6a7bea214cee5621f"}}}}