hpython-0.1.0.1: Python language tools

Copyright(C) CSIRO 2017-2019
LicenseBSD3
MaintainerIsaac Elliott <isaace71295@gmail.com>
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Language.Python.DSL

Contents

Description

Passing [] to a function which expects a [Raw Line] is the same as passing [line_ pass_]

Synopsis

Documentation

(&) :: a -> (a -> b) -> b infixl 1 #

& is a reverse application operator. This provides notational convenience. Its precedence is one higher than that of the forward application operator $, which allows & to be nested in $.

>>> 5 & (+1) & show
"6"

Since: base-4.8.0.0

type Raw f = f '[] () #

Raw represents unvalidated, un-annotated terms.

data Module v a #

A Python Module, which is stored as a sequence of statements. A module corresponds to one source file of Python code.

Instances
HasExprs Module # 
Instance details

Defined in Language.Python.Syntax.Module

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> Module v a -> f (Module [] a) #

HasStatements Module # 
Instance details

Defined in Language.Python.Syntax.Module

Methods

_Statements :: Applicative f => (Statement v a -> f (Statement [] a)) -> Module v a -> f (Module [] a) #

HasIdents Module # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> Module v a -> f (Module [] a) #

Functor (Module v) # 
Instance details

Defined in Language.Python.Syntax.Module

Methods

fmap :: (a -> b) -> Module v a -> Module v b #

(<$) :: a -> Module v b -> Module v a #

Foldable (Module v) # 
Instance details

Defined in Language.Python.Syntax.Module

Methods

fold :: Monoid m => Module v m -> m #

foldMap :: Monoid m => (a -> m) -> Module v a -> m #

foldr :: (a -> b -> b) -> b -> Module v a -> b #

foldr' :: (a -> b -> b) -> b -> Module v a -> b #

foldl :: (b -> a -> b) -> b -> Module v a -> b #

foldl' :: (b -> a -> b) -> b -> Module v a -> b #

foldr1 :: (a -> a -> a) -> Module v a -> a #

foldl1 :: (a -> a -> a) -> Module v a -> a #

toList :: Module v a -> [a] #

null :: Module v a -> Bool #

length :: Module v a -> Int #

elem :: Eq a => a -> Module v a -> Bool #

maximum :: Ord a => Module v a -> a #

minimum :: Ord a => Module v a -> a #

sum :: Num a => Module v a -> a #

product :: Num a => Module v a -> a #

Traversable (Module v) # 
Instance details

Defined in Language.Python.Syntax.Module

Methods

traverse :: Applicative f => (a -> f b) -> Module v a -> f (Module v b) #

sequenceA :: Applicative f => Module v (f a) -> f (Module v a) #

mapM :: Monad m => (a -> m b) -> Module v a -> m (Module v b) #

sequence :: Monad m => Module v (m a) -> m (Module v a) #

Eq a => Eq (Module v a) # 
Instance details

Defined in Language.Python.Syntax.Module

Methods

(==) :: Module v a -> Module v a -> Bool #

(/=) :: Module v a -> Module v a -> Bool #

Show a => Show (Module v a) # 
Instance details

Defined in Language.Python.Syntax.Module

Methods

showsPrec :: Int -> Module v a -> ShowS #

show :: Module v a -> String #

showList :: [Module v a] -> ShowS #

Generic (Module v a) # 
Instance details

Defined in Language.Python.Syntax.Module

Associated Types

type Rep (Module v a) :: * -> * #

Methods

from :: Module v a -> Rep (Module v a) x #

to :: Rep (Module v a) x -> Module v a #

HasNewlines (Module v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (Module v a) # 
Instance details

Defined in Language.Python.Syntax.Module

data Statement (v :: [*]) a #

Instances
Validated Statement # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

unvalidated :: (Contravariant f, Functor f) => (Statement [] a -> f (Statement [] a)) -> Statement v a -> f (Statement v a) #

HasTrailingNewline Statement # 
Instance details

Defined in Language.Python.Syntax.Statement

HasExprs Statement # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> Statement v a -> f (Statement [] a) #

HasBlocks Statement # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

_Blocks :: Applicative f => (Block v a -> f (Block [] a)) -> Statement v a -> f (Statement [] a) #

HasStatements Statement # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

_Statements :: Applicative f => (Statement v a -> f (Statement [] a)) -> Statement v a -> f (Statement [] a) #

HasIdents Statement # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> Statement v a -> f (Statement [] a) #

HasWith Statement # 
Instance details

Defined in Language.Python.Optics

Methods

_With :: (Choice p, Applicative f) => p (With v a) (f (With [] a)) -> p (Statement v a) (f (Statement [] a)) #

HasClassDef Statement # 
Instance details

Defined in Language.Python.Optics

Methods

_ClassDef :: (Choice p, Applicative f) => p (ClassDef v a) (f (ClassDef [] a)) -> p (Statement v a) (f (Statement [] a)) #

HasFor Statement # 
Instance details

Defined in Language.Python.Optics

Methods

_For :: (Choice p, Applicative f) => p (For v a) (f (For [] a)) -> p (Statement v a) (f (Statement [] a)) #

HasTryFinally Statement # 
Instance details

Defined in Language.Python.Optics

Methods

_TryFinally :: (Choice p, Applicative f) => p (TryFinally v a) (f (TryFinally [] a)) -> p (Statement v a) (f (Statement [] a)) #

HasTryExcept Statement # 
Instance details

Defined in Language.Python.Optics

Methods

_TryExcept :: (Choice p, Applicative f) => p (TryExcept v a) (f (TryExcept [] a)) -> p (Statement v a) (f (Statement [] a)) #

HasIf Statement # 
Instance details

Defined in Language.Python.Optics

Methods

_If :: (Choice p, Applicative f) => p (If v a) (f (If [] a)) -> p (Statement v a) (f (Statement [] a)) #

HasWhile Statement # 
Instance details

Defined in Language.Python.Optics

Methods

_While :: (Choice p, Applicative f) => p (While v a) (f (While [] a)) -> p (Statement v a) (f (Statement [] a)) #

HasFundef Statement # 
Instance details

Defined in Language.Python.Optics

Methods

_Fundef :: (Choice p, Applicative f) => p (Fundef v a) (f (Fundef [] a)) -> p (Statement v a) (f (Statement [] a)) #

HasCompoundStatement Statement # 
Instance details

Defined in Language.Python.Optics

Methods

_CompoundStatement :: (Choice p, Applicative f) => p (CompoundStatement v a) (f (CompoundStatement [] a)) -> p (Statement v a) (f (Statement [] a)) #

AsLine Statement # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw Statement -> Raw Line #

Functor (Statement v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

fmap :: (a -> b) -> Statement v a -> Statement v b #

(<$) :: a -> Statement v b -> Statement v a #

Foldable (Statement v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

fold :: Monoid m => Statement v m -> m #

foldMap :: Monoid m => (a -> m) -> Statement v a -> m #

foldr :: (a -> b -> b) -> b -> Statement v a -> b #

foldr' :: (a -> b -> b) -> b -> Statement v a -> b #

foldl :: (b -> a -> b) -> b -> Statement v a -> b #

foldl' :: (b -> a -> b) -> b -> Statement v a -> b #

foldr1 :: (a -> a -> a) -> Statement v a -> a #

foldl1 :: (a -> a -> a) -> Statement v a -> a #

toList :: Statement v a -> [a] #

null :: Statement v a -> Bool #

length :: Statement v a -> Int #

elem :: Eq a => a -> Statement v a -> Bool #

maximum :: Ord a => Statement v a -> a #

minimum :: Ord a => Statement v a -> a #

sum :: Num a => Statement v a -> a #

product :: Num a => Statement v a -> a #

Traversable (Statement v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

traverse :: Applicative f => (a -> f b) -> Statement v a -> f (Statement v b) #

sequenceA :: Applicative f => Statement v (f a) -> f (Statement v a) #

mapM :: Monad m => (a -> m b) -> Statement v a -> m (Statement v b) #

sequence :: Monad m => Statement v (m a) -> m (Statement v a) #

Eq a => Eq (Statement v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

(==) :: Statement v a -> Statement v a -> Bool #

(/=) :: Statement v a -> Statement v a -> Bool #

Show a => Show (Statement v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

showsPrec :: Int -> Statement v a -> ShowS #

show :: Statement v a -> String #

showList :: [Statement v a] -> ShowS #

Generic (Statement v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Associated Types

type Rep (Statement v a) :: * -> * #

Methods

from :: Statement v a -> Rep (Statement v a) x #

to :: Rep (Statement v a) x -> Statement v a #

Plated (Statement ([] :: [*]) a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

plate :: Traversal' (Statement [] a) (Statement [] a) #

HasNewlines (Statement v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

HasIndents (Statement ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (Statement [] a) (Indents a) #

type Rep (Statement v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

data Expr (v :: [*]) a #

This large sum type covers all valid Python expressions

Instances
Validated Expr # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

unvalidated :: (Contravariant f, Functor f) => (Expr [] a -> f (Expr [] a)) -> Expr v a -> f (Expr v a) #

HasExprs Expr # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> Expr v a -> f (Expr [] a) #

HasIdents Expr # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> Expr v a -> f (Expr [] a) #

AsTupleItem Expr # 
Instance details

Defined in Language.Python.DSL

Methods

ti_ :: Raw Expr -> Raw TupleItem #

AsWithItem Expr # 
Instance details

Defined in Language.Python.DSL

AsExceptAs Expr # 
Instance details

Defined in Language.Python.DSL

AsSetItem Expr # 
Instance details

Defined in Language.Python.DSL

Methods

si_ :: Raw Expr -> Raw SetItem #

AsListItem Expr # 
Instance details

Defined in Language.Python.DSL

Methods

li_ :: Raw Expr -> Raw ListItem #

AsLine Expr # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw Expr -> Raw Line #

DoubleStarSyntax Expr DictItem #

See dict_

Instance details

Defined in Language.Python.DSL

Methods

ss_ :: Raw Expr -> Raw DictItem #

DoubleStarSyntax Expr Arg #

See call_

Instance details

Defined in Language.Python.DSL

Methods

ss_ :: Raw Expr -> Raw Arg #

StarSyntax Expr TupleItem #

See tuple_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw TupleItem #

StarSyntax Expr SetItem #

See set_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw SetItem #

StarSyntax Expr ListItem #

See list_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw ListItem #

StarSyntax Expr Arg #

See call_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw Arg #

PositionalSyntax Arg Expr #

See call_

Instance details

Defined in Language.Python.DSL

Methods

p_ :: Raw Expr -> Raw Arg #

ColonSyntax Expr DictItem #

Constructing dictionary items

(.:) :: Raw Expr -> Raw Expr -> Raw DictItem
Instance details

Defined in Language.Python.DSL

Methods

(.:) :: Raw Expr -> Raw Expr -> Raw DictItem #

As Expr Ident ExceptAs #

See exceptAs_

Instance details

Defined in Language.Python.DSL

Methods

as_ :: Raw Expr -> Raw Ident -> Raw ExceptAs #

As Expr Expr WithItem #

See with_

Instance details

Defined in Language.Python.DSL

Methods

as_ :: Raw Expr -> Raw Expr -> Raw WithItem #

InSyntax Expr (Raw Expr) #
>>> var_ "a" `in_` var_ "b"
a in b
Instance details

Defined in Language.Python.DSL

Methods

in_ :: Raw Expr -> Raw Expr -> Raw Expr #

Functor (Expr v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fmap :: (a -> b) -> Expr v a -> Expr v b #

(<$) :: a -> Expr v b -> Expr v a #

Foldable (Expr v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fold :: Monoid m => Expr v m -> m #

foldMap :: Monoid m => (a -> m) -> Expr v a -> m #

foldr :: (a -> b -> b) -> b -> Expr v a -> b #

foldr' :: (a -> b -> b) -> b -> Expr v a -> b #

foldl :: (b -> a -> b) -> b -> Expr v a -> b #

foldl' :: (b -> a -> b) -> b -> Expr v a -> b #

foldr1 :: (a -> a -> a) -> Expr v a -> a #

foldl1 :: (a -> a -> a) -> Expr v a -> a #

toList :: Expr v a -> [a] #

null :: Expr v a -> Bool #

length :: Expr v a -> Int #

elem :: Eq a => a -> Expr v a -> Bool #

maximum :: Ord a => Expr v a -> a #

minimum :: Ord a => Expr v a -> a #

sum :: Num a => Expr v a -> a #

product :: Num a => Expr v a -> a #

Traversable (Expr v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

traverse :: Applicative f => (a -> f b) -> Expr v a -> f (Expr v b) #

sequenceA :: Applicative f => Expr v (f a) -> f (Expr v a) #

mapM :: Monad m => (a -> m b) -> Expr v a -> m (Expr v b) #

sequence :: Monad m => Expr v (m a) -> m (Expr v a) #

HasAnn (Expr v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> Expr v a -> f (Expr v a) #

Eq a => Eq (Expr v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

(==) :: Expr v a -> Expr v a -> Bool #

(/=) :: Expr v a -> Expr v a -> Bool #

Num (Expr ([] :: [*]) ()) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

(+) :: Expr [] () -> Expr [] () -> Expr [] () #

(-) :: Expr [] () -> Expr [] () -> Expr [] () #

(*) :: Expr [] () -> Expr [] () -> Expr [] () #

negate :: Expr [] () -> Expr [] () #

abs :: Expr [] () -> Expr [] () #

signum :: Expr [] () -> Expr [] () #

fromInteger :: Integer -> Expr [] () #

Show a => Show (Expr v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

showsPrec :: Int -> Expr v a -> ShowS #

show :: Expr v a -> String #

showList :: [Expr v a] -> ShowS #

IsString (Expr ([] :: [*]) ()) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fromString :: String -> Expr [] () #

Generic (Expr v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Associated Types

type Rep (Expr v a) :: * -> * #

Methods

from :: Expr v a -> Rep (Expr v a) x #

to :: Rep (Expr v a) x -> Expr v a #

Plated (Expr ([] :: [*]) a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

plate :: Traversal' (Expr [] a) (Expr [] a) #

HasTrailingWhitespace (Expr v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

HasNewlines (Expr v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (Expr v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

type Rep (Expr v a) = D1 (MetaData "Expr" "Language.Python.Syntax.Expr" "hpython-0.1.0.1-inplace" False) ((((C1 (MetaCons "Unit" PrefixI True) (S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeUnitWhitespaceInner") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeUnitWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))) :+: (C1 (MetaCons "Lambda" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeLambdaWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeLambdaArgs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (CommaSep (Param v a))) :*: (S1 (MetaSel (Just "_unsafeLambdaColon") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Colon) :*: S1 (MetaSel (Just "_unsafeLambdaBody") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))))) :+: C1 (MetaCons "Yield" PrefixI True) (S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeYieldWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeYieldValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (CommaSep (Expr v a))))))) :+: ((C1 (MetaCons "YieldFrom" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeYieldWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeFromWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeYieldFromValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))) :+: C1 (MetaCons "Ternary" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeTernaryValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)) :*: S1 (MetaSel (Just "_unsafeTernaryWhitespaceIf") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))) :*: (S1 (MetaSel (Just "_unsafeTernaryCond") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)) :*: (S1 (MetaSel (Just "_unsafeTernaryWhitespaceElse") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeTernaryElse") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))))) :+: (C1 (MetaCons "ListComp" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeListCompWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeListCompValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Comprehension Expr v a)) :*: S1 (MetaSel (Just "_unsafeListCompWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))) :+: C1 (MetaCons "List" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeListWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeListValues") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (CommaSep1' (ListItem v a)))) :*: S1 (MetaSel (Just "_unsafeListWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])))))) :+: ((C1 (MetaCons "DictComp" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeDictCompWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeDictCompValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Comprehension DictItem v a)) :*: S1 (MetaSel (Just "_unsafeDictCompWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))) :+: (C1 (MetaCons "Dict" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeDictWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeDictValues") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (CommaSep1' (DictItem v a)))) :*: S1 (MetaSel (Just "_unsafeDictWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))) :+: C1 (MetaCons "SetComp" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeSetCompWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeSetCompValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Comprehension SetItem v a)) :*: S1 (MetaSel (Just "_unsafeSetCompWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))))) :+: ((C1 (MetaCons "Set" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeSetWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeSetValues") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (CommaSep1' (SetItem v a))) :*: S1 (MetaSel (Just "_unsafeSetWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))) :+: C1 (MetaCons "Deref" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeDerefValueLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :*: (S1 (MetaSel (Just "_unsafeDerefWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeDerefValueRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ident v a))))) :+: (C1 (MetaCons "Subscript" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeSubscriptValueLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :*: (S1 (MetaSel (Just "_unsafeSubscriptWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: (S1 (MetaSel (Just "_unsafeSubscriptValueRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (CommaSep1' (Subscript v a))) :*: S1 (MetaSel (Just "_unsafeSubscriptWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])))) :+: C1 (MetaCons "Call" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeCallFunction") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :*: (S1 (MetaSel (Just "_unsafeCallWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: (S1 (MetaSel (Just "_unsafeCallArguments") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (CommaSep1' (Arg v a)))) :*: S1 (MetaSel (Just "_unsafeCallWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])))))))) :+: (((C1 (MetaCons "None" PrefixI True) (S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeNoneWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :+: (C1 (MetaCons "Ellipsis" PrefixI True) (S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeEllipsisWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :+: C1 (MetaCons "BinOp" PrefixI True) ((S1 (MetaSel (Just "_unsafeExprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeBinOpExprLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :*: (S1 (MetaSel (Just "_unsafeBinOpOp") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (BinOp a)) :*: S1 (MetaSel (Just "_unsafeBinOpExprRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))))) :+: ((C1 (MetaCons "UnOp" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeUnOpOp") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (UnOp a)) :*: S1 (MetaSel (Just "_unsafeUnOpValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))) :+: C1 (MetaCons "Parens" PrefixI True) ((S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeParensWhitespaceLeft") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeParensValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)) :*: S1 (MetaSel (Just "_unsafeParensWhitespaceAfter") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])))) :+: (C1 (MetaCons "Ident" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeIdentValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ident v a))) :+: C1 (MetaCons "Int" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeIntValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (IntLiteral a)) :*: S1 (MetaSel (Just "_unsafeIntWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])))))) :+: (((C1 (MetaCons "Float" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeFloatValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (FloatLiteral a)) :*: S1 (MetaSel (Just "_unsafeFloatWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))) :+: C1 (MetaCons "Imag" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeImagValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (ImagLiteral a)) :*: S1 (MetaSel (Just "_unsafeImagWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])))) :+: (C1 (MetaCons "Bool" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeBoolValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Bool) :*: S1 (MetaSel (Just "_unsafeBoolWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))) :+: C1 (MetaCons "String" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeStringValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (NonEmpty (StringLiteral a)))))) :+: ((C1 (MetaCons "Tuple" PrefixI True) ((S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeTupleHead") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (TupleItem v a))) :*: (S1 (MetaSel (Just "_unsafeTupleWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Comma) :*: S1 (MetaSel (Just "_unsafeTupleTail") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (CommaSep1' (TupleItem v a)))))) :+: C1 (MetaCons "Not" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeNotWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeNotValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))))) :+: (C1 (MetaCons "Generator" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_generatorValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Comprehension Expr v a))) :+: C1 (MetaCons "Await" PrefixI True) (S1 (MetaSel (Just "_exprAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeAwaitWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeAwaitValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))))))))

Modules

module_ :: [Raw Line] -> Raw Module #

Create a Module

>>> module_
>>> [ line_ $ def_ "a" [] [line_ pass_]
>>> , blank_
>>> , line_ $ def_ "b" [] [line_ pass_]
>>> ]
def a():
    pass

def b():
    pass

Lines of code

blank_ :: Raw Line #

Create a blank Line

class AsLine s where #

Convert some data to a Line

Minimal complete definition

line_

Methods

line_ :: Raw s -> Raw Line #

Instances
AsLine Expr # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw Expr -> Raw Line #

AsLine CompoundStatement # 
Instance details

Defined in Language.Python.DSL

AsLine SimpleStatement # 
Instance details

Defined in Language.Python.DSL

AsLine Statement # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw Statement -> Raw Line #

AsLine SmallStatement # 
Instance details

Defined in Language.Python.DSL

AsLine Fundef # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw Fundef -> Raw Line #

AsLine While # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw While -> Raw Line #

AsLine If # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw If -> Raw Line #

AsLine For # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw For -> Raw Line #

AsLine TryExcept # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw TryExcept -> Raw Line #

AsLine TryFinally # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw TryFinally -> Raw Line #

AsLine ClassDef # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw ClassDef -> Raw Line #

AsLine With # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw With -> Raw Line #

newtype Line v a #

One or more lines of Python code

Constructors

Line 

Fields

Instances
HasExprs Line # 
Instance details

Defined in Language.Python.DSL

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> Line v a -> f (Line [] a) #

HasStatements Line # 
Instance details

Defined in Language.Python.DSL

Methods

_Statements :: Applicative f => (Statement v a -> f (Statement [] a)) -> Line v a -> f (Line [] a) #

Eq a => Eq (Line v a) # 
Instance details

Defined in Language.Python.DSL

Methods

(==) :: Line v a -> Line v a -> Bool #

(/=) :: Line v a -> Line v a -> Bool #

Show a => Show (Line v a) # 
Instance details

Defined in Language.Python.DSL

Methods

showsPrec :: Int -> Line v a -> ShowS #

show :: Line v a -> String #

showList :: [Line v a] -> ShowS #

Wrapped (Line v a) # 
Instance details

Defined in Language.Python.DSL

Associated Types

type Unwrapped (Line v a) :: * #

Methods

_Wrapped' :: Iso' (Line v a) (Unwrapped (Line v a)) #

Line v1 a1 ~ t => Rewrapped (Line v2 a2) t # 
Instance details

Defined in Language.Python.DSL

type Unwrapped (Line v a) # 
Instance details

Defined in Language.Python.DSL

type Unwrapped (Line v a) = Either (Blank a, Newline) (Statement v a)

Identifiers

id_ :: String -> Raw Ident #

Ident has an IsString instance, but when a type class dispatches on an Ident we will run into ambiguity if we try to use OverloadedStrings. In these cases we can use id_ to provide the extra type information

data Ident (v :: [*]) a #

An identifier. Like many types in hpython, it has an optional annotation and tracks its trailing whitespace.

Raw Idents have an IsString instance.

See https://docs.python.org/3.5/reference/lexical_analysis.html#identifiers

Constructors

MkIdent 
Instances
Validated Ident # 
Instance details

Defined in Language.Python.Syntax.Ident

Methods

unvalidated :: (Contravariant f, Functor f) => (Ident [] a -> f (Ident [] a)) -> Ident v a -> f (Ident v a) #

HasIdents Ident # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> Ident v a -> f (Ident [] a) #

DoubleStarSyntax Ident Param #

See def_

Instance details

Defined in Language.Python.DSL

Methods

ss_ :: Raw Ident -> Raw Param #

StarSyntax Ident Param #

See def_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Ident -> Raw Param #

PositionalSyntax Param Ident #

See def_

Instance details

Defined in Language.Python.DSL

Methods

p_ :: Raw Ident -> Raw Param #

As Expr Ident ExceptAs #

See exceptAs_

Instance details

Defined in Language.Python.DSL

Methods

as_ :: Raw Expr -> Raw Ident -> Raw ExceptAs #

Functor (Ident v) # 
Instance details

Defined in Language.Python.Syntax.Ident

Methods

fmap :: (a -> b) -> Ident v a -> Ident v b #

(<$) :: a -> Ident v b -> Ident v a #

IsString (Raw Ident) # 
Instance details

Defined in Language.Python.Syntax.Ident

Methods

fromString :: String -> Raw Ident #

Foldable (Ident v) # 
Instance details

Defined in Language.Python.Syntax.Ident

Methods

fold :: Monoid m => Ident v m -> m #

foldMap :: Monoid m => (a -> m) -> Ident v a -> m #

foldr :: (a -> b -> b) -> b -> Ident v a -> b #

foldr' :: (a -> b -> b) -> b -> Ident v a -> b #

foldl :: (b -> a -> b) -> b -> Ident v a -> b #

foldl' :: (b -> a -> b) -> b -> Ident v a -> b #

foldr1 :: (a -> a -> a) -> Ident v a -> a #

foldl1 :: (a -> a -> a) -> Ident v a -> a #

toList :: Ident v a -> [a] #

null :: Ident v a -> Bool #

length :: Ident v a -> Int #

elem :: Eq a => a -> Ident v a -> Bool #

maximum :: Ord a => Ident v a -> a #

minimum :: Ord a => Ident v a -> a #

sum :: Num a => Ident v a -> a #

product :: Num a => Ident v a -> a #

Traversable (Ident v) # 
Instance details

Defined in Language.Python.Syntax.Ident

Methods

traverse :: Applicative f => (a -> f b) -> Ident v a -> f (Ident v b) #

sequenceA :: Applicative f => Ident v (f a) -> f (Ident v a) #

mapM :: Monad m => (a -> m b) -> Ident v a -> m (Ident v b) #

sequence :: Monad m => Ident v (m a) -> m (Ident v a) #

HasAnn (Ident v) # 
Instance details

Defined in Language.Python.Syntax.Ident

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> Ident v a -> f (Ident v a) #

Eq a => Eq (Ident v a) # 
Instance details

Defined in Language.Python.Syntax.Ident

Methods

(==) :: Ident v a -> Ident v a -> Bool #

(/=) :: Ident v a -> Ident v a -> Bool #

Show a => Show (Ident v a) # 
Instance details

Defined in Language.Python.Syntax.Ident

Methods

showsPrec :: Int -> Ident v a -> ShowS #

show :: Ident v a -> String #

showList :: [Ident v a] -> ShowS #

Generic (Ident v a) # 
Instance details

Defined in Language.Python.Syntax.Ident

Associated Types

type Rep (Ident v a) :: * -> * #

Methods

from :: Ident v a -> Rep (Ident v a) x #

to :: Rep (Ident v a) x -> Ident v a #

HasTrailingWhitespace (Ident v a) # 
Instance details

Defined in Language.Python.Syntax.Ident

HasNewlines (Ident v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (Ident v a) # 
Instance details

Defined in Language.Python.Syntax.Ident

type Rep (Ident v a) = D1 (MetaData "Ident" "Language.Python.Syntax.Ident" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "MkIdent" PrefixI True) (S1 (MetaSel (Just "_identAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_identValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 String) :*: S1 (MetaSel (Just "_identWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]))))

Lenses

identAnn :: Lens (Ident v a) (Ident v a) a a #

Starred values

class StarSyntax s t | t -> s where #

Minimal complete definition

s_

Methods

s_ :: Raw s -> Raw t #

Instances
StarSyntax Ident Param #

See def_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Ident -> Raw Param #

StarSyntax Expr TupleItem #

See tuple_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw TupleItem #

StarSyntax Expr SetItem #

See set_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw SetItem #

StarSyntax Expr ListItem #

See list_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw ListItem #

StarSyntax Expr Arg #

See call_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw Arg #

star_ :: Raw Param #

Unnamed starred parameter

>>> def_ "a" [ p_ "b", star_ ] [ line_ pass_ ]
def a(b, *):
    pass

Double-starred values

class DoubleStarSyntax s t | t -> s where #

Minimal complete definition

ss_

Methods

ss_ :: Raw s -> Raw t #

Instances
DoubleStarSyntax Ident Param #

See def_

Instance details

Defined in Language.Python.DSL

Methods

ss_ :: Raw Ident -> Raw Param #

DoubleStarSyntax Expr DictItem #

See dict_

Instance details

Defined in Language.Python.DSL

Methods

ss_ :: Raw Expr -> Raw DictItem #

DoubleStarSyntax Expr Arg #

See call_

Instance details

Defined in Language.Python.DSL

Methods

ss_ :: Raw Expr -> Raw Arg #

as syntax

class As s t u | s t -> u, u -> s t where #

Minimal complete definition

as_

Methods

as_ :: Raw s -> Raw t -> Raw u #

Instances
As Expr Ident ExceptAs #

See exceptAs_

Instance details

Defined in Language.Python.DSL

Methods

as_ :: Raw Expr -> Raw Ident -> Raw ExceptAs #

As Expr Expr WithItem #

See with_

Instance details

Defined in Language.Python.DSL

Methods

as_ :: Raw Expr -> Raw Expr -> Raw WithItem #

if syntax

class IfSyntax a where #

Minimal complete definition

if_

Methods

if_ :: Raw Expr -> a #

Instances
IfSyntax (Raw Guard) #
if_ :: Raw Expr -> Raw Guard
>>> comp_ (var_ "a") (for_ $ var_ "a" `in_` var_ "b") [if_ $ var_ "c" .== var_ "d"]
a for a in b if c == d
Instance details

Defined in Language.Python.DSL

Methods

if_ :: Raw Expr -> Raw Guard #

(l ~ Raw Line, s ~ Raw If) => IfSyntax ([l] -> s) #
if_ :: Raw Expr -> [Raw Line] -> Raw If
>>> if_ (var_ "a" .< 10) [var_ "a" .+= 1]
if a < 10:
    a += 1
Instance details

Defined in Language.Python.DSL

Methods

if_ :: Raw Expr -> [l] -> s #

for syntax

class ForSyntax a x | a -> x where #

Minimal complete definition

for_

Methods

for_ :: Raw x -> a #

Instances
ForSyntax (Raw CompFor) In #
for_ :: Raw In -> Raw CompFor
>>> comp_ (var_ "a") (for_ $ var_ "a" `in_` var_ "b") []
a for a in b
Instance details

Defined in Language.Python.DSL

Methods

for_ :: Raw In -> Raw CompFor #

ForSyntax (Raw Guard) In #
for_ :: Raw In -> Raw Guard
>>> comp_ (var_ "a") (for_ $ var_ "a" `in_` var_ "b") [for_ $ var_ "c" `in_` var_ "d"]
a for a in b for c in d
Instance details

Defined in Language.Python.DSL

Methods

for_ :: Raw In -> Raw Guard #

(l ~ [Raw Line], s ~ Raw For) => ForSyntax (l -> s) InList #
for_ :: Raw InList -> [Raw Line] -> Raw Statement
>>> for_ (var_ "a" `in_` [var_ "b"]) [line_ (var_ "c" .+= var_ "a")]
for a in b:
    c += a
Instance details

Defined in Language.Python.DSL

Methods

for_ :: Raw InList -> l -> s #

in syntax

class InSyntax a x | a -> x, x -> a where #

Minimal complete definition

in_

Methods

in_ :: Raw Expr -> x -> Raw a infixl 1 #

Instances
InSyntax Expr (Raw Expr) #
>>> var_ "a" `in_` var_ "b"
a in b
Instance details

Defined in Language.Python.DSL

Methods

in_ :: Raw Expr -> Raw Expr -> Raw Expr #

e ~ Raw Expr => InSyntax InList [e] #

See for_

Instance details

Defined in Language.Python.DSL

Methods

in_ :: Raw Expr -> [e] -> Raw InList #

data In v a #

>>> var_ "a" `in_` var_ "b"
a in b

Constructors

MkIn (Expr v a) (Expr v a) 
Instances
ForSyntax (Raw CompFor) In #
for_ :: Raw In -> Raw CompFor
>>> comp_ (var_ "a") (for_ $ var_ "a" `in_` var_ "b") []
a for a in b
Instance details

Defined in Language.Python.DSL

Methods

for_ :: Raw In -> Raw CompFor #

ForSyntax (Raw Guard) In #
for_ :: Raw In -> Raw Guard
>>> comp_ (var_ "a") (for_ $ var_ "a" `in_` var_ "b") [for_ $ var_ "c" `in_` var_ "d"]
a for a in b for c in d
Instance details

Defined in Language.Python.DSL

Methods

for_ :: Raw In -> Raw Guard #

data InList v a #

>>> var_ "a" `in_` [var_ "b", var_ "c"]
a in b, c

Constructors

MkInList (Expr v a) [Expr v a] 
Instances
e ~ Raw Expr => InSyntax InList [e] #

See for_

Instance details

Defined in Language.Python.DSL

Methods

in_ :: Raw Expr -> [e] -> Raw InList #

(l ~ [Raw Line], s ~ Raw For) => ForSyntax (l -> s) InList #
for_ :: Raw InList -> [Raw Line] -> Raw Statement
>>> for_ (var_ "a" `in_` [var_ "b"]) [line_ (var_ "c" .+= var_ "a")]
for a in b:
    c += a
Instance details

Defined in Language.Python.DSL

Methods

for_ :: Raw InList -> l -> s #

: syntax

class ColonSyntax s t | s -> t, t -> s where #

Minimal complete definition

(.:)

Methods

(.:) :: Raw s -> Raw Expr -> Raw t infix 0 #

Instances
ColonSyntax Expr DictItem #

Constructing dictionary items

(.:) :: Raw Expr -> Raw Expr -> Raw DictItem
Instance details

Defined in Language.Python.DSL

Methods

(.:) :: Raw Expr -> Raw Expr -> Raw DictItem #

ColonSyntax Param Param #

Function parameter type annotations

(.:) :: Raw Param -> Raw Expr -> Raw Param

star_ can be annotated using .:, but it will have no effect on the output program, as unnamed starred parameters cannot have type annotations.

See def_

Instance details

Defined in Language.Python.DSL

Methods

(.:) :: Raw Param -> Raw Expr -> Raw Param #

Comprehensions

newtype Guard v a #

Constructors

MkGuard 

Fields

Instances
IfSyntax (Raw Guard) #
if_ :: Raw Expr -> Raw Guard
>>> comp_ (var_ "a") (for_ $ var_ "a" `in_` var_ "b") [if_ $ var_ "c" .== var_ "d"]
a for a in b if c == d
Instance details

Defined in Language.Python.DSL

Methods

if_ :: Raw Expr -> Raw Guard #

ForSyntax (Raw Guard) In #
for_ :: Raw In -> Raw Guard
>>> comp_ (var_ "a") (for_ $ var_ "a" `in_` var_ "b") [for_ $ var_ "c" `in_` var_ "d"]
a for a in b for c in d
Instance details

Defined in Language.Python.DSL

Methods

for_ :: Raw In -> Raw Guard #

Parameters and arguments

Parameters

data Param (v :: [*]) a #

Instances
Validated Param # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

unvalidated :: (Contravariant f, Functor f) => (Param [] a -> f (Param [] a)) -> Param v a -> f (Param v a) #

HasExprs Param # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> Param v a -> f (Param [] a) #

HasIdents Param # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> Param v a -> f (Param [] a) #

KeywordSyntax Param #

See def_

Instance details

Defined in Language.Python.DSL

Methods

k_ :: Raw Ident -> Raw Expr -> Raw Param #

DoubleStarSyntax Ident Param #

See def_

Instance details

Defined in Language.Python.DSL

Methods

ss_ :: Raw Ident -> Raw Param #

StarSyntax Ident Param #

See def_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Ident -> Raw Param #

PositionalSyntax Param Ident #

See def_

Instance details

Defined in Language.Python.DSL

Methods

p_ :: Raw Ident -> Raw Param #

ColonSyntax Param Param #

Function parameter type annotations

(.:) :: Raw Param -> Raw Expr -> Raw Param

star_ can be annotated using .:, but it will have no effect on the output program, as unnamed starred parameters cannot have type annotations.

See def_

Instance details

Defined in Language.Python.DSL

Methods

(.:) :: Raw Param -> Raw Expr -> Raw Param #

Functor (Param v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fmap :: (a -> b) -> Param v a -> Param v b #

(<$) :: a -> Param v b -> Param v a #

Foldable (Param v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fold :: Monoid m => Param v m -> m #

foldMap :: Monoid m => (a -> m) -> Param v a -> m #

foldr :: (a -> b -> b) -> b -> Param v a -> b #

foldr' :: (a -> b -> b) -> b -> Param v a -> b #

foldl :: (b -> a -> b) -> b -> Param v a -> b #

foldl' :: (b -> a -> b) -> b -> Param v a -> b #

foldr1 :: (a -> a -> a) -> Param v a -> a #

foldl1 :: (a -> a -> a) -> Param v a -> a #

toList :: Param v a -> [a] #

null :: Param v a -> Bool #

length :: Param v a -> Int #

elem :: Eq a => a -> Param v a -> Bool #

maximum :: Ord a => Param v a -> a #

minimum :: Ord a => Param v a -> a #

sum :: Num a => Param v a -> a #

product :: Num a => Param v a -> a #

Traversable (Param v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

traverse :: Applicative f => (a -> f b) -> Param v a -> f (Param v b) #

sequenceA :: Applicative f => Param v (f a) -> f (Param v a) #

mapM :: Monad m => (a -> m b) -> Param v a -> m (Param v b) #

sequence :: Monad m => Param v (m a) -> m (Param v a) #

HasAnn (Param v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> Param v a -> f (Param v a) #

Eq a => Eq (Param v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

(==) :: Param v a -> Param v a -> Bool #

(/=) :: Param v a -> Param v a -> Bool #

Show a => Show (Param v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

showsPrec :: Int -> Param v a -> ShowS #

show :: Param v a -> String #

showList :: [Param v a] -> ShowS #

IsString (Param ([] :: [*]) ()) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fromString :: String -> Param [] () #

Generic (Param v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Associated Types

type Rep (Param v a) :: * -> * #

Methods

from :: Param v a -> Rep (Param v a) x #

to :: Rep (Param v a) x -> Param v a #

HasTrailingWhitespace (Param v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

HasNewlines (Param v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (Param v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

type Rep (Param v a) = D1 (MetaData "Param" "Language.Python.Syntax.Expr" "hpython-0.1.0.1-inplace" False) ((C1 (MetaCons "PositionalParam" PrefixI True) (S1 (MetaSel (Just "_paramAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_paramName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ident v a)) :*: S1 (MetaSel (Just "_paramType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Colon, Expr v a))))) :+: C1 (MetaCons "KeywordParam" PrefixI True) ((S1 (MetaSel (Just "_paramAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_paramName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ident v a))) :*: (S1 (MetaSel (Just "_paramType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Colon, Expr v a))) :*: (S1 (MetaSel (Just "_unsafeKeywordParamWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeKeywordParamExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))))) :+: (C1 (MetaCons "StarParam" PrefixI True) ((S1 (MetaSel (Just "_paramAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeStarParamWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_unsafeStarParamName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ident v a)) :*: S1 (MetaSel (Just "_paramType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Colon, Expr v a))))) :+: (C1 (MetaCons "UnnamedStarParam" PrefixI True) (S1 (MetaSel (Just "_paramAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeUnnamedStarParamWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :+: C1 (MetaCons "DoubleStarParam" PrefixI True) ((S1 (MetaSel (Just "_paramAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeDoubleStarParamWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_paramName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ident v a)) :*: S1 (MetaSel (Just "_paramType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Colon, Expr v a))))))))

class ParametersSyntax s where #

Minimal complete definition

parameters_, parameters

Methods

parameters_ :: Functor f => ([Raw Param] -> f [Raw Param]) -> Raw s -> f (Raw s) #

A faux-Lens that allows targeting Params in-between existing formatting, and adding appropriate formatting when extra parameters are introduced.

>>> showStatement myStatement
"def a(b ,  c   ):\n    pass"
>>> showStatement (myStatement & _Fundef.parameters_ .~ [p_ "d", p_ "e"]
"def a(d ,  e   ):\n    pass"
>>> showStatement (myStatement & _Fundef.parameters_ .~ [p_ "d", p_ "e", p_ "f"]
"def a(d ,  e   , f):\n    pass"

---

It's not a Lens because repeated sets can drop trailing commas, violating the Lens laws. For example:

>>> someFunction
def a(b, c,):
    pass
>>> set parameters_ [var_ "d", var_ "e"] someFunction
def a(d, e,):
    pass
>>> set parameters_ [] someFunction
def a():
    pass
>>> set parameters_ [var_ "d", var_ "e"] (set parameters_ [] someFunction)
def a(d, e):
    pass

parameters :: Lens' (Raw s) (CommaSep (Raw Param)) #

Instances
ParametersSyntax Fundef # 
Instance details

Defined in Language.Python.DSL

Arguments

data Arg (v :: [*]) a #

Actual parameters for functions

In the following examples, x is an actual parameter.

y = foo(x)
y = bar(quux=x)
y = baz(*x)
y = flux(**x)
Instances
Validated Arg # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

unvalidated :: (Contravariant f, Functor f) => (Arg [] a -> f (Arg [] a)) -> Arg v a -> f (Arg v a) #

HasExprs Arg # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> Arg v a -> f (Arg [] a) #

HasIdents Arg # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> Arg v a -> f (Arg [] a) #

KeywordSyntax Arg #

See call_

Instance details

Defined in Language.Python.DSL

Methods

k_ :: Raw Ident -> Raw Expr -> Raw Arg #

DoubleStarSyntax Expr Arg #

See call_

Instance details

Defined in Language.Python.DSL

Methods

ss_ :: Raw Expr -> Raw Arg #

StarSyntax Expr Arg #

See call_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw Arg #

PositionalSyntax Arg Expr #

See call_

Instance details

Defined in Language.Python.DSL

Methods

p_ :: Raw Expr -> Raw Arg #

Functor (Arg v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fmap :: (a -> b) -> Arg v a -> Arg v b #

(<$) :: a -> Arg v b -> Arg v a #

Foldable (Arg v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fold :: Monoid m => Arg v m -> m #

foldMap :: Monoid m => (a -> m) -> Arg v a -> m #

foldr :: (a -> b -> b) -> b -> Arg v a -> b #

foldr' :: (a -> b -> b) -> b -> Arg v a -> b #

foldl :: (b -> a -> b) -> b -> Arg v a -> b #

foldl' :: (b -> a -> b) -> b -> Arg v a -> b #

foldr1 :: (a -> a -> a) -> Arg v a -> a #

foldl1 :: (a -> a -> a) -> Arg v a -> a #

toList :: Arg v a -> [a] #

null :: Arg v a -> Bool #

length :: Arg v a -> Int #

elem :: Eq a => a -> Arg v a -> Bool #

maximum :: Ord a => Arg v a -> a #

minimum :: Ord a => Arg v a -> a #

sum :: Num a => Arg v a -> a #

product :: Num a => Arg v a -> a #

Traversable (Arg v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

traverse :: Applicative f => (a -> f b) -> Arg v a -> f (Arg v b) #

sequenceA :: Applicative f => Arg v (f a) -> f (Arg v a) #

mapM :: Monad m => (a -> m b) -> Arg v a -> m (Arg v b) #

sequence :: Monad m => Arg v (m a) -> m (Arg v a) #

HasAnn (Arg v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> Arg v a -> f (Arg v a) #

Eq a => Eq (Arg v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

(==) :: Arg v a -> Arg v a -> Bool #

(/=) :: Arg v a -> Arg v a -> Bool #

Show a => Show (Arg v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

showsPrec :: Int -> Arg v a -> ShowS #

show :: Arg v a -> String #

showList :: [Arg v a] -> ShowS #

IsString (Arg ([] :: [*]) ()) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fromString :: String -> Arg [] () #

Generic (Arg v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Associated Types

type Rep (Arg v a) :: * -> * #

Methods

from :: Arg v a -> Rep (Arg v a) x #

to :: Rep (Arg v a) x -> Arg v a #

HasNewlines (Arg v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

Methods

_Newlines :: Traversal' (Arg v a) Newline #

type Rep (Arg v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

type Rep (Arg v a) = D1 (MetaData "Arg" "Language.Python.Syntax.Expr" "hpython-0.1.0.1-inplace" False) ((C1 (MetaCons "PositionalArg" PrefixI True) (S1 (MetaSel (Just "_argAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_argExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :+: C1 (MetaCons "KeywordArg" PrefixI True) ((S1 (MetaSel (Just "_argAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeKeywordArgName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ident v a))) :*: (S1 (MetaSel (Just "_unsafeKeywordArgWhitespaceRight") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_argExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))))) :+: (C1 (MetaCons "StarArg" PrefixI True) (S1 (MetaSel (Just "_argAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeStarArgWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_argExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))) :+: C1 (MetaCons "DoubleStarArg" PrefixI True) (S1 (MetaSel (Just "_argAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeDoubleStarArgWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_argExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))))))

class ArgumentsSyntax s where #

Minimal complete definition

setArguments, getArguments

Methods

setArguments :: [Raw Arg] -> Raw s -> Raw s #

getArguments :: Raw s -> [Raw Arg] #

Instances
ArgumentsSyntax Call # 
Instance details

Defined in Language.Python.DSL

ArgumentsSyntax ClassDef # 
Instance details

Defined in Language.Python.DSL

Positional

class PositionalSyntax p v | p -> v, v -> p where #

Positional parameters/arguments

p_ :: Raw Expr -> Raw Arg
p_ :: Raw Ident -> Raw Param

Minimal complete definition

p_

Methods

p_ :: Raw v -> Raw p #

Instances
PositionalSyntax Arg Expr #

See call_

Instance details

Defined in Language.Python.DSL

Methods

p_ :: Raw Expr -> Raw Arg #

PositionalSyntax Param Ident #

See def_

Instance details

Defined in Language.Python.DSL

Methods

p_ :: Raw Ident -> Raw Param #

data PositionalParam v a #

Constructors

MkPositionalParam 

Fields

Instances
Functor (PositionalParam v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> PositionalParam v a -> PositionalParam v b #

(<$) :: a -> PositionalParam v b -> PositionalParam v a #

Foldable (PositionalParam v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => PositionalParam v m -> m #

foldMap :: Monoid m => (a -> m) -> PositionalParam v a -> m #

foldr :: (a -> b -> b) -> b -> PositionalParam v a -> b #

foldr' :: (a -> b -> b) -> b -> PositionalParam v a -> b #

foldl :: (b -> a -> b) -> b -> PositionalParam v a -> b #

foldl' :: (b -> a -> b) -> b -> PositionalParam v a -> b #

foldr1 :: (a -> a -> a) -> PositionalParam v a -> a #

foldl1 :: (a -> a -> a) -> PositionalParam v a -> a #

toList :: PositionalParam v a -> [a] #

null :: PositionalParam v a -> Bool #

length :: PositionalParam v a -> Int #

elem :: Eq a => a -> PositionalParam v a -> Bool #

maximum :: Ord a => PositionalParam v a -> a #

minimum :: Ord a => PositionalParam v a -> a #

sum :: Num a => PositionalParam v a -> a #

product :: Num a => PositionalParam v a -> a #

Traversable (PositionalParam v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> PositionalParam v a -> f (PositionalParam v b) #

sequenceA :: Applicative f => PositionalParam v (f a) -> f (PositionalParam v a) #

mapM :: Monad m => (a -> m b) -> PositionalParam v a -> m (PositionalParam v b) #

sequence :: Monad m => PositionalParam v (m a) -> m (PositionalParam v a) #

HasAnn (PositionalParam v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> PositionalParam v a -> f (PositionalParam v a) #

Eq a => Eq (PositionalParam v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Show a => Show (PositionalParam v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Generic (PositionalParam v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (PositionalParam v a) :: * -> * #

Methods

from :: PositionalParam v a -> Rep (PositionalParam v a) x #

to :: Rep (PositionalParam v a) x -> PositionalParam v a #

type Rep (PositionalParam v a) # 
Instance details

Defined in Language.Python.Syntax.Types

type Rep (PositionalParam v a) = D1 (MetaData "PositionalParam" "Language.Python.Syntax.Types" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "MkPositionalParam" PrefixI True) (S1 (MetaSel (Just "_ppAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_ppName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ident v a)) :*: S1 (MetaSel (Just "_ppType") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (Colon, Expr v a))))))

Lenses

ppAnn :: forall v a. Lens' (PositionalParam v a) (Ann a) #

ppName :: forall v a. Lens' (PositionalParam v a) (Ident v a) #

ppType :: forall v a. Lens' (PositionalParam v a) (Maybe (Colon, Expr v a)) #

Keyword

class KeywordSyntax p where #

Keyword parameters/arguments

p_ :: Raw Expr -> Raw Expr -> Raw Arg
p_ :: Raw Ident -> Raw Expr -> Raw Param

Minimal complete definition

k_

Methods

k_ :: Raw Ident -> Raw Expr -> Raw p #

Instances
KeywordSyntax Arg #

See call_

Instance details

Defined in Language.Python.DSL

Methods

k_ :: Raw Ident -> Raw Expr -> Raw Arg #

KeywordSyntax Param #

See def_

Instance details

Defined in Language.Python.DSL

Methods

k_ :: Raw Ident -> Raw Expr -> Raw Param #

data KeywordParam v a #

Constructors

MkKeywordParam 

Fields

Instances
Functor (KeywordParam v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> KeywordParam v a -> KeywordParam v b #

(<$) :: a -> KeywordParam v b -> KeywordParam v a #

Foldable (KeywordParam v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => KeywordParam v m -> m #

foldMap :: Monoid m => (a -> m) -> KeywordParam v a -> m #

foldr :: (a -> b -> b) -> b -> KeywordParam v a -> b #

foldr' :: (a -> b -> b) -> b -> KeywordParam v a -> b #

foldl :: (b -> a -> b) -> b -> KeywordParam v a -> b #

foldl' :: (b -> a -> b) -> b -> KeywordParam v a -> b #

foldr1 :: (a -> a -> a) -> KeywordParam v a -> a #

foldl1 :: (a -> a -> a) -> KeywordParam v a -> a #

toList :: KeywordParam v a -> [a] #

null :: KeywordParam v a -> Bool #

length :: KeywordParam v a -> Int #

elem :: Eq a => a -> KeywordParam v a -> Bool #

maximum :: Ord a => KeywordParam v a -> a #

minimum :: Ord a => KeywordParam v a -> a #

sum :: Num a => KeywordParam v a -> a #

product :: Num a => KeywordParam v a -> a #

Traversable (KeywordParam v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> KeywordParam v a -> f (KeywordParam v b) #

sequenceA :: Applicative f => KeywordParam v (f a) -> f (KeywordParam v a) #

mapM :: Monad m => (a -> m b) -> KeywordParam v a -> m (KeywordParam v b) #

sequence :: Monad m => KeywordParam v (m a) -> m (KeywordParam v a) #

HasAnn (KeywordParam v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> KeywordParam v a -> f (KeywordParam v a) #

Eq a => Eq (KeywordParam v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: KeywordParam v a -> KeywordParam v a -> Bool #

(/=) :: KeywordParam v a -> KeywordParam v a -> Bool #

Show a => Show (KeywordParam v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Generic (KeywordParam v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (KeywordParam v a) :: * -> * #

Methods

from :: KeywordParam v a -> Rep (KeywordParam v a) x #

to :: Rep (KeywordParam v a) x -> KeywordParam v a #

type Rep (KeywordParam v a) # 
Instance details

Defined in Language.Python.Syntax.Types

_KeywordParam :: Prism (Param v a) (Param '[] a) (KeywordParam v a) (KeywordParam '[] a) #

Lenses

kpAnn :: forall v a. Lens' (KeywordParam v a) (Ann a) #

kpName :: forall v a. Lens' (KeywordParam v a) (Ident v a) #

kpType :: forall v a. Lens' (KeywordParam v a) (Maybe (Colon, Expr v a)) #

kpEquals :: forall v a. Lens' (KeywordParam v a) [Whitespace] #

kpExpr :: forall v a. Lens' (KeywordParam v a) (Expr v a) #

Decorators

Statements

async

class AsyncSyntax s where #

Minimal complete definition

async_

Methods

async_ :: Raw s -> Raw s #

Instances
AsyncSyntax Fundef # 
Instance details

Defined in Language.Python.DSL

Methods

async_ :: Raw Fundef -> Raw Fundef #

AsyncSyntax For # 
Instance details

Defined in Language.Python.DSL

Methods

async_ :: Raw For -> Raw For #

AsyncSyntax With # 
Instance details

Defined in Language.Python.DSL

Methods

async_ :: Raw With -> Raw With #

Block bodies

class BodySyntax s where #

Minimal complete definition

body_, body

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw s -> f (Raw s) #

A faux-Lens that targets lines in the body of some statement-piece, but does so 'around' indentation.

>>> def_ "a" [] [ line_ pass_, line_ pass_ ]
def a ():
    pass
    pass
>>> def_ "a" [] [ line_ pass_, line_ pass_ ] ^. body_
pass
pass
>>> def_ "a" [] [ line_ pass_, line_ pass_ ] & body_ .~ [ line_ $ var_ "b" += 1 ]
def a():
    b += 1
>>> def_ "a" [] [ line_ pass_, line_ pass_ ] & body_ <>~ [ line_ $ var_ "b" += 1 ]
def a():
    pass
    pass
    b += 1
>>> def_ "a" [] [ line_ pass_, line_ pass_ ] & body_ .~ []
def a():
    pass

---

It's a fake Lens because it violates some of the laws. The most obvious violation is that setting the body_ to the empty list actually sets it to a singleton list containing pass_. (This is because blocks must contain one or more statements)

body :: Lens' (Raw s) (Raw Suite) #

Instances
BodySyntax Fundef # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw Fundef -> f (Raw Fundef) #

body :: Lens' (Raw Fundef) (Raw Suite) #

BodySyntax Else # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw Else -> f (Raw Else) #

body :: Lens' (Raw Else) (Raw Suite) #

BodySyntax While # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw While -> f (Raw While) #

body :: Lens' (Raw While) (Raw Suite) #

BodySyntax Elif # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw Elif -> f (Raw Elif) #

body :: Lens' (Raw Elif) (Raw Suite) #

BodySyntax If # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw If -> f (Raw If) #

body :: Lens' (Raw If) (Raw Suite) #

BodySyntax For # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw For -> f (Raw For) #

body :: Lens' (Raw For) (Raw Suite) #

BodySyntax TryExcept # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw TryExcept -> f (Raw TryExcept) #

body :: Lens' (Raw TryExcept) (Raw Suite) #

BodySyntax TryFinally # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw TryFinally -> f (Raw TryFinally) #

body :: Lens' (Raw TryFinally) (Raw Suite) #

BodySyntax ClassDef # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw ClassDef -> f (Raw ClassDef) #

body :: Lens' (Raw ClassDef) (Raw Suite) #

BodySyntax With # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw With -> f (Raw With) #

body :: Lens' (Raw With) (Raw Suite) #

Function definitions

def_ :: Raw Ident -> [Raw Param] -> [Raw Line] -> Raw Fundef #

>>> def_ "f" [p_ "x"] [line_ $ return_ "x"]
def f(x):
    return x
>>> def_ "f" [p_ "x", k_ "y" 2] [line_ $ return_ "x"]
def f(x, y=2):
    return x
>>> def_ "f" [p_ "x", k_ "y" 2, s_ "z"] [line_ $ return_ "x"]
def f(x, y=2, *z):
    return x
>>> def_ "f" [p_ "x", k_ "y" 2, s_ "z", ss_ "w"] [line_ $ return_ "x"]
def f(x, y=2, *z, **w)
    return x
>>> def_ "f" [p_ "x" .: "String"] [line_ $ return_ "x"]
def f(x: String):
    return x

data Fundef v a #

Instances
HasFundef Fundef # 
Instance details

Defined in Language.Python.Optics

Methods

_Fundef :: (Choice p, Applicative f) => p (Fundef v a) (f (Fundef [] a)) -> p (Fundef v a) (f (Fundef [] a)) #

AsyncSyntax Fundef # 
Instance details

Defined in Language.Python.DSL

Methods

async_ :: Raw Fundef -> Raw Fundef #

DecoratorsSyntax Fundef # 
Instance details

Defined in Language.Python.DSL

ParametersSyntax Fundef # 
Instance details

Defined in Language.Python.DSL

BodySyntax Fundef # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw Fundef -> f (Raw Fundef) #

body :: Lens' (Raw Fundef) (Raw Suite) #

AsLine Fundef # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw Fundef -> Raw Line #

Functor (Fundef v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> Fundef v a -> Fundef v b #

(<$) :: a -> Fundef v b -> Fundef v a #

Foldable (Fundef v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => Fundef v m -> m #

foldMap :: Monoid m => (a -> m) -> Fundef v a -> m #

foldr :: (a -> b -> b) -> b -> Fundef v a -> b #

foldr' :: (a -> b -> b) -> b -> Fundef v a -> b #

foldl :: (b -> a -> b) -> b -> Fundef v a -> b #

foldl' :: (b -> a -> b) -> b -> Fundef v a -> b #

foldr1 :: (a -> a -> a) -> Fundef v a -> a #

foldl1 :: (a -> a -> a) -> Fundef v a -> a #

toList :: Fundef v a -> [a] #

null :: Fundef v a -> Bool #

length :: Fundef v a -> Int #

elem :: Eq a => a -> Fundef v a -> Bool #

maximum :: Ord a => Fundef v a -> a #

minimum :: Ord a => Fundef v a -> a #

sum :: Num a => Fundef v a -> a #

product :: Num a => Fundef v a -> a #

Traversable (Fundef v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> Fundef v a -> f (Fundef v b) #

sequenceA :: Applicative f => Fundef v (f a) -> f (Fundef v a) #

mapM :: Monad m => (a -> m b) -> Fundef v a -> m (Fundef v b) #

sequence :: Monad m => Fundef v (m a) -> m (Fundef v a) #

HasAnn (Fundef v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> Fundef v a -> f (Fundef v a) #

Eq a => Eq (Fundef v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: Fundef v a -> Fundef v a -> Bool #

(/=) :: Fundef v a -> Fundef v a -> Bool #

Show a => Show (Fundef v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> Fundef v a -> ShowS #

show :: Fundef v a -> String #

showList :: [Fundef v a] -> ShowS #

Generic (Fundef v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (Fundef v a) :: * -> * #

Methods

from :: Fundef v a -> Rep (Fundef v a) x #

to :: Rep (Fundef v a) x -> Fundef v a #

HasIndents (Fundef ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (Fundef [] a) (Indents a) #

type Rep (Fundef v a) # 
Instance details

Defined in Language.Python.Syntax.Types

mkFundef :: Raw Ident -> [Raw Line] -> Raw Fundef #

Create a minimal valid function definition

Lenses

fdAnn :: forall v a. Lens' (Fundef v a) (Ann a) #

fdDecorators :: forall v a. Lens' (Fundef v a) [Decorator v a] #

fdIndents :: forall v a. Lens' (Fundef v a) (Indents a) #

fdAsync :: forall v a. Lens' (Fundef v a) (Maybe (NonEmpty Whitespace)) #

fdDefSpaces :: forall v a. Lens' (Fundef v a) (NonEmpty Whitespace) #

fdName :: forall v a. Lens' (Fundef v a) (Ident v a) #

fdLeftParenSpaces :: forall v a. Lens' (Fundef v a) [Whitespace] #

fdParameters :: forall v a. Lens' (Fundef v a) (CommaSep (Param v a)) #

fdRightParenSpaces :: forall v a. Lens' (Fundef v a) [Whitespace] #

fdReturnType :: forall v a. Lens' (Fundef v a) (Maybe ([Whitespace], Expr v a)) #

fdBody :: forall v a. Lens' (Fundef v a) (Suite v a) #

Class definitions

class_ :: Raw Ident -> [Raw Arg] -> [Raw Line] -> Raw ClassDef #

>>> class_ "A" [] [line_ pass_]
class A:
    pass

data ClassDef v a #

Instances
HasClassDef ClassDef # 
Instance details

Defined in Language.Python.Optics

Methods

_ClassDef :: (Choice p, Applicative f) => p (ClassDef v a) (f (ClassDef [] a)) -> p (ClassDef v a) (f (ClassDef [] a)) #

DecoratorsSyntax ClassDef # 
Instance details

Defined in Language.Python.DSL

ArgumentsSyntax ClassDef # 
Instance details

Defined in Language.Python.DSL

BodySyntax ClassDef # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw ClassDef -> f (Raw ClassDef) #

body :: Lens' (Raw ClassDef) (Raw Suite) #

AsLine ClassDef # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw ClassDef -> Raw Line #

Functor (ClassDef v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> ClassDef v a -> ClassDef v b #

(<$) :: a -> ClassDef v b -> ClassDef v a #

Foldable (ClassDef v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => ClassDef v m -> m #

foldMap :: Monoid m => (a -> m) -> ClassDef v a -> m #

foldr :: (a -> b -> b) -> b -> ClassDef v a -> b #

foldr' :: (a -> b -> b) -> b -> ClassDef v a -> b #

foldl :: (b -> a -> b) -> b -> ClassDef v a -> b #

foldl' :: (b -> a -> b) -> b -> ClassDef v a -> b #

foldr1 :: (a -> a -> a) -> ClassDef v a -> a #

foldl1 :: (a -> a -> a) -> ClassDef v a -> a #

toList :: ClassDef v a -> [a] #

null :: ClassDef v a -> Bool #

length :: ClassDef v a -> Int #

elem :: Eq a => a -> ClassDef v a -> Bool #

maximum :: Ord a => ClassDef v a -> a #

minimum :: Ord a => ClassDef v a -> a #

sum :: Num a => ClassDef v a -> a #

product :: Num a => ClassDef v a -> a #

Traversable (ClassDef v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> ClassDef v a -> f (ClassDef v b) #

sequenceA :: Applicative f => ClassDef v (f a) -> f (ClassDef v a) #

mapM :: Monad m => (a -> m b) -> ClassDef v a -> m (ClassDef v b) #

sequence :: Monad m => ClassDef v (m a) -> m (ClassDef v a) #

HasAnn (ClassDef v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> ClassDef v a -> f (ClassDef v a) #

Eq a => Eq (ClassDef v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: ClassDef v a -> ClassDef v a -> Bool #

(/=) :: ClassDef v a -> ClassDef v a -> Bool #

Show a => Show (ClassDef v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> ClassDef v a -> ShowS #

show :: ClassDef v a -> String #

showList :: [ClassDef v a] -> ShowS #

Generic (ClassDef v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (ClassDef v a) :: * -> * #

Methods

from :: ClassDef v a -> Rep (ClassDef v a) x #

to :: Rep (ClassDef v a) x -> ClassDef v a #

HasIndents (ClassDef ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (ClassDef [] a) (Indents a) #

type Rep (ClassDef v a) # 
Instance details

Defined in Language.Python.Syntax.Types

mkClassDef :: Raw Ident -> [Raw Line] -> Raw ClassDef #

Create a minimal ClassDef

Lenses

cdAnn :: forall v a. Lens' (ClassDef v a) (Ann a) #

cdDecorators :: forall v a. Lens' (ClassDef v a) [Decorator v a] #

cdIndents :: forall v a. Lens' (ClassDef v a) (Indents a) #

cdClass :: forall v a. Lens' (ClassDef v a) (NonEmpty Whitespace) #

cdName :: forall v a. Lens' (ClassDef v a) (Ident v a) #

cdArguments :: forall v a. Lens' (ClassDef v a) (Maybe ([Whitespace], Maybe (CommaSep1' (Arg v a)), [Whitespace])) #

cdBody :: forall v a. Lens' (ClassDef v a) (Suite v a) #

Assignment

chainEq :: Raw Expr -> [Raw Expr] -> Raw Statement #

Chained assignment

>>> chainEq (var_ "a") []
a
>>> chainEq (var_ "a") [var_ "b", var_ "c"]
a = b = c

(.=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a = b

(.+=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a += b

(.-=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a -= b

(.*=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a *= b

(.@=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a = b@

(./=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a /= b

(.%=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a %= b

(.&=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a &= b

(.|=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a |= b

(.^=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a ^= b

(.<<=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a <<= b

(.>>=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a >>= b

(.**=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a **= b

(.//=) :: Raw Expr -> Raw Expr -> Raw Statement infix 0 #

a //= b

Exceptions

tryE_ :: [Raw Line] -> Raw Except -> Raw TryExcept #

try ... except with optional else and optional finally

>>> tryE_ [line_ pass_] [line_ ("a" .+= 1)]
try:
    pass
except
    a += 1

tryF_ :: [Raw Line] -> [Raw Line] -> Raw TryFinally #

try ... finally
>>> tryF_ [line_ pass_] [line_ ("a" .+= 1)]
try:
    pass
finally:
    a += 1

class ExceptSyntax s where #

Minimal complete definition

except_, exceptAs_

Methods

except_ :: [Raw Line] -> s -> Raw TryExcept #

exceptAs_ :: AsExceptAs e => Raw e -> [Raw Line] -> s -> Raw TryExcept #

You can use exceptAs_ without a binder:

exceptAs_ :: Raw Expr -> [Raw Line] -> Raw s -> Raw TryExcept
exceptAs_ (var_ "Exception") body

or with a binder:

exceptAs_ :: Raw ExceptAs -> [Raw Line] -> Raw s -> Raw TryExcept
exceptAs_ (var_ "Exception" `as_` id_ "a") body
Instances
ExceptSyntax (Raw TryExcept) #
except_ :: [Raw Line] -> Raw TryExcept -> Raw TryExcept
exceptAs_ :: AsExceptAs => Raw e -> [Raw Line] -> Raw TryExcept -> Raw TryExcept
(someTryStatement :: Raw TryExcept) &
  except_ [line_ pass_]
(someTryStatement :: Raw TryExcept) &
  exceptAs_ (var_ "Exception" `as_` id_ "b") [line_ pass_]
Instance details

Defined in Language.Python.DSL

ExceptSyntax (Raw TryFinally) #
except_ :: [Raw Line] -> Raw TryFinally -> Raw TryExcept
exceptAs_ :: AsExceptAs => Raw e -> [Raw Line] -> Raw TryFinally -> Raw TryExcept
(someTryStatement :: Raw TryFinally) &
  except_ [line_ pass_]
(someTryStatement :: Raw TryFinally) &
  exceptAs_ (var_ "Exception" `as_` id_ "b") [line_ pass_]
Instance details

Defined in Language.Python.DSL

(e ~ Raw Except, s ~ Raw TryExcept) => ExceptSyntax (e -> s) #
except_ :: [Raw Line] -> (Raw Except -> Raw TryExcept) -> Raw TryExcept
exceptAs_ :: AsExceptAs e => Raw e -> [Raw Line] -> (Raw Except -> Raw TryExcept) -> Raw TryExcept
>>> tryE_ [var_ "a" .= 2] & except_ [var_ "a" .= 3]
try:
    a = 2
except:
    a = 3
>>> tryE_ [var_ "a" .= 2] & exceptAs_ (var_ "Exception" `as_` id_ "b") [var_ "a" .= 3]
try:
    a = 2
except Exception as b:
    a = 3
Instance details

Defined in Language.Python.DSL

Methods

except_ :: [Raw Line] -> (e -> s) -> Raw TryExcept #

exceptAs_ :: AsExceptAs e0 => Raw e0 -> [Raw Line] -> (e -> s) -> Raw TryExcept #

class FinallySyntax s t | s -> t where #

Minimal complete definition

finally_

Methods

finally_ :: [Raw Line] -> s -> Raw t #

Instances
FinallySyntax (Raw TryExcept) TryExcept #
>>> tryE_ [line_ pass_] & finally_ [line_ pass_]
try:
    pass
finally:
    pass
>>> tryF_ [line_ pass_] [line_ (a .+= 1)] & finally_ [line_ pass_]
try:
    pass
finally:
    pass
>>> tryF_ [line_ pass_] & finally_ [line_ pass_]
try:
    pass
finally:
    pass
Instance details

Defined in Language.Python.DSL

FinallySyntax (Raw TryFinally) TryFinally # 
Instance details

Defined in Language.Python.DSL

(a ~ [Raw Line], b ~ Raw TryFinally) => FinallySyntax (a -> b) TryFinally # 
Instance details

Defined in Language.Python.DSL

Methods

finally_ :: [Raw Line] -> (a -> b) -> Raw TryFinally #

data TryExcept v a #

Constructors

MkTryExcept 

Fields

Instances
HasTryExcept TryExcept # 
Instance details

Defined in Language.Python.Optics

Methods

_TryExcept :: (Choice p, Applicative f) => p (TryExcept v a) (f (TryExcept [] a)) -> p (TryExcept v a) (f (TryExcept [] a)) #

ElseSyntax TryExcept # 
Instance details

Defined in Language.Python.DSL

BodySyntax TryExcept # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw TryExcept -> f (Raw TryExcept) #

body :: Lens' (Raw TryExcept) (Raw Suite) #

AsLine TryExcept # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw TryExcept -> Raw Line #

Functor (TryExcept v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> TryExcept v a -> TryExcept v b #

(<$) :: a -> TryExcept v b -> TryExcept v a #

Foldable (TryExcept v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => TryExcept v m -> m #

foldMap :: Monoid m => (a -> m) -> TryExcept v a -> m #

foldr :: (a -> b -> b) -> b -> TryExcept v a -> b #

foldr' :: (a -> b -> b) -> b -> TryExcept v a -> b #

foldl :: (b -> a -> b) -> b -> TryExcept v a -> b #

foldl' :: (b -> a -> b) -> b -> TryExcept v a -> b #

foldr1 :: (a -> a -> a) -> TryExcept v a -> a #

foldl1 :: (a -> a -> a) -> TryExcept v a -> a #

toList :: TryExcept v a -> [a] #

null :: TryExcept v a -> Bool #

length :: TryExcept v a -> Int #

elem :: Eq a => a -> TryExcept v a -> Bool #

maximum :: Ord a => TryExcept v a -> a #

minimum :: Ord a => TryExcept v a -> a #

sum :: Num a => TryExcept v a -> a #

product :: Num a => TryExcept v a -> a #

Traversable (TryExcept v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> TryExcept v a -> f (TryExcept v b) #

sequenceA :: Applicative f => TryExcept v (f a) -> f (TryExcept v a) #

mapM :: Monad m => (a -> m b) -> TryExcept v a -> m (TryExcept v b) #

sequence :: Monad m => TryExcept v (m a) -> m (TryExcept v a) #

HasAnn (TryExcept v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> TryExcept v a -> f (TryExcept v a) #

ExceptSyntax (Raw TryExcept) #
except_ :: [Raw Line] -> Raw TryExcept -> Raw TryExcept
exceptAs_ :: AsExceptAs => Raw e -> [Raw Line] -> Raw TryExcept -> Raw TryExcept
(someTryStatement :: Raw TryExcept) &
  except_ [line_ pass_]
(someTryStatement :: Raw TryExcept) &
  exceptAs_ (var_ "Exception" `as_` id_ "b") [line_ pass_]
Instance details

Defined in Language.Python.DSL

FinallySyntax (Raw TryExcept) TryExcept #
>>> tryE_ [line_ pass_] & finally_ [line_ pass_]
try:
    pass
finally:
    pass
>>> tryF_ [line_ pass_] [line_ (a .+= 1)] & finally_ [line_ pass_]
try:
    pass
finally:
    pass
>>> tryF_ [line_ pass_] & finally_ [line_ pass_]
try:
    pass
finally:
    pass
Instance details

Defined in Language.Python.DSL

Eq a => Eq (TryExcept v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: TryExcept v a -> TryExcept v a -> Bool #

(/=) :: TryExcept v a -> TryExcept v a -> Bool #

Show a => Show (TryExcept v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> TryExcept v a -> ShowS #

show :: TryExcept v a -> String #

showList :: [TryExcept v a] -> ShowS #

Generic (TryExcept v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (TryExcept v a) :: * -> * #

Methods

from :: TryExcept v a -> Rep (TryExcept v a) x #

to :: Rep (TryExcept v a) x -> TryExcept v a #

HasIndents (TryExcept ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (TryExcept [] a) (Indents a) #

type Rep (TryExcept v a) # 
Instance details

Defined in Language.Python.Syntax.Types

mkTryExcept :: [Raw Line] -> Raw Except -> Raw TryExcept #

Create a minimal valid TryExcept

data TryFinally v a #

Constructors

MkTryFinally 

Fields

Instances
HasTryFinally TryFinally # 
Instance details

Defined in Language.Python.Optics

Methods

_TryFinally :: (Choice p, Applicative f) => p (TryFinally v a) (f (TryFinally [] a)) -> p (TryFinally v a) (f (TryFinally [] a)) #

BodySyntax TryFinally # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw TryFinally -> f (Raw TryFinally) #

body :: Lens' (Raw TryFinally) (Raw Suite) #

AsLine TryFinally # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw TryFinally -> Raw Line #

Functor (TryFinally v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> TryFinally v a -> TryFinally v b #

(<$) :: a -> TryFinally v b -> TryFinally v a #

Foldable (TryFinally v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => TryFinally v m -> m #

foldMap :: Monoid m => (a -> m) -> TryFinally v a -> m #

foldr :: (a -> b -> b) -> b -> TryFinally v a -> b #

foldr' :: (a -> b -> b) -> b -> TryFinally v a -> b #

foldl :: (b -> a -> b) -> b -> TryFinally v a -> b #

foldl' :: (b -> a -> b) -> b -> TryFinally v a -> b #

foldr1 :: (a -> a -> a) -> TryFinally v a -> a #

foldl1 :: (a -> a -> a) -> TryFinally v a -> a #

toList :: TryFinally v a -> [a] #

null :: TryFinally v a -> Bool #

length :: TryFinally v a -> Int #

elem :: Eq a => a -> TryFinally v a -> Bool #

maximum :: Ord a => TryFinally v a -> a #

minimum :: Ord a => TryFinally v a -> a #

sum :: Num a => TryFinally v a -> a #

product :: Num a => TryFinally v a -> a #

Traversable (TryFinally v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> TryFinally v a -> f (TryFinally v b) #

sequenceA :: Applicative f => TryFinally v (f a) -> f (TryFinally v a) #

mapM :: Monad m => (a -> m b) -> TryFinally v a -> m (TryFinally v b) #

sequence :: Monad m => TryFinally v (m a) -> m (TryFinally v a) #

HasAnn (TryFinally v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> TryFinally v a -> f (TryFinally v a) #

ExceptSyntax (Raw TryFinally) #
except_ :: [Raw Line] -> Raw TryFinally -> Raw TryExcept
exceptAs_ :: AsExceptAs => Raw e -> [Raw Line] -> Raw TryFinally -> Raw TryExcept
(someTryStatement :: Raw TryFinally) &
  except_ [line_ pass_]
(someTryStatement :: Raw TryFinally) &
  exceptAs_ (var_ "Exception" `as_` id_ "b") [line_ pass_]
Instance details

Defined in Language.Python.DSL

FinallySyntax (Raw TryFinally) TryFinally # 
Instance details

Defined in Language.Python.DSL

Eq a => Eq (TryFinally v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: TryFinally v a -> TryFinally v a -> Bool #

(/=) :: TryFinally v a -> TryFinally v a -> Bool #

Show a => Show (TryFinally v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> TryFinally v a -> ShowS #

show :: TryFinally v a -> String #

showList :: [TryFinally v a] -> ShowS #

Generic (TryFinally v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (TryFinally v a) :: * -> * #

Methods

from :: TryFinally v a -> Rep (TryFinally v a) x #

to :: Rep (TryFinally v a) x -> TryFinally v a #

HasIndents (TryFinally ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (TryFinally [] a) (Indents a) #

(a ~ [Raw Line], b ~ Raw TryFinally) => FinallySyntax (a -> b) TryFinally # 
Instance details

Defined in Language.Python.DSL

Methods

finally_ :: [Raw Line] -> (a -> b) -> Raw TryFinally #

type Rep (TryFinally v a) # 
Instance details

Defined in Language.Python.Syntax.Types

mkTryFinally :: [Raw Line] -> [Raw Line] -> Raw TryFinally #

Create a minimal valid TryFinally

data ExceptAs (v :: [*]) a #

Constructors

ExceptAs 

Fields

Instances
Validated ExceptAs # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

unvalidated :: (Contravariant f, Functor f) => (ExceptAs [] a -> f (ExceptAs [] a)) -> ExceptAs v a -> f (ExceptAs v a) #

HasExprs ExceptAs # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> ExceptAs v a -> f (ExceptAs [] a) #

HasIdents ExceptAs # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> ExceptAs v a -> f (ExceptAs [] a) #

AsExceptAs ExceptAs # 
Instance details

Defined in Language.Python.DSL

As Expr Ident ExceptAs #

See exceptAs_

Instance details

Defined in Language.Python.DSL

Methods

as_ :: Raw Expr -> Raw Ident -> Raw ExceptAs #

Functor (ExceptAs v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

fmap :: (a -> b) -> ExceptAs v a -> ExceptAs v b #

(<$) :: a -> ExceptAs v b -> ExceptAs v a #

Foldable (ExceptAs v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

fold :: Monoid m => ExceptAs v m -> m #

foldMap :: Monoid m => (a -> m) -> ExceptAs v a -> m #

foldr :: (a -> b -> b) -> b -> ExceptAs v a -> b #

foldr' :: (a -> b -> b) -> b -> ExceptAs v a -> b #

foldl :: (b -> a -> b) -> b -> ExceptAs v a -> b #

foldl' :: (b -> a -> b) -> b -> ExceptAs v a -> b #

foldr1 :: (a -> a -> a) -> ExceptAs v a -> a #

foldl1 :: (a -> a -> a) -> ExceptAs v a -> a #

toList :: ExceptAs v a -> [a] #

null :: ExceptAs v a -> Bool #

length :: ExceptAs v a -> Int #

elem :: Eq a => a -> ExceptAs v a -> Bool #

maximum :: Ord a => ExceptAs v a -> a #

minimum :: Ord a => ExceptAs v a -> a #

sum :: Num a => ExceptAs v a -> a #

product :: Num a => ExceptAs v a -> a #

Traversable (ExceptAs v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

traverse :: Applicative f => (a -> f b) -> ExceptAs v a -> f (ExceptAs v b) #

sequenceA :: Applicative f => ExceptAs v (f a) -> f (ExceptAs v a) #

mapM :: Monad m => (a -> m b) -> ExceptAs v a -> m (ExceptAs v b) #

sequence :: Monad m => ExceptAs v (m a) -> m (ExceptAs v a) #

HasAnn (ExceptAs v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> ExceptAs v a -> f (ExceptAs v a) #

Eq a => Eq (ExceptAs v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

(==) :: ExceptAs v a -> ExceptAs v a -> Bool #

(/=) :: ExceptAs v a -> ExceptAs v a -> Bool #

Show a => Show (ExceptAs v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

showsPrec :: Int -> ExceptAs v a -> ShowS #

show :: ExceptAs v a -> String #

showList :: [ExceptAs v a] -> ShowS #

Generic (ExceptAs v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Associated Types

type Rep (ExceptAs v a) :: * -> * #

Methods

from :: ExceptAs v a -> Rep (ExceptAs v a) x #

to :: Rep (ExceptAs v a) x -> ExceptAs v a #

HasNewlines (ExceptAs v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (ExceptAs v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

type Rep (ExceptAs v a) = D1 (MetaData "ExceptAs" "Language.Python.Syntax.Statement" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "ExceptAs" PrefixI True) (S1 (MetaSel (Just "_exceptAsAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_exceptAsExpr") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)) :*: S1 (MetaSel (Just "_exceptAsName") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe ([Whitespace], Ident v a))))))

class AsExceptAs s where #

Minimal complete definition

toExceptAs

Methods

toExceptAs :: Raw s -> Raw ExceptAs #

Instances
AsExceptAs Expr # 
Instance details

Defined in Language.Python.DSL

AsExceptAs ExceptAs # 
Instance details

Defined in Language.Python.DSL

data Except v a #

Instances
Functor (Except v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> Except v a -> Except v b #

(<$) :: a -> Except v b -> Except v a #

Foldable (Except v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => Except v m -> m #

foldMap :: Monoid m => (a -> m) -> Except v a -> m #

foldr :: (a -> b -> b) -> b -> Except v a -> b #

foldr' :: (a -> b -> b) -> b -> Except v a -> b #

foldl :: (b -> a -> b) -> b -> Except v a -> b #

foldl' :: (b -> a -> b) -> b -> Except v a -> b #

foldr1 :: (a -> a -> a) -> Except v a -> a #

foldl1 :: (a -> a -> a) -> Except v a -> a #

toList :: Except v a -> [a] #

null :: Except v a -> Bool #

length :: Except v a -> Int #

elem :: Eq a => a -> Except v a -> Bool #

maximum :: Ord a => Except v a -> a #

minimum :: Ord a => Except v a -> a #

sum :: Num a => Except v a -> a #

product :: Num a => Except v a -> a #

Traversable (Except v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> Except v a -> f (Except v b) #

sequenceA :: Applicative f => Except v (f a) -> f (Except v a) #

mapM :: Monad m => (a -> m b) -> Except v a -> m (Except v b) #

sequence :: Monad m => Except v (m a) -> m (Except v a) #

Eq a => Eq (Except v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: Except v a -> Except v a -> Bool #

(/=) :: Except v a -> Except v a -> Bool #

Show a => Show (Except v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> Except v a -> ShowS #

show :: Except v a -> String #

showList :: [Except v a] -> ShowS #

Generic (Except v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (Except v a) :: * -> * #

Methods

from :: Except v a -> Rep (Except v a) x #

to :: Rep (Except v a) x -> Except v a #

HasIndents (Except ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (Except [] a) (Indents a) #

type Rep (Except v a) # 
Instance details

Defined in Language.Python.Syntax.Types

type Rep (Except v a) = D1 (MetaData "Except" "Language.Python.Syntax.Types" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "MkExcept" PrefixI True) ((S1 (MetaSel (Just "_exceptIndents") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Indents a)) :*: S1 (MetaSel (Just "_exceptExcept") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_exceptExceptAs") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (ExceptAs v a))) :*: S1 (MetaSel (Just "_exceptBody") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Suite v a)))))

mkExcept :: [Raw Line] -> Raw Except #

Create a minimal valid Except

data Finally v a #

Instances
Functor (Finally v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> Finally v a -> Finally v b #

(<$) :: a -> Finally v b -> Finally v a #

Foldable (Finally v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => Finally v m -> m #

foldMap :: Monoid m => (a -> m) -> Finally v a -> m #

foldr :: (a -> b -> b) -> b -> Finally v a -> b #

foldr' :: (a -> b -> b) -> b -> Finally v a -> b #

foldl :: (b -> a -> b) -> b -> Finally v a -> b #

foldl' :: (b -> a -> b) -> b -> Finally v a -> b #

foldr1 :: (a -> a -> a) -> Finally v a -> a #

foldl1 :: (a -> a -> a) -> Finally v a -> a #

toList :: Finally v a -> [a] #

null :: Finally v a -> Bool #

length :: Finally v a -> Int #

elem :: Eq a => a -> Finally v a -> Bool #

maximum :: Ord a => Finally v a -> a #

minimum :: Ord a => Finally v a -> a #

sum :: Num a => Finally v a -> a #

product :: Num a => Finally v a -> a #

Traversable (Finally v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> Finally v a -> f (Finally v b) #

sequenceA :: Applicative f => Finally v (f a) -> f (Finally v a) #

mapM :: Monad m => (a -> m b) -> Finally v a -> m (Finally v b) #

sequence :: Monad m => Finally v (m a) -> m (Finally v a) #

Eq a => Eq (Finally v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: Finally v a -> Finally v a -> Bool #

(/=) :: Finally v a -> Finally v a -> Bool #

Show a => Show (Finally v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> Finally v a -> ShowS #

show :: Finally v a -> String #

showList :: [Finally v a] -> ShowS #

Generic (Finally v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (Finally v a) :: * -> * #

Methods

from :: Finally v a -> Rep (Finally v a) x #

to :: Rep (Finally v a) x -> Finally v a #

HasIndents (Finally ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (Finally [] a) (Indents a) #

type Rep (Finally v a) # 
Instance details

Defined in Language.Python.Syntax.Types

type Rep (Finally v a) = D1 (MetaData "Finally" "Language.Python.Syntax.Types" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "MkFinally" PrefixI True) (S1 (MetaSel (Just "_finallyIndents") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Indents a)) :*: (S1 (MetaSel (Just "_finallyFinally") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_finallyBody") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Suite v a)))))

mkFinally :: [Raw Line] -> Raw Finally #

Create a minimal valid Finally

Lenses

teAnn :: forall v a. Lens' (TryExcept v a) (Ann a) #

teIndents :: forall v a. Lens' (TryExcept v a) (Indents a) #

teTry :: forall v a. Lens' (TryExcept v a) [Whitespace] #

teBody :: forall v a. Lens' (TryExcept v a) (Suite v a) #

teExcepts :: forall v a. Lens' (TryExcept v a) (NonEmpty (Except v a)) #

teElse :: forall v a. Lens' (TryExcept v a) (Maybe (Else v a)) #

teFinally :: forall v a. Lens' (TryExcept v a) (Maybe (Finally v a)) #

exceptIndents :: forall v a. Lens' (Except v a) (Indents a) #

exceptExcept :: forall v a. Lens' (Except v a) [Whitespace] #

exceptExceptAs :: forall v a. Lens' (Except v a) (Maybe (ExceptAs v a)) #

exceptBody :: forall v a. Lens' (Except v a) (Suite v a) #

finallyIndents :: forall v a. Lens' (Finally v a) (Indents a) #

finallyFinally :: forall v a. Lens' (Finally v a) [Whitespace] #

finallyBody :: forall v a v. Lens (Finally v a) (Finally v a) (Suite v a) (Suite v a) #

With statements

with_ :: AsWithItem e => NonEmpty (Raw e) -> [Raw Line] -> Raw With #

with_ :: NonEmpty (Raw Expr) -> [Raw Line] -> Raw Statement
with_ :: NonEmpty (Raw WithItem) -> [Raw Line] -> Raw Statement
>>> with_ [var_ "a"] [line_ $ var_ "b"]
with a:
    b
>>> with_ [var_ "a" `as_` id_ "name"] [line_ $ var_ "b"]
with a as name:
    b
>>> with_ [withItem_ e Nothing] [line_ $ var_ "b"]
with a:
    b

data With v a #

Instances
HasWith With # 
Instance details

Defined in Language.Python.Optics

Methods

_With :: (Choice p, Applicative f) => p (With v a) (f (With [] a)) -> p (With v a) (f (With [] a)) #

AsyncSyntax With # 
Instance details

Defined in Language.Python.DSL

Methods

async_ :: Raw With -> Raw With #

BodySyntax With # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw With -> f (Raw With) #

body :: Lens' (Raw With) (Raw Suite) #

AsLine With # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw With -> Raw Line #

Functor (With v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> With v a -> With v b #

(<$) :: a -> With v b -> With v a #

Foldable (With v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => With v m -> m #

foldMap :: Monoid m => (a -> m) -> With v a -> m #

foldr :: (a -> b -> b) -> b -> With v a -> b #

foldr' :: (a -> b -> b) -> b -> With v a -> b #

foldl :: (b -> a -> b) -> b -> With v a -> b #

foldl' :: (b -> a -> b) -> b -> With v a -> b #

foldr1 :: (a -> a -> a) -> With v a -> a #

foldl1 :: (a -> a -> a) -> With v a -> a #

toList :: With v a -> [a] #

null :: With v a -> Bool #

length :: With v a -> Int #

elem :: Eq a => a -> With v a -> Bool #

maximum :: Ord a => With v a -> a #

minimum :: Ord a => With v a -> a #

sum :: Num a => With v a -> a #

product :: Num a => With v a -> a #

Traversable (With v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> With v a -> f (With v b) #

sequenceA :: Applicative f => With v (f a) -> f (With v a) #

mapM :: Monad m => (a -> m b) -> With v a -> m (With v b) #

sequence :: Monad m => With v (m a) -> m (With v a) #

HasAnn (With v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> With v a -> f (With v a) #

Eq a => Eq (With v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: With v a -> With v a -> Bool #

(/=) :: With v a -> With v a -> Bool #

Show a => Show (With v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> With v a -> ShowS #

show :: With v a -> String #

showList :: [With v a] -> ShowS #

Generic (With v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (With v a) :: * -> * #

Methods

from :: With v a -> Rep (With v a) x #

to :: Rep (With v a) x -> With v a #

HasIndents (With ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (With [] a) (Indents a) #

type Rep (With v a) # 
Instance details

Defined in Language.Python.Syntax.Types

mkWith :: NonEmpty (Raw WithItem) -> [Raw Line] -> Raw With #

Create a minimal valid With

class AsWithItem s where #

Minimal complete definition

toWithItem

Methods

toWithItem :: Raw s -> Raw WithItem #

Instances
AsWithItem Expr # 
Instance details

Defined in Language.Python.DSL

AsWithItem WithItem # 
Instance details

Defined in Language.Python.DSL

data WithItem (v :: [*]) a #

Constructors

WithItem 

Fields

Instances
Validated WithItem # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

unvalidated :: (Contravariant f, Functor f) => (WithItem [] a -> f (WithItem [] a)) -> WithItem v a -> f (WithItem v a) #

HasExprs WithItem # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> WithItem v a -> f (WithItem [] a) #

HasIdents WithItem # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> WithItem v a -> f (WithItem [] a) #

AsWithItem WithItem # 
Instance details

Defined in Language.Python.DSL

As Expr Expr WithItem #

See with_

Instance details

Defined in Language.Python.DSL

Methods

as_ :: Raw Expr -> Raw Expr -> Raw WithItem #

Functor (WithItem v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

fmap :: (a -> b) -> WithItem v a -> WithItem v b #

(<$) :: a -> WithItem v b -> WithItem v a #

Foldable (WithItem v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

fold :: Monoid m => WithItem v m -> m #

foldMap :: Monoid m => (a -> m) -> WithItem v a -> m #

foldr :: (a -> b -> b) -> b -> WithItem v a -> b #

foldr' :: (a -> b -> b) -> b -> WithItem v a -> b #

foldl :: (b -> a -> b) -> b -> WithItem v a -> b #

foldl' :: (b -> a -> b) -> b -> WithItem v a -> b #

foldr1 :: (a -> a -> a) -> WithItem v a -> a #

foldl1 :: (a -> a -> a) -> WithItem v a -> a #

toList :: WithItem v a -> [a] #

null :: WithItem v a -> Bool #

length :: WithItem v a -> Int #

elem :: Eq a => a -> WithItem v a -> Bool #

maximum :: Ord a => WithItem v a -> a #

minimum :: Ord a => WithItem v a -> a #

sum :: Num a => WithItem v a -> a #

product :: Num a => WithItem v a -> a #

Traversable (WithItem v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

traverse :: Applicative f => (a -> f b) -> WithItem v a -> f (WithItem v b) #

sequenceA :: Applicative f => WithItem v (f a) -> f (WithItem v a) #

mapM :: Monad m => (a -> m b) -> WithItem v a -> m (WithItem v b) #

sequence :: Monad m => WithItem v (m a) -> m (WithItem v a) #

HasAnn (WithItem v) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> WithItem v a -> f (WithItem v a) #

Eq a => Eq (WithItem v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

(==) :: WithItem v a -> WithItem v a -> Bool #

(/=) :: WithItem v a -> WithItem v a -> Bool #

Show a => Show (WithItem v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Methods

showsPrec :: Int -> WithItem v a -> ShowS #

show :: WithItem v a -> String #

showList :: [WithItem v a] -> ShowS #

Generic (WithItem v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

Associated Types

type Rep (WithItem v a) :: * -> * #

Methods

from :: WithItem v a -> Rep (WithItem v a) x #

to :: Rep (WithItem v a) x -> WithItem v a #

HasNewlines (WithItem v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (WithItem v a) # 
Instance details

Defined in Language.Python.Syntax.Statement

type Rep (WithItem v a) = D1 (MetaData "WithItem" "Language.Python.Syntax.Statement" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "WithItem" PrefixI True) (S1 (MetaSel (Just "_withItemAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_withItemValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)) :*: S1 (MetaSel (Just "_withItemBinder") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe ([Whitespace], Expr v a))))))

Lenses

withAnn :: forall v a. Lens' (With v a) (Ann a) #

withIndents :: forall v a. Lens' (With v a) (Indents a) #

withAsync :: forall v a. Lens' (With v a) (Maybe (NonEmpty Whitespace)) #

withWith :: forall v a. Lens' (With v a) [Whitespace] #

withItems :: forall v a. Lens' (With v a) (CommaSep1 (WithItem v a)) #

withBody :: forall v a. Lens' (With v a) (Suite v a) #

Flow control

Else clauses

If, While, For, and TryExcept statements can have an Else component.

else_ is considered to be a modifier on these structures.

---

If ... Else:

>>> if_ false_ [line_ pass_] & else_ [line_ pass_]
if False:
    pass
else:
    pass

---

While ... Else:

>>> while_ false_ [line_ pass_] & else_ [line_ pass_]
while False:
    pass
else:
    pass

---

For ... Else:

>>> for_ (var_ "a" `in_` [var_ b]) [line_ pass_] & else_ [line_ pass_]
for a in b:
    pass
else:
    pass

---

TryExcept ... Else:

>>> tryE_ [line_ pass_] & except_ [line_ pass_] & else_ [line_ pass_]
try:
    pass
except:
    pass
else:
    pass

else_ :: ElseSyntax s => [Raw Line] -> Raw s -> Raw s #

class ElseSyntax s where #

Minimal complete definition

getElse, setElse

Methods

getElse :: Raw s -> Maybe (Raw Else) #

setElse :: [Whitespace] -> Maybe (Raw Else) -> Raw s -> Raw s #

Instances
ElseSyntax While # 
Instance details

Defined in Language.Python.DSL

ElseSyntax If # 
Instance details

Defined in Language.Python.DSL

Methods

getElse :: Raw If -> Maybe (Raw Else) #

setElse :: [Whitespace] -> Maybe (Raw Else) -> Raw If -> Raw If #

ElseSyntax For # 
Instance details

Defined in Language.Python.DSL

Methods

getElse :: Raw For -> Maybe (Raw Else) #

setElse :: [Whitespace] -> Maybe (Raw Else) -> Raw For -> Raw For #

ElseSyntax TryExcept # 
Instance details

Defined in Language.Python.DSL

Break

For loops

For loops are built using for_ syntax:

>>> for_ (var_ "a" `in_` [1, 2, 3]) [line_ (call_ "print" [var_ "a"])]
for a in 1, 2, 3:
    print(a)

See also: ForSyntax

forSt_ :: Raw Expr -> [Raw Expr] -> [Raw Line] -> Raw For #

data For v a #

Instances
HasFor For # 
Instance details

Defined in Language.Python.Optics

Methods

_For :: (Choice p, Applicative f) => p (For v a) (f (For [] a)) -> p (For v a) (f (For [] a)) #

AsyncSyntax For # 
Instance details

Defined in Language.Python.DSL

Methods

async_ :: Raw For -> Raw For #

ElseSyntax For # 
Instance details

Defined in Language.Python.DSL

Methods

getElse :: Raw For -> Maybe (Raw Else) #

setElse :: [Whitespace] -> Maybe (Raw Else) -> Raw For -> Raw For #

BodySyntax For # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw For -> f (Raw For) #

body :: Lens' (Raw For) (Raw Suite) #

AsLine For # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw For -> Raw Line #

Functor (For v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> For v a -> For v b #

(<$) :: a -> For v b -> For v a #

Foldable (For v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => For v m -> m #

foldMap :: Monoid m => (a -> m) -> For v a -> m #

foldr :: (a -> b -> b) -> b -> For v a -> b #

foldr' :: (a -> b -> b) -> b -> For v a -> b #

foldl :: (b -> a -> b) -> b -> For v a -> b #

foldl' :: (b -> a -> b) -> b -> For v a -> b #

foldr1 :: (a -> a -> a) -> For v a -> a #

foldl1 :: (a -> a -> a) -> For v a -> a #

toList :: For v a -> [a] #

null :: For v a -> Bool #

length :: For v a -> Int #

elem :: Eq a => a -> For v a -> Bool #

maximum :: Ord a => For v a -> a #

minimum :: Ord a => For v a -> a #

sum :: Num a => For v a -> a #

product :: Num a => For v a -> a #

Traversable (For v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> For v a -> f (For v b) #

sequenceA :: Applicative f => For v (f a) -> f (For v a) #

mapM :: Monad m => (a -> m b) -> For v a -> m (For v b) #

sequence :: Monad m => For v (m a) -> m (For v a) #

HasAnn (For v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> For v a -> f (For v a) #

Eq a => Eq (For v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: For v a -> For v a -> Bool #

(/=) :: For v a -> For v a -> Bool #

Show a => Show (For v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> For v a -> ShowS #

show :: For v a -> String #

showList :: [For v a] -> ShowS #

Generic (For v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (For v a) :: * -> * #

Methods

from :: For v a -> Rep (For v a) x #

to :: Rep (For v a) x -> For v a #

HasIndents (For ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (For [] a) (Indents a) #

type Rep (For v a) # 
Instance details

Defined in Language.Python.Syntax.Types

_For :: HasFor s => Prism (s v a) (s '[] a) (For v a) (For '[] a) #

mkFor :: Raw Expr -> [Raw Expr] -> [Raw Line] -> Raw For #

If statements

ifThen_ :: Raw Expr -> [Raw Line] -> Raw If #

elif_ :: Raw Expr -> [Raw Line] -> Raw If -> Raw If #

data If v a #

Constructors

MkIf 

Fields

Instances
HasIf If # 
Instance details

Defined in Language.Python.Optics

Methods

_If :: (Choice p, Applicative f) => p (If v a) (f (If [] a)) -> p (If v a) (f (If [] a)) #

ElseSyntax If # 
Instance details

Defined in Language.Python.DSL

Methods

getElse :: Raw If -> Maybe (Raw Else) #

setElse :: [Whitespace] -> Maybe (Raw Else) -> Raw If -> Raw If #

BodySyntax If # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw If -> f (Raw If) #

body :: Lens' (Raw If) (Raw Suite) #

AsLine If # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw If -> Raw Line #

Functor (If v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> If v a -> If v b #

(<$) :: a -> If v b -> If v a #

Foldable (If v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => If v m -> m #

foldMap :: Monoid m => (a -> m) -> If v a -> m #

foldr :: (a -> b -> b) -> b -> If v a -> b #

foldr' :: (a -> b -> b) -> b -> If v a -> b #

foldl :: (b -> a -> b) -> b -> If v a -> b #

foldl' :: (b -> a -> b) -> b -> If v a -> b #

foldr1 :: (a -> a -> a) -> If v a -> a #

foldl1 :: (a -> a -> a) -> If v a -> a #

toList :: If v a -> [a] #

null :: If v a -> Bool #

length :: If v a -> Int #

elem :: Eq a => a -> If v a -> Bool #

maximum :: Ord a => If v a -> a #

minimum :: Ord a => If v a -> a #

sum :: Num a => If v a -> a #

product :: Num a => If v a -> a #

Traversable (If v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> If v a -> f (If v b) #

sequenceA :: Applicative f => If v (f a) -> f (If v a) #

mapM :: Monad m => (a -> m b) -> If v a -> m (If v b) #

sequence :: Monad m => If v (m a) -> m (If v a) #

HasAnn (If v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> If v a -> f (If v a) #

Eq a => Eq (If v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: If v a -> If v a -> Bool #

(/=) :: If v a -> If v a -> Bool #

Show a => Show (If v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> If v a -> ShowS #

show :: If v a -> String #

showList :: [If v a] -> ShowS #

Generic (If v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (If v a) :: * -> * #

Methods

from :: If v a -> Rep (If v a) x #

to :: Rep (If v a) x -> If v a #

HasIndents (If ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (If [] a) (Indents a) #

type Rep (If v a) # 
Instance details

Defined in Language.Python.Syntax.Types

mkIf :: Raw Expr -> [Raw Line] -> Raw If #

Create a minimal valid If

data Elif v a #

Constructors

MkElif 
Instances
BodySyntax Elif # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw Elif -> f (Raw Elif) #

body :: Lens' (Raw Elif) (Raw Suite) #

Functor (Elif v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> Elif v a -> Elif v b #

(<$) :: a -> Elif v b -> Elif v a #

Foldable (Elif v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => Elif v m -> m #

foldMap :: Monoid m => (a -> m) -> Elif v a -> m #

foldr :: (a -> b -> b) -> b -> Elif v a -> b #

foldr' :: (a -> b -> b) -> b -> Elif v a -> b #

foldl :: (b -> a -> b) -> b -> Elif v a -> b #

foldl' :: (b -> a -> b) -> b -> Elif v a -> b #

foldr1 :: (a -> a -> a) -> Elif v a -> a #

foldl1 :: (a -> a -> a) -> Elif v a -> a #

toList :: Elif v a -> [a] #

null :: Elif v a -> Bool #

length :: Elif v a -> Int #

elem :: Eq a => a -> Elif v a -> Bool #

maximum :: Ord a => Elif v a -> a #

minimum :: Ord a => Elif v a -> a #

sum :: Num a => Elif v a -> a #

product :: Num a => Elif v a -> a #

Traversable (Elif v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> Elif v a -> f (Elif v b) #

sequenceA :: Applicative f => Elif v (f a) -> f (Elif v a) #

mapM :: Monad m => (a -> m b) -> Elif v a -> m (Elif v b) #

sequence :: Monad m => Elif v (m a) -> m (Elif v a) #

Eq a => Eq (Elif v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: Elif v a -> Elif v a -> Bool #

(/=) :: Elif v a -> Elif v a -> Bool #

Show a => Show (Elif v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> Elif v a -> ShowS #

show :: Elif v a -> String #

showList :: [Elif v a] -> ShowS #

Generic (Elif v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (Elif v a) :: * -> * #

Methods

from :: Elif v a -> Rep (Elif v a) x #

to :: Rep (Elif v a) x -> Elif v a #

HasIndents (Elif ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (Elif [] a) (Indents a) #

type Rep (Elif v a) # 
Instance details

Defined in Language.Python.Syntax.Types

type Rep (Elif v a) = D1 (MetaData "Elif" "Language.Python.Syntax.Types" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "MkElif" PrefixI True) ((S1 (MetaSel (Just "_elifIndents") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Indents a)) :*: S1 (MetaSel (Just "_elifElif") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])) :*: (S1 (MetaSel (Just "_elifCond") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)) :*: S1 (MetaSel (Just "_elifBody") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Suite v a)))))

mkElif :: Raw Expr -> [Raw Line] -> Raw Elif #

Create a minimal valid Elif

data Else v a #

Constructors

MkElse 
Instances
BodySyntax Else # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw Else -> f (Raw Else) #

body :: Lens' (Raw Else) (Raw Suite) #

Functor (Else v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> Else v a -> Else v b #

(<$) :: a -> Else v b -> Else v a #

Foldable (Else v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => Else v m -> m #

foldMap :: Monoid m => (a -> m) -> Else v a -> m #

foldr :: (a -> b -> b) -> b -> Else v a -> b #

foldr' :: (a -> b -> b) -> b -> Else v a -> b #

foldl :: (b -> a -> b) -> b -> Else v a -> b #

foldl' :: (b -> a -> b) -> b -> Else v a -> b #

foldr1 :: (a -> a -> a) -> Else v a -> a #

foldl1 :: (a -> a -> a) -> Else v a -> a #

toList :: Else v a -> [a] #

null :: Else v a -> Bool #

length :: Else v a -> Int #

elem :: Eq a => a -> Else v a -> Bool #

maximum :: Ord a => Else v a -> a #

minimum :: Ord a => Else v a -> a #

sum :: Num a => Else v a -> a #

product :: Num a => Else v a -> a #

Traversable (Else v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> Else v a -> f (Else v b) #

sequenceA :: Applicative f => Else v (f a) -> f (Else v a) #

mapM :: Monad m => (a -> m b) -> Else v a -> m (Else v b) #

sequence :: Monad m => Else v (m a) -> m (Else v a) #

Eq a => Eq (Else v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: Else v a -> Else v a -> Bool #

(/=) :: Else v a -> Else v a -> Bool #

Show a => Show (Else v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> Else v a -> ShowS #

show :: Else v a -> String #

showList :: [Else v a] -> ShowS #

Generic (Else v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (Else v a) :: * -> * #

Methods

from :: Else v a -> Rep (Else v a) x #

to :: Rep (Else v a) x -> Else v a #

HasIndents (Else ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (Else [] a) (Indents a) #

type Rep (Else v a) # 
Instance details

Defined in Language.Python.Syntax.Types

type Rep (Else v a) = D1 (MetaData "Else" "Language.Python.Syntax.Types" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "MkElse" PrefixI True) (S1 (MetaSel (Just "_elseIndents") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Indents a)) :*: (S1 (MetaSel (Just "_elseElse") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_elseBody") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Suite v a)))))

mkElse :: [Raw Line] -> Raw Else #

Create a minimal valid Else

Lenses

ifAnn :: forall v a. Lens' (If v a) (Ann a) #

ifIndents :: forall v a. Lens' (If v a) (Indents a) #

ifIf :: forall v a. Lens' (If v a) [Whitespace] #

ifCond :: forall v a. Lens' (If v a) (Expr v a) #

ifBody :: forall v a. Lens' (If v a) (Suite v a) #

ifElifs :: forall v a. Lens' (If v a) [Elif v a] #

ifElse :: forall v a. Lens' (If v a) (Maybe (Else v a)) #

elifIndents :: forall v a. Lens' (Elif v a) (Indents a) #

elifElif :: forall v a. Lens' (Elif v a) [Whitespace] #

elifCond :: forall v a. Lens' (Elif v a) (Expr v a) #

elifBody :: forall v a. Lens' (Elif v a) (Suite v a) #

elseIndents :: forall v a. Lens' (Else v a) (Indents a) #

elseElse :: forall v a. Lens' (Else v a) [Whitespace] #

elseBody :: forall v a v. Lens (Else v a) (Else v a) (Suite v a) (Suite v a) #

Pass

pass_ :: Raw Statement #

>>> pass_
pass

Return

return_ :: Raw Expr -> Raw Statement #

>>> return_ (var_ "a")
return a

While loops

data While v a #

Constructors

MkWhile 
Instances
HasWhile While # 
Instance details

Defined in Language.Python.Optics

Methods

_While :: (Choice p, Applicative f) => p (While v a) (f (While [] a)) -> p (While v a) (f (While [] a)) #

ElseSyntax While # 
Instance details

Defined in Language.Python.DSL

BodySyntax While # 
Instance details

Defined in Language.Python.DSL

Methods

body_ :: Functor f => ([Raw Line] -> f [Raw Line]) -> Raw While -> f (Raw While) #

body :: Lens' (Raw While) (Raw Suite) #

AsLine While # 
Instance details

Defined in Language.Python.DSL

Methods

line_ :: Raw While -> Raw Line #

Functor (While v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> While v a -> While v b #

(<$) :: a -> While v b -> While v a #

Foldable (While v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => While v m -> m #

foldMap :: Monoid m => (a -> m) -> While v a -> m #

foldr :: (a -> b -> b) -> b -> While v a -> b #

foldr' :: (a -> b -> b) -> b -> While v a -> b #

foldl :: (b -> a -> b) -> b -> While v a -> b #

foldl' :: (b -> a -> b) -> b -> While v a -> b #

foldr1 :: (a -> a -> a) -> While v a -> a #

foldl1 :: (a -> a -> a) -> While v a -> a #

toList :: While v a -> [a] #

null :: While v a -> Bool #

length :: While v a -> Int #

elem :: Eq a => a -> While v a -> Bool #

maximum :: Ord a => While v a -> a #

minimum :: Ord a => While v a -> a #

sum :: Num a => While v a -> a #

product :: Num a => While v a -> a #

Traversable (While v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> While v a -> f (While v b) #

sequenceA :: Applicative f => While v (f a) -> f (While v a) #

mapM :: Monad m => (a -> m b) -> While v a -> m (While v b) #

sequence :: Monad m => While v (m a) -> m (While v a) #

HasAnn (While v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> While v a -> f (While v a) #

Eq a => Eq (While v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: While v a -> While v a -> Bool #

(/=) :: While v a -> While v a -> Bool #

Show a => Show (While v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> While v a -> ShowS #

show :: While v a -> String #

showList :: [While v a] -> ShowS #

Generic (While v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (While v a) :: * -> * #

Methods

from :: While v a -> Rep (While v a) x #

to :: Rep (While v a) x -> While v a #

HasIndents (While ([] :: [*]) a) a # 
Instance details

Defined in Language.Python.Optics.Indents

Methods

_Indents :: Traversal' (While [] a) (Indents a) #

type Rep (While v a) # 
Instance details

Defined in Language.Python.Syntax.Types

mkWhile :: Raw Expr -> [Raw Line] -> Raw While #

Create a minimal valid While

Lenses

whileAnn :: forall v a. Lens' (While v a) (Ann a) #

whileIndents :: forall v a. Lens' (While v a) (Indents a) #

whileWhile :: forall v a. Lens' (While v a) [Whitespace] #

whileCond :: forall v a. Lens' (While v a) (Expr v a) #

whileBody :: forall v a. Lens' (While v a) (Suite v a) #

Expressions

expr_ :: Raw Expr -> Raw Statement #

Turns an Expr into a Statement

>>> expr_ (int_ 3)
3

await

await_ :: Raw Expr -> Raw Expr #

>>> await (var_ "a")
await a

... if ... else ...

ifThenElse_ :: Raw Expr -> Raw Expr -> Raw Expr -> Raw Expr #

>>> ifThenElse_ (var_ "a") (var_ "b") (var_ "c")
a if b else c

Generators

gen_ :: Raw (Comprehension Expr) -> Raw Expr #

>>> gen_ $ comp_ (var_ "a") (for_ $ var_ "a" `in_` list_ [li_ $ int_ 1, li_ $ int_ 2, li_ $ int_ 3]) [if_ $ var_ "a" .== 2]
(a for a in [1, 2, 3] if a == 2)

yield

yield_ :: [Raw Expr] -> Raw Expr #

>>> yield_ []
yield
>>> yield_ [var_ "a"]
yield a
>>> yield_ [var_ "a", var_ "b"]
yield a, b

yield from ...

yieldFrom_ :: Raw Expr -> Raw Expr #

>>> yieldFrom_ (var_ "a")
yield from a

Tuples

tuple_ :: [Raw TupleItem] -> Raw Expr #

>>> tuple_ []
()
>>> tuple_ [ti_ $ var_ "a"]
a,
>>> tuple_ [s_ $ var_ "a"]
(*a),
>>> tuple_ [ti_ $ var_ "a", ti_ $ var_ "b"]
a, b
>>> tuple_ [ti_ $ var_ "a", s_ $ var_ "b"]
a, *b

data Tuple v a #

Constructors

MkTuple 
Instances
Functor (Tuple v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> Tuple v a -> Tuple v b #

(<$) :: a -> Tuple v b -> Tuple v a #

Foldable (Tuple v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => Tuple v m -> m #

foldMap :: Monoid m => (a -> m) -> Tuple v a -> m #

foldr :: (a -> b -> b) -> b -> Tuple v a -> b #

foldr' :: (a -> b -> b) -> b -> Tuple v a -> b #

foldl :: (b -> a -> b) -> b -> Tuple v a -> b #

foldl' :: (b -> a -> b) -> b -> Tuple v a -> b #

foldr1 :: (a -> a -> a) -> Tuple v a -> a #

foldl1 :: (a -> a -> a) -> Tuple v a -> a #

toList :: Tuple v a -> [a] #

null :: Tuple v a -> Bool #

length :: Tuple v a -> Int #

elem :: Eq a => a -> Tuple v a -> Bool #

maximum :: Ord a => Tuple v a -> a #

minimum :: Ord a => Tuple v a -> a #

sum :: Num a => Tuple v a -> a #

product :: Num a => Tuple v a -> a #

Traversable (Tuple v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> Tuple v a -> f (Tuple v b) #

sequenceA :: Applicative f => Tuple v (f a) -> f (Tuple v a) #

mapM :: Monad m => (a -> m b) -> Tuple v a -> m (Tuple v b) #

sequence :: Monad m => Tuple v (m a) -> m (Tuple v a) #

HasAnn (Tuple v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> Tuple v a -> f (Tuple v a) #

Eq a => Eq (Tuple v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: Tuple v a -> Tuple v a -> Bool #

(/=) :: Tuple v a -> Tuple v a -> Bool #

Show a => Show (Tuple v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> Tuple v a -> ShowS #

show :: Tuple v a -> String #

showList :: [Tuple v a] -> ShowS #

Generic (Tuple v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (Tuple v a) :: * -> * #

Methods

from :: Tuple v a -> Rep (Tuple v a) x #

to :: Rep (Tuple v a) x -> Tuple v a #

type Rep (Tuple v a) # 
Instance details

Defined in Language.Python.Syntax.Types

type Rep (Tuple v a) = D1 (MetaData "Tuple" "Language.Python.Syntax.Types" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "MkTuple" PrefixI True) ((S1 (MetaSel (Just "_tupleAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_tupleHead") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (TupleItem v a))) :*: (S1 (MetaSel (Just "_tupleComma") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Comma) :*: S1 (MetaSel (Just "_tupleTail") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (CommaSep1' (TupleItem v a)))))))

class AsTupleItem e where #

Minimal complete definition

ti_

Methods

ti_ :: Raw e -> Raw TupleItem #

Create a TupleItem

Instances
AsTupleItem Expr # 
Instance details

Defined in Language.Python.DSL

Methods

ti_ :: Raw Expr -> Raw TupleItem #

AsTupleItem TupleItem # 
Instance details

Defined in Language.Python.DSL

data TupleItem (v :: [*]) a #

a or *a

Used to construct tuples, e.g. (1, x, **c)

Instances
Validated TupleItem # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

unvalidated :: (Contravariant f, Functor f) => (TupleItem [] a -> f (TupleItem [] a)) -> TupleItem v a -> f (TupleItem v a) #

HasExprs TupleItem # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> TupleItem v a -> f (TupleItem [] a) #

HasIdents TupleItem # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> TupleItem v a -> f (TupleItem [] a) #

AsTupleItem TupleItem # 
Instance details

Defined in Language.Python.DSL

StarSyntax Expr TupleItem #

See tuple_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw TupleItem #

Functor (TupleItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fmap :: (a -> b) -> TupleItem v a -> TupleItem v b #

(<$) :: a -> TupleItem v b -> TupleItem v a #

Foldable (TupleItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fold :: Monoid m => TupleItem v m -> m #

foldMap :: Monoid m => (a -> m) -> TupleItem v a -> m #

foldr :: (a -> b -> b) -> b -> TupleItem v a -> b #

foldr' :: (a -> b -> b) -> b -> TupleItem v a -> b #

foldl :: (b -> a -> b) -> b -> TupleItem v a -> b #

foldl' :: (b -> a -> b) -> b -> TupleItem v a -> b #

foldr1 :: (a -> a -> a) -> TupleItem v a -> a #

foldl1 :: (a -> a -> a) -> TupleItem v a -> a #

toList :: TupleItem v a -> [a] #

null :: TupleItem v a -> Bool #

length :: TupleItem v a -> Int #

elem :: Eq a => a -> TupleItem v a -> Bool #

maximum :: Ord a => TupleItem v a -> a #

minimum :: Ord a => TupleItem v a -> a #

sum :: Num a => TupleItem v a -> a #

product :: Num a => TupleItem v a -> a #

Traversable (TupleItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

traverse :: Applicative f => (a -> f b) -> TupleItem v a -> f (TupleItem v b) #

sequenceA :: Applicative f => TupleItem v (f a) -> f (TupleItem v a) #

mapM :: Monad m => (a -> m b) -> TupleItem v a -> m (TupleItem v b) #

sequence :: Monad m => TupleItem v (m a) -> m (TupleItem v a) #

HasAnn (TupleItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> TupleItem v a -> f (TupleItem v a) #

Eq a => Eq (TupleItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

(==) :: TupleItem v a -> TupleItem v a -> Bool #

(/=) :: TupleItem v a -> TupleItem v a -> Bool #

Show a => Show (TupleItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

showsPrec :: Int -> TupleItem v a -> ShowS #

show :: TupleItem v a -> String #

showList :: [TupleItem v a] -> ShowS #

Generic (TupleItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Associated Types

type Rep (TupleItem v a) :: * -> * #

Methods

from :: TupleItem v a -> Rep (TupleItem v a) x #

to :: Rep (TupleItem v a) x -> TupleItem v a #

HasTrailingWhitespace (TupleItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

HasNewlines (TupleItem v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (TupleItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

type Rep (TupleItem v a) = D1 (MetaData "TupleItem" "Language.Python.Syntax.Expr" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "TupleItem" PrefixI True) (S1 (MetaSel (Just "_tupleItemAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeTupleItemValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :+: C1 (MetaCons "TupleUnpack" PrefixI True) ((S1 (MetaSel (Just "_tupleItemAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeTupleUnpackParens") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [([Whitespace], [Whitespace])])) :*: (S1 (MetaSel (Just "_unsafeTupleUnpackWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeTupleUnpackValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))))

Function calls

call_ :: Raw Expr -> [Raw Arg] -> Raw Expr #

>>> call_ "f" [p_ $ var_ "x"]
f(x)
>>> call_ "f" [p_ $ var_ "x", k_ "y" 2]
f(x, y=2)
>>> call_ "f" [p_ $ var_ "x", k_ "y" 2, s_ "z"]
f(x, y=2, *z)
>>> call_ "f" [p_ $ var_ "x", k_ "y" 2, s_ "z", ss_ "w"]
f(x, y=2, *z, **w)

data Call v a #

Instances
ArgumentsSyntax Call # 
Instance details

Defined in Language.Python.DSL

Functor (Call v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> Call v a -> Call v b #

(<$) :: a -> Call v b -> Call v a #

Foldable (Call v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => Call v m -> m #

foldMap :: Monoid m => (a -> m) -> Call v a -> m #

foldr :: (a -> b -> b) -> b -> Call v a -> b #

foldr' :: (a -> b -> b) -> b -> Call v a -> b #

foldl :: (b -> a -> b) -> b -> Call v a -> b #

foldl' :: (b -> a -> b) -> b -> Call v a -> b #

foldr1 :: (a -> a -> a) -> Call v a -> a #

foldl1 :: (a -> a -> a) -> Call v a -> a #

toList :: Call v a -> [a] #

null :: Call v a -> Bool #

length :: Call v a -> Int #

elem :: Eq a => a -> Call v a -> Bool #

maximum :: Ord a => Call v a -> a #

minimum :: Ord a => Call v a -> a #

sum :: Num a => Call v a -> a #

product :: Num a => Call v a -> a #

Traversable (Call v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> Call v a -> f (Call v b) #

sequenceA :: Applicative f => Call v (f a) -> f (Call v a) #

mapM :: Monad m => (a -> m b) -> Call v a -> m (Call v b) #

sequence :: Monad m => Call v (m a) -> m (Call v a) #

HasAnn (Call v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> Call v a -> f (Call v a) #

Eq a => Eq (Call v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: Call v a -> Call v a -> Bool #

(/=) :: Call v a -> Call v a -> Bool #

Show a => Show (Call v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> Call v a -> ShowS #

show :: Call v a -> String #

showList :: [Call v a] -> ShowS #

Generic (Call v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (Call v a) :: * -> * #

Methods

from :: Call v a -> Rep (Call v a) x #

to :: Rep (Call v a) x -> Call v a #

type Rep (Call v a) # 
Instance details

Defined in Language.Python.Syntax.Types

type Rep (Call v a) = D1 (MetaData "Call" "Language.Python.Syntax.Types" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "MkCall" PrefixI True) ((S1 (MetaSel (Just "_callAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_callFunction") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :*: (S1 (MetaSel (Just "_callLeftParen") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: (S1 (MetaSel (Just "_callArguments") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Maybe (CommaSep1' (Arg v a)))) :*: S1 (MetaSel (Just "_callRightParen") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])))))

mkCall :: Raw Expr -> Raw Call #

Create a minimal valid Call

Lenses

callAnn :: forall v a. Lens' (Call v a) (Ann a) #

callFunction :: forall v a. Lens' (Call v a) (Expr v a) #

callLeftParen :: forall v a. Lens' (Call v a) [Whitespace] #

callArguments :: forall v a. Lens' (Call v a) (Maybe (CommaSep1' (Arg v a))) #

callRightParen :: forall v a. Lens' (Call v a) [Whitespace] #

Literals

None

none_ :: Raw Expr #

>>> none_
None

data None (v :: [*]) a #

Constructors

MkNone 
Instances
Functor (None v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fmap :: (a -> b) -> None v a -> None v b #

(<$) :: a -> None v b -> None v a #

Foldable (None v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

fold :: Monoid m => None v m -> m #

foldMap :: Monoid m => (a -> m) -> None v a -> m #

foldr :: (a -> b -> b) -> b -> None v a -> b #

foldr' :: (a -> b -> b) -> b -> None v a -> b #

foldl :: (b -> a -> b) -> b -> None v a -> b #

foldl' :: (b -> a -> b) -> b -> None v a -> b #

foldr1 :: (a -> a -> a) -> None v a -> a #

foldl1 :: (a -> a -> a) -> None v a -> a #

toList :: None v a -> [a] #

null :: None v a -> Bool #

length :: None v a -> Int #

elem :: Eq a => a -> None v a -> Bool #

maximum :: Ord a => None v a -> a #

minimum :: Ord a => None v a -> a #

sum :: Num a => None v a -> a #

product :: Num a => None v a -> a #

Traversable (None v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

traverse :: Applicative f => (a -> f b) -> None v a -> f (None v b) #

sequenceA :: Applicative f => None v (f a) -> f (None v a) #

mapM :: Monad m => (a -> m b) -> None v a -> m (None v b) #

sequence :: Monad m => None v (m a) -> m (None v a) #

HasAnn (None v) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> None v a -> f (None v a) #

Eq a => Eq (None v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

(==) :: None v a -> None v a -> Bool #

(/=) :: None v a -> None v a -> Bool #

Show a => Show (None v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Methods

showsPrec :: Int -> None v a -> ShowS #

show :: None v a -> String #

showList :: [None v a] -> ShowS #

Generic (None v a) # 
Instance details

Defined in Language.Python.Syntax.Types

Associated Types

type Rep (None v a) :: * -> * #

Methods

from :: None v a -> Rep (None v a) x #

to :: Rep (None v a) x -> None v a #

type Rep (None v a) # 
Instance details

Defined in Language.Python.Syntax.Types

type Rep (None v a) = D1 (MetaData "None" "Language.Python.Syntax.Types" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "MkNone" PrefixI True) (S1 (MetaSel (Just "_noneAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_noneWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace])))

_None :: Prism (Expr v a) (Expr '[] a) (None v a) (None '[] a) #

Lenses

noneAnn :: forall v a v a. Lens (None v a) (None v a) (Ann a) (Ann a) #

noneWhitespace :: forall v a v. Lens (None v a) (None v a) [Whitespace] [Whitespace] #

Strings

str_ :: String -> Raw Expr #

Double-quoted string

>>> str_ "asdf"
"asdf"

str'_ :: String -> Raw Expr #

Single-quoted string

>>> str_ "asdf"
'asdf'

longStr_ :: String -> Raw Expr #

Long double-quoted string

>>> longStr_ "asdf"
"""asdf"""

longStr'_ :: String -> Raw Expr #

Long single-quoted string

>>> longStr'_ "asdf"
'''asdf'''

Integers

int_ :: Integer -> Raw Expr #

Raw Expr has a Num instance, but sometimes we need to name integers explicitly

>>> int_ 10
10

Booleans

true_ :: Raw Expr #

>>> true_
True

false_ :: Raw Expr #

>>> false_
False

Ellipses

ellipsis_ :: Raw Expr #

>>> ellipsis_
...

Lists

class AsList s where #

>>> list_ [li_ $ var_ "a"]
[a]
>>> list_ [s_ $ var_ "a"]
[*a]
>>> list_ [li_ $ var_ "a", s_ $ var_ "b"]
[a, *b]
>>> list_ $ comp_ (var_ "a") (for_ $ var_ "a" `in_` list_ [li_ $ int_ 1, li_ $ int_ 2, li_ $ int_ 3]) [if_ $ var_ "a" .== 2]
[a for a in [1, 2, 3] if a == 2]

Minimal complete definition

list_

Methods

list_ :: s -> Raw Expr #

Instances
e ~ Raw ListItem => AsList [e] # 
Instance details

Defined in Language.Python.DSL

Methods

list_ :: [e] -> Raw Expr #

e ~ Comprehension Expr => AsList (Raw e) # 
Instance details

Defined in Language.Python.DSL

Methods

list_ :: Raw e -> Raw Expr #

class AsListItem s where #

Minimal complete definition

li_

Methods

li_ :: Raw s -> Raw ListItem #

Create a ListItem

Instances
AsListItem Expr # 
Instance details

Defined in Language.Python.DSL

Methods

li_ :: Raw Expr -> Raw ListItem #

AsListItem ListItem # 
Instance details

Defined in Language.Python.DSL

Methods

li_ :: Raw ListItem -> Raw ListItem #

data ListItem (v :: [*]) a #

a or *a

Used to construct lists, e.g. [ 1, x, **c ]

https://docs.python.org/3/reference/expressions.html#list-displays

Instances
Validated ListItem # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

unvalidated :: (Contravariant f, Functor f) => (ListItem [] a -> f (ListItem [] a)) -> ListItem v a -> f (ListItem v a) #

HasExprs ListItem # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> ListItem v a -> f (ListItem [] a) #

HasIdents ListItem # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> ListItem v a -> f (ListItem [] a) #

AsListItem ListItem # 
Instance details

Defined in Language.Python.DSL

Methods

li_ :: Raw ListItem -> Raw ListItem #

StarSyntax Expr ListItem #

See list_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw ListItem #

Functor (ListItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fmap :: (a -> b) -> ListItem v a -> ListItem v b #

(<$) :: a -> ListItem v b -> ListItem v a #

Foldable (ListItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fold :: Monoid m => ListItem v m -> m #

foldMap :: Monoid m => (a -> m) -> ListItem v a -> m #

foldr :: (a -> b -> b) -> b -> ListItem v a -> b #

foldr' :: (a -> b -> b) -> b -> ListItem v a -> b #

foldl :: (b -> a -> b) -> b -> ListItem v a -> b #

foldl' :: (b -> a -> b) -> b -> ListItem v a -> b #

foldr1 :: (a -> a -> a) -> ListItem v a -> a #

foldl1 :: (a -> a -> a) -> ListItem v a -> a #

toList :: ListItem v a -> [a] #

null :: ListItem v a -> Bool #

length :: ListItem v a -> Int #

elem :: Eq a => a -> ListItem v a -> Bool #

maximum :: Ord a => ListItem v a -> a #

minimum :: Ord a => ListItem v a -> a #

sum :: Num a => ListItem v a -> a #

product :: Num a => ListItem v a -> a #

Traversable (ListItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

traverse :: Applicative f => (a -> f b) -> ListItem v a -> f (ListItem v b) #

sequenceA :: Applicative f => ListItem v (f a) -> f (ListItem v a) #

mapM :: Monad m => (a -> m b) -> ListItem v a -> m (ListItem v b) #

sequence :: Monad m => ListItem v (m a) -> m (ListItem v a) #

HasAnn (ListItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> ListItem v a -> f (ListItem v a) #

Eq a => Eq (ListItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

(==) :: ListItem v a -> ListItem v a -> Bool #

(/=) :: ListItem v a -> ListItem v a -> Bool #

Show a => Show (ListItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

showsPrec :: Int -> ListItem v a -> ShowS #

show :: ListItem v a -> String #

showList :: [ListItem v a] -> ShowS #

Generic (ListItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Associated Types

type Rep (ListItem v a) :: * -> * #

Methods

from :: ListItem v a -> Rep (ListItem v a) x #

to :: Rep (ListItem v a) x -> ListItem v a #

HasTrailingWhitespace (ListItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

HasNewlines (ListItem v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (ListItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

type Rep (ListItem v a) = D1 (MetaData "ListItem" "Language.Python.Syntax.Expr" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "ListItem" PrefixI True) (S1 (MetaSel (Just "_listItemAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeListItemValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :+: C1 (MetaCons "ListUnpack" PrefixI True) ((S1 (MetaSel (Just "_listItemAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeListUnpackParens") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [([Whitespace], [Whitespace])])) :*: (S1 (MetaSel (Just "_unsafeListUnpackWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeListUnpackValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))))

Dictionaries

class AsDict s where #

>>> dict_ [var_ "a" .: 1]
{a: 1}
>>> dict_ [ss_ $ var_ "a"]
{**a}
>>> dict_ [var_ "a" .: 1, ss_ $ var_ "b"]
{a: 1, **b}
>>> dict_ $ comp_ (var_ "a" .: 1) (for_ $ var_ "a" `in_` list_ [li_ $ int_ 1, li_ $ int_ 2, li_ $ int_ 3]) [if_ $ var_ "a" .== 2]
{a: 1 for a in [1, 2, 3] if a == 2}

Minimal complete definition

dict_

Methods

dict_ :: s -> Raw Expr #

Instances
e ~ Raw DictItem => AsDict [e] #
dict_ :: [Raw DictItem] -> Raw Expr
Instance details

Defined in Language.Python.DSL

Methods

dict_ :: [e] -> Raw Expr #

e ~ Comprehension DictItem => AsDict (Raw e) #
dict_ :: Raw (Comprehension DictItem) -> Raw Expr
Instance details

Defined in Language.Python.DSL

Methods

dict_ :: Raw e -> Raw Expr #

data DictItem (v :: [*]) a #

a : b or **a

Used to construct dictionaries, e.g. { 1: a, 2: b, **c }

https://docs.python.org/3/reference/expressions.html#dictionary-displays

Instances
Validated DictItem # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

unvalidated :: (Contravariant f, Functor f) => (DictItem [] a -> f (DictItem [] a)) -> DictItem v a -> f (DictItem v a) #

HasIdents DictItem # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> DictItem v a -> f (DictItem [] a) #

DoubleStarSyntax Expr DictItem #

See dict_

Instance details

Defined in Language.Python.DSL

Methods

ss_ :: Raw Expr -> Raw DictItem #

ColonSyntax Expr DictItem #

Constructing dictionary items

(.:) :: Raw Expr -> Raw Expr -> Raw DictItem
Instance details

Defined in Language.Python.DSL

Methods

(.:) :: Raw Expr -> Raw Expr -> Raw DictItem #

Functor (DictItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fmap :: (a -> b) -> DictItem v a -> DictItem v b #

(<$) :: a -> DictItem v b -> DictItem v a #

Foldable (DictItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fold :: Monoid m => DictItem v m -> m #

foldMap :: Monoid m => (a -> m) -> DictItem v a -> m #

foldr :: (a -> b -> b) -> b -> DictItem v a -> b #

foldr' :: (a -> b -> b) -> b -> DictItem v a -> b #

foldl :: (b -> a -> b) -> b -> DictItem v a -> b #

foldl' :: (b -> a -> b) -> b -> DictItem v a -> b #

foldr1 :: (a -> a -> a) -> DictItem v a -> a #

foldl1 :: (a -> a -> a) -> DictItem v a -> a #

toList :: DictItem v a -> [a] #

null :: DictItem v a -> Bool #

length :: DictItem v a -> Int #

elem :: Eq a => a -> DictItem v a -> Bool #

maximum :: Ord a => DictItem v a -> a #

minimum :: Ord a => DictItem v a -> a #

sum :: Num a => DictItem v a -> a #

product :: Num a => DictItem v a -> a #

Traversable (DictItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

traverse :: Applicative f => (a -> f b) -> DictItem v a -> f (DictItem v b) #

sequenceA :: Applicative f => DictItem v (f a) -> f (DictItem v a) #

mapM :: Monad m => (a -> m b) -> DictItem v a -> m (DictItem v b) #

sequence :: Monad m => DictItem v (m a) -> m (DictItem v a) #

HasAnn (DictItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> DictItem v a -> f (DictItem v a) #

Eq a => Eq (DictItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

(==) :: DictItem v a -> DictItem v a -> Bool #

(/=) :: DictItem v a -> DictItem v a -> Bool #

Show a => Show (DictItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

showsPrec :: Int -> DictItem v a -> ShowS #

show :: DictItem v a -> String #

showList :: [DictItem v a] -> ShowS #

Generic (DictItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Associated Types

type Rep (DictItem v a) :: * -> * #

Methods

from :: DictItem v a -> Rep (DictItem v a) x #

to :: Rep (DictItem v a) x -> DictItem v a #

HasTrailingWhitespace (DictItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

HasNewlines (DictItem v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (DictItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

type Rep (DictItem v a) = D1 (MetaData "DictItem" "Language.Python.Syntax.Expr" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "DictItem" PrefixI True) ((S1 (MetaSel (Just "_dictItemAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeDictItemKey") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :*: (S1 (MetaSel (Just "_unsafeDictItemColon") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 Colon) :*: S1 (MetaSel (Just "_unsafeDictItemValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))) :+: C1 (MetaCons "DictUnpack" PrefixI True) (S1 (MetaSel (Just "_dictItemAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: (S1 (MetaSel (Just "_unsafeDictItemUnpackWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeDictItemUnpackValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))))

Sets

class AsSet s where #

>>> set_ []
set()
>>> set_ [si_ $ var_ "a"]
{a}
>>> set_ [s_ $ var_ "a"]
{*a}
>>> set_ [si_ $ var_ "a", s_ $ var_ "b"]
{a, *b}
>>> set_ $ comp_ (var_ "a") (for_ $ var_ "a" `in_` set_ [si_ $ int_ 1, si_ $ int_ 2, si_ $ int_ 3]) [if_ $ var_ "a" .== 2]
{a for a in [1, 2, 3] if a == 2}

Minimal complete definition

set_

Methods

set_ :: s -> Raw Expr #

Instances
e ~ Raw SetItem => AsSet [e] # 
Instance details

Defined in Language.Python.DSL

Methods

set_ :: [e] -> Raw Expr #

e ~ Comprehension SetItem => AsSet (Raw e) # 
Instance details

Defined in Language.Python.DSL

Methods

set_ :: Raw e -> Raw Expr #

class AsSetItem s where #

Minimal complete definition

si_

Methods

si_ :: Raw s -> Raw SetItem #

Create a SetItem

Instances
AsSetItem Expr # 
Instance details

Defined in Language.Python.DSL

Methods

si_ :: Raw Expr -> Raw SetItem #

AsSetItem SetItem # 
Instance details

Defined in Language.Python.DSL

Methods

si_ :: Raw SetItem -> Raw SetItem #

data SetItem (v :: [*]) a #

a or *a

Used to construct sets, e.g. { 1, x, **c }

https://docs.python.org/3/reference/expressions.html#set-displays

Instances
Validated SetItem # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

unvalidated :: (Contravariant f, Functor f) => (SetItem [] a -> f (SetItem [] a)) -> SetItem v a -> f (SetItem v a) #

HasExprs SetItem # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

_Exprs :: Applicative f => (Expr v a -> f (Expr [] a)) -> SetItem v a -> f (SetItem [] a) #

HasIdents SetItem # 
Instance details

Defined in Language.Python.Optics.Idents

Methods

_Idents :: Applicative f => (Ident v a -> f (Ident [] a)) -> SetItem v a -> f (SetItem [] a) #

AsSetItem SetItem # 
Instance details

Defined in Language.Python.DSL

Methods

si_ :: Raw SetItem -> Raw SetItem #

StarSyntax Expr SetItem #

See set_

Instance details

Defined in Language.Python.DSL

Methods

s_ :: Raw Expr -> Raw SetItem #

Functor (SetItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fmap :: (a -> b) -> SetItem v a -> SetItem v b #

(<$) :: a -> SetItem v b -> SetItem v a #

Foldable (SetItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

fold :: Monoid m => SetItem v m -> m #

foldMap :: Monoid m => (a -> m) -> SetItem v a -> m #

foldr :: (a -> b -> b) -> b -> SetItem v a -> b #

foldr' :: (a -> b -> b) -> b -> SetItem v a -> b #

foldl :: (b -> a -> b) -> b -> SetItem v a -> b #

foldl' :: (b -> a -> b) -> b -> SetItem v a -> b #

foldr1 :: (a -> a -> a) -> SetItem v a -> a #

foldl1 :: (a -> a -> a) -> SetItem v a -> a #

toList :: SetItem v a -> [a] #

null :: SetItem v a -> Bool #

length :: SetItem v a -> Int #

elem :: Eq a => a -> SetItem v a -> Bool #

maximum :: Ord a => SetItem v a -> a #

minimum :: Ord a => SetItem v a -> a #

sum :: Num a => SetItem v a -> a #

product :: Num a => SetItem v a -> a #

Traversable (SetItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

traverse :: Applicative f => (a -> f b) -> SetItem v a -> f (SetItem v b) #

sequenceA :: Applicative f => SetItem v (f a) -> f (SetItem v a) #

mapM :: Monad m => (a -> m b) -> SetItem v a -> m (SetItem v b) #

sequence :: Monad m => SetItem v (m a) -> m (SetItem v a) #

HasAnn (SetItem v) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

annot :: Functor f => (Ann a -> f (Ann a)) -> SetItem v a -> f (SetItem v a) #

Eq a => Eq (SetItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

(==) :: SetItem v a -> SetItem v a -> Bool #

(/=) :: SetItem v a -> SetItem v a -> Bool #

Show a => Show (SetItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Methods

showsPrec :: Int -> SetItem v a -> ShowS #

show :: SetItem v a -> String #

showList :: [SetItem v a] -> ShowS #

Generic (SetItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

Associated Types

type Rep (SetItem v a) :: * -> * #

Methods

from :: SetItem v a -> Rep (SetItem v a) x #

to :: Rep (SetItem v a) x -> SetItem v a #

HasTrailingWhitespace (SetItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

HasNewlines (SetItem v a) # 
Instance details

Defined in Language.Python.Optics.Newlines

type Rep (SetItem v a) # 
Instance details

Defined in Language.Python.Syntax.Expr

type Rep (SetItem v a) = D1 (MetaData "SetItem" "Language.Python.Syntax.Expr" "hpython-0.1.0.1-inplace" False) (C1 (MetaCons "SetItem" PrefixI True) (S1 (MetaSel (Just "_setItemAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeSetItemValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a))) :+: C1 (MetaCons "SetUnpack" PrefixI True) ((S1 (MetaSel (Just "_setItemAnn") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Ann a)) :*: S1 (MetaSel (Just "_unsafeSetUnpackParens") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [([Whitespace], [Whitespace])])) :*: (S1 (MetaSel (Just "_unsafeSetUnpackWhitespace") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 [Whitespace]) :*: S1 (MetaSel (Just "_unsafeSetUnpackValue") NoSourceUnpackedness NoSourceStrictness DecidedLazy) (Rec0 (Expr v a)))))

Lambdas

lambda_ :: [Raw Param] -> Raw Expr -> Raw Expr #

>>> lambda_ [p_ "x"] "x"
lambda x: x
>>> lambda_ [p_ "x", k_ "y" 2] ("x" .+ "y")
lambda x, y=2: x + y
>>> lambda_ [p_ "x", k_ "y" 2, s_ "z"] "a"
lambda x, y=2, *z: a
>>> lambda_ [p_ "x", k_ "y" 2, s_ "z", ss_ "w"] "a"
lambda x, y=2, *z, **w: a

Subscripting

subs_ :: Raw Expr -> Raw Expr -> Raw Expr #

>>> subs_ (var_ "a") (int_ 1)
a[1]
>>> subs_ (var_ "a") (tuple_ [ti_ $ int_ 1])
a[1,]
>>> subs_ (var_ "a") (tuple_ [ti_ $ int_ 1, ti_ $ int_ 2])
a[1, 2]
>>> subs_ (var_ "a") (tuple_ [s_ $ var_ "b"])
a[((*b),)]
>>> subs_ (var_ "a") (tuple_ [ti_ $ int_ 1, s_ $ var_ "b"])
a[(1, *b)]

Slicing

sliceF_ :: Raw Expr -> Raw Expr #

Slice *from* x

>>> subs_ (var_ "a") (sliceF_ $ int_ 0)
a[1:]
>>> sliceF_ $ int_ 0
slice(1, None, None)

sliceFS_ :: Raw Expr -> Raw Expr -> Raw Expr #

Slice *from* x, with *step* y

>>> subs_ (var_ "a") (sliceFS_ (int_ 0) (int_ 2))
a[1::2]
>>> sliceFS_ (int_ 0) (int_ 2)
slice(1, None, 2)

sliceT_ :: Raw Expr -> Raw Expr #

Slice To x

>>> subs_ (var_ "a") (sliceT_ $ int_ 10)
a[:10]
>>> sliceT_ $ int_ 10
slice(None, 10, None)

sliceTS_ :: Raw Expr -> Raw Expr -> Raw Expr #

Slice To x, with Step y

>>> subs_ (var_ "a") (sliceTS_ (int_ 10) (int_ 2))
a[:10:2]
>>> sliceTS_ (int_ 10) (int_ 2)
slice(None, 10, 2)

sliceFT_ :: Raw Expr -> Raw Expr -> Raw Expr #

Slice From x To y

>>> subs_ (var_ "a") (sliceFT_ (int_ 1) (int_ 10))
a[1:10]
>>> sliceFT_ (int_ 1) (int_ 10)
slice(1, 10, None)

sliceFTS_ :: Raw Expr -> Raw Expr -> Raw Expr -> Raw Expr #

Slice From x To y, with Step z

>>> subs_ (var_ "a") (sliceFTS_ (int_ 1) (int_ 10) (int_ 2))
a[1:10:2]
>>> sliceFTS_ (int_ 1) (int_ 10) (int_ 2)
slice(1, 10, 2)

sliceS_ :: Raw Expr -> Raw Expr #

Slice with *step* x

>>> subs_ (var_ "a") (sliceS_ $ int_ (-1))
a[::-1]
>>> sliceS_ $ int_ (-1)
slice(None, None, -1)

fullSlice_ :: Raw Expr #

The slice with no bounds

>>> subs_ (var_ "a") fullSlice_
a[:]
>>> fullSlice_
slice(None, None, None)

slice_ :: Maybe (Raw Expr) -> Maybe (Raw Expr) -> Maybe (Raw Expr) -> Raw Expr #

A slice object

Represents a call to a function named slice, with 3 arguments. If an argument is a Nothing then it becomes None, and if the argument is a Just then the contents are extracted.

Dereferencing

(/>) :: Raw Expr -> Raw Ident -> Raw Expr infixl 9 #

>>> var_ "a" /> var_ "b"
a.b

Unary operators

not_ :: Raw Expr -> Raw Expr #

not a

neg_ :: Raw Expr -> Raw Expr #

-a

pos_ :: Raw Expr -> Raw Expr #

+a

Binary operators

Comparison, bitwise, and arithmetic operators have precedences that are consistent with their Python counterparts. This meansPython expressions can be translated to kellSyntax with minimal parentheses.

Note: this doesn't apply to unary operators (because kellSyntax doesn't have unary operators), or the boolean operations and_ and or_ (because we ran out of precedence levels)

Boolean operations

or_ :: Raw Expr -> Raw Expr -> Raw Expr #

a or b

Does not have a precedence

and_ :: Raw Expr -> Raw Expr -> Raw Expr #

a and b

Does not have a precedence

Comparison operations

is_ :: Raw Expr -> Raw Expr -> Raw Expr infixl 1 #

a is b

isNot_ :: Raw Expr -> Raw Expr -> Raw Expr infixl 1 #

a is not b

notIn_ :: Raw Expr -> Raw Expr -> Raw Expr infixl 1 #

a not in b

(.==) :: Raw Expr -> Raw Expr -> Raw Expr infixl 1 #

a == b

(.>) :: Raw Expr -> Raw Expr -> Raw Expr infixl 1 #

a > b

(.>=) :: Raw Expr -> Raw Expr -> Raw Expr infixl 1 #

a >= b

(.<) :: Raw Expr -> Raw Expr -> Raw Expr infixl 1 #

a < b

(.<=) :: Raw Expr -> Raw Expr -> Raw Expr infixl 1 #

a <= b

(.!=) :: Raw Expr -> Raw Expr -> Raw Expr infixl 1 #

a != b

Bitwise operations

(.|) :: Raw Expr -> Raw Expr -> Raw Expr infixl 2 #

a | b

(.^) :: Raw Expr -> Raw Expr -> Raw Expr infixl 3 #

a ^ b

(.&) :: Raw Expr -> Raw Expr -> Raw Expr infixl 4 #

a & b

(.<<) :: Raw Expr -> Raw Expr -> Raw Expr infixl 5 #

a << b

(.>>) :: Raw Expr -> Raw Expr -> Raw Expr infixl 5 #

a >> b

Arithmetic operations

(.-) :: Raw Expr -> Raw Expr -> Raw Expr infixl 6 #

a - b

(.+) :: Raw Expr -> Raw Expr -> Raw Expr infixl 6 #

a + b

(.*) :: Raw Expr -> Raw Expr -> Raw Expr infixl 7 #

a * b

(.@) :: Raw Expr -> Raw Expr -> Raw Expr infixl 7 #

a @ b

(./) :: Raw Expr -> Raw Expr -> Raw Expr infixl 7 #

a / b

(.//) :: Raw Expr -> Raw Expr -> Raw Expr infixl 7 #

a // b

(.%) :: Raw Expr -> Raw Expr -> Raw Expr infixl 7 #

a % b

(.**) :: Raw Expr -> Raw Expr -> Raw Expr infixr 8 #

a ** b

Miscellaneous

linesToBlock :: [Raw Line] -> Raw Block #

Convert a list of Lines to a Block, without indenting them