{"action":"created","issue":{"url":"https://api.github.com/repos/mahmoud/boltons/issues/99","repository_url":"https://api.github.com/repos/mahmoud/boltons","labels_url":"https://api.github.com/repos/mahmoud/boltons/issues/99/labels{/name}","comments_url":"https://api.github.com/repos/mahmoud/boltons/issues/99/comments","events_url":"https://api.github.com/repos/mahmoud/boltons/issues/99/events","html_url":"https://github.com/mahmoud/boltons/pull/99","id":184571256,"number":99,"title":"Add ioutils module","user":{"login":"induane","id":2320029,"avatar_url":"https://avatars.githubusercontent.com/u/2320029?v=3","gravatar_id":"","url":"https://api.github.com/users/induane","html_url":"https://github.com/induane","followers_url":"https://api.github.com/users/induane/followers","following_url":"https://api.github.com/users/induane/following{/other_user}","gists_url":"https://api.github.com/users/induane/gists{/gist_id}","starred_url":"https://api.github.com/users/induane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/induane/subscriptions","organizations_url":"https://api.github.com/users/induane/orgs","repos_url":"https://api.github.com/users/induane/repos","events_url":"https://api.github.com/users/induane/events{/privacy}","received_events_url":"https://api.github.com/users/induane/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":4,"created_at":"2016-10-21T21:14:31Z","updated_at":"2016-10-21T21:48:23Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/mahmoud/boltons/pulls/99","html_url":"https://github.com/mahmoud/boltons/pull/99","diff_url":"https://github.com/mahmoud/boltons/pull/99.diff","patch_url":"https://github.com/mahmoud/boltons/pull/99.patch"},"body":"Spooled Temporary Files are file-like objects\r\nthat start out mapped to in-memory objects, but\r\nautomatically roll over to a temporary file once\r\nthey reach a certain (configurable) threshhold.\r\nUnfortunately the built-in SpooledTemporaryFile\r\nclass in Python does not implement the exact API\r\nthat some common classes like StringIO do.\r\nSpooledTemporaryFile also spools all of it's in-memory\r\nfiles as cStringIO instances. cStringIO instances cannot\r\nbe deep-copied, and they don't work with the zip\r\nlibrary either. This along with the incompatible api makes\r\nit useless for several use-cases.\r\n\r\nTo combat this but still gain the memory savings and\r\nusefulness of a true spooled file-like-object, two custom\r\nclasses have been implemented which have a compatible API.\r\n\r\nSpooledBytesIO is a spooled file-like-object that only\r\naccepts bytes. On Python 2.x this means the 'str' type; on\r\nPython 3.x this means the 'bytes' type. Bytes are written\r\nin and retrieved exactly as given, but it will raise TypeErrors\r\nif something other than bytes are written.\r\n\r\nSpooledStringIO is a spooled file-like-object that only accepts\r\nunicode values. On Python 2.x this means the 'unicode' type and\r\non Python 3.x this means the 'str' type. Values are accepted as\r\nunicode and then coerced into utf-8 encoded bytes for storage. On\r\nretrieval, the values are returned as unicode."},"comment":{"url":"https://api.github.com/repos/mahmoud/boltons/issues/comments/255473545","html_url":"https://github.com/mahmoud/boltons/pull/99#issuecomment-255473545","issue_url":"https://api.github.com/repos/mahmoud/boltons/issues/99","id":255473545,"user":{"login":"induane","id":2320029,"avatar_url":"https://avatars.githubusercontent.com/u/2320029?v=3","gravatar_id":"","url":"https://api.github.com/users/induane","html_url":"https://github.com/induane","followers_url":"https://api.github.com/users/induane/followers","following_url":"https://api.github.com/users/induane/following{/other_user}","gists_url":"https://api.github.com/users/induane/gists{/gist_id}","starred_url":"https://api.github.com/users/induane/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/induane/subscriptions","organizations_url":"https://api.github.com/users/induane/orgs","repos_url":"https://api.github.com/users/induane/repos","events_url":"https://api.github.com/users/induane/events{/privacy}","received_events_url":"https://api.github.com/users/induane/received_events","type":"User","site_admin":false},"created_at":"2016-10-21T21:48:23Z","updated_at":"2016-10-21T21:48:23Z","body":"This tox thing is pretty cool btw. Looks like it's not loving python 2.6 and pypy (two things I've never actually tested it with before). "}}
{"actor":{"display_login":"induane"}}