-
-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add deferredssl #2221
Add deferredssl #2221
Conversation
What is your use case? |
My use case is a bit contrived. I was trying to use this with buildozer / python-for-android, which by default don't include ssl (but can). Just figured that in case SSL isn't available (although, like you pointed out, it almost always is), seems better to only fail when it's required. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see ssl
module is needed two times: in connector.py
and worker.py
.
I believe we need something like:
try:
import ssl
except ImportError:
ssl = None
and
if ssl is None:
raise RuntimeError("SSL is not supported:)
Adding a new module is overengineering.
The only reason I opted for a module was to be a bit forward looking (and DRY). |
@machina-widmo would you rewrite a PR for using approach proposed by me? |
Conditionally imports SSL in non-test / non-example code.
I went back and fixed up only the actual "deployable" runtime code. May be worth doing conditional imports for the tests so at least the tests could run and fail on usage. |
Merged to master from command line. Thanks for contribution. |
Wraps ssl in a deferred wrapper.
aiohttp does not require SSL to function. The codepaths involved with
SSL will only be hit upon SSL usage. Using a wrapper allows installs
that don't use SSL to function (without erroring on import) and still
allows full function on SSL enabled systems.
What do these changes do?
Are there changes in behavior for the user?
Related issue number
Checklist
CONTRIBUTORS.txt
changes
folder<issue_id>.<type>
for example (588.bug)issue_id
change it to the pr id after creating the pr.feature
: Signifying a new feature..bugfix
: Signifying a bug fix..doc
: Signifying a documentation improvement..removal
: Signifying a deprecation or removal of public API..misc
: A ticket has been closed, but it is not of interest to users.