[ENH] Support F-contiguous `memoryview`s in `cast`

Ouverte
#91,484 2 commentaires 0 réactions 2 personnes assignées Voir sur GitHub

@jamie2779 y travaille déjà.

Depuis le 15/8/2025.

Évaluation

Cette issue n'a pas encore été évaluée.

Description

interpreter-core type-feature

Currently memoryview.cast requires C-contiguous data when going from N-D to 1-D. As a result F-contiguous data is not supported. Please see example below:

>>> mv.c_contiguous
False
>>> mv.f_contiguous
True
>>> mv.cast("B")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: memoryview: casts are restricted to C-contiguous views

However as F-contiguous data is still contiguous and can be viewed in 1-D, it seems possible to support this type of data as well. PickleBuffer's raw method does appear to support both C & F contiguous data. Building off the example above:

>>> from pickle import PickleBuffer
>>> pb = PickleBuffer(mv)
>>> pb.raw()
<memory at 0x1105cec70>

This would be useful when interacting with other libraries that work with this kind of data. That said, don't know if there is other context behind the C-contiguous constraint that I may be missing here.

Linked PRs
  • gh-137803
Langage dominant
Python
Étoiles
77.2k
Forks
36k
Merge moyen
1 j 9 h
PR mergées (30 j)
558

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de python/cpython

Toutes les issues de python/cpython

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.