JuliaPy / JuliaPy/PyCall.jl

python-pptx trouble

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

Description

Installed python-pptx like this
```
using Conda, PyCall
run(PyCall.python_cmd(`-m pip install python-pptx`))
```

In this example, the second last line fails, since `ERROR: KeyError: key "rgb" not found`.
```julia
using PyCall
pptx = pyimport("pptx")
RGBColor = pptx.dml.color.RGBColor
Inches = pptx.util.Inches
prs = pptx.Presentation()
title_slide_layout = get(prs.slide_layouts, 1)
slide = prs.slides.add_slide(title_slide_layout)
shape = slide.shapes.add_table(4, 3, Inches(1), Inches(1), Inches(3), Inches(2))
shape.table.cell(1,1).fill.solid()
isnothing(shape.table.cell(1,1).fill.fore_color.type) # true
shape.table.cell(1,1).fill.fore_color.rgb = RGBColor(255, 0, 0) # ERROR: KeyError: key "rgb" not found
prs.save("debug_rgb_jl.pptx")
```
For some reason `shape.table.cell(1,1).fill.fore_color.type` is `nothing`. whereas in the Python version it is `1`. Here is Python version of the above
```python
import pptx
from pptx.dml.color import RGBColor
from pptx.util import Inches
prs = pptx.Presentation()
title_slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(title_slide_layout)
shape = slide.shapes.add_table(4, 3, Inches(1), Inches(1), Inches(3), Inches(2))
shape.table.cell(1,1).fill.solid()
shape.table.cell(1,1).fill.fore_color.type == 1 # True
shape.table.cell(1,1).fill.fore_color.rgb = RGBColor(255, 0, 0)
prs.save("debug_rgb_py.pptx")
```

Also, in Julia, typing `shape.` results in `Error: Error in the keymap...`.

Julia v1.2, Conda v1.3.0, PyCall v1.91.2.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.