packages feed

hydra-0.15.0: src/main/haskell/Hydra/Python/Environment.hs

-- Note: this is an automatically generated file. Do not edit.
-- | Environment types for Python code generation

module Hydra.Python.Environment where
import qualified Hydra.Core as Core
import qualified Hydra.Graph as Graph
import qualified Hydra.Packaging as Packaging
import qualified Hydra.Python.Syntax as Syntax
import Prelude hiding  (Enum, Ordering, decodeFloat, encodeFloat, fail, map, pure, sum)
import qualified Data.Scientific as Sci
import qualified Data.Map as M
import qualified Data.Set as S
-- | Target Python version for code generation
data PythonVersion =
  PythonVersionPython310 |
  PythonVersionPython312
  deriving (Eq, Ord, Read, Show)
_PythonVersion = Core.Name "hydra.python.environment.PythonVersion"
_PythonVersion_python310 = Core.Name "python310"
_PythonVersion_python312 = Core.Name "python312"
-- | Environment for Python code generation
data PythonEnvironment =
  PythonEnvironment {
    -- | Namespace mapping for imports
    pythonEnvironmentNamespaces :: (Packaging.Namespaces Syntax.DottedName),
    -- | Type variables in scope, with their Python names
    pythonEnvironmentBoundTypeVariables :: ([Core.Name], (M.Map Core.Name Syntax.Name)),
    -- | Graph context for type inference
    pythonEnvironmentGraph :: Graph.Graph,
    -- | Set of nullary bindings (need call syntax)
    pythonEnvironmentNullaryBindings :: (S.Set Core.Name),
    -- | Target Python version
    pythonEnvironmentVersion :: PythonVersion,
    -- | When True, skip generating cast() calls for reduced memory usage
    pythonEnvironmentSkipCasts :: Bool,
    -- | Variables that are inline let bindings (walrus operators)
    pythonEnvironmentInlineVariables :: (S.Set Core.Name)}
_PythonEnvironment = Core.Name "hydra.python.environment.PythonEnvironment"
_PythonEnvironment_namespaces = Core.Name "namespaces"
_PythonEnvironment_boundTypeVariables = Core.Name "boundTypeVariables"
_PythonEnvironment_graph = Core.Name "graph"
_PythonEnvironment_nullaryBindings = Core.Name "nullaryBindings"
_PythonEnvironment_version = Core.Name "version"
_PythonEnvironment_skipCasts = Core.Name "skipCasts"
_PythonEnvironment_inlineVariables = Core.Name "inlineVariables"
-- | Temporary metadata used to create the header section of a Python file
data PythonModuleMetadata =
  PythonModuleMetadata {
    -- | Namespace mapping for imports
    pythonModuleMetadataNamespaces :: (Packaging.Namespaces Syntax.DottedName),
    -- | Type variables used in the module
    pythonModuleMetadataTypeVariables :: (S.Set Core.Name),
    pythonModuleMetadataUsesAnnotated :: Bool,
    pythonModuleMetadataUsesCallable :: Bool,
    pythonModuleMetadataUsesCast :: Bool,
    pythonModuleMetadataUsesLruCache :: Bool,
    pythonModuleMetadataUsesTypeAlias :: Bool,
    pythonModuleMetadataUsesDataclass :: Bool,
    pythonModuleMetadataUsesDecimal :: Bool,
    pythonModuleMetadataUsesEither :: Bool,
    pythonModuleMetadataUsesEnum :: Bool,
    pythonModuleMetadataUsesFrozenDict :: Bool,
    pythonModuleMetadataUsesFrozenList :: Bool,
    pythonModuleMetadataUsesGeneric :: Bool,
    pythonModuleMetadataUsesJust :: Bool,
    pythonModuleMetadataUsesLeft :: Bool,
    pythonModuleMetadataUsesMaybe :: Bool,
    pythonModuleMetadataUsesName :: Bool,
    pythonModuleMetadataUsesNode :: Bool,
    pythonModuleMetadataUsesNothing :: Bool,
    pythonModuleMetadataUsesRight :: Bool,
    pythonModuleMetadataUsesTypeVar :: Bool}
  deriving (Eq, Ord, Read, Show)
_PythonModuleMetadata = Core.Name "hydra.python.environment.PythonModuleMetadata"
_PythonModuleMetadata_namespaces = Core.Name "namespaces"
_PythonModuleMetadata_typeVariables = Core.Name "typeVariables"
_PythonModuleMetadata_usesAnnotated = Core.Name "usesAnnotated"
_PythonModuleMetadata_usesCallable = Core.Name "usesCallable"
_PythonModuleMetadata_usesCast = Core.Name "usesCast"
_PythonModuleMetadata_usesLruCache = Core.Name "usesLruCache"
_PythonModuleMetadata_usesTypeAlias = Core.Name "usesTypeAlias"
_PythonModuleMetadata_usesDataclass = Core.Name "usesDataclass"
_PythonModuleMetadata_usesDecimal = Core.Name "usesDecimal"
_PythonModuleMetadata_usesEither = Core.Name "usesEither"
_PythonModuleMetadata_usesEnum = Core.Name "usesEnum"
_PythonModuleMetadata_usesFrozenDict = Core.Name "usesFrozenDict"
_PythonModuleMetadata_usesFrozenList = Core.Name "usesFrozenList"
_PythonModuleMetadata_usesGeneric = Core.Name "usesGeneric"
_PythonModuleMetadata_usesJust = Core.Name "usesJust"
_PythonModuleMetadata_usesLeft = Core.Name "usesLeft"
_PythonModuleMetadata_usesMaybe = Core.Name "usesMaybe"
_PythonModuleMetadata_usesName = Core.Name "usesName"
_PythonModuleMetadata_usesNode = Core.Name "usesNode"
_PythonModuleMetadata_usesNothing = Core.Name "usesNothing"
_PythonModuleMetadata_usesRight = Core.Name "usesRight"
_PythonModuleMetadata_usesTypeVar = Core.Name "usesTypeVar"
-- | Combined graph and metadata state for Python code generation
data PyGraph =
  PyGraph {
    -- | The Hydra graph being processed
    pyGraphGraph :: Graph.Graph,
    -- | Accumulated module metadata
    pyGraphMetadata :: PythonModuleMetadata}
_PyGraph = Core.Name "hydra.python.environment.PyGraph"
_PyGraph_graph = Core.Name "graph"
_PyGraph_metadata = Core.Name "metadata"