On Sun, Jun 20, 2021, at 20:46, Gagandeep Singh wrote:
> I have recently joined the mailing list and have gone through the previous 
> discussions on this thread. I would like to share my analysis (advantages and 
> disadvantages) of three possible alternatives (Enum, String, boolean) to 
> support the proposed feature.

Thanks for this thorough analysis, Gagandeep!

I'll throw one more heretical idea out there:

`np.copy.IF_NEEDED`, `np.copy.ALWAYS`, `np.copy.NEVER`.

This has the advantages of the enum, doesn't pollute the global namespace, and 
has an intuitive name.

`np.array(x, copy=np.copy.ALWAYS)`

It would be slightly more awkward to type, but is doable.  A rough Python 
version sketch would be:

class CopyFlag(enum.Enum):
    IF_NEEDED = 0
    ALWAYS = 1
    NEVER = 2

class NpCopy:
    IF_NEEDED : CopyFlag = CopyFlag.IF_NEEDED
    ALWAYS : CopyFlag = CopyFlag.ALWAYS
    NEVER : CopyFlag = CopyFlag.NEVER

    def __call__(self, x):
        return ...whatever copy returns...

np.copy = NpCopy()


Stéfan
_______________________________________________
NumPy-Discussion mailing list
NumPy-Discussion@python.org
https://mail.python.org/mailman/listinfo/numpy-discussion

Reply via email to