" \"It allows users of my projects to express thanks/appreciation\",\r\n",
" \"Sponsorship can motivate my future OSS contribution\",\r\n",
" \"Side income for OSS contribution\",\r\n",
" \"It can reflect community recognition for my work\",\r\n",
" \"Just for fun\",\r\n",
" \"I deserve to be rewarded for my past OSS contribution\",\r\n",
" \"I am able to prioritize the requirements of sponsors (e.g., fixing bugs)\",\r\n",
" \"It’s a way for me to make a living\",\r\n",
" \"Other\"\r\n",
"]\r\n",
"\r\n",
"cur.execute(\"select count(distinct login) as num from questionnaire_results_maintainer_2_set_up_reasons where value is not null\")\r\n",
"all_num = cur.fetchone()[\"num\"]\r\n",
"\r\n",
"for reason in all_reasons:\r\n",
" if reason == \"Other\":\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_maintainer_2_set_up_reasons where value like 'Other (please specify)%'\")\r\n",
" num = cur.fetchone()[\"num\"]\r\n",
" else:\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_maintainer_2_set_up_reasons where value=%s\", (reason,))\r\n",
" \"Because I benefit from the developer’s projects\",\r\n",
" \"To encourage the developer to continue the contribution\",\r\n",
" \"To show my recognition of the developer’s work\",\r\n",
" \"Because I’m interested in the developer’s projects\",\r\n",
" \"To motivate the developer to work harder on a specific feature\",\r\n",
" \"Because I know the developer\",\r\n",
" \"Other\"\r\n",
"]\r\n",
"\r\n",
"cur.execute(\"select count(distinct login) as num from questionnaire_results_sponsor_2_sponsor_reasons where value is not null\")\r\n",
"all_num = cur.fetchone()[\"num\"]\r\n",
"\r\n",
"for reason in all_reasons:\r\n",
" if reason == \"Other\":\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_sponsor_2_sponsor_reasons where value like 'Other (please specify)%'\")\r\n",
" num = cur.fetchone()[\"num\"]\r\n",
" else:\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_sponsor_2_sponsor_reasons where value=%s\", (reason,))\r\n",
"cur.execute(\"select count(distinct login) as num from questionnaire_results_others_2_not_set_reasons where value is not null\")\r\n",
"all_num = cur.fetchone()[\"num\"]\r\n",
"\r\n",
"for reason in all_reasons:\r\n",
" if reason == \"Other\":\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_others_2_not_set_reasons where value like 'Other (please specify)%'\")\r\n",
" num = cur.fetchone()[\"num\"]\r\n",
" else:\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_others_2_not_set_reasons where value=%s\", (reason,))\r\n",
"<ipython-input-1-83ddfca3f4c1>:65: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequences (which is a list-or-tuple of lists-or-tuples-or ndarrays with different lengths or shapes) is deprecated. If you meant to do this, you must specify 'dtype=object' when creating the ndarray\n",
"[{'name': 'Developer working in industry'}, {'name': 'Student'}, {'name': 'Academic researcher'}, {'name': 'Full time independent developer'}, {'name': 'Other_1'}, {'name': 'Never heard of it'}, {'name': 'My work is not worth being sponsored'}, {'name': 'It’s cumbersome'}, {'name': 'I contribute to OSS not for money'}, {'name': 'No need to be sponsored'}, {'name': 'Other_2'}, {'name': 'Not available in my region'}]\n",
"[{'source': 'Developer working in industry', 'target': 'Never heard of it', 'value': 29}, {'source': 'Developer working in industry', 'target': 'My work is not worth being sponsored', 'value': 38}, {'source': 'Developer working in industry', 'target': 'It’s cumbersome', 'value': 11}, {'source': 'Developer working in industry', 'target': 'I contribute to OSS not for money', 'value': 51}, {'source': 'Developer working in industry', 'target': 'No need to be sponsored', 'value': 57}, {'source': 'Developer working in industry', 'target': 'Other_2', 'value': 16}, {'source': 'Developer working in industry', 'target': 'Not available in my region', 'value': 1}, {'source': 'Student', 'target': 'Never heard of it', 'value': 3}, {'source': 'Student', 'target': 'My work is not worth being sponsored', 'value': 5}, {'source': 'Student', 'target': 'It’s cumbersome', 'value': 2}, {'source': 'Student', 'target': 'I contribute to OSS not for money', 'value': 5}, {'source': 'Student', 'target': 'No need to be sponsored', 'value': 1}, {'source': 'Student', 'target': 'Other_2', 'value': 0}, {'source': 'Student', 'target': 'Not available in my region', 'value': 0}, {'source': 'Academic researcher', 'target': 'Never heard of it', 'value': 12}, {'source': 'Academic researcher', 'target': 'My work is not worth being sponsored', 'value': 6}, {'source': 'Academic researcher', 'target': 'It’s cumbersome', 'value': 2}, {'source': 'Academic researcher', 'target': 'I contribute to OSS not for money', 'value': 14}, {'source': 'Academic researcher', 'target': 'No need to be sponsored', 'value': 12}, {'source': 'Academic researcher', 'target': 'Other_2', 'value': 3}, {'source': 'Academic researcher', 'target': 'Not available in my region', 'value': 1}, {'source': 'Full time independent developer', 'target': 'Never heard of it', 'value': 6}, {'source': 'Full time independent developer', 'target': 'My work is not worth being sponsored', 'value': 4}, {'source': 'Full time independent developer', 'target': 'It’s cumbersome', 'value': 2}, {'source': 'Full time independent developer', 'target': 'I contribute to OSS not for money', 'value': 3}, {'source': 'Full time independent developer', 'target': 'No need to be sponsored', 'value': 5}, {'source': 'Full time independent developer', 'target': 'Other_2', 'value': 2}, {'source': 'Full time independent developer', 'target': 'Not available in my region', 'value': 2}, {'source': 'Other_1', 'target': 'Never heard of it', 'value': 3}, {'source': 'Other_1', 'target': 'My work is not worth being sponsored', 'value': 3}, {'source': 'Other_1', 'target': 'It’s cumbersome', 'value': 0}, {'source': 'Other_1', 'target': 'I contribute to OSS not for money', 'value': 4}, {'source': 'Other_1', 'target': 'No need to be sponsored', 'value': 4}, {'source': 'Other_1', 'target': 'Other_2', 'value': 0}, {'source': 'Other_1', 'target': 'Not available in my region', 'value': 0}]\n",
"<ipython-input-20-4730b367d0cf>:83: RuntimeWarning: coroutine 'make_a_snapshot' was never awaited\n",
"sql = \"select basic.login as login, reason.value as question, basic.motivate_extent as opt from questionnaire_results_maintainer_2_set_up_reasons reason, questionnaire_results_maintainer_2_basic basic where reason.login=basic.login\"\r\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\plot_likert\\plot_likert.py:172: UserWarning: In your data, not all questions have the same number of responses. i.e., different numbers of people answered each question. Therefore, the percentages aren't directly comparable: X% for one question represents a different number of responses than X% for another question, yet they will appear the same in the percentage graph. This may be misleading to your reader.\n",
"sql = \"select basic.login as login, reason.value as question, basic.expectation_extent as opt from questionnaire_results_sponsor_2_sponsor_reasons reason, questionnaire_results_sponsor_2_basic basic where reason.login=basic.login\"\r\n",
"C:\\ProgramData\\Anaconda3\\lib\\site-packages\\plot_likert\\plot_likert.py:172: UserWarning: In your data, not all questions have the same number of responses. i.e., different numbers of people answered each question. Therefore, the percentages aren't directly comparable: X% for one question represents a different number of responses than X% for another question, yet they will appear the same in the percentage graph. This may be misleading to your reader.\n",
"[{'name': 'Neither satisfied nor dissatisfied'}, {'name': 'Satisfied'}, {'name': 'Very dissatisfied'}, {'name': 'Dissatisfied'}, {'name': 'Very satisfied'}, {'name': 'A little'}, {'name': 'A lot'}, {'name': 'A great deal'}, {'name': 'A moderate amount'}, {'name': 'Not at all'}]\n",
"[{'source': 'Neither satisfied nor dissatisfied', 'target': 'A little', 'value': 48}, {'source': 'Neither satisfied nor dissatisfied', 'target': 'A lot', 'value': 48}, {'source': 'Neither satisfied nor dissatisfied', 'target': 'A great deal', 'value': 32}, {'source': 'Neither satisfied nor dissatisfied', 'target': 'A moderate amount', 'value': 64}, {'source': 'Neither satisfied nor dissatisfied', 'target': 'Not at all', 'value': 18}, {'source': 'Satisfied', 'target': 'A little', 'value': 10}, {'source': 'Satisfied', 'target': 'A lot', 'value': 21}, {'source': 'Satisfied', 'target': 'A great deal', 'value': 16}, {'source': 'Satisfied', 'target': 'A moderate amount', 'value': 20}, {'source': 'Satisfied', 'target': 'Not at all', 'value': 0}, {'source': 'Very dissatisfied', 'target': 'A little', 'value': 11}, {'source': 'Very dissatisfied', 'target': 'A lot', 'value': 23}, {'source': 'Very dissatisfied', 'target': 'A great deal', 'value': 30}, {'source': 'Very dissatisfied', 'target': 'A moderate amount', 'value': 18}, {'source': 'Very dissatisfied', 'target': 'Not at all', 'value': 7}, {'source': 'Dissatisfied', 'target': 'A little', 'value': 7}, {'source': 'Dissatisfied', 'target': 'A lot', 'value': 25}, {'source': 'Dissatisfied', 'target': 'A great deal', 'value': 17}, {'source': 'Dissatisfied', 'target': 'A moderate amount', 'value': 19}, {'source': 'Dissatisfied', 'target': 'Not at all', 'value': 1}, {'source': 'Very satisfied', 'target': 'A little', 'value': 1}, {'source': 'Very satisfied', 'target': 'A lot', 'value': 6}, {'source': 'Very satisfied', 'target': 'A great deal', 'value': 16}, {'source': 'Very satisfied', 'target': 'A moderate amount', 'value': 5}, {'source': 'Very satisfied', 'target': 'Not at all', 'value': 1}]\n"
]
},
{
"output_type": "stream",
"name": "stderr",
"text": [
"<ipython-input-38-de444cf2be5d>:88: RuntimeWarning: coroutine 'make_a_snapshot' was never awaited\n",
" \"Staying active and contributing more in the community\",\r\n",
" \"Advertising myself or my work to the community\",\r\n",
" \"Producing valuable code\",\r\n",
" \"Getting involved in popular projects\",\r\n",
" \"Getting involved in projects adopted by companies\",\r\n",
" \"Getting involved in long-term projects\",\r\n",
" \"Getting involved in less maintained yet important projects\",\r\n",
" \"Getting involved in projects led by companies\",\r\n",
" \"Providing localized content\",\r\n",
" \"Other\"\r\n",
"]\r\n",
"\r\n",
"cur.execute(\"select count(distinct login) as num from questionnaire_results_maintainer_2_how_get_more where value is not null\")\r\n",
"all_num = cur.fetchone()[\"num\"]\r\n",
"\r\n",
"for reason in all_reasons:\r\n",
" if reason == \"Other\":\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_maintainer_2_how_get_more where value like 'Other (please specify)%'\")\r\n",
" num = cur.fetchone()[\"num\"]\r\n",
" else:\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_maintainer_2_how_get_more where value=%s\", (reason,))\r\n",
" \"Developers who make important contributions\",\r\n",
" \"Developers who are active in community\",\r\n",
" \"Independent developers\",\r\n",
" \"Developers who haven’t received much sponsorship\",\r\n",
" \"Developers who are in hardship\",\r\n",
" \"Developers who I know\",\r\n",
" \"Other\"\r\n",
"]\r\n",
"\r\n",
"cur.execute(\"select count(distinct login) as num from questionnaire_results_sponsor_2_sponsor_kinds where value is not null\")\r\n",
"all_num = cur.fetchone()[\"num\"]\r\n",
"\r\n",
"for reason in all_reasons:\r\n",
" if reason == \"Other\":\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_sponsor_2_sponsor_kinds where value like 'Other (please specify)%'\")\r\n",
" num = cur.fetchone()[\"num\"]\r\n",
" else:\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_sponsor_2_sponsor_kinds where value=%s\", (reason,))\r\n",
" \"It’s hard for others to discover me for sponsorship\",\r\n",
" \"I can’t interact with my sponsors on GitHub (e.g., for expressing appreciation)\",\r\n",
" \"Lack of a wide range of payment options (e.g., one-time/yearly/quarterly payment)\",\r\n",
" \"GitHub does not distinctly mark my sponsors (e.g., I cannot easily tell whether an issue submitter is my sponsor)\",\r\n",
" \"I have to pay taxes\",\r\n",
" \"None. It's perfect to me\",\r\n",
" \"It is not supported in many regions\",\r\n",
" \"I can’t declare how I dealt with the received money\",\r\n",
" \"Other\"\r\n",
"]\r\n",
"\r\n",
"cur.execute(\"select count(distinct login) as num from questionnaire_results_maintainer_2_shortcomings where value is not null\")\r\n",
"all_num = cur.fetchone()[\"num\"]\r\n",
"\r\n",
"for reason in all_reasons:\r\n",
" if reason == \"Other\":\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_maintainer_2_shortcomings where value like 'Other (please specify)%'\")\r\n",
" num = cur.fetchone()[\"num\"]\r\n",
" else:\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_maintainer_2_shortcomings where value=%s\", (reason,))\r\n",
" \"I cannot assess how urgently a developer needs to be sponsored\",\r\n",
" \"None. It’s perfect\",\r\n",
" \"It’s hard for me to find the developer I should sponsor\",\r\n",
" \"It is not supported in many regions\",\r\n",
" \"I can’t interact with the developer I sponsored on GitHub\",\r\n",
" \"I’m not distinctly marked in the projects whose maintainers have been sponsored by me (e.g., when I submit an issue)\",\r\n",
" \"Other\"\r\n",
"]\r\n",
"\r\n",
"cur.execute(\"select count(distinct login) as num from questionnaire_results_sponsor_2_shortcomings where value is not null\")\r\n",
"all_num = cur.fetchone()[\"num\"]\r\n",
"\r\n",
"for reason in all_reasons:\r\n",
" if reason == \"Other\":\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_sponsor_2_shortcomings where value like 'Other (please specify)%'\")\r\n",
" num = cur.fetchone()[\"num\"]\r\n",
" else:\r\n",
" cur.execute(\"select count(distinct login) as num from questionnaire_results_sponsor_2_shortcomings where value=%s\", (reason,))\r\n",