File: __init__.py

package info (click to toggle)
freeorion 0.5.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 194,940 kB
  • sloc: cpp: 186,508; python: 40,969; ansic: 1,164; xml: 719; makefile: 32; sh: 7
file content (34 lines) | stat: -rw-r--r-- 1,546 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import os
from logging import debug, error

from stub_generator.generate_stub import make_stub
from stub_generator.interface_inspector import get_module_info
from stub_generator.stub_generator.rtype.mapper import report_unused_mapping


def generate_stub(obj, instances, classes_to_ignore, path):
    """
    Inspect interface and generate stub. Writes its logs to freeoriond.log.

    :param obj: main interface module (freeOrionAIInterface for AI)
    :param instances:  list of instances, required to get more detailed information about them
    :param classes_to_ignore: classes that should not to be reported when check for missed instances done.
                              this argument required because some classes present in interface
                              but have no methods, to get their instances.
    :param path: relative path from python folder
    """
    debug("=" * 20)
    debug("\n\nStart generating skeleton for %s\n\n" % obj.__name__)
    debug("=" * 20)
    python_folder_path = os.path.normpath(os.path.join(os.path.dirname(__file__), ".."))
    result_folder = os.path.join(python_folder_path, path)
    result_path = os.path.join(result_folder, "%s.pyi" % obj.__name__)
    classes, enums, functions, instances = get_module_info(obj, instances)
    make_stub(classes, enums, functions, instances, result_path, classes_to_ignore)

    report_unused_mapping()

    debug("=" * 20)
    error("Skeleton was created, please exit to the menu")
    debug("Skeleton written to %s" % result_path)
    debug("=" * 20)