From: Flavio Calva Date: Sat, 11 Feb 2023 07:12:32 +0000 (+0200) Subject: housekeeping: ya2.utils.gui X-Git-Url: http://git.ya2.it/?p=pmachines.git;a=commitdiff_plain;h=9f095a28409529e98809c2fb0b614887d58d73d8 housekeeping: ya2.utils.gui --- diff --git a/pmachines/editor/inspector.py b/pmachines/editor/inspector.py index 3c39a35..5b114b8 100644 --- a/pmachines/editor/inspector.py +++ b/pmachines/editor/inspector.py @@ -1,16 +1,12 @@ from collections import namedtuple -from glob import glob from logging import info -from importlib import import_module -from os.path import basename -from inspect import isclass from panda3d.core import Texture, TextNode, LPoint3f from direct.gui.OnscreenImage import OnscreenImage from direct.gui.DirectGui import DirectButton, DirectFrame, DirectEntry, DirectOptionMenu, OkDialog from direct.gui.DirectGuiGlobals import FLAT, NORMAL from direct.gui.OnscreenText import OnscreenText from direct.showbase.DirectObject import DirectObject -from pmachines.items.item import ItemStrategy, FixedStrategy, StillStrategy +from pmachines.items.item import FixedStrategy, StillStrategy from pmachines.items.box import HitStrategy from pmachines.items.domino import DownStrategy, UpStrategy from pmachines.editor.augmented_frame import AugmentedDirectFrame diff --git a/pmachines/editor/scene.py b/pmachines/editor/scene.py index f85d0c5..d67203f 100644 --- a/pmachines/editor/scene.py +++ b/pmachines/editor/scene.py @@ -1,9 +1,5 @@ from copy import deepcopy from json import dumps -from importlib import import_module -from inspect import isclass -from glob import glob -from os.path import basename from logging import info import hashlib from panda3d.core import Texture, TextNode, LPoint3f @@ -13,7 +9,6 @@ from direct.gui.DirectGui import DirectButton, DirectEntry, \ from direct.gui.DirectGuiGlobals import FLAT, NORMAL from direct.gui.OnscreenText import OnscreenText from direct.showbase.DirectObject import DirectObject -from pmachines.items.item import Item from pmachines.items.test_item import PixelSpaceTestItem, WorldSpaceTestItem from pmachines.editor.scene_list import SceneList from pmachines.editor.inspector import Inspector, PixelSpaceInspector, WorldSpaceInspector diff --git a/pmachines/editor/start_items.py b/pmachines/editor/start_items.py index 3eac6f5..52cbd1c 100644 --- a/pmachines/editor/start_items.py +++ b/pmachines/editor/start_items.py @@ -1,8 +1,4 @@ from collections import namedtuple -from glob import glob -from importlib import import_module -from os.path import basename -from inspect import isclass from panda3d.core import Texture, TextNode, LPoint3f from direct.gui.OnscreenImage import OnscreenImage from direct.gui.DirectGui import DirectButton, DirectEntry, DirectOptionMenu, OkDialog, DirectFrame @@ -10,7 +6,6 @@ from direct.gui.DirectGuiGlobals import FLAT, NORMAL from direct.gui.OnscreenText import OnscreenText from direct.showbase.DirectObject import DirectObject from ya2.utils.gfx import DirectGuiMixin -from pmachines.items.item import Item, ItemStrategy from pmachines.editor.augmented_frame import AugmentedDirectFrame from ya2.utils.gui.base_page import DirectOptionMenuTestable diff --git a/pmachines/gui/credits_page.py b/pmachines/gui/credits_page.py index a0d6172..0d1d730 100644 --- a/pmachines/gui/credits_page.py +++ b/pmachines/gui/credits_page.py @@ -1,30 +1,30 @@ from sys import platform from os import environ, system from webbrowser import open_new_tab -from ya2.utils.gui.base_page import BasePage, TextInfo, ButtonInfo +from ya2.utils.gui.base_page import BasePage, TextArgs, ButtonArgs class CreditsPage(BasePage): def _build_widgets(self): - text_dev = TextInfo( + text_dev = TextArgs( text=_('Code and gfx\n \1scale\1Flavio Calva\2\n\n\nMusic\n \1scale\1Stefan Grossmann\2'), pos=(-.9, .55), align='left') self._add_text(text_dev) - website_button = ButtonInfo( + website_button = ButtonArgs( id='website', text=_('Website'), pos=(-.6, .29), command=self.__on_website, scale=.08) self._add_button(website_button) - thanks_text = TextInfo( + thanks_text = TextArgs( text=_('Special thanks to:\n \1scale\1rdb\2\n \1scale\1Luisa Tenuta\2\n \1scale\1Damiana Ercolani\2'), pos=(.1, .55), align='left') self._add_text(thanks_text) - back_button = ButtonInfo( + back_button = ButtonArgs( id='back', text=_('Back'), pos=(0, -.8), diff --git a/pmachines/gui/main_page.py b/pmachines/gui/main_page.py index e2ad880..318e456 100644 --- a/pmachines/gui/main_page.py +++ b/pmachines/gui/main_page.py @@ -1,33 +1,33 @@ from sys import exit from xmlrpc.client import ServerProxy -from ya2.utils.gui.base_page import BasePage, ButtonInfo +from ya2.utils.gui.base_page import BasePage, ButtonArgs class MainPage(BasePage): def _build_widgets(self): - play_args = ButtonInfo( + play_args = ButtonArgs( id='play', text=_('Play'), pos=(0, .6), command=self._set_page, command_args=['play']) self._add_button(play_args) - option_args = ButtonInfo( + option_args = ButtonArgs( id='options', text=_('Options'), pos=(0, .2), command=self._set_page, command_args=['options']) self._add_button(option_args) - credits_args = ButtonInfo( + credits_args = ButtonArgs( id='credits', text=_('Credits'), pos=(0, -.2), command=self._set_page, command_args=['credits']) self._add_button(credits_args) - exit_args = ButtonInfo( + exit_args = ButtonArgs( id='exit', text=_('Exit'), pos=(0, -.6), diff --git a/pmachines/gui/menu.py b/pmachines/gui/menu.py index c1bfd5a..08f06c5 100644 --- a/pmachines/gui/menu.py +++ b/pmachines/gui/menu.py @@ -3,7 +3,7 @@ from pmachines.gui.play_page import PlayPage from pmachines.gui.options_page import OptionsPage from pmachines.gui.credits_page import CreditsPage from ya2.utils.gui.menu import BaseMenu -from ya2.utils.gui.cursor import MouseCursorInfo +from ya2.utils.gui.cursor import MouseCursorArgs class Menu(BaseMenu): @@ -11,7 +11,7 @@ class Menu(BaseMenu): def __init__(self, start_scene, set_language, option_file, gfx_pipeline, scenes, running_functional_tests, test_positions): - c = MouseCursorInfo( + c = MouseCursorArgs( 'assets/images/buttons/arrowUpLeft.dds', running_functional_tests, (.04, 1, .04), diff --git a/pmachines/gui/options_page.py b/pmachines/gui/options_page.py index 4f479a3..8ad16a9 100644 --- a/pmachines/gui/options_page.py +++ b/pmachines/gui/options_page.py @@ -4,7 +4,7 @@ from direct.showbase.DirectObject import DirectObject from direct.gui.DirectGui import DirectFrame from ya2.utils.gfx import DirectGuiMixin, pos_pixel from ya2.utils.audio import AudioTools -from ya2.utils.gui.base_page import BasePage, OptionMenuInfo, TextInfo, SliderInfo, CheckButtonInfo, ButtonInfo +from ya2.utils.gui.base_page import BasePage, OptionMenuArgs, TextArgs, SliderArgs, CheckButtonArgs, ButtonArgs class OptionsPage(BasePage, DirectObject): @@ -42,7 +42,7 @@ class OptionsPage(BasePage, DirectObject): btn.__class__ = type('DirectFrameMixed', (DirectFrame, DirectGuiMixin), {}) pos = btn.pos_pixel() self._page_info.test_positions[lng] = (pos[0] + 5, pos[1]) - language_menu = OptionMenuInfo( + language_menu = OptionMenuArgs( id='languages', text=_('Language'), items=items, @@ -52,12 +52,12 @@ class OptionsPage(BasePage, DirectObject): self._add_option_menu(language_menu, lang_cb) def __build_volume(self): - t = TextInfo( + t = TextArgs( text=_('Volume'), pos=(-.56, .55), align='left') self._add_text(t) - s = SliderInfo( + s = SliderArgs( pos=(.3, 1, .57), value=self.__option_file['settings']['volume'], scale=(.28, 1, .5), @@ -65,7 +65,7 @@ class OptionsPage(BasePage, DirectObject): self._slider = self._add_slider(s) def __build_fullscreen(self): - c = CheckButtonInfo( + c = CheckButtonArgs( id='fullscreen', text=_('Fullscreen'), pos=(0, .3), @@ -96,7 +96,7 @@ class OptionsPage(BasePage, DirectObject): if btn['text'] == tgt_res: pos = pos_pixel(btn) self._page_info.test_positions['res_' + tgt_res] = (pos[0] + 5, pos[1]) - r = OptionMenuInfo( + r = OptionMenuArgs( id='resolutions', text=_('Resolution'), items=resolutions, @@ -109,7 +109,7 @@ class OptionsPage(BasePage, DirectObject): self._page_info.test_positions['res_1360x768'] = [pos_res[0] + 430, pos_res[1] -285] def __build_aa(self): - c = CheckButtonInfo( + c = CheckButtonArgs( id='aa', text=_('Antialiasing'), pos=(0, -.2), @@ -118,7 +118,7 @@ class OptionsPage(BasePage, DirectObject): self._add_check_button(c) def __build_shadows(self): - c = CheckButtonInfo( + c = CheckButtonArgs( id='shadows', text=_('Shadows'), pos=(0, -.45), @@ -127,7 +127,7 @@ class OptionsPage(BasePage, DirectObject): self._add_check_button(c) def __build_back(self): - back_button = ButtonInfo( + back_button = ButtonArgs( id='back', text=_('Back'), pos=(0, -.8), diff --git a/pmachines/gui/play_page.py b/pmachines/gui/play_page.py index 117b98d..a38ab7e 100644 --- a/pmachines/gui/play_page.py +++ b/pmachines/gui/play_page.py @@ -1,4 +1,4 @@ -from ya2.utils.gui.base_page import BasePage, ButtonInfo +from ya2.utils.gui.base_page import BasePage, ButtonArgs class PlayPage(BasePage): @@ -14,7 +14,7 @@ class PlayPage(BasePage): for i, scene_name in enumerate(self.__scenes): top = .1 if len(self.__scenes) < 5 else .6 row = 0 if i < 4 else 1 - i = ButtonInfo( + i = ButtonArgs( id=scene_name.lower(), text=Scene.name(scene_name), pos=(left + dx * (i % 4), top - dx * row), @@ -27,7 +27,7 @@ class PlayPage(BasePage): color=(1, 1, 1, .4) if Scene.is_done(scene_name) else (1, 1, 1, .8), text_color=(.9, .9, .9, .4) if Scene.is_done(scene_name) else (.9, .9, .9, 1)) self._add_button(i, True) - back_button = ButtonInfo( + back_button = ButtonArgs( id='back', text=_('Back'), pos=(0, -.8), diff --git a/pmachines/scene/scene.py b/pmachines/scene/scene.py index e8172f9..60e0875 100644 --- a/pmachines/scene/scene.py +++ b/pmachines/scene/scene.py @@ -22,7 +22,7 @@ from pmachines.items.shelf import Shelf from pmachines.items.teetertooter import TeeterTooter from pmachines.items.test_item import PixelSpaceTestItem, WorldSpaceTestItem from pmachines.editor.scene import SceneEditor -from ya2.utils.gui.cursor import MouseCursor, MouseCursorInfo +from ya2.utils.gui.cursor import MouseCursor, MouseCursorArgs from ya2.utils.gfx import GfxTools, DirectGuiMixin from ya2.utils.gui.gui import GuiTools @@ -52,7 +52,7 @@ class Scene(DirectObject): self.json = {} self.accept('enforce_result', self.enforce_result) self._set_camera() - c = MouseCursorInfo( + c = MouseCursorArgs( 'assets/images/buttons/arrowUpLeft.dds', testing, (.04, 1, .04), (.5, .5, .5, 1), (.01, .01)) self._cursor = MouseCursor(c) diff --git a/setup.py b/setup.py index 1b151a5..bff22e5 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,7 @@ from multiprocessing import cpu_count from textwrap import dedent from direct.dist.commands import bdist_apps from p3d_appimage import AppImageBuilder -from ya2.build.build import _branch, find_file_names, _version, FindFileNamesInfo +from ya2.build.build import _branch, find_file_names, _version, FindFileNamesArgs from ya2.build.lang import LanguageBuilder from ya2.build.screenshots import ScreenshotsBuilder from ya2.build.images import ImagesBuilder @@ -61,7 +61,7 @@ class ImagesCommand(BaseCommand): def run(self): s = ScreenshotsBuilder(Pmachines.scenes()) s.build() - find_info = FindFileNamesInfo( + find_info = FindFileNamesArgs( ['jpg', 'png'], ['models', 'gltf', 'bam'], ['_png.png']) diff --git a/tests/functional_test.py b/tests/functional_test.py index 123a212..2e21403 100644 --- a/tests/functional_test.py +++ b/tests/functional_test.py @@ -1,17 +1,14 @@ from panda3d.core import load_prc_file_data load_prc_file_data('', 'window-type none') -import datetime, sys -from pathlib import Path +import sys from time import sleep from os import system from xmlrpc.client import ServerProxy -from os import makedirs -from os.path import exists from sys import exit, argv from direct.showbase.ShowBase import ShowBase import asyncio import xmlrpc -from logging import basicConfig, debug, info, DEBUG, getLogger, Formatter, FileHandler, StreamHandler +from logging import basicConfig, debug, info, DEBUG, getLogger, StreamHandler basicConfig(level=DEBUG, format='(evt-test) %(asctime)s.%(msecs)03d %(message)s', datefmt='%H:%M:%S') diff --git a/tests/test_functional.py b/tests/test_functional.py index c1ce61c..dbb72aa 100644 --- a/tests/test_functional.py +++ b/tests/test_functional.py @@ -11,7 +11,7 @@ from time import sleep from os import system, remove, environ from os.path import exists, basename, join from glob import glob -from subprocess import PIPE, Popen, STDOUT +from subprocess import Popen, STDOUT from panda3d.core import Filename from ya2.build.build import exec_cmd, _branch, _version @@ -88,7 +88,7 @@ class FunctionalTests(TestCase): sleep(30) info('launching ' + test_cmd) print('launching ' + test_cmd) - p_test = Popen(test_cmd, shell=True, stderr=STDOUT, universal_newlines=True + p_test = Popen(test_cmd, shell=True, stderr=STDOUT, universal_newlines=True) p_app_out, p_app_err = p_app.communicate() t_out, t_err = p_test.communicate() info('output (%s): %s' % (app_cmd, p_app_out)) diff --git a/tests/ya2/build/test_build.py b/tests/ya2/build/test_build.py index f9712fc..5b1ccb1 100644 --- a/tests/ya2/build/test_build.py +++ b/tests/ya2/build/test_build.py @@ -10,7 +10,7 @@ from shutil import rmtree from unittest import TestCase import re from ya2.build.build import InsideDir, find_file_names, exec_cmd, _branch, _version, \ - to_be_built, FindFileNamesInfo + to_be_built, FindFileNamesArgs class BuildTests(TestCase): @@ -49,7 +49,7 @@ class BuildTests(TestCase): self.assertTrue(any(matches)) def test_get_files(self): - find_info = FindFileNamesInfo(['ext2'], 'c') + find_info = FindFileNamesArgs(['ext2'], 'c') _files = find_file_names(find_info) self.assertSetEqual(set(_files), set(['./test_get_files/a/d.ext2', diff --git a/tests/ya2/utils/gui/test_cursor.py b/tests/ya2/utils/gui/test_cursor.py index 8a8a011..6ac9b8c 100644 --- a/tests/ya2/utils/gui/test_cursor.py +++ b/tests/ya2/utils/gui/test_cursor.py @@ -6,7 +6,7 @@ if '' in sys.path: sys.path.remove('') sys.path.append(str(Path(__file__).parent.parent.parent)) from unittest import TestCase from direct.showbase.ShowBase import ShowBase -from ya2.utils.gui.cursor import MouseCursor, MouseCursorInfo +from ya2.utils.gui.cursor import MouseCursor, MouseCursorArgs class CursorTests(TestCase): @@ -18,7 +18,7 @@ class CursorTests(TestCase): self.__app.destroy() def test_cursor(self): - i = MouseCursorInfo('tests/assets/images/icon16.png', False, (1, 1, 1), (1, 1, 1, 1), (0, 0)) + i = MouseCursorArgs('tests/assets/images/icon16.png', False, (1, 1, 1), (1, 1, 1, 1), (0, 0)) c = MouseCursor(i) c.set_image('tests/assets/images/icon32.png') self.assertEqual('tests/assets/images/icon32.png', c._MouseCursor__image.get_texture().get_filename()) diff --git a/ya2/build/build.py b/ya2/build/build.py index aefeb08..400c55e 100644 --- a/ya2/build/build.py +++ b/ya2/build/build.py @@ -97,7 +97,7 @@ def _version(): return ret_ver -class FindFileNamesInfo: +class FindFileNamesArgs: def __init__(self, extensions, excluding_directories=None, excluding_files_ending_with=None, root_path='.'): @@ -108,7 +108,7 @@ class FindFileNamesInfo: def find_file_names(find_info): - #TODO avoid FindFileNamesInfo, write multiple functions with different + #TODO avoid FindFileNamesArgs, write multiple functions with different # behaviors: this is a function which does more than one thing _extensions = find_info.extensions excl_dirs = find_info.excluding_directories diff --git a/ya2/build/lang.py b/ya2/build/lang.py index 54fafdc..1592fb5 100644 --- a/ya2/build/lang.py +++ b/ya2/build/lang.py @@ -4,7 +4,7 @@ from os.path import exists, isfile, join from shutil import move, copy from json import loads from polib import pofile, POEntry -from ya2.build.build import find_file_names, FindFileNamesInfo +from ya2.build.build import find_file_names, FindFileNamesArgs class LanguageBuilder: @@ -26,7 +26,7 @@ class LanguageBuilder: def __build_pot(self): '''Builds the pot file in the lng_dir_code directory.''' - find_info = FindFileNamesInfo(['py'], ['tests']) + find_info = FindFileNamesArgs(['py'], ['tests']) src_files = ' '.join(find_file_names(find_info)) cmd_tmpl = 'xgettext -ci18n -d {appname} -L python ' + \ '-o {pot_path}{appname}.pot ' diff --git a/ya2/utils/gui/base_page.py b/ya2/utils/gui/base_page.py index 6b3a0df..359ed76 100644 --- a/ya2/utils/gui/base_page.py +++ b/ya2/utils/gui/base_page.py @@ -21,7 +21,7 @@ class DirectOptionMenuTestable(DirectOptionMenu): @dataclass -class BaseInfo: +class BaseArgs: id: ... = '' text: ... = None pos: ... = None @@ -43,7 +43,7 @@ class BaseInfo: @dataclass -class ButtonInfo(BaseInfo): +class ButtonArgs(BaseArgs): command: ... = None command_args: ... = None size: ... = None @@ -84,7 +84,7 @@ class ButtonInfo(BaseInfo): @dataclass -class SliderInfo(ButtonInfo): +class SliderArgs(ButtonArgs): range: ... = None scale: ... = None value: ... = None @@ -104,7 +104,7 @@ class SliderInfo(ButtonInfo): @dataclass -class OptionMenuInfo(ButtonInfo): +class OptionMenuArgs(ButtonArgs): items: ... = None initial_item: ... = None item_color: ... = None @@ -135,7 +135,7 @@ class OptionMenuInfo(ButtonInfo): @dataclass -class CheckButtonInfo(ButtonInfo): +class CheckButtonArgs(ButtonArgs): value: ... = None def to_p3d_args(self): @@ -149,7 +149,7 @@ class CheckButtonInfo(ButtonInfo): @dataclass -class TextInfo(BaseInfo): +class TextArgs(BaseArgs): align: ... = None def to_p3d_args(self): diff --git a/ya2/utils/gui/cursor.py b/ya2/utils/gui/cursor.py index 69d4e9a..7f0b031 100644 --- a/ya2/utils/gui/cursor.py +++ b/ya2/utils/gui/cursor.py @@ -5,7 +5,7 @@ from ya2.utils.logics import LogicsTools @dataclass -class MouseCursorInfo: +class MouseCursorArgs: image_path: ... functional_test: ... scale: ... = 1 diff --git a/ya2/utils/gui/menu.py b/ya2/utils/gui/menu.py index 59cf84e..af2e5b2 100644 --- a/ya2/utils/gui/menu.py +++ b/ya2/utils/gui/menu.py @@ -3,7 +3,7 @@ from ya2.utils.gui.cursor import MouseCursor @dataclass -class PageInfo: +class PageArgs: set_page: ... test_positions: ... running_functional_tests: ... @@ -12,7 +12,7 @@ class PageInfo: class BaseMenu: def __init__(self, cursor_info, running_functional_tests, test_positions): - self._page_info = PageInfo(self.set_page, test_positions, running_functional_tests) + self._page_info = PageArgs(self.set_page, test_positions, running_functional_tests) self._page = None self._cursor = MouseCursor(cursor_info) self.set_page('main')