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.

+1

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?


Best
Sven