go-python / go-python/gpython

Multiple class definitions in the same file raise error "invalid syntax"

Open
#257 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
1k
Forks
105
PR merge metrics
No merged PRs in 30d

Description

Hey, there. It seems like it's not possible to define multiple classes in a single Python file with `py.RunSrc()`, unless I'm misunderstanding something...? It works with `py.RunFile()`, though.

Go:
```go

context := py.NewContext(py.DefaultContextOpts())

data, _ := fs.ReadFile(g.FS, "math_stuff.py")

_, err := py.RunSrc(context, string(data), "run", nil)

log.Println(err)

```

`math_stuff.py`
```python
class A:
pass

class B:
pass
```

Gives me the error:

```
2026/07/02 15:06:16
File "run", line 5, offset 5
class B:

SyntaxError: 'invalid syntax'
```

I'm testing with the latest commit.

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reproducing the issue with py.RunSrc and the two-class math_stuff.py example, then compare its handling with py.RunFile. Trace the parser or source-loading path reached by py.RunSrc and add a regression test for multiple class definitions; done means the example runs without the invalid syntax error.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, python
Domain
compilers
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
65/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.