From 3e25a781454d718f98f7e9a0ce63bda70a969d77 Mon Sep 17 00:00:00 2001 From: aqua Date: Sun, 18 Aug 2024 22:30:33 +0300 Subject: Renamed interface definition to declaration --- tools/interface_generator/bin/BUILD.bazel | 8 +-- .../bin/interface_declaration.py | 58 ++++++++++++++++++++++ .../bin/interface_declaration_unittest.py | 19 +++++++ .../bin/interface_definition.py | 58 ---------------------- .../bin/interface_definition_unittest.py | 19 ------- .../interface_generator/bin/interface_generator.py | 8 +-- 6 files changed, 85 insertions(+), 85 deletions(-) create mode 100644 tools/interface_generator/bin/interface_declaration.py create mode 100644 tools/interface_generator/bin/interface_declaration_unittest.py delete mode 100644 tools/interface_generator/bin/interface_definition.py delete mode 100644 tools/interface_generator/bin/interface_definition_unittest.py diff --git a/tools/interface_generator/bin/BUILD.bazel b/tools/interface_generator/bin/BUILD.bazel index df23387..04843b9 100644 --- a/tools/interface_generator/bin/BUILD.bazel +++ b/tools/interface_generator/bin/BUILD.bazel @@ -1,11 +1,11 @@ load("@pip//:requirements.bzl", "requirement") load("//private:defs.bzl", "py_pytest") -""" interface definition """ +""" interface declaration """ py_library( - name = "interface_definition", - srcs = ["interface_definition.py"], + name = "interface_declaration", + srcs = ["interface_declaration.py"], ) """ templates """ @@ -27,7 +27,7 @@ py_binary( imports = ["."], visibility = ["//visibility:public"], deps = [ - ":interface_definition", + ":interface_declaration", ":templates", requirement("mako"), ], diff --git a/tools/interface_generator/bin/interface_declaration.py b/tools/interface_generator/bin/interface_declaration.py new file mode 100644 index 0000000..4560bbd --- /dev/null +++ b/tools/interface_generator/bin/interface_declaration.py @@ -0,0 +1,58 @@ +""" +interface_declaration.py +""" + +from dataclasses import dataclass, asdict +from pathlib import Path + + +@dataclass +class InterfaceDeclaration: + """interface declaration class""" + + name: str + license_hdr: str + system_includes: list[str] + types: list[dict] + functions: list[dict] + + def read_license(self, path: Path): + """read and starrify a license""" + if path is None: + self.license_hdr = "" + return + + with open(path, encoding="utf-8") as license_file: + self.license_hdr = "".join( + [ + f" * { line.rstrip().ljust(72)[:72] } * \n" + for line in license_file.readlines() + ] + ).rstrip() + + def __init__(self, name: str, license_path: Path): + self.name = name if name is not None else "kstdio" + self.read_license(license_path) + self.system_includes = ["stdarg.h"] + self.types = [ + { + "name": "File", + "members": [ + "int fd", + "int (*putc)(const struct kstdio_File*, const char)", + "int (*puts)(const struct kstdio_File*, const char*)", + ], + }, + ] + self.functions = [ + { + "name": "printf", + "return": "int", + "arguments": ["const char* format"], + "argument_names": ["format"], + }, + ] + + def into_dict(self) -> dict: + """create a dictionary for use in mako""" + return asdict(self) diff --git a/tools/interface_generator/bin/interface_declaration_unittest.py b/tools/interface_generator/bin/interface_declaration_unittest.py new file mode 100644 index 0000000..b2ad80c --- /dev/null +++ b/tools/interface_generator/bin/interface_declaration_unittest.py @@ -0,0 +1,19 @@ +""" +interface declaration unit tests +""" + +import unittest +from interface_declaration import InterfaceDeclaration + + +class InterfaceDeclarationUnittest(unittest.TestCase): + """interface_declaration unit tests""" + + def test_interfacedeclaration_class_asdict(self): + """test mock interface""" + interface = InterfaceDeclaration("kstdio", None) + interface_dict = interface.into_dict() + + self.assertEqual(interface.name, "kstdio") + self.assertEqual(len(interface.license_hdr), 0) + self.assertEqual(interface_dict["name"], "kstdio") diff --git a/tools/interface_generator/bin/interface_definition.py b/tools/interface_generator/bin/interface_definition.py deleted file mode 100644 index 2fd7e9a..0000000 --- a/tools/interface_generator/bin/interface_definition.py +++ /dev/null @@ -1,58 +0,0 @@ -""" -interface_definition.py -""" - -from dataclasses import dataclass, asdict -from pathlib import Path - - -@dataclass -class InterfaceDefinition: - """interface definition class""" - - name: str - license_hdr: str - system_includes: list[str] - types: list[dict] - functions: list[dict] - - def read_license(self, path: Path): - """read and starrify a license""" - if path is None: - self.license_hdr = "" - return - - with open(path, encoding="utf-8") as license_file: - self.license_hdr = "".join( - [ - f" * { line.rstrip().ljust(72)[:72] } * \n" - for line in license_file.readlines() - ] - ).rstrip() - - def __init__(self, name: str, license_path: Path): - self.name = name if name is not None else "kstdio" - self.read_license(license_path) - self.system_includes = ["stdarg.h"] - self.types = [ - { - "name": "File", - "members": [ - "int fd", - "int (*putc)(const struct kstdio_File*, const char)", - "int (*puts)(const struct kstdio_File*, const char*)", - ], - }, - ] - self.functions = [ - { - "name": "printf", - "return": "int", - "arguments": ["const char* format"], - "argument_names": ["format"], - }, - ] - - def into_dict(self) -> dict: - """create a dictionary for use in mako""" - return asdict(self) diff --git a/tools/interface_generator/bin/interface_definition_unittest.py b/tools/interface_generator/bin/interface_definition_unittest.py deleted file mode 100644 index b459cb4..0000000 --- a/tools/interface_generator/bin/interface_definition_unittest.py +++ /dev/null @@ -1,19 +0,0 @@ -""" -interface definition unit tests -""" - -import unittest -from interface_definition import InterfaceDefinition - - -class InterfaceDefinitionUnittest(unittest.TestCase): - """interface_definition unit tests""" - - def test_interfacedefinition_class_asdict(self): - """test mock interface""" - interface = InterfaceDefinition("kstdio", None) - interface_dict = interface.into_dict() - - self.assertEqual(interface.name, "kstdio") - self.assertEqual(len(interface.license_hdr), 0) - self.assertEqual(interface_dict["name"], "kstdio") diff --git a/tools/interface_generator/bin/interface_generator.py b/tools/interface_generator/bin/interface_generator.py index 0534709..eab93d7 100755 --- a/tools/interface_generator/bin/interface_generator.py +++ b/tools/interface_generator/bin/interface_generator.py @@ -8,7 +8,7 @@ from argparse import ArgumentParser from pathlib import Path import sys from mako.lookup import TemplateLookup -from interface_definition import InterfaceDefinition +from interface_declaration import InterfaceDeclaration from templates import get_templates, get_templates_dir PROG = { @@ -18,7 +18,7 @@ PROG = { def generate_file( - template: Path, templates: Path, output, interface: InterfaceDefinition + template: Path, templates: Path, output, interface: InterfaceDeclaration ): """generate file using a tempalte and write it to the output location""" lookup = TemplateLookup(directories=[".", templates.absolute()]) @@ -40,7 +40,7 @@ def main(): """main function""" parser = ArgumentParser( prog="interface_generator", - description="Generate C header and mock files from an interface definition", + description="Generate C header and mock files from an interface declaration", ) parser.add_argument( "-i", @@ -74,7 +74,7 @@ def main(): args = parser.parse_args() # print(args) - interface = InterfaceDefinition(args.interface, args.license) + interface = InterfaceDeclaration(args.interface, args.license) # print(interface) for template in get_templates(args.templates): -- cgit v1.2.1