Coverage for class_generator/class_generator.py: 0%
47 statements
« prev ^ index » next coverage.py v7.10.1, created at 2025-07-29 12:03 +0300
« prev ^ index » next coverage.py v7.10.1, created at 2025-07-29 12:03 +0300
1import ast
2import filecmp
3import json
4import keyword
5import os
6import shlex
7import shutil
8import sys
9import textwrap
10import time
11from concurrent.futures import Future, ThreadPoolExecutor, as_completed
12from io import StringIO
13from pathlib import Path
14from tempfile import gettempdir
15from typing import Any
17import cloup
18import pytest
19from cloup.constraints import If, IsSet, accept_none, require_one
20from jinja2 import DebugUndefined, Environment, FileSystemLoader, meta
21from kubernetes.dynamic import DynamicClient
22from packaging.version import Version
23from pyhelper_utils.shell import run_command
24from rich.console import Console
25from rich.panel import Panel
26from rich.syntax import Syntax
27from rich.table import Table
28from simple_logger.logger import get_logger
30from fake_kubernetes_client.dynamic_client import FakeDynamicClient
31from ocp_resources.resource import Resource, get_client
32from ocp_resources.utils.schema_validator import SchemaValidator
33from ocp_resources.utils.utils import convert_camel_case_to_snake_case
35# Import from refactored modules
36from class_generator.utils import ResourceScanner, sanitize_python_name, get_latest_version
37from class_generator.constants import (
38 SPEC_STR,
39 FIELDS_STR,
40 TESTS_MANIFESTS_DIR,
41 SCHEMA_DIR,
42 RESOURCES_MAPPING_FILE,
43 MISSING_DESCRIPTION_STR,
44 PYTHON_KEYWORD_MAPPINGS,
45 VERSION_PRIORITY,
46 END_OF_GENERATED_CODE,
47)
48from class_generator.core.schema import (
49 read_resources_mapping_file,
50 extract_group_kind_version,
51 update_kind_schema,
52 get_server_version as get_server_version_from_client,
53 build_namespacing_dict,
54)
55from class_generator.core.discovery import (
56 discover_cluster_resources,
57 discover_generated_resources,
58)
59from class_generator.core.coverage import (
60 analyze_coverage,
61 generate_report,
62 get_server_version,
63 get_client_binary,
64)
65from class_generator.core.generator import (
66 class_generator,
67 generate_resource_file_from_dict,
68)
69from class_generator.parsers.explain_parser import parse_explain
70from class_generator.parsers.type_parser import (
71 types_generator,
72 get_property_schema,
73 prepare_property_dict,
74 format_description,
75)
76from class_generator.parsers.user_code_parser import parse_user_code_from_file
77from class_generator.formatters.template_renderer import render_jinja_template
78from class_generator.formatters.file_writer import write_and_format_rendered
79from class_generator.tests.test_generation import generate_class_generator_tests
80from class_generator.cli import main
82# Set global logging
83LOGGER = get_logger(name="class_generator")
86if __name__ == "__main__":
87 main()