PyJulia Custom Structure Dispatch
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 20/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Ambito
- developer-experience
Direzione di ricerca
Inizia riproducendo gli esempi in example.py e example.jl, quindi leggi la documentazione di PyJulia e il comportamento della conversione dei tipi rilevante per gli oggetti Python e il dispatch di Julia. Il lavoro è concluso quando viene stabilito se le strutture Python personalizzate possono essere esposte come tipi distinti utilizzabili dal dispatch di Julia, oppure quando vengono documentati tale limite e l’alternativa supportata.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Hello, I've got a quistion as for the PyJulia functionality. How do I dispatch a Julia method for different objects defined in Python?
I assume the existence of an underlying mapping between native Python and Julia types: int -> Integer, float -> Float64, but at the same time np.array -> Array, which makes me think that I can customize this sort of mapping and connect MyClassPy -> MyClassJulia. Is that so?
Thank you in advance!
example.py
class MyClassA:
pass
class MyClassB:
pass
from julia import Julia
julia = Julia()
julia.eval("@eval Main import Base.MainInclude: include")
from julia import Main
Main.include("example.jl")
foo(MyClassA()) # "Dispatched to MyClassA version"
foo(MyClassB()) # "Dispatched to MyClassB version"
example.jl
# How can I access MyClassA and MyClassB types in Julia?
some_magic_way_to_include_structures_defined_in_python()
function foo( custom_pyobject :: MyClassA )
println("Dispatched to MyClassA version")
end
function foo( custom_pyobject :: MyClassB )
println("Dispatched to MyClassB version")
end
- Lingua principale
- Python
- Stelle
- 893
- Fork
- 101
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaPy/pyjulia
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 48/100
-
Kill existing Julia sessionAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Tutte le issue di JuliaPy/pyjulia
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
aws-samples/sample-per-model-bedrock#261 ·
I maintainer di solito rispondono entro 1 giorno
-
[UI/Accessibility] Low contrast text visibility in country selection dropdown on settings pageAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
pwncollege/dojo#1188 ·
I maintainer di solito rispondono entro 1 giorno
-
bug launcher packaging
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
tenstorrent/tt-studio#1426 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
python-attrs/cattrs#796 ·
I maintainer di solito rispondono entro 1 giorno