Documentation
¶
Overview ¶
Package python builds Python 3.10+ source from composable tokens. It includes builders for declarations, control flow, expressions, values, and built-in or generic type annotations. Suites use four-space indentation; callers insert explicit Line tokens between top-level statements. Rendering writes readable source directly and does not format, parse, or type-check the generated code.
Index ¶
- func AsyncForClause(target, iterable types.Token) types.Token
- func FStringExpr(expression types.Token) types.Token
- func FStringText(value string) types.Token
- func ForClause(target, iterable types.Token) types.Token
- func IfClause(condition types.Token) types.Token
- func Render(w io.Writer, arg types.Token) error
- type Tokens
- func Any() *Tokens
- func Arrow() *Tokens
- func As() *Tokens
- func Assert() *Tokens
- func AsyncDef(name string) *Tokens
- func AsyncForEach(target, iterable types.Token) *Tokens
- func AsyncWith(contexts ...types.Token) *Tokens
- func Await() *Tokens
- func Block(body ...types.Token) *Tokens
- func Bool() *Tokens
- func Bracket(args ...types.Token) *Tokens
- func Break() *Tokens
- func ByteArray() *Tokens
- func Bytes() *Tokens
- func Call(args ...types.Token) *Tokens
- func Case(pattern types.Token) *Tokens
- func Class(name string, bases ...types.Token) *Tokens
- func Colon() *Tokens
- func Comma() *Tokens
- func Comment(text string) *Tokens
- func Complex() *Tokens
- func Continue() *Tokens
- func Decorator(expression types.Token) *Tokens
- func Def(name string) *Tokens
- func Del() *Tokens
- func DictComp(key, value types.Token, clauses ...types.Token) *Tokens
- func DictLiteral(entries ...types.Token) *Tokens
- func DictType(key, value types.Token) *Tokens
- func Elif(condition types.Token) *Tokens
- func Ellipsis() *Tokens
- func Else() *Tokens
- func Except(exception ...types.Token) *Tokens
- func FString(parts ...types.Token) *Tokens
- func False() *Tokens
- func Finally() *Tokens
- func Float() *Tokens
- func ForEach(target, iterable types.Token) *Tokens
- func FromImport(module string, names ...types.Token) *Tokens
- func FrozenSetType(element types.Token) *Tokens
- func GeneratorExpr(expression types.Token, clauses ...types.Token) *Tokens
- func Global() *Tokens
- func ID(name string) *Tokens
- func If(condition types.Token) *Tokens
- func Import(module string) *Tokens
- func ImportAs(module, alias string) *Tokens
- func Index(index types.Token) *Tokens
- func Int() *Tokens
- func KeyValue(key, value types.Token) *Tokens
- func Line() *Tokens
- func List(args ...types.Token) *Tokens
- func ListComp(expression types.Token, clauses ...types.Token) *Tokens
- func ListLiteral(values ...types.Token) *Tokens
- func ListType(element types.Token) *Tokens
- func Match(subject types.Token) *Tokens
- func MemoryView() *Tokens
- func NoneValue() *Tokens
- func Nonlocal() *Tokens
- func ObjectType() *Tokens
- func Op(op string) *Tokens
- func Pass() *Tokens
- func Pkg(module string) *Tokens
- func Raise() *Tokens
- func Range() *Tokens
- func Raw(source string) *Tokens
- func Return() *Tokens
- func Selector(name string) *Tokens
- func SetComp(expression types.Token, clauses ...types.Token) *Tokens
- func SetLiteral(values ...types.Token) *Tokens
- func SetType(element types.Token) *Tokens
- func Str() *Tokens
- func String() *Tokens
- func Text(value string) *Tokens
- func True() *Tokens
- func Try() *Tokens
- func TupleLiteral(values ...types.Token) *Tokens
- func TupleType(elements ...types.Token) *Tokens
- func TypeType() *Tokens
- func TypeUnion(values ...types.Token) *Tokens
- func While(condition types.Token) *Tokens
- func With(contexts ...types.Token) *Tokens
- func Yield() *Tokens
- func (v *Tokens) Any() *Tokens
- func (v *Tokens) Arrow() *Tokens
- func (v *Tokens) As() *Tokens
- func (v *Tokens) Assert() *Tokens
- func (v *Tokens) AsyncDef(name string) *Tokens
- func (v *Tokens) AsyncForEach(target, iterable types.Token) *Tokens
- func (v *Tokens) AsyncWith(contexts ...types.Token) *Tokens
- func (v *Tokens) Await() *Tokens
- func (v *Tokens) Block(body ...types.Token) *Tokens
- func (v *Tokens) Bool() *Tokens
- func (v *Tokens) Bracket(args ...types.Token) *Tokens
- func (v *Tokens) Break() *Tokens
- func (v *Tokens) ByteArray() *Tokens
- func (v *Tokens) Bytes() *Tokens
- func (v *Tokens) Call(args ...types.Token) *Tokens
- func (v *Tokens) Case(pattern types.Token) *Tokens
- func (v *Tokens) Class(name string, bases ...types.Token) *Tokens
- func (v *Tokens) Colon() *Tokens
- func (v *Tokens) Comma() *Tokens
- func (v *Tokens) Comment(text string) *Tokens
- func (v *Tokens) Complex() *Tokens
- func (v *Tokens) Continue() *Tokens
- func (v *Tokens) Decorator(expression types.Token) *Tokens
- func (v *Tokens) Def(name string) *Tokens
- func (v *Tokens) Del() *Tokens
- func (v *Tokens) DictComp(key, value types.Token, clauses ...types.Token) *Tokens
- func (v *Tokens) DictLiteral(entries ...types.Token) *Tokens
- func (v *Tokens) DictType(key, value types.Token) *Tokens
- func (v *Tokens) Elif(condition types.Token) *Tokens
- func (v *Tokens) Ellipsis() *Tokens
- func (v *Tokens) Else() *Tokens
- func (v *Tokens) Except(exception ...types.Token) *Tokens
- func (v *Tokens) FString(parts ...types.Token) *Tokens
- func (v *Tokens) False() *Tokens
- func (v *Tokens) Finally() *Tokens
- func (v *Tokens) Float() *Tokens
- func (v *Tokens) ForEach(target, iterable types.Token) *Tokens
- func (v *Tokens) FromImport(module string, names ...types.Token) *Tokens
- func (v *Tokens) FrozenSetType(element types.Token) *Tokens
- func (v *Tokens) GeneratorExpr(expression types.Token, clauses ...types.Token) *Tokens
- func (v *Tokens) Global() *Tokens
- func (v *Tokens) ID(name string) *Tokens
- func (v *Tokens) If(condition types.Token) *Tokens
- func (v *Tokens) Import(module string) *Tokens
- func (v *Tokens) ImportAs(module, alias string) *Tokens
- func (v *Tokens) Index(index types.Token) *Tokens
- func (v *Tokens) Int() *Tokens
- func (v *Tokens) Join(args ...types.Token) *Tokens
- func (v *Tokens) Line() *Tokens
- func (v *Tokens) List(args ...types.Token) *Tokens
- func (v *Tokens) ListComp(expression types.Token, clauses ...types.Token) *Tokens
- func (v *Tokens) ListLiteral(values ...types.Token) *Tokens
- func (v *Tokens) ListType(element types.Token) *Tokens
- func (v *Tokens) Match(subject types.Token) *Tokens
- func (v *Tokens) MemoryView() *Tokens
- func (v *Tokens) NoneValue() *Tokens
- func (v *Tokens) Nonlocal() *Tokens
- func (v *Tokens) ObjectType() *Tokens
- func (v *Tokens) Op(op string) *Tokens
- func (v *Tokens) Pass() *Tokens
- func (v *Tokens) Pkg(module string) *Tokens
- func (v *Tokens) Raise() *Tokens
- func (v *Tokens) Range() *Tokens
- func (v *Tokens) Raw(source string) *Tokens
- func (v *Tokens) Render(w io.Writer) error
- func (v *Tokens) Return() *Tokens
- func (v *Tokens) Selector(name string) *Tokens
- func (v *Tokens) SetComp(expression types.Token, clauses ...types.Token) *Tokens
- func (v *Tokens) SetLiteral(values ...types.Token) *Tokens
- func (v *Tokens) SetType(element types.Token) *Tokens
- func (v *Tokens) Str() *Tokens
- func (v *Tokens) String() *Tokens
- func (v *Tokens) Text(value string) *Tokens
- func (v *Tokens) True() *Tokens
- func (v *Tokens) Try() *Tokens
- func (v *Tokens) TupleLiteral(values ...types.Token) *Tokens
- func (v *Tokens) TupleType(elements ...types.Token) *Tokens
- func (v *Tokens) TypeType() *Tokens
- func (v *Tokens) TypeUnion(values ...types.Token) *Tokens
- func (v *Tokens) Unwrap() []types.Token
- func (v *Tokens) While(condition types.Token) *Tokens
- func (v *Tokens) With(contexts ...types.Token) *Tokens
- func (v *Tokens) Yield() *Tokens
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AsyncForClause ¶
AsyncForClause creates an asynchronous for-in clause used by comprehensions.
func FStringExpr ¶
FStringExpr creates an expression part for FString.
func FStringText ¶
FStringText creates an escaped text part for FString.
func Render ¶
Render writes arg without formatting or validating the complete Python program.
Example ¶
package main
import (
"bytes"
"fmt"
py "go.osspkg.com/gogen/python"
)
func main() {
file := py.FromImport("dataclasses", py.ID("dataclass")).Line().Join(
py.Decorator(py.ID("dataclass")),
py.Class("User").Block(
py.ID("name").Colon().ID("str"),
py.ID("active").Colon().ID("bool").Op("=").True(),
),
py.Def("greet").Bracket(py.ID("user").Colon().ID("User")).Arrow().ID("str").Block(
py.Return().FString(py.FStringText("Hello, "), py.FStringExpr(py.ID("user").Selector("name"))),
),
)
var source bytes.Buffer
if err := py.Render(&source, file); err != nil {
panic(err)
}
fmt.Print(source.String())
}
Output: from dataclasses import dataclass @dataclass class User: name: str active: bool = True def greet(user: User) -> str: return f"Hello, {user.name}"
Types ¶
type Tokens ¶
Tokens is a chainable sequence of Python source tokens.
func Any ¶
func Any() *Tokens
Any creates an Any type annotation. Import Any from typing in generated code.
func AsyncForEach ¶
AsyncForEach creates an async for-in header.
func DictLiteral ¶
DictLiteral creates a Python dictionary literal.
func FromImport ¶
FromImport creates a from-import statement with optional names.
func FrozenSetType ¶
FrozenSetType creates a parameterized frozenset type.
func GeneratorExpr ¶
GeneratorExpr creates a generator expression from an expression and clauses.
func ListLiteral ¶
ListLiteral creates a Python list literal.
func SetLiteral ¶
SetLiteral creates a Python set literal. An empty set is emitted as set().
func TupleLiteral ¶
TupleLiteral creates a Python tuple literal.
func TupleType ¶
TupleType creates a tuple type. Pass element types for fixed tuples or Ellipsis() as the second argument for a variable-length tuple.
func (*Tokens) AsyncForEach ¶
AsyncForEach appends an async for-in header.
func (*Tokens) DictComp ¶
DictComp creates a dictionary comprehension from key/value expressions and clauses.
func (*Tokens) DictLiteral ¶
DictLiteral creates a Python dictionary literal.
func (*Tokens) FromImport ¶
FromImport appends a from-import statement with optional names.
func (*Tokens) FrozenSetType ¶
FrozenSetType appends a parameterized frozenset type.
func (*Tokens) GeneratorExpr ¶
GeneratorExpr creates a generator expression from an expression and clauses.
func (*Tokens) ListLiteral ¶
ListLiteral creates a Python list literal.
func (*Tokens) MemoryView ¶
MemoryView appends Python's memoryview type.
func (*Tokens) ObjectType ¶
ObjectType appends Python's object type.
func (*Tokens) SetLiteral ¶
SetLiteral creates a Python set literal. An empty set is emitted as set().
func (*Tokens) TupleLiteral ¶
TupleLiteral creates a Python tuple literal.
func (*Tokens) TupleType ¶
TupleType appends a tuple type. Pass element types for fixed tuples or Ellipsis() as the second argument for a variable-length tuple.