-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | A cffi-based python binding for X
--   
--   A cffi-based python binding for X, comparable to xpyb
@package xcffib
@version 0.5.1

module Data.XCB.Python.PyHelpers
mkImport :: String -> Statement ()
mkRelImport :: String -> Statement ()
mkInt :: Int -> Expr ()
mkAssign :: PseudoExpr a => a -> Expr () -> Statement ()
mkCall :: (PseudoExpr a, PseudoArgument b) => a -> [b] -> Expr ()
noArgs :: [Argument ()]
mkArg :: String -> Argument ()
mkEnum :: String -> [(String, Expr ())] -> Statement ()

-- | Make an Expr out of a string like "foo.bar" describing the name.
mkName :: String -> Expr ()
mkDot :: PseudoExpr a => a -> String -> Expr ()

-- | Make an attribute access, i.e. self.<a>string</a>.
mkAttr :: String -> Expr ()
mkIncr :: String -> Expr () -> Statement ()
mkClass :: String -> String -> Suite () -> Statement ()
mkEmptyClass :: String -> String -> Statement ()
mkXClass :: String -> String -> Suite () -> Suite () -> Statement ()
mkStr :: String -> Expr ()
mkUnpackFrom :: PseudoExpr a => a -> [String] -> String -> Suite ()
mkDict :: String -> Statement ()
mkDictUpdate :: String -> Int -> String -> Statement ()
mkMethod :: String -> [Parameter ()] -> Suite () -> Statement ()
mkReturn :: Expr () -> Statement ()
pyTruth :: Bool -> Expr ()
mkParams :: [String] -> [Parameter ()]

-- | Create and sanatize a python identifier.
ident :: String -> Ident ()
pyNone :: Expr ()
mkIf :: Expr () -> Suite () -> Statement ()
repeatStr :: String -> Expr () -> Expr ()
instance Data.XCB.Python.PyHelpers.PseudoExpr GHC.Base.String
instance Data.XCB.Python.PyHelpers.PseudoExpr (Language.Python.Common.AST.Expr ())
instance Data.XCB.Python.PyHelpers.PseudoArgument (Language.Python.Common.AST.Expr ())
instance Data.XCB.Python.PyHelpers.PseudoArgument (Language.Python.Common.AST.Argument ())

module Data.XCB.Python.Parse
parseXHeaders :: FilePath -> IO [XHeader]

-- | Generate the code for a set of X headers. Note that the code is
--   generated in dependency order, NOT in the order you pass them in.
--   Thus, you get a string (a suggested filename) along with the python
--   code for that XHeader back.
xform :: [XHeader] -> [(String, Suite ())]
renderPy :: Suite () -> String

-- | Clone of python's struct.calcsize.
calcsize :: String -> Int
instance GHC.Show.Show Data.XCB.Python.Parse.BindingPart
instance GHC.Show.Show Data.XCB.Python.Parse.TypeInfo
instance GHC.Classes.Ord Data.XCB.Python.Parse.TypeInfo
instance GHC.Classes.Eq Data.XCB.Python.Parse.TypeInfo
