{"action":"created","issue":{"url":"https://api.github.com/repos/sopel-irc/sopel/issues/1318","repository_url":"https://api.github.com/repos/sopel-irc/sopel","labels_url":"https://api.github.com/repos/sopel-irc/sopel/issues/1318/labels{/name}","comments_url":"https://api.github.com/repos/sopel-irc/sopel/issues/1318/comments","events_url":"https://api.github.com/repos/sopel-irc/sopel/issues/1318/events","html_url":"https://github.com/sopel-irc/sopel/issues/1318","id":317943522,"number":1318,"title":"Move sopel.web utilities into sopel.tools","user":{"login":"dgw","id":164140,"avatar_url":"https://avatars3.githubusercontent.com/u/164140?v=4","gravatar_id":"","url":"https://api.github.com/users/dgw","html_url":"https://github.com/dgw","followers_url":"https://api.github.com/users/dgw/followers","following_url":"https://api.github.com/users/dgw/following{/other_user}","gists_url":"https://api.github.com/users/dgw/gists{/gist_id}","starred_url":"https://api.github.com/users/dgw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgw/subscriptions","organizations_url":"https://api.github.com/users/dgw/orgs","repos_url":"https://api.github.com/users/dgw/repos","events_url":"https://api.github.com/users/dgw/events{/privacy}","received_events_url":"https://api.github.com/users/dgw/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":{"login":"dgw","id":164140,"avatar_url":"https://avatars3.githubusercontent.com/u/164140?v=4","gravatar_id":"","url":"https://api.github.com/users/dgw","html_url":"https://github.com/dgw","followers_url":"https://api.github.com/users/dgw/followers","following_url":"https://api.github.com/users/dgw/following{/other_user}","gists_url":"https://api.github.com/users/dgw/gists{/gist_id}","starred_url":"https://api.github.com/users/dgw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgw/subscriptions","organizations_url":"https://api.github.com/users/dgw/orgs","repos_url":"https://api.github.com/users/dgw/repos","events_url":"https://api.github.com/users/dgw/events{/privacy}","received_events_url":"https://api.github.com/users/dgw/received_events","type":"User","site_admin":false},"assignees":[{"login":"dgw","id":164140,"avatar_url":"https://avatars3.githubusercontent.com/u/164140?v=4","gravatar_id":"","url":"https://api.github.com/users/dgw","html_url":"https://github.com/dgw","followers_url":"https://api.github.com/users/dgw/followers","following_url":"https://api.github.com/users/dgw/following{/other_user}","gists_url":"https://api.github.com/users/dgw/gists{/gist_id}","starred_url":"https://api.github.com/users/dgw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgw/subscriptions","organizations_url":"https://api.github.com/users/dgw/orgs","repos_url":"https://api.github.com/users/dgw/repos","events_url":"https://api.github.com/users/dgw/events{/privacy}","received_events_url":"https://api.github.com/users/dgw/received_events","type":"User","site_admin":false}],"milestone":{"url":"https://api.github.com/repos/sopel-irc/sopel/milestones/12","html_url":"https://github.com/sopel-irc/sopel/milestone/12","labels_url":"https://api.github.com/repos/sopel-irc/sopel/milestones/12/labels","id":3207996,"number":12,"title":"6.6.0","description":"As-yet undecided feature changes and additions.","creator":{"login":"dgw","id":164140,"avatar_url":"https://avatars3.githubusercontent.com/u/164140?v=4","gravatar_id":"","url":"https://api.github.com/users/dgw","html_url":"https://github.com/dgw","followers_url":"https://api.github.com/users/dgw/followers","following_url":"https://api.github.com/users/dgw/following{/other_user}","gists_url":"https://api.github.com/users/dgw/gists{/gist_id}","starred_url":"https://api.github.com/users/dgw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dgw/subscriptions","organizations_url":"https://api.github.com/users/dgw/orgs","repos_url":"https://api.github.com/users/dgw/repos","events_url":"https://api.github.com/users/dgw/events{/privacy}","received_events_url":"https://api.github.com/users/dgw/received_events","type":"User","site_admin":false},"open_issues":44,"closed_issues":0,"state":"open","created_at":"2018-03-22T00:48:39Z","updated_at":"2018-05-04T05:02:10Z","due_on":"2019-01-01T08:00:00Z","closed_at":null},"comments":1,"created_at":"2018-04-26T09:17:29Z","updated_at":"2018-05-04T05:44:09Z","closed_at":null,"author_association":"OWNER","body":"Since `sopel.web` has been officially deprecated for over two years (and unofficially deprecated for even longer), I think it's time to consider what should actually be removed and what should be kept. The module as it currently exists in `sopel.web` should probably go away in Sopel 7, as we've had plenty of warning that it's deprecated. But some of its functions aren't marked `@deprecated` and do not seem to have direct replacements in `requests` or Python's stdlib.\r\n\r\nSpecifically, the `quote`, `quote_query`, `iri_to_uri`, and `decode` utility functions seem to have use cases still. I believe it would be best to put those where they seem like they belong: `sopel.tools`. That would get rid of `sopel.web` entirely, but preserve the bits that are not replaced by dropping `requests` in instead. There would, of course, be a transitional period (between the 6.x series and Sopel 7) during which the existing functions would be available in both namespaces.\r\n\r\nThe names of the new functions in `sopel.tools` are undecided, as I've just thought up this plan tonight. I'm not against having a `sopel.tools.web` subpackage, for example. I welcome input from module developers, who will be affected if staple functions for API interactions, like `sopel.web.quote()`, disappear.\r\n\r\nMilestone target and details very much subject to change, as this is still in the conceptual/planning phase."},"comment":{"url":"https://api.github.com/repos/sopel-irc/sopel/issues/comments/386510283","html_url":"https://github.com/sopel-irc/sopel/issues/1318#issuecomment-386510283","issue_url":"https://api.github.com/repos/sopel-irc/sopel/issues/1318","id":386510283,"user":{"login":"freeboson","id":1075679,"avatar_url":"https://avatars1.githubusercontent.com/u/1075679?v=4","gravatar_id":"","url":"https://api.github.com/users/freeboson","html_url":"https://github.com/freeboson","followers_url":"https://api.github.com/users/freeboson/followers","following_url":"https://api.github.com/users/freeboson/following{/other_user}","gists_url":"https://api.github.com/users/freeboson/gists{/gist_id}","starred_url":"https://api.github.com/users/freeboson/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/freeboson/subscriptions","organizations_url":"https://api.github.com/users/freeboson/orgs","repos_url":"https://api.github.com/users/freeboson/repos","events_url":"https://api.github.com/users/freeboson/events{/privacy}","received_events_url":"https://api.github.com/users/freeboson/received_events","type":"User","site_admin":false},"created_at":"2018-05-04T05:44:09Z","updated_at":"2018-05-04T05:44:09Z","author_association":"NONE","body":"`sopel.web.quote` is a good example of #1326. It's something that's useful for maintaining 2/3 compatibility, but it's already done by `six`, or could be simplified by dropping python2."}}
{"actor":{"display_login":"freeboson"}}