# Path: craft_ai/pandas/constants.py
# MISSING_VALUE = MissingValue()
# 
# OPTIONAL_VALUE = OptionalValue()
# 
# Path: craft_ai/constants.py
# REACT_CRAFT_AI_DECISION_TREE_VERSION = "0.0.23"
# 
# Path: craft_ai/errors.py
# class CraftAiError(Exception):
#     """Base class for exceptions in the craft ai client."""
# 
#     def __init__(self, message=None, metadata=None):
#         self.message = message
#         self.metadata = metadata
#         super(CraftAiError, self).__init__(message, metadata)
# 
#     def __str__(self):
#         return repr(self.message)


import json
import re
import string
import importlib
import pandas as pd
from random import choice
from semver import VersionInfo
from .constants import (
    MISSING_VALUE,
    OPTIONAL_VALUE,
)
from ..constants import REACT_CRAFT_AI_DECISION_TREE_VERSION
from ..errors import CraftAiError
        </script>
        <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin defer>
        </script>
        <script src="https://unpkg.com/react-craft-ai-decision-tree@0.0.26" crossorigin defer>
        </script>
        <style>
        .jp-RenderedHTMLCommon table {{ table-layout: inherit; }}
        .jp-RenderedHTMLCommon ul {{ padding-left: none; }}
        </style>
    </head>
    <body>
        <div id="{idDiv}">
        </div>
        <script async=false>
    ReactDOM.render(
        React.createElement(DecisionTree,
        {{
            style: {{ height: {height} }},
            data: {tree},
            selectedNode: "{selectedNode}",
            foldedNodes: {foldedNodes},
            edgeType: "{edgeType}"
        }}
        ),document.getElementById("{idDiv}")
    );
        </script>
    </body>
    </html>"""

    if height <= 0:

# Path: craft_ai/pandas/constants.py
# MISSING_VALUE = MissingValue()
# 
# OPTIONAL_VALUE = OptionalValue()
# 
# Path: craft_ai/constants.py
# REACT_CRAFT_AI_DECISION_TREE_VERSION = "0.0.23"
# 
# Path: craft_ai/errors.py
# class CraftAiError(Exception):
#     """Base class for exceptions in the craft ai client."""
# 
#     def __init__(self, message=None, metadata=None):
#         self.message = message
#         self.metadata = metadata
#         super(CraftAiError, self).__init__(message, metadata)
# 
#     def __str__(self):
#         return repr(self.message)


# Path: craft_ai/pandas/utils.py
import json
import re
import string
import importlib
import pandas as pd
from random import choice
from semver import VersionInfo
from .constants import (
    MISSING_VALUE,
    OPTIONAL_VALUE,
)
from ..constants import REACT_CRAFT_AI_DECISION_TREE_VERSION
from ..errors import CraftAiError

        </script>
        <script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin defer>
        </script>
        <script src="https://unpkg.com/react-craft-ai-decision-tree@0.0.26" crossorigin defer>
        </script>
        <style>
        .jp-RenderedHTMLCommon table {{ table-layout: inherit; }}
        .jp-RenderedHTMLCommon ul {{ padding-left: none; }}
        </style>
    </head>
    <body>
        <div id="{idDiv}">
        </div>
        <script async=false>
    ReactDOM.render(
        React.createElement(DecisionTree,
        {{
            style: {{ height: {height} }},
            data: {tree},
            selectedNode: "{selectedNode}",
            foldedNodes: {foldedNodes},
            edgeType: "{edgeType}"
        }}
        ),document.getElementById("{idDiv}")
    );
        </script>
    </body>
    </html>"""

    if height <= 0:

        raise CraftAiError("A strictly positive height value must be given.")