pythonnet / pythonnet/pythonnet
Allow decoders to decode Python types derived from primitives
Personne n'a encore pris cette issue.
- Langage dominant
- C#
- Étoiles
- 5.5k
- Forks
- 780
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
Environment
- Pythonnet version: 3.0.2
- Python version: not relevant for this issue
- Operating System: not relevant for this issue
- .NET Runtime: not relevant for this issue
Details
-
We have used the preview version in the past and wrapped it so that we are able to update the package and change against interfaces for future releases. One part of it is converting numpy types. By default such types are not supported anymore in the release version and it seems to be recommended to use codecs instead. I registered a codec (same as pandanet) but
PyObject.As<double>()does not convertPyType = <class 'numpy.int32'>with the help of the codec.
By debugging it never hits the PyObjectConversions.TryDecode because double it is not equal to "object type" and not one of the "DecodableByUserTypes".TODO
to reproduce:
import numpy as np
numpyArray = np.array([1, 2])
// C# part
var value = numpyArray.GetItem(i)
var valueAsT = value.As<double>(); // fails
Whish:
- solution to handle such a case i.e. by configuring hooks or use the existing codec approach to convert before it hits the usual
ToPrimitive(...)function which fails.
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par PyObject.As() et suivez le chemin via PyObjectConversions.TryDecode, les codecs enregistrés et ToPrimitive(...), en utilisant la reproduction avec numpy.int32 comme première vérification. Déterminez où les types primitifs Python dérivés devraient être acceptés et définissez l’achèvement comme la conversion réussie des valeurs du tableau présenté en double, sans modifier le comportement existant des codecs.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- csharp, numpy, python
- Domaine
- backend, devtools
- Type d'issue
- Fonctionnalité
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 30/100