This is new and likely very useful: composite actions! You can bundle actions together, just like Azure templates, but far more powerful - you also have inputs and outputs! I had a feeling they had a plan for a templates replacement when they didn’t bring templates to Actions right away, and looks like this was it.
Of course, you could do this with javascript/typescript, but this is far simpler and easier to maintain for simple jobs. Remember you can also have local actions in ./.github/actions/*/action.yml
!
There are a few limitations. You have to have a single shell per step (no automatic selection based on OS, so bash or powershell core), and they have to be run steps, no actions-in-actions. But still quite useful! Actions-in-actions would have been killer, though...
Union[int, str]
is now int | str
, and Optional[str]
is now str | None
(well, functionally identical). We can pretty much ignore importing simple stuff from typing now! Also happy to see PEP 563 (postponed evaluation of annotations) in too, but actually rather surpised, it was supposed to hit in 4.0, and they kept saying 3.10 was not 4.0. Hmmm…. If you are interested in what’s in so far, visit: https://docs.python.org/3.10/whatsnew/3.10.html
Union[int, str]
is more descriptive that int | str
. Sometimes a bit of additional verbosity is a good thing.
You have to click (as far as I can tell) the button to enable - so you can’t fully automate (which is good, I think - you must review). So anyone who has the permissions to merge a PR now has a choice in the dropdown “Merge when greeen” so they can click that instead of merging before checks pass or coming back to the page later. That’s how I understand it, I haven’t seen it in action yet.
I could be wrong, in which case you’d have to also add “one required review” to get the proper, one person sees it behavior. I’ll update here when I see what it does!
poetry install
, since it knows you are obviously trying to develop (fantastic, why does no one else do this?). All nice.
From my point of view, poetry just does everything I can already do with specialized tools
Yes, but that’s exactly it; it’s all in one, and when you are working with a project, not having to deal with venvs and setup.*
hassles and all the weird caveats is really refreshing, and much easier to teach and use. “Did I remember to add this file to the SDist in my MANIFEST.in”, did I turn on find packages, did find grab by test suite by default, etc. Dealing with setuptools has gotten a lot better, but I’d not call it “fun”. I might call poetry “fun”. The seperate tools are still more powerful/configurable.
I am not yet sold on poetry, primarly due the main caveat I’ve listed above and interaction with Conda. I am finding it pretty useful for setting up quick projects though (cookie solves that for setuptools too, as well, including C++ ones ;) )
TH1:Smooth
is an example. scipy.signal
has some algorithms that seem more suited to >>100 bins, and I have not found much else so far.
open
without with
for a quick “one liner” - things can break when you try to assume the garbage collector will run, and it’s a bad example. Maybe always run python with -Wd
! Blosc/python-blosc#243