{"action":"created","issue":{"url":"https://api.github.com/repos/mongodb/mongo-python-driver/issues/318","repository_url":"https://api.github.com/repos/mongodb/mongo-python-driver","labels_url":"https://api.github.com/repos/mongodb/mongo-python-driver/issues/318/labels{/name}","comments_url":"https://api.github.com/repos/mongodb/mongo-python-driver/issues/318/comments","events_url":"https://api.github.com/repos/mongodb/mongo-python-driver/issues/318/events","html_url":"https://github.com/mongodb/mongo-python-driver/pull/318","id":190578846,"number":318,"title":"[PYTHON-1191] Added KeyEscaper SONManipulators.","user":{"login":"todofixthis","id":202040,"avatar_url":"https://avatars.githubusercontent.com/u/202040?v=3","gravatar_id":"","url":"https://api.github.com/users/todofixthis","html_url":"https://github.com/todofixthis","followers_url":"https://api.github.com/users/todofixthis/followers","following_url":"https://api.github.com/users/todofixthis/following{/other_user}","gists_url":"https://api.github.com/users/todofixthis/gists{/gist_id}","starred_url":"https://api.github.com/users/todofixthis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/todofixthis/subscriptions","organizations_url":"https://api.github.com/users/todofixthis/orgs","repos_url":"https://api.github.com/users/todofixthis/repos","events_url":"https://api.github.com/users/todofixthis/events{/privacy}","received_events_url":"https://api.github.com/users/todofixthis/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2016-11-20T19:47:14Z","updated_at":"2016-11-21T02:11:51Z","closed_at":"2016-11-21T02:11:51Z","pull_request":{"url":"https://api.github.com/repos/mongodb/mongo-python-driver/pulls/318","html_url":"https://github.com/mongodb/mongo-python-driver/pull/318","diff_url":"https://github.com/mongodb/mongo-python-driver/pull/318.diff","patch_url":"https://github.com/mongodb/mongo-python-driver/pull/318.patch"},"body":"Introduces two new `SONManipulators` to transparently escape/unescape illegal keys when storing/retrieving documents:\r\n\r\n- `DeterministicKeyEscaper` uses MD5 to generate \"safe\" versions of escaped keys. This method is slower and requires more storage space, but the escaped keys are potentially queryable.\r\n- `NonDeterministicKeyEscaper` uses an internal counter to generate \"safe\" versions of escaped keys. This method is faster and requires less storage space, but the escaped keys should be considered not queryable.\r\n\r\nFor more information, refer to:\r\n- https://jira.mongodb.org/browse/PYTHON-1191 (JIRA ticket)\r\n- http://stackoverflow.com/q/40639393/ (original context)\r\n\r\n**Note:** In order to achieve compatibility with Python 2 and 3 for this feature, I added the `six` library to the project dependencies (in `setup.py`). I'm not sure that this is the right context to introduce a new dependency, but I don't know this project well enough yet to propose an alternate approach. Definitely open to guidance on this!"},"comment":{"url":"https://api.github.com/repos/mongodb/mongo-python-driver/issues/comments/261826357","html_url":"https://github.com/mongodb/mongo-python-driver/pull/318#issuecomment-261826357","issue_url":"https://api.github.com/repos/mongodb/mongo-python-driver/issues/318","id":261826357,"user":{"login":"ajdavis","id":84101,"avatar_url":"https://avatars.githubusercontent.com/u/84101?v=3","gravatar_id":"","url":"https://api.github.com/users/ajdavis","html_url":"https://github.com/ajdavis","followers_url":"https://api.github.com/users/ajdavis/followers","following_url":"https://api.github.com/users/ajdavis/following{/other_user}","gists_url":"https://api.github.com/users/ajdavis/gists{/gist_id}","starred_url":"https://api.github.com/users/ajdavis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ajdavis/subscriptions","organizations_url":"https://api.github.com/users/ajdavis/orgs","repos_url":"https://api.github.com/users/ajdavis/repos","events_url":"https://api.github.com/users/ajdavis/events{/privacy}","received_events_url":"https://api.github.com/users/ajdavis/received_events","type":"User","site_admin":false},"created_at":"2016-11-21T02:11:51Z","updated_at":"2016-11-21T02:11:51Z","body":"Thanks for proposing this idea. For reasons explained here we won't accept it:\r\n\r\nhttps://jira.mongodb.org/browse/PYTHON-119\r\n\r\nIf you disagree, I invite you to maintain your own library that provides this feature as a wrapper around PyMongo."}}
{"actor":{"display_login":"ajdavis"}}