Skip to content
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

Closed
wants to merge 5 commits into from
Closed

Add deferredssl #2221

wants to merge 5 commits into from

Conversation

ghost
Copy link

@ghost ghost commented Aug 24, 2017

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

  • I think the code is well written
  • Unit tests for the changes exist
  • Documentation reflects the changes
  • If you provide code modification, please add yourself to CONTRIBUTORS.txt
    • The format is <Name> <Surname>.
    • Please keep alphabetical order, the file is sorted by names.
  • Add a new news fragment into the changes folder
    • name it <issue_id>.<type> for example (588.bug)
    • if you don't have an issue_id change it to the pr id after creating the pr
    • ensure type is one of the following:
      • .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.
    • Make sure to use full sentences with correct case and punctuation, for example: "Fix issue with non-ascii contents in doctest text files."

@asvetlov
Copy link
Member

What is your use case?
I pretty sure all Python interpreters are shipped with ssl support nowdays.

@ghost
Copy link
Author

ghost commented Aug 25, 2017

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.

Copy link
Member

@asvetlov asvetlov left a 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.

@ghost
Copy link
Author

ghost commented Aug 28, 2017

The only reason I opted for a module was to be a bit forward looking (and DRY).
But, whatever fits best with the project makes most sense.

@asvetlov
Copy link
Member

@machina-widmo would you rewrite a PR for using approach proposed by me?
I really don't like deferredsll.py.

Conditionally imports SSL in non-test / non-example code.
@ghost
Copy link
Author

ghost commented Aug 31, 2017

I went back and fixed up only the actual "deployable" runtime code.
Anywhere else, I don't think it's necessary as they are either examples, or tests.

May be worth doing conditional imports for the tests so at least the tests could run and fail on usage.

@asvetlov
Copy link
Member

Merged to master from command line.

Thanks for contribution.

@asvetlov asvetlov closed this Aug 31, 2017
@lock
Copy link

lock bot commented Oct 28, 2019

This thread has been automatically locked since there has not been
any recent activity after it was closed. Please open a new issue for
related bugs.

If you feel like there's important points made in this discussion,
please include those exceprts into that new issue.

@lock lock bot added the outdated label Oct 28, 2019
@lock lock bot locked as resolved and limited conversation to collaborators Oct 28, 2019
@psf-chronographer psf-chronographer bot added the bot:chronographer:provided There is a change note present in this PR label Oct 28, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bot:chronographer:provided There is a change note present in this PR outdated
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants