Below is my upcoming worklist I plan to take on in the coming weeks/months:
- Add stack limit value to
py.ContextOpts and implement (Issue 143)
- Additions to
py.utils, including funcs that use reflect to auto-populate Go structs from a given py.Object
- Add
exit() (Issue 140)
- Add a shared set of golden util funcs to
pytest/pytest.go so the same boilerplate doesn't have to appear for each golden main_test.go etc
- Enhance
examples/multi-context into a golden test.
- Add
real, imag, conjugate properties to py.Int, py.Float, py.BigInt, py.Bool plus tests (Issue 73)
- For cleanliness and organization, I suggest we move all the built-in modules into the
modules dir. In a future where gpython gets traction as an embedded interpreter and more and more modules appear, it makes sense to me that they show up the modules dir, not the project root dir. This is basically just a bunch of dirs moving and a few import lines changing. I would be happy to do this first or as soon as makes sense (since something like this is better done sooner than later). I think this is also very helpful (self-documenting) for newcomers to understand the project structure and organization.
- Introduce
py.ModuleImpl for os, offering support for a few commonly used functions -- e.g. os.system()
- This is a security concern (e.g. python web demo). Thinking I add flags to
py.ContextOpts that correspond to new py.Method flags which are checked when a py.Module is populated during an initial py.Context module import (instantiation).
- I would add tests that test each security mode / flag
- Add support for
.format using pyfmt (Issue 116)
- Before doing this, I would appreciate sign-off on
pyfmt so I don't start investing time into that and then we don't want to add that as a dependency. We can cross this bridge as it comes, but I wanted to express the value here and that pyfmt is a natural fit with gpython!
- I left a note to the dev
Also please lmk what order I should do these in if that's something that matters to people. Otherwise, I listed them in the order that makes the most sense to me.
@sbinet @ncw, please lmk how the PRs should show up. By default, I'll do a separate PR for each numbered item (citing the Issue # in the PR)
Drew
Below is my upcoming worklist I plan to take on in the coming weeks/months:
py.ContextOptsand implement (Issue 143)py.utils, including funcs that usereflectto auto-populate Go structs from a givenpy.Objectexit()(Issue 140)pytest/pytest.goso the same boilerplate doesn't have to appear for each goldenmain_test.goetcexamples/multi-contextinto a golden test.real,imag,conjugateproperties topy.Int,py.Float,py.BigInt,py.Boolplus tests (Issue 73)modulesdir. In a future wheregpythongets traction as an embedded interpreter and more and more modules appear, it makes sense to me that they show up the modules dir, not the project root dir. This is basically just a bunch of dirs moving and a fewimportlines changing. I would be happy to do this first or as soon as makes sense (since something like this is better done sooner than later). I think this is also very helpful (self-documenting) for newcomers to understand the project structure and organization.py.ModuleImplforos, offering support for a few commonly used functions -- e.g.os.system()py.ContextOptsthat correspond to newpy.Methodflags which are checked when apy.Moduleis populated during an initialpy.Contextmodule import (instantiation)..formatusing pyfmt (Issue 116)pyfmtso I don't start investing time into that and then we don't want to add that as a dependency. We can cross this bridge as it comes, but I wanted to express the value here and thatpyfmtis a natural fit with gpython!Also please lmk what order I should do these in if that's something that matters to people. Otherwise, I listed them in the order that makes the most sense to me.
@sbinet @ncw, please lmk how the PRs should show up. By default, I'll do a separate PR for each numbered item (citing the Issue # in the PR)
Drew