JuliaPy / JuliaPy/PyCall.jl

bidirectional Symbol conversion

Open
#11 1 comment 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Julia
Stars
1.5k
Forks
186
PR merge metrics
No merged PRs in 30d

Description

Currently, `PyObject(s::Symbol)` produces a Python string, and `convert(Symbol, o)` converts a Python string object back into a `Symbol`. However, automatic type conversion does not work, i.e. `convert(PyAny, PyObject(:Foo))` produces `"Foo"` not `:Foo`.

One way to fix this might be to define a new Python string subtype, and instantiate this type from `PyObject(s::Symbol)`. That way, it will be usable as a string in Python but `convert(PyAny, ...)` will be able to detect that it is "really" a symbol and convert it appropriately.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by tracing the PyObject(s::Symbol), convert(Symbol, o), and convert(PyAny, PyObject(:Foo)) paths described in the issue. Confirm that a Symbol remains identifiable during Python string use and that converting it back produces :Foo rather than a plain string.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia, python
Domain
api, backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.