{"action":"created","comment":{"url":"https://api.github.com/repos/falconry/falcon/pulls/comments/57336518","id":57336518,"diff_hunk":"@@ -128,6 +128,11 @@ def test_pack_query_params_one(self):\n             falcon.to_query_str({'things': ['a', 'b']}),\n             '?things=a,b')\n \n+        self.assertEqual(\n+            falcon.to_query_str({'things': ['a', 'b', True, False]},","path":"tests/test_utils.py","position":5,"original_position":5,"commit_id":"5f8f84947896fc32fb263ca62a26c9bf0898b73c","original_commit_id":"5f8f84947896fc32fb263ca62a26c9bf0898b73c","user":{"login":"qwesda","id":384993,"avatar_url":"https://avatars.githubusercontent.com/u/384993?v=3","gravatar_id":"","url":"https://api.github.com/users/qwesda","html_url":"https://github.com/qwesda","followers_url":"https://api.github.com/users/qwesda/followers","following_url":"https://api.github.com/users/qwesda/following{/other_user}","gists_url":"https://api.github.com/users/qwesda/gists{/gist_id}","starred_url":"https://api.github.com/users/qwesda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qwesda/subscriptions","organizations_url":"https://api.github.com/users/qwesda/orgs","repos_url":"https://api.github.com/users/qwesda/repos","events_url":"https://api.github.com/users/qwesda/events{/privacy}","received_events_url":"https://api.github.com/users/qwesda/received_events","type":"User","site_admin":false},"body":"I changed the test to: \r\n\r\n```python\r\nself.assertEqual(\r\n  falcon.to_query_str({'things': ['a', 'b', '', None, True, False, 0]},\r\n    encode_lists_as_comma_delimited_string=False),\r\n '?things=a&things=b&things=&things=None&things=true&things=false&things=0')\r\n```\r\n\r\nI also noticed that `None` is not is converted to `'None'` since it if not special cased like `True` and `False`. Was there already a discussion about how to handle \"NULL\" values? I would prefer to translate `None` to the empty string.","created_at":"2016-03-24T15:39:23Z","updated_at":"2016-03-24T15:39:23Z","html_url":"https://github.com/falconry/falcon/pull/729#discussion_r57336518","pull_request_url":"https://api.github.com/repos/falconry/falcon/pulls/729","_links":{"self":{"href":"https://api.github.com/repos/falconry/falcon/pulls/comments/57336518"},"html":{"href":"https://github.com/falconry/falcon/pull/729#discussion_r57336518"},"pull_request":{"href":"https://api.github.com/repos/falconry/falcon/pulls/729"}}},"pull_request":{"url":"https://api.github.com/repos/falconry/falcon/pulls/729","id":62640997,"html_url":"https://github.com/falconry/falcon/pull/729","diff_url":"https://github.com/falconry/falcon/pull/729.diff","patch_url":"https://github.com/falconry/falcon/pull/729.patch","issue_url":"https://api.github.com/repos/falconry/falcon/issues/729","number":729,"state":"open","locked":false,"title":"Add options to opt out of the automatic splitting parameter containing commas","user":{"login":"qwesda","id":384993,"avatar_url":"https://avatars.githubusercontent.com/u/384993?v=3","gravatar_id":"","url":"https://api.github.com/users/qwesda","html_url":"https://github.com/qwesda","followers_url":"https://api.github.com/users/qwesda/followers","following_url":"https://api.github.com/users/qwesda/following{/other_user}","gists_url":"https://api.github.com/users/qwesda/gists{/gist_id}","starred_url":"https://api.github.com/users/qwesda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qwesda/subscriptions","organizations_url":"https://api.github.com/users/qwesda/orgs","repos_url":"https://api.github.com/users/qwesda/repos","events_url":"https://api.github.com/users/qwesda/events{/privacy}","received_events_url":"https://api.github.com/users/qwesda/received_events","type":"User","site_admin":false},"body":"While the feature to automatically treat commas in parameters as indicating list values can be useful, for some it might not the ideal behaviour. Thus this pull requests introduces these new options:\r\n\r\n- `auto_parse_query_string_lists` in `RequestOptions`\r\n- `auto_parse_query_string_lists` in `parse_query_string()` \r\n- `encode_lists_as_comma_delimited_string` in `to_query_str()`\r\n\r\nSetting `auto_parse_query_string_lists` to `False` `thing=1,2,3&thing=4` will be parsed to `{'thing': ['1,2,3','4']}`\r\n\r\nSetting `encode_lists_as_comma_delimited_string ` to `False`will encode `{'thing': [1,2,3,4]}` to `thing=1&thing=2&thing=3&thing=4` \r\n\r\nThe options default to the previous behaviour so that they don't introduce breaking changes.","created_at":"2016-03-12T13:08:45Z","updated_at":"2016-03-24T15:39:23Z","closed_at":null,"merged_at":null,"merge_commit_sha":"db4846858e0407d4a3d5d4e4ddfe630a0591401c","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/falconry/falcon/pulls/729/commits","review_comments_url":"https://api.github.com/repos/falconry/falcon/pulls/729/comments","review_comment_url":"https://api.github.com/repos/falconry/falcon/pulls/comments{/number}","comments_url":"https://api.github.com/repos/falconry/falcon/issues/729/comments","statuses_url":"https://api.github.com/repos/falconry/falcon/statuses/5f8f84947896fc32fb263ca62a26c9bf0898b73c","head":{"label":"qwesda:master","ref":"master","sha":"5f8f84947896fc32fb263ca62a26c9bf0898b73c","user":{"login":"qwesda","id":384993,"avatar_url":"https://avatars.githubusercontent.com/u/384993?v=3","gravatar_id":"","url":"https://api.github.com/users/qwesda","html_url":"https://github.com/qwesda","followers_url":"https://api.github.com/users/qwesda/followers","following_url":"https://api.github.com/users/qwesda/following{/other_user}","gists_url":"https://api.github.com/users/qwesda/gists{/gist_id}","starred_url":"https://api.github.com/users/qwesda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qwesda/subscriptions","organizations_url":"https://api.github.com/users/qwesda/orgs","repos_url":"https://api.github.com/users/qwesda/repos","events_url":"https://api.github.com/users/qwesda/events{/privacy}","received_events_url":"https://api.github.com/users/qwesda/received_events","type":"User","site_admin":false},"repo":{"id":53724801,"name":"falcon","full_name":"qwesda/falcon","owner":{"login":"qwesda","id":384993,"avatar_url":"https://avatars.githubusercontent.com/u/384993?v=3","gravatar_id":"","url":"https://api.github.com/users/qwesda","html_url":"https://github.com/qwesda","followers_url":"https://api.github.com/users/qwesda/followers","following_url":"https://api.github.com/users/qwesda/following{/other_user}","gists_url":"https://api.github.com/users/qwesda/gists{/gist_id}","starred_url":"https://api.github.com/users/qwesda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qwesda/subscriptions","organizations_url":"https://api.github.com/users/qwesda/orgs","repos_url":"https://api.github.com/users/qwesda/repos","events_url":"https://api.github.com/users/qwesda/events{/privacy}","received_events_url":"https://api.github.com/users/qwesda/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/qwesda/falcon","description":"Falcon is a low-level, high-performance Python framework for building HTTP APIs, app backends, and higher-level frameworks.","fork":true,"url":"https://api.github.com/repos/qwesda/falcon","forks_url":"https://api.github.com/repos/qwesda/falcon/forks","keys_url":"https://api.github.com/repos/qwesda/falcon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/qwesda/falcon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/qwesda/falcon/teams","hooks_url":"https://api.github.com/repos/qwesda/falcon/hooks","issue_events_url":"https://api.github.com/repos/qwesda/falcon/issues/events{/number}","events_url":"https://api.github.com/repos/qwesda/falcon/events","assignees_url":"https://api.github.com/repos/qwesda/falcon/assignees{/user}","branches_url":"https://api.github.com/repos/qwesda/falcon/branches{/branch}","tags_url":"https://api.github.com/repos/qwesda/falcon/tags","blobs_url":"https://api.github.com/repos/qwesda/falcon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/qwesda/falcon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/qwesda/falcon/git/refs{/sha}","trees_url":"https://api.github.com/repos/qwesda/falcon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/qwesda/falcon/statuses/{sha}","languages_url":"https://api.github.com/repos/qwesda/falcon/languages","stargazers_url":"https://api.github.com/repos/qwesda/falcon/stargazers","contributors_url":"https://api.github.com/repos/qwesda/falcon/contributors","subscribers_url":"https://api.github.com/repos/qwesda/falcon/subscribers","subscription_url":"https://api.github.com/repos/qwesda/falcon/subscription","commits_url":"https://api.github.com/repos/qwesda/falcon/commits{/sha}","git_commits_url":"https://api.github.com/repos/qwesda/falcon/git/commits{/sha}","comments_url":"https://api.github.com/repos/qwesda/falcon/comments{/number}","issue_comment_url":"https://api.github.com/repos/qwesda/falcon/issues/comments{/number}","contents_url":"https://api.github.com/repos/qwesda/falcon/contents/{+path}","compare_url":"https://api.github.com/repos/qwesda/falcon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/qwesda/falcon/merges","archive_url":"https://api.github.com/repos/qwesda/falcon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/qwesda/falcon/downloads","issues_url":"https://api.github.com/repos/qwesda/falcon/issues{/number}","pulls_url":"https://api.github.com/repos/qwesda/falcon/pulls{/number}","milestones_url":"https://api.github.com/repos/qwesda/falcon/milestones{/number}","notifications_url":"https://api.github.com/repos/qwesda/falcon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/qwesda/falcon/labels{/name}","releases_url":"https://api.github.com/repos/qwesda/falcon/releases{/id}","deployments_url":"https://api.github.com/repos/qwesda/falcon/deployments","created_at":"2016-03-12T09:58:58Z","updated_at":"2016-03-12T09:59:01Z","pushed_at":"2016-03-12T12:44:08Z","git_url":"git://github.com/qwesda/falcon.git","ssh_url":"git@github.com:qwesda/falcon.git","clone_url":"https://github.com/qwesda/falcon.git","svn_url":"https://github.com/qwesda/falcon","homepage":"https://falcon.readthedocs.org/en/stable/","size":12228,"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":"falconry:master","ref":"master","sha":"ac03888ad750598175fa1591ef11ec8ae31b0dc0","user":{"login":"falconry","id":11353642,"avatar_url":"https://avatars.githubusercontent.com/u/11353642?v=3","gravatar_id":"","url":"https://api.github.com/users/falconry","html_url":"https://github.com/falconry","followers_url":"https://api.github.com/users/falconry/followers","following_url":"https://api.github.com/users/falconry/following{/other_user}","gists_url":"https://api.github.com/users/falconry/gists{/gist_id}","starred_url":"https://api.github.com/users/falconry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/falconry/subscriptions","organizations_url":"https://api.github.com/users/falconry/orgs","repos_url":"https://api.github.com/users/falconry/repos","events_url":"https://api.github.com/users/falconry/events{/privacy}","received_events_url":"https://api.github.com/users/falconry/received_events","type":"Organization","site_admin":false},"repo":{"id":7040500,"name":"falcon","full_name":"falconry/falcon","owner":{"login":"falconry","id":11353642,"avatar_url":"https://avatars.githubusercontent.com/u/11353642?v=3","gravatar_id":"","url":"https://api.github.com/users/falconry","html_url":"https://github.com/falconry","followers_url":"https://api.github.com/users/falconry/followers","following_url":"https://api.github.com/users/falconry/following{/other_user}","gists_url":"https://api.github.com/users/falconry/gists{/gist_id}","starred_url":"https://api.github.com/users/falconry/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/falconry/subscriptions","organizations_url":"https://api.github.com/users/falconry/orgs","repos_url":"https://api.github.com/users/falconry/repos","events_url":"https://api.github.com/users/falconry/events{/privacy}","received_events_url":"https://api.github.com/users/falconry/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/falconry/falcon","description":"Falcon is a low-level, high-performance Python framework for building HTTP APIs, app backends, and higher-level frameworks.","fork":false,"url":"https://api.github.com/repos/falconry/falcon","forks_url":"https://api.github.com/repos/falconry/falcon/forks","keys_url":"https://api.github.com/repos/falconry/falcon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/falconry/falcon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/falconry/falcon/teams","hooks_url":"https://api.github.com/repos/falconry/falcon/hooks","issue_events_url":"https://api.github.com/repos/falconry/falcon/issues/events{/number}","events_url":"https://api.github.com/repos/falconry/falcon/events","assignees_url":"https://api.github.com/repos/falconry/falcon/assignees{/user}","branches_url":"https://api.github.com/repos/falconry/falcon/branches{/branch}","tags_url":"https://api.github.com/repos/falconry/falcon/tags","blobs_url":"https://api.github.com/repos/falconry/falcon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/falconry/falcon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/falconry/falcon/git/refs{/sha}","trees_url":"https://api.github.com/repos/falconry/falcon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/falconry/falcon/statuses/{sha}","languages_url":"https://api.github.com/repos/falconry/falcon/languages","stargazers_url":"https://api.github.com/repos/falconry/falcon/stargazers","contributors_url":"https://api.github.com/repos/falconry/falcon/contributors","subscribers_url":"https://api.github.com/repos/falconry/falcon/subscribers","subscription_url":"https://api.github.com/repos/falconry/falcon/subscription","commits_url":"https://api.github.com/repos/falconry/falcon/commits{/sha}","git_commits_url":"https://api.github.com/repos/falconry/falcon/git/commits{/sha}","comments_url":"https://api.github.com/repos/falconry/falcon/comments{/number}","issue_comment_url":"https://api.github.com/repos/falconry/falcon/issues/comments{/number}","contents_url":"https://api.github.com/repos/falconry/falcon/contents/{+path}","compare_url":"https://api.github.com/repos/falconry/falcon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/falconry/falcon/merges","archive_url":"https://api.github.com/repos/falconry/falcon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/falconry/falcon/downloads","issues_url":"https://api.github.com/repos/falconry/falcon/issues{/number}","pulls_url":"https://api.github.com/repos/falconry/falcon/pulls{/number}","milestones_url":"https://api.github.com/repos/falconry/falcon/milestones{/number}","notifications_url":"https://api.github.com/repos/falconry/falcon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/falconry/falcon/labels{/name}","releases_url":"https://api.github.com/repos/falconry/falcon/releases{/id}","deployments_url":"https://api.github.com/repos/falconry/falcon/deployments","created_at":"2012-12-06T18:17:51Z","updated_at":"2016-03-23T20:59:26Z","pushed_at":"2016-03-24T04:24:43Z","git_url":"git://github.com/falconry/falcon.git","ssh_url":"git@github.com:falconry/falcon.git","clone_url":"https://github.com/falconry/falcon.git","svn_url":"https://github.com/falconry/falcon","homepage":"https://falcon.readthedocs.org/en/stable/","size":13035,"stargazers_count":2712,"watchers_count":2712,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":311,"mirror_url":null,"open_issues_count":192,"forks":311,"open_issues":192,"watchers":2712,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/falconry/falcon/pulls/729"},"html":{"href":"https://github.com/falconry/falcon/pull/729"},"issue":{"href":"https://api.github.com/repos/falconry/falcon/issues/729"},"comments":{"href":"https://api.github.com/repos/falconry/falcon/issues/729/comments"},"review_comments":{"href":"https://api.github.com/repos/falconry/falcon/pulls/729/comments"},"review_comment":{"href":"https://api.github.com/repos/falconry/falcon/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/falconry/falcon/pulls/729/commits"},"statuses":{"href":"https://api.github.com/repos/falconry/falcon/statuses/5f8f84947896fc32fb263ca62a26c9bf0898b73c"}}}}