Skip to content
This repository has been archived by the owner on Nov 23, 2017. It is now read-only.

Change import statements to import only what's needed #468

Open
wants to merge 4 commits into
base: master
Choose a base branch
from

Conversation

denisra
Copy link

@denisra denisra commented Nov 16, 2016

Changed all the import statements in all modules in the examples directory to import only what is needed.

This fixes issue #464

directory to import only what is needed.

This fix issue python#464
@1st1
Copy link
Member

1st1 commented Nov 16, 2016

How about we do simple

import asyncio

at the top of each example? get_event_loop() should become asyncio.get_event_loop().

That's the style we recommend in Python documentation and use in asyncio code itself.

@denisra
Copy link
Author

denisra commented Nov 16, 2016

That makes sense. Let me fix that.

@the-knights-who-say-ni
Copy link

Hello, and thanks for your contribution!

Unfortunately we couldn't find an account corresponding to your GitHub username at bugs.python.org (b.p.o). If you don't already have an account at b.p.o, please create one and make sure to add your GitHub username. If you do already have an account at b.p.o then please go there and under "Your Details" add your GitHub username.

And in case you haven't already, please make sure to sign the PSF contributor agreement (CLA); we can't legally look at your contribution until you have signed the CLA.

Once you have done everything that's needed, please reply here and someone will verify everything is in order.

@denisra
Copy link
Author

denisra commented Nov 16, 2016

@1st1 Please let me know if you need me to change anything else.

@the-knights-who-say-ni This is my first contribution. I've just created my account at bugs.python.org and added my Github username to it. Please let me know if I missed anything.

@brettcannon
Copy link
Member

Please ignore any label fiddling I do; you managed to find a bug with the @the-knights-who-say-ni bot.

@denisra do make sure to sign the CLA.

@brettcannon
Copy link
Member

OK, bot is fixed; sorry about that.

Copy link
Member

@brettcannon brettcannon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In terms of imports you need to be careful about side-effect access to submodule that just happen to be imported from asyncio itself, e.g. don't rely on test_utils existing on asyncio.

@@ -172,7 +173,7 @@ def main():
loop = asyncio.new_event_loop()
sslctx = None
if args.tls:
sslctx = test_utils.dummy_ssl_context()
sslctx = asyncio.test_utils.dummy_ssl_context()
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unless it's documented as such, there's no guarantee this will hold in the future. It would be better to import asyncio.test_utils explicitly.

@@ -3,8 +3,7 @@
import argparse
import sys

from asyncio import *
from asyncio import test_utils
import asyncio
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also import asyncio.test_utils.

@@ -3,8 +3,8 @@
import argparse
import sys

from asyncio import *
from asyncio import test_utils
import asyncio
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

asyncio.test_utils

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder why we use test_utils anyways. It should be removed from examples.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@brettcannon Thanks for pointing that out. I made the changes as suggested. Please let me know if I need to change anything else.

@denisra
Copy link
Author

denisra commented Nov 17, 2016

@brettcannon I can also confirm that I've signed the CLA.

@1st1
Copy link
Member

1st1 commented Nov 17, 2016

@denisra I wonder if we could remove import asyncio.test_utils completely. This is an internal module, and has nothing to do with examples (which historically were just experiments with asyncio, while asyncio was in active development).

@denisra
Copy link
Author

denisra commented Nov 17, 2016

@1st1 is it ok if I create another issue and submit another PR for that, to keep things separated?

@1st1
Copy link
Member

1st1 commented Nov 17, 2016

@1st1 is it ok if I create another issue and submit another PR for that, to keep things separated?

OK, let's do that!

import json
import logging

import asyncio
import asyncio.test_utils

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Imports should be sorted alphabetically (that's what we try to do in asyncio and CPython code bases).

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@1st1 I wasn't aware of that, sorry. I was going by the PEP8 guidelines, where it tells us to import the standard library modules first. But I'll have that fix following your recommendations.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@denisra Asyncio is technically a stdlib module. ;)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@SethMichaelLarson I can't say that it isn't :) will send send in another commit in just a few min with that fixed

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants