On 31.12.20 15:32, Todd wrote:

5. Stem with no suffixes

The stem property only takes off the last suffix, but even in the example given ('my/library.tar.gz') it isn't really useful because the suffix has two parts ('.tar' and '.gz').  I suggest another property, probably called "rootstem" or "basestem", that takes off all the suffixes, using the same logic as the "suffixes" property.  This is another symmetry issue: it is possible to extract all the suffixes, but not remove them.


Does anybody rely of this behavior of ".stem"? It always seemed odd to me but that might be because of the use-cases I work with.

So, another possibility would be to fix "stem" to do what makes sense.

This is a backwards compatibility break and I don't want to get into the complications of doing that.  There is really no benefit to breaking backwards compatibility.  I would strongly suspect renaming a method then making a new, completely different method with the same name is not going to happen.

I disagree that breaking compatibility has no benefit. The benefit is always long-term but I understand that you don't want to go through deprecating and re-adding the same name.

One concern I have is that "rootsteam" or "basestem" is not really a well-defined concept (as was "stem" when it was added - at least the multiple suffix concept was there but has little influence on the naming of the stem concept).

We already have concepts like:

basename << rightmost part of a path
root << toplevel node of a tree; also filesystem

The burden is just too high relative to the benefits.

What exactly is the burden?