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 imports (Sourcery refactored) #118

Closed
wants to merge 1 commit into from

Conversation

sourcery-ai[bot]
Copy link

@sourcery-ai sourcery-ai bot commented Nov 2, 2020

Pull Request #116 refactored by Sourcery.

If you're happy with these changes, merge this Pull Request using the Squash and merge strategy.

NOTE: As code is pushed to the original Pull Request, Sourcery will
re-run and update (force-push) this Pull Request with new refactorings as
necessary. If Sourcery finds no refactorings at any point, this Pull Request
will be closed automatically.

See our documentation here.

Run Sourcery locally

Reduce the feedback loop during development by using the Sourcery editor plugin:

Review changes via command line

To manually merge these changes, make sure you're on the import_test branch, then run:

git fetch origin sourcery/import_test
git merge --ff-only FETCH_HEAD
git reset HEAD^

@sourcery-ai sourcery-ai bot requested a review from Hellebore November 2, 2020 14:07
@sourcery-ai sourcery-ai bot force-pushed the sourcery/import_test branch from 9bfd324 to e1e235f Compare November 2, 2020 14:38
Comment on lines -26 to +48
if item.name != "Aged Brie" and item.name != "Backstage passes to a TAFKAL80ETC concert":
if item.quality > 0:
if item.name != "Sulfuras, Hand of Ragnaros":
item.quality = item.quality - 1
else:
if item.name == "Sulfuras, Hand of Ragnaros":
continue
if item.name == "Aged Brie":
if item.quality < 50:
item.quality = item.quality + 1
if item.sell_in < 1 and item.quality < 50:
item.quality = item.quality + 1

elif item.name == "Backstage passes to a TAFKAL80ETC concert":
if item.quality < 50:
item.quality = item.quality + 1
if item.name == "Backstage passes to a TAFKAL80ETC concert":
if item.sell_in < 11:
if item.quality < 50:
item.quality = item.quality + 1
if item.sell_in < 6:
if item.quality < 50:
item.quality = item.quality + 1
if item.name != "Sulfuras, Hand of Ragnaros":
item.sell_in = item.sell_in - 1
if item.sell_in < 0:
if item.name != "Aged Brie":
if item.name != "Backstage passes to a TAFKAL80ETC concert":
if item.quality > 0:
if item.name != "Sulfuras, Hand of Ragnaros":
item.quality = item.quality - 1
else:
item.quality = item.quality - item.quality
else:
if item.quality < 50:
item.quality = item.quality + 1
if item.sell_in < 11 and item.quality < 50:
item.quality = item.quality + 1
if item.sell_in < 6 and item.quality < 50:
item.quality = item.quality + 1
if item.sell_in < 1:
item.quality = item.quality - item.quality
else:
if item.quality > 0:
item.quality = item.quality - 1
if item.sell_in < 1 and item.quality > 0:
item.quality = item.quality - 1
item.sell_in = item.sell_in - 1
Copy link
Author

Choose a reason for hiding this comment

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

Function GildedRose.update_quality refactored with the following changes:

  • Simplify conditional into switch-like form (switch)
  • Merge nested if conditions (merge-nested-ifs)
  • Swap positions of nested conditionals (swap-nested-ifs)
  • Remove redundant conditional (remove-redundant-if)
  • Remove empty elif clause (remove-pass-elif)
  • Replace multiple comparisons of same variable with in operator (merge-comparisons)
  • Ensure first condition in if is positive (swap-if-else-branches)
  • Split conditional into multiple branches (split-or-ifs)
  • Hoist conditional out of nested conditional (hoist-if-from-if)
  • Extract guard clause from elif block (guard)
  • Hoist repeated code outside conditional statement (hoist-statement-from-if)
  • Simplify numeric comparison (simplify-numeric-comparison)

@sourcery-ai
Copy link
Author

sourcery-ai bot commented Nov 2, 2020

Sourcery Code Quality Report

✅  Merging this PR will increase code quality in the affected files by 1.29%.

Quality metrics Before After Change
Complexity 13.80 🙂 7.00 ⭐ -6.80 👍
Method Length 45.40 ⭐ 45.00 ⭐ -0.40 👍
Working memory 5.40 ⭐ 5.40 ⭐ 0.00
Quality 82.10% 83.39% 1.29% 👍
Other metrics Before After Change
Lines 52 48 -4
Changed files Quality Before Quality After Quality Change
gilded_rose_original.py 82.10% ⭐ 83.39% ⭐ 1.29% 👍

Here are some functions in these files that still need a tune-up:

File Function Complexity Length Working Memory Quality Recommendation
gilded_rose_original.py GildedRose.update_quality 35 ⛔ 148 😞 9 🙂 39.13% 😞 Refactor to reduce nesting. Try splitting into smaller methods

Legend and Explanation

The emojis denote the absolute quality of the code:

  • ⭐ excellent
  • 🙂 good
  • 😞 poor
  • ⛔ very poor

The 👍 and 👎 indicate whether the quality has improved or gotten worse with this pull request.


Please see our documentation here for details on how these metrics are calculated.

We are actively working on this report - lots more documentation and extra metrics to come!

Let us know what you think of it by mentioning @sourcery-ai in a comment.

@Hellebore Hellebore closed this Dec 14, 2021
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.

1 participant