Sourcery AI
p/sourcery-ai
Instant Python refactoring
David Cohen
Sourcery β€” Grammarly for code
Featured
94
β€’
Sourcery instantly reviews your Python code and refactors it, making it cleaner and more readable. It’s like having a pair programmer always working next to you. Install into PyCharm, VS Code, or your GitHub repos in 1 minute. It's free!
Replies
eamonncarey
Congrats on the launch @tim_sourcery! Looks like you're supporting python for now - what are the plans/timelines for other languages?
Tim Gilboy
@eamonncarey thanks! We're going to be focused on Python for the next several months to year at least. We want to make sure we are able to really help Python developers make meaningful improvements to their code and work much faster. Then we'll start to shift over to other languages. Javascript and Java are the first two on our list, but we've had requests for pretty much every language out there - so depending on what people want those plans might change.
Dylan McKee
This looks really cool! Excited to give it a try and congrats on launching. I'm really curious to know how the suggestions handle opinion – aware that Python has 'one obvious way' but devs are still opinionated (I'm as guilty as the next person) on coding styles, and I'm keen to know how you handle that β€“ as I've often found JetBrains auto formatting very restrictive and undoing of my personal conventions – and how (or if?) you see it expanding beyond Python to more opinionated languages? :)
Tim Gilboy
Thanks @djmckee ! You're definitely not alone - we're opinionated ourselves as developers πŸ™‚. That's why we've set up Sourcery so you can review every suggestion before it's implemented (if you want) and can choose to skip an individual suggestion or configure Sourcery to not suggest certain types of refactorings altogether. In terms of formatting we try our best to fit in with the style of the existing code. As for other languages. We're still a ways out from moving beyond Python - but we will likely have a similar approach where we will take a strong line on what is best practice and how the code should be structured, but always give you flexibility to code to your own style/approach/opinion
Teddy
This is amazing! Congrats on your PH launch team! Are you saying that Sourcery will auto-suggest improvements on my GitHub repos directly 🀯? Interested to hear more!
Tim Gilboy
Thanks @_teddy !! And exactly. If you add Sourcery to your GitHub repos Sourcery will automatically review any new pull request you make. Or you can have Sourcery review your entire repo anytime you want from your Sourcery dashboard. We're Python only for now - so we won't review sections of your repos in other languages - but we'll get there in the future :)
sh0 (Eyal Toledano)
Congrats Tim & co, this is so great :D
Tim Gilboy
@eyaltoledano thanks so much :D
Spencer Walden
Love the name. Will be trying this out in PyCharm (thanks for making a free version so I can try it!). When you say 'Advanced Refactorings' in the pro version, what specifically do you get over the free version?
Tim Gilboy
@swaldy :) Advanced refactorings in Pro are currently focused around more complex types of method extraction for duplicate/similar code. We're frequently expanding the types of refactorings Sourcery does, so this will be changing in the near future :)
Macgill Davis
Awesome product that's super helpful. This is the future of coding. Highly recommend! You all need to launch Javascript and Ruby support please!!
Tim Gilboy
Thanks for the support @macgridcupcake ! We're planning on supporting Javascript and Ruby in the future, but there's only so much the three of us can tackle for now :).
Rowe Morehouse
I think you guys said you use opensource git repos as "training data" … is this correct? … is there an AI component to your product? … Would it be possible to train your model with a local ascii text corpus?
Jan Oberhauser
Congratulations, Looks great! Really have to get now started with Python again! ;-)
Tim Gilboy
@janoberhauser thank you!!
Aleks Bochkov
Brilliant idea! Congrats on the launch πŸš€
Tim Gilboy
Thanks @bochkovaleks !!
Hector Tantoh
This looks great. I'll be sure to pass on to our CTO and dev team!
Tim Gilboy
@hecclectic thank you!! Let us know what they think when they try it out
Kyle Lawson
Can't wait to try this out!
Tim Gilboy
@kylelaws0n thanks! Can't wait to hear what you think
Peter Demin
Wow, some refactorings are pretty complex! Next-level black!
Tim Gilboy
@peter_demin thanks!! Let us know if there are types of refactorings you'd like us to add in :)
Lukas Kemkes
@brendan_maginnis @nick_thapen @tim_sourcery This is awesome! πŸ™Œ We have been using Sourcery for a while now and are super excited about how easy it makes refactoring our code + it gives us cool advice on how to simplify our code. Very excited to see what's coming in the next releases! πŸš€
Tim Gilboy
Thanks @lukas_kemkes ! I always love to hear when Sourcery is helping out teams a lot. We're working now on getting more types of suggestions for your code, doing more complex refactorings (moving to the class level), and building out more tools to help you deal with duplicate code.
Steve
Great, looking for javascript!
Tim Gilboy
@stefano_marchetti definitely something we're planning on adding in the future. First we want to make Sourcery more powerful for Python and build out some of our more complex code improvement tools. But then the plan is to start supporting other languages and javascript is one of the first on the list :)
Manthankumar Satani
This is excellent, Congratulations,
Tim Gilboy
@its_mnthn thank you! Glad to hear you like it :D
Pavleen Thukral
Pretty cool! Any plans for Sublime or Atom?
Tim Gilboy
@pavt thanks! Planning on supporting both in the future. For Sublime we have a bit of a workaround at the moment. It's not as integrated as our VS Code & PyCharm plugins but still gives you all the refactorings - https://github.com/sourcery-ai/s...
Ivanna Wendel
Great product and we will definitely try it with our dev. team! Congrats!
Tim Gilboy
Thanks @ivanna_wendel !!
laundmo
Sadly Sourcery seems to heavily prefer making the code more compact and less readable, converting normal if statements to ternary, loops to comprehensions etc. This does not make the cleaner or more readable in any way. Writing something out across multiple lines is in most cases more readable than making it a single line. It has multiple times caused my linter to complain about line length and i had to undo multiple refactorings that were making the code much less readable. I recommend Sourcery reevaluates the focus on shortening the code to actually refactoring bad patterns like range(len()).
Brendan Maginnis
Thanks for hunting Sourcery @davidcohen! Hey Product Hunt πŸ‘‹ - @nick_thapen, @tim_sourcery, and I are very excited to be sharing Sourcery with you all. Sourcery instantly refactors your code while you're working directly in your IDE. We're obsessed with trying to figure out the best way to write high quality code - and Sourcery is our way to make sure everyone can always work with the cleanest code possible. Sourcery sits in the background when you're working, analyzing your code, finding problems, and suggesting changes to make your code easier to read. In your IDE Sourcery works fully locally, so your code is always private. We're focused on Python right now and have integrations with PyCharm, VS Code, and GitHub. Sourcery's still in its early days - so let us know how we can keep improving it to make it more useful to you 😁 It's free to get started - just sign up on our site, add Sourcey to your IDE, and let us know what you think!
Eugene Hauptmann
@davidcohen @nick_thapen @tim_sourcery @brendan_maginnis congrats! Love the privacy aspect. Going to try this on couple of our CI/CD pipelines.
Tim Gilboy
Thanks @eugenehp ! Let us know what you think - we're still in our early days and are always trying to learn how we can keep getting better
Csaba Kissi
@davidcohen @nick_thapen @tim_sourcery @brendan_maginnis Would be great to something like this for other programming languages. Great work guys!
Tim Gilboy
Thanks @csaba_kissi ! We're aiming to expand Sourcery to other languages down the line (we're planning on starting with Java and Javascript next). But first we want to provide even more detailed, frequent, and impactful improvements for Python.
Paul Smith
Hi @brendan_maginnis @nick_thapen @tim_sourcery - great to see you launch! I know a few folks who've been using Sourcery over the past couple of months, and they've nothing but praise for it. Be interested to know how you make sure your reviews and refactoring suggestions are accurate? Is Sourcery implimenting basic best practise and fixing obvious mistakes, or is it learning in a dynamic way across your crowd of users?
Nick Thapen
@brendan_maginnis @tim_sourcery @paul_a_smith Thanks Paul that's great to hear! We take a lot of care to make sure that the suggestions are correct. Firstly bucketloads of internal testing around each suggestion, secondly lots of detailed static analysis of the code, and as a backstop we run all of our suggestions over lots of open-source libraries then check that their tests are still green. Lots more detail here: https://sourcery.ai/blog/testing.... On the second point we treat our suggestions like building blocks - they can stack on top of each other to make more impressive changes to the code (like in the Gilded Rose example in the video).