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

Fix LGTM alerts #186

Merged
merged 3 commits into from
Oct 7, 2021
Merged

Fix LGTM alerts #186

merged 3 commits into from
Oct 7, 2021

Conversation

DimitriPapadopoulos
Copy link
Contributor

@DimitriPapadopoulos DimitriPapadopoulos commented Sep 10, 2021

Description

Fixes a large part of these LGTM alerts:
https://lgtm.com/projects/g/pydicom/deid/

Checklist

  • I have commented my code, particularly in hard-to-understand areas
  • My changes generate no new warnings
  • My code follows the style guidelines of this project

if os.path.isfile(os.path.join(tempdir, f))
)

if dicom_file is not None:
Copy link
Member

Choose a reason for hiding this comment

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

Looks like you forgot to add back the check here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Not at all. It's useless. See commments in commit.

Copy link
Member

Choose a reason for hiding this comment

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

@BrianKolowitz it looks like you added this check - can you confirm the change looks okay to you?

Copy link
Contributor Author

@DimitriPapadopoulos DimitriPapadopoulos Sep 15, 2021

Choose a reason for hiding this comment

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

Maybe it wasn't useless before, now it is useless because of the additional try/except.

Copy link
Contributor Author

@DimitriPapadopoulos DimitriPapadopoulos Sep 15, 2021

Choose a reason for hiding this comment

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

dicom_file cannot be empty because we continue in case of StopIteration - or an exception is raised in case of other erros.

Copy link
Member

Choose a reason for hiding this comment

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

Understood, and it LGTM - I'm just hoping to get the blessing of the original contributor before changing the code he wrote.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Sure, I'd like to have it too.

Copy link
Member

Choose a reason for hiding this comment

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

@wetzelj it looks like @BrianKolowitz is not able to respond (I hope he's okay!) and I'd like to get one more review on this before merge. It's fairly small changes - if you have time in the next few weeks could you take a look?

Copy link
Contributor

Choose a reason for hiding this comment

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

Sorry for my delayed response... I was out of the office last week and have been playing catch up.

Looking at this change, it looks like it should be okay. Since the next() will raise StopIteration when the iterator is exhausted (i.e. there are no items left in the zipfile), the continue statement that you've put in on StopIteration will continue to the next item up for processing in the list loop on line 60 (iterating through multiple files/directories).

Copy link
Member

Choose a reason for hiding this comment

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

Thanks @wetzelj ! That is my sentiment as well.

Call to next() in a generator

Additionnlly, dicom_file cannot be None:
• os.path.splitext(dicom_file) would raise TypeException
• In the case of a ZIP file, which I believe is the one the existing
  code was trying to address, we continue on StopIteration if the ZIP
  file is empty.
Import of 'Sequence' is not used.
Import of 'remove_sequences' is not used.
Import of 'os' is not used.
Import of 'read_json' is not used.
Import of 'DeidRecipe' is not used.
Import of 'get_private' is not used.
Import of 'remove_sequences' is not used.
Import of 'extract_fields_list' is not used.
Import of 'extract_values_list' is not used.
Import of 'get_fields' is not used.
Import of 'DataElement' is not used.
Import of 'operator' is not used.
Import of 'get_installdir' is not used.
Import of 'os' is not used.
mport of 'read_file' is not used.
Import of 'os' is not used.
Except block directly handles BaseException.

Function dateutil.parser.parse() raises the following exceptions:
• ParserError – Raised for invalid or unknown string formats, if the provided tzinfo is not in a valid format, or if an invalid date would be created.
• OverflowError – Raised if the parsed date exceeds the largest valid C integer on your system.
@vsoch vsoch merged commit 18f5b45 into pydicom:master Oct 7, 2021
@DimitriPapadopoulos DimitriPapadopoulos deleted the lgtm branch October 7, 2021 22:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants