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

Py3 support #8181

Merged
merged 4 commits into from
Sep 20, 2018
Merged

Py3 support #8181

merged 4 commits into from
Sep 20, 2018

Conversation

OPpuolitaival
Copy link
Contributor

Description

Small fixes for python3 support and icetea error handling

Pull request type

[x] Fix
[ ] Refactor
[ ] Target update
[ ] Functionality change
[ ] Breaking change

@@ -1357,4 +1357,4 @@ def merge_build_data(filename, toolchain_report, app_type):
if 'type' not in build[0]:
build[0]['type'] = app_type
build_data['builds'].insert(0, build[0])
dump(build_data, open(filename, "wb"), indent=4, separators=(',', ': '))
dump(build_data, open(filename, "w"), indent=4, separators=(',', ': '))
Copy link
Contributor

Choose a reason for hiding this comment

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

does this close file handle after dump ?

Copy link
Contributor Author

@OPpuolitaival OPpuolitaival Sep 19, 2018

Choose a reason for hiding this comment

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

I don't know how python close files but normally there is no problem even when not closing the files in code

Copy link
Contributor

Choose a reason for hiding this comment

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

I think more pythonic way would be like:

with open('data.json', 'w') as outfile:
    json.dump(data, outfile)

I little doubt that file handle stay open after dump call - normally if you open file with open() you need to take care to close it as well..

Copy link
Contributor

Choose a reason for hiding this comment

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

Echoing @jupe's comment about using with open()

Copy link
Contributor

Choose a reason for hiding this comment

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

Ah, sorry. Typed too quickly. @jupe this is ok because the file handle is only opened within the context of the function call. Once the call is completed, the reference is garbage collected.

I agree that your suggestion is more pythonic and makes sure to close the file, but considering this is a fix and this is at the end of the file, I'm ok with this going in asis.

Copy link
Contributor

Choose a reason for hiding this comment

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

It is true that when there is no references to file handle it will be closed automatically . But that is not the case when exceptions happens because then reference to file handle is stored to traceback object - part of stack trace and file will not be closed.. That could happen in some corner case - even unlikely. Anyway, it would be more safe to use with statement just in case..

Copy link
Contributor

Choose a reason for hiding this comment

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

Interesting. Hadn't thought about what happens in the case of an exception.

I'm fine with seeing the change be made if @OPpuolitaival wants to make it. I was also under the impression that it would be good to get this in sooner rather than later, and since this seemed like a small change/improvement, I didn't want to hold up the PR.

@@ -1357,4 +1357,4 @@ def merge_build_data(filename, toolchain_report, app_type):
if 'type' not in build[0]:
build[0]['type'] = app_type
build_data['builds'].insert(0, build[0])
dump(build_data, open(filename, "wb"), indent=4, separators=(',', ': '))
dump(build_data, open(filename, "w"), indent=4, separators=(',', ': '))
Copy link
Contributor

Choose a reason for hiding this comment

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

Ah, sorry. Typed too quickly. @jupe this is ok because the file handle is only opened within the context of the function call. Once the call is completed, the reference is garbage collected.

I agree that your suggestion is more pythonic and makes sure to close the file, but considering this is a fix and this is at the end of the file, I'm ok with this going in asis.

@cmonr
Copy link
Contributor

cmonr commented Sep 19, 2018

/morph build

@mbed-ci
Copy link

mbed-ci commented Sep 19, 2018

Build : SUCCESS

Build number : 3112
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/8181/

Triggering tests

/morph test
/morph export-build
/morph mbed2-build

@@ -169,12 +169,15 @@ def icetea_tests(target, tcdir, verbose):
command = ['icetea', '--tcdir', tcdir, '--list', '--json', '--platform_filter', target] \
+ (['-v'] if verbose else [])

if not os.path.exists(tcdir):
Copy link
Contributor

Choose a reason for hiding this comment

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

could this be before command variable definition? it would be more readable..

@mbed-ci
Copy link

mbed-ci commented Sep 19, 2018

@0xc0170
Copy link
Contributor

0xc0170 commented Sep 20, 2018

Ready for CI ?

@OPpuolitaival
Copy link
Contributor Author

Yes, this is ready for CI

@0xc0170
Copy link
Contributor

0xc0170 commented Sep 20, 2018

/morph build

@mbed-ci
Copy link

mbed-ci commented Sep 20, 2018

Build : SUCCESS

Build number : 3116
Build artifacts/logs : http://mbed-os.s3-website-eu-west-1.amazonaws.com/?prefix=builds/8181/

Triggering tests

/morph test
/morph export-build
/morph mbed2-build

@mbed-ci
Copy link

mbed-ci commented Sep 20, 2018

@mbed-ci
Copy link

mbed-ci commented Sep 20, 2018

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

Successfully merging this pull request may close these issues.

5 participants