mirror of
https://github.com/RYDE-WORK/ballistica.git
synced 2026-01-19 13:25:31 +08:00
experimenting with pyright
This commit is contained in:
parent
9f660dd056
commit
ba896185c1
56
.efrocachemap
generated
56
.efrocachemap
generated
@ -4068,26 +4068,26 @@
|
||||
"build/assets/windows/Win32/ucrtbased.dll": "2def5335207d41b21b9823f6805997f1",
|
||||
"build/assets/windows/Win32/vc_redist.x86.exe": "b08a55e2e77623fe657bea24f223a3ae",
|
||||
"build/assets/windows/Win32/vcruntime140d.dll": "865b2af4d1e26a1a8073c89acb06e599",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "8624f0d3fa5414204d138a8476e9e460",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "2587621d0c3048ef54bc4bb16d89f481",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "05fae5b1cd78420264b47845a3906878",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "54630e134d422ed010f66cfade0a7039",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "55a876ca75282829290734a6ac66317a",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "2a52aa57bd46c9fd9d3b775932a4cd2f",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "4e6545a90d26c03c27813da58b478190",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "b3ba73ebad2f3a0b256d85b14e97cef5",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "98d9cfb5f00591c868b9ccbee52fa9e5",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "a29c7ef8e1ab1152bbb1cc19c8d618e6",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "b06f66e40e56760b1c4e6219d69f4d0f",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "809817f1aad7de3560b09b76d3995120",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "7e26218e4ed4fb7e316b7e1faee7aa5a",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "e8059a5654ba9a52e0fd59e5f8802fbc",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "2649fb0d26b27025da149be404369505",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "9378675f3ca191b8e5562017993232e9",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "318110d18dc080bbe8ca0bebf4243e3f",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "66d49b0c135475f76056849bfc9259fd",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "4b8fe7d5454d1dc3383ecba3a6f75d13",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "a87c9018c9846a27596012b6689ddbd2",
|
||||
"build/prefab/full/linux_arm64_gui/debug/ballisticakit": "2668b413da2d1dd597a6a6b8c6ae9ee8",
|
||||
"build/prefab/full/linux_arm64_gui/release/ballisticakit": "5d38798c383cae78c227c427ae967281",
|
||||
"build/prefab/full/linux_arm64_server/debug/dist/ballisticakit_headless": "0df69387ebe2fb149694a267a1df4c24",
|
||||
"build/prefab/full/linux_arm64_server/release/dist/ballisticakit_headless": "153abebe70483d17d933127e894908c4",
|
||||
"build/prefab/full/linux_x86_64_gui/debug/ballisticakit": "fd6768fe1167b8e24db5eb9e33360456",
|
||||
"build/prefab/full/linux_x86_64_gui/release/ballisticakit": "8377309f0d570de541e9210752463bab",
|
||||
"build/prefab/full/linux_x86_64_server/debug/dist/ballisticakit_headless": "b4b774fef02d72f58f8083430cbc8334",
|
||||
"build/prefab/full/linux_x86_64_server/release/dist/ballisticakit_headless": "9b100c7bf923a8f01de1b5984f62e7e5",
|
||||
"build/prefab/full/mac_arm64_gui/debug/ballisticakit": "ac5ecfa5b0e10bcc0d333875bfff9d29",
|
||||
"build/prefab/full/mac_arm64_gui/release/ballisticakit": "241d315d379eb10ec7c2c7ccc8efa99e",
|
||||
"build/prefab/full/mac_arm64_server/debug/dist/ballisticakit_headless": "9d57aaf4d56398e67695659eedce569c",
|
||||
"build/prefab/full/mac_arm64_server/release/dist/ballisticakit_headless": "d22fdee9f1355dd8965f56a97518ad85",
|
||||
"build/prefab/full/mac_x86_64_gui/debug/ballisticakit": "b85955e00c3a076af273849fd436b18c",
|
||||
"build/prefab/full/mac_x86_64_gui/release/ballisticakit": "a044700e51b426cd333ab32308bfc033",
|
||||
"build/prefab/full/mac_x86_64_server/debug/dist/ballisticakit_headless": "e4bcb7821639ffb7e5b0616d509d3c3d",
|
||||
"build/prefab/full/mac_x86_64_server/release/dist/ballisticakit_headless": "91a3fcefaf965260efb388f4477c8ce3",
|
||||
"build/prefab/full/windows_x86_gui/debug/BallisticaKit.exe": "4a54dbbe24033a862a2dac3eb76f98b3",
|
||||
"build/prefab/full/windows_x86_gui/release/BallisticaKit.exe": "c82081e53a00d198137c934efae1ed72",
|
||||
"build/prefab/full/windows_x86_server/debug/dist/BallisticaKitHeadless.exe": "d8ee381eafbca03eee21e1218935f499",
|
||||
"build/prefab/full/windows_x86_server/release/dist/BallisticaKitHeadless.exe": "f6e6fc30a1d2a3ccb2d5f43bf91c4402",
|
||||
"build/prefab/lib/linux_arm64_gui/debug/libballisticaplus.a": "85ba4e81a1f7ae2cff4b1355eb49904f",
|
||||
"build/prefab/lib/linux_arm64_gui/release/libballisticaplus.a": "498921f7eb2afd327d4b900cb70e31f9",
|
||||
"build/prefab/lib/linux_arm64_server/debug/libballisticaplus.a": "85ba4e81a1f7ae2cff4b1355eb49904f",
|
||||
@ -4104,14 +4104,14 @@
|
||||
"build/prefab/lib/mac_x86_64_gui/release/libballisticaplus.a": "0ab638b6602610bdaf432e3cc2464080",
|
||||
"build/prefab/lib/mac_x86_64_server/debug/libballisticaplus.a": "92394eb19387c363471ce134ac9e6a1b",
|
||||
"build/prefab/lib/mac_x86_64_server/release/libballisticaplus.a": "0ab638b6602610bdaf432e3cc2464080",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "496f928d8cb2b2d1098c43c708d3aa85",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "f410fb4c2404475130e1a293e9dd6619",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "9326d4bc4859604e48c7f7e673880f1a",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "3a61d82f6d9a2f6fbda245d7cdab1bbd",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "95052b835c2bf55292f1982a1be2e54b",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "82265f3b1c5a4cbb44369ce37ed76ebd",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "47bd30d45ba7b779488e0435f0492dc1",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "4c049db7c0a8311852f742083e8df3ae",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.lib": "0016db9bd4fbf158d19f5a6e84aa2f74",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitGenericPlus.pdb": "40c9f4c7076ef9013dde9afd05d89b95",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.lib": "4e74f1959b833486aa1cee0affa1aaef",
|
||||
"build/prefab/lib/windows/Debug_Win32/BallisticaKitHeadlessPlus.pdb": "4e39a9a8222a683aa074a0698c26c498",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.lib": "9509a8782beb8fd0fc477d0afe3cc6c0",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitGenericPlus.pdb": "091fd49e9c75b202b4f481b65f91a100",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.lib": "87567923e411e713f82429f56abd9d84",
|
||||
"build/prefab/lib/windows/Release_Win32/BallisticaKitHeadlessPlus.pdb": "5e6707e7b299474ae4a43a1df2919a55",
|
||||
"src/assets/ba_data/python/babase/_mgen/__init__.py": "f885fed7f2ed98ff2ba271f9dbe3391c",
|
||||
"src/assets/ba_data/python/babase/_mgen/enums.py": "f8cd3af311ac63147882590123b78318",
|
||||
"src/ballistica/base/mgen/pyembed/binding_base.inc": "eeddad968b176000e31c65be6206a2bc",
|
||||
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@ -19,6 +19,7 @@ local.properties
|
||||
.mypy_cache
|
||||
.pytest_cache
|
||||
.mypy.ini
|
||||
.pyrightconfig.json
|
||||
.pycheckers
|
||||
.flycheck-dir-locals.el
|
||||
.pylintrc
|
||||
|
||||
1
.idea/dictionaries/ericf.xml
generated
1
.idea/dictionaries/ericf.xml
generated
@ -2385,6 +2385,7 @@
|
||||
<w>pyobjc</w>
|
||||
<w>pyoffs</w>
|
||||
<w>pypaths</w>
|
||||
<w>pyrightconfig</w>
|
||||
<w>pysitedir</w>
|
||||
<w>pysources</w>
|
||||
<w>pytest</w>
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
### 1.7.25 (build 21204, api 8, 2023-07-28)
|
||||
### 1.7.25 (build 21206, api 8, 2023-07-29)
|
||||
|
||||
- `getconfig` and `setconfig` in `efrotools` are now `getprojectconfig` and
|
||||
`setprojectconfig` (to reflect the file name changes that happened in 1.7.20).
|
||||
@ -47,7 +47,7 @@
|
||||
ourselves inside a standalone binary, is called 'monolithic'. To build and run
|
||||
Ballistica in modular form, you can do `make cmake-modular` or `make
|
||||
cmake-modular-server`. This should make it easier to use certain things like
|
||||
Python debuggers with Ballistica. While I expect most builds of the game to
|
||||
Python debuggers with Ballistica. While I expect most builds of the engine to
|
||||
remain monolithic, this may become the default for certain situations such as
|
||||
server builds or possibly Linux builds if it seems beneficial. We'll see.
|
||||
Modular mode should work on Linux and Mac currently; other platforms remain
|
||||
|
||||
12
Makefile
12
Makefile
@ -37,8 +37,9 @@ endif
|
||||
|
||||
# Prereq targets that should be safe to run anytime; even if project-files
|
||||
# are out of date.
|
||||
PREREQS_SAFE = .cache/checkenv .dir-locals.el .mypy.ini .pycheckers .pylintrc \
|
||||
.style.yapf .clang-format ballisticakit-cmake/.clang-format .editorconfig
|
||||
PREREQS_SAFE = .cache/checkenv .dir-locals.el .mypy.ini .pyrightconfig.json \
|
||||
.pycheckers .pylintrc .style.yapf .clang-format \
|
||||
ballisticakit-cmake/.clang-format .editorconfig
|
||||
|
||||
# Prereq targets that may break if the project needs updating should go here.
|
||||
# An example is compile-command-databases; these might try to run cmake and
|
||||
@ -798,6 +799,10 @@ dmypy: py_check_prereqs
|
||||
dmypy-stop: py_check_prereqs
|
||||
@tools/pcommand dmypy -stop
|
||||
|
||||
# Run Pyright checks on all Python code.
|
||||
pyright: py_check_prereqs
|
||||
@tools/pcommand pyright
|
||||
|
||||
# Run PyCharm checks on all Python code.
|
||||
pycharm: py_check_prereqs
|
||||
@tools/pcommand pycharm
|
||||
@ -1188,6 +1193,9 @@ ENV_SRC = tools/pcommand tools/batools/build.py
|
||||
.mypy.ini: config/toolconfigsrc/mypy.ini $(TOOL_CFG_SRC)
|
||||
@$(TOOL_CFG_INST) $< $@
|
||||
|
||||
.pyrightconfig.json: config/toolconfigsrc/pyrightconfig.json $(TOOL_CFG_SRC)
|
||||
@$(TOOL_CFG_INST) $< $@
|
||||
|
||||
.pycheckers: config/toolconfigsrc/pycheckers $(TOOL_CFG_SRC)
|
||||
@$(TOOL_CFG_INST) $< $@
|
||||
|
||||
|
||||
1
ballisticakit-cmake/.idea/dictionaries/ericf.xml
generated
1
ballisticakit-cmake/.idea/dictionaries/ericf.xml
generated
@ -1395,6 +1395,7 @@
|
||||
<w>pymodulenames</w>
|
||||
<w>pyobj</w>
|
||||
<w>pyobjs</w>
|
||||
<w>pyrightconfig</w>
|
||||
<w>pysitedir</w>
|
||||
<w>pythondevmode</w>
|
||||
<w>pythonenumsmodule</w>
|
||||
|
||||
@ -217,6 +217,7 @@ ctx.no_filter_file_names = {
|
||||
# ELSE files with these extensions WILL be filtered.
|
||||
ctx.filter_file_extensions = {
|
||||
'.py',
|
||||
'.pyi',
|
||||
'.md',
|
||||
'.cpp',
|
||||
'.cc',
|
||||
|
||||
9
config/toolconfigsrc/pyrightconfig.json
Normal file
9
config/toolconfigsrc/pyrightconfig.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"include": [
|
||||
"tools"
|
||||
],
|
||||
"typeCheckingMode": "basic",
|
||||
"reportMissingTypeStubs": true,
|
||||
"stubPath": "src/stubs",
|
||||
"pythonPlatform": "Linux"
|
||||
}
|
||||
@ -50,7 +50,7 @@ if TYPE_CHECKING:
|
||||
|
||||
# Build number and version of the ballistica binary we expect to be
|
||||
# using.
|
||||
TARGET_BALLISTICA_BUILD = 21204
|
||||
TARGET_BALLISTICA_BUILD = 21206
|
||||
TARGET_BALLISTICA_VERSION = '1.7.25'
|
||||
|
||||
|
||||
|
||||
@ -39,7 +39,7 @@ auto main(int argc, char** argv) -> int {
|
||||
namespace ballistica {
|
||||
|
||||
// These are set automatically via script; don't modify them here.
|
||||
const int kEngineBuildNumber = 21204;
|
||||
const int kEngineBuildNumber = 21206;
|
||||
const char* kEngineVersion = "1.7.25";
|
||||
|
||||
#if BA_MONOLITHIC_BUILD
|
||||
|
||||
@ -8,8 +8,9 @@
|
||||
|
||||
// Save/restore current command for logging/etc.
|
||||
// this isn't exception-safe, but we should never let
|
||||
// exceptions bubble up through python api calls anyway
|
||||
// exceptions bubble up through Python api calls anyway
|
||||
// or we'll have bigger problems on our hands.
|
||||
// FIXME: What about thread safety? Seems like this isn't.
|
||||
#define PUSH_PYCOMMAND(OBJ) \
|
||||
PythonCommand* prev_pycmd = current_command_; \
|
||||
current_command_ = OBJ
|
||||
@ -180,11 +181,8 @@ auto PythonCommand::Eval(bool print_errors, PyObject* globals, PyObject* locals)
|
||||
.Get();
|
||||
}
|
||||
|
||||
#pragma clang diagnostic push
|
||||
#pragma ide diagnostic ignored "RedundantCast"
|
||||
assert(PyDict_Check(globals));
|
||||
assert(PyDict_Check(locals));
|
||||
#pragma clang diagnostic pop
|
||||
|
||||
if (!eval_code_obj_.Get()) {
|
||||
CompileForEval(print_errors);
|
||||
|
||||
@ -15,11 +15,11 @@ namespace ballistica {
|
||||
// Note to self: Originally I though I'd be using this in a lot of places,
|
||||
// so I added the ability to compile once and run repeatedly, quietly
|
||||
// capture output instead of printing it, etc. Now, however, its usage is
|
||||
// pretty much limited to a few places such as handling stdin and the
|
||||
// in-app console. (Most places it is much cleaner to work with proper
|
||||
// python modules and just interact with PyObject* refs to them) I should
|
||||
// look and see if python's default high level calls would suffice for these
|
||||
// purposes and potentially kill this off.
|
||||
// pretty much limited to a few places such as handling stdin and the in-app
|
||||
// console. Most places it is much cleaner to work with proper python
|
||||
// modules and just interact with PyObject* refs to them. I should look and
|
||||
// see if Python's default high level calls would suffice for these purposes
|
||||
// and potentially kill this off.
|
||||
class PythonCommand {
|
||||
public:
|
||||
PythonCommand();
|
||||
@ -58,7 +58,7 @@ class PythonCommand {
|
||||
void CompileForEval(bool print_errors);
|
||||
|
||||
private:
|
||||
bool dead_ = false;
|
||||
bool dead_{};
|
||||
PythonRef file_code_obj_;
|
||||
PythonRef eval_code_obj_;
|
||||
std::string command_;
|
||||
|
||||
5
src/stubs/ansiwrap.pyi
Normal file
5
src/stubs/ansiwrap.pyi
Normal file
@ -0,0 +1,5 @@
|
||||
# Everything resolves to Any.
|
||||
from typing import Any
|
||||
|
||||
def __getattr__(name) -> Any:
|
||||
...
|
||||
5
src/stubs/astroid/__init__.pyi
Normal file
5
src/stubs/astroid/__init__.pyi
Normal file
@ -0,0 +1,5 @@
|
||||
# Everything resolves to Any.
|
||||
from typing import Any
|
||||
|
||||
def __getattr__(name) -> Any:
|
||||
...
|
||||
5
src/stubs/astroid/nodes.pyi
Normal file
5
src/stubs/astroid/nodes.pyi
Normal file
@ -0,0 +1,5 @@
|
||||
# Everything resolves to Any.
|
||||
from typing import Any
|
||||
|
||||
def __getattr__(name) -> Any:
|
||||
...
|
||||
5
src/stubs/openstep_parser.pyi
Normal file
5
src/stubs/openstep_parser.pyi
Normal file
@ -0,0 +1,5 @@
|
||||
# Everything resolves to Any.
|
||||
from typing import Any
|
||||
|
||||
def __getattr__(name) -> Any:
|
||||
...
|
||||
5
src/stubs/pbxproj/__init__.pyi
Normal file
5
src/stubs/pbxproj/__init__.pyi
Normal file
@ -0,0 +1,5 @@
|
||||
# Everything resolves to Any.
|
||||
from typing import Any
|
||||
|
||||
def __getattr__(name) -> Any:
|
||||
...
|
||||
5
src/stubs/pbxproj/pbxextensions.pyi
Normal file
5
src/stubs/pbxproj/pbxextensions.pyi
Normal file
@ -0,0 +1,5 @@
|
||||
# Everything resolves to Any.
|
||||
from typing import Any
|
||||
|
||||
def __getattr__(name) -> Any:
|
||||
...
|
||||
5
src/stubs/pylint.pyi
Normal file
5
src/stubs/pylint.pyi
Normal file
@ -0,0 +1,5 @@
|
||||
# Everything resolves to Any.
|
||||
from typing import Any
|
||||
|
||||
def __getattr__(name) -> Any:
|
||||
...
|
||||
@ -2,6 +2,8 @@
|
||||
#
|
||||
"""Documentation generation functionality."""
|
||||
|
||||
# pyright: reportPrivateImportUsage=false
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
|
||||
@ -972,7 +972,7 @@ def generate_dummy_modules(projroot: str) -> None:
|
||||
)
|
||||
print(
|
||||
f'{Clr.BLD}{Clr.BLU}Generated {gencount} dummy-modules'
|
||||
f' {Clr.RST}(in {builddir}){Clr.RST}{Clr.BLD}{Clr.BLU}.',
|
||||
f' {Clr.RST}(in {builddir}){Clr.RST}{Clr.BLD}{Clr.BLU}.{Clr.RST}',
|
||||
flush=True,
|
||||
)
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ import dataclasses
|
||||
import typing
|
||||
import types
|
||||
import datetime
|
||||
from typing import TYPE_CHECKING
|
||||
from typing import TYPE_CHECKING, cast, Any
|
||||
|
||||
from efro.util import check_utc
|
||||
from efro.dataclassio._base import (
|
||||
@ -29,7 +29,6 @@ from efro.dataclassio._base import (
|
||||
from efro.dataclassio._prep import PrepSession
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Any
|
||||
from efro.dataclassio._base import IOAttrs
|
||||
|
||||
|
||||
@ -302,7 +301,7 @@ class _Outputter:
|
||||
return self._process_dict(cls, fieldpath, anntype, value, ioattrs)
|
||||
|
||||
if dataclasses.is_dataclass(origin):
|
||||
if not isinstance(value, origin):
|
||||
if not isinstance(value, cast(Any, origin)):
|
||||
raise TypeError(
|
||||
f'Expected a {origin} for {fieldpath};'
|
||||
f' found a {type(value)}.'
|
||||
|
||||
@ -388,11 +388,11 @@ class LogHandler(logging.Handler):
|
||||
# warning log which results in another, etc.
|
||||
now = time.monotonic()
|
||||
# noinspection PyUnboundLocalVariable
|
||||
duration = now - starttime
|
||||
duration = now - starttime # pyright: ignore
|
||||
# noinspection PyUnboundLocalVariable
|
||||
format_duration = formattime - starttime
|
||||
format_duration = formattime - starttime # pyright: ignore
|
||||
# noinspection PyUnboundLocalVariable
|
||||
echo_duration = echotime - formattime
|
||||
echo_duration = echotime - formattime # pyright: ignore
|
||||
if duration > 0.05 and (
|
||||
self._last_slow_emit_warning_time is None
|
||||
or now > self._last_slow_emit_warning_time + 10.0
|
||||
|
||||
@ -572,7 +572,7 @@ def warm_start_cache() -> None:
|
||||
base_url = get_repository_base_url()
|
||||
local_cache_dir = get_local_cache_dir()
|
||||
|
||||
# We maintain a starter-cache on the staging server, which is simply
|
||||
# We maintain a starter archive on the staging server, which is simply
|
||||
# a set of commonly used recent cache entries compressed into a
|
||||
# single archive. If we have no local cache yet we can download and
|
||||
# expand this to give us a nice head start and greatly reduce the
|
||||
@ -580,7 +580,7 @@ def warm_start_cache() -> None:
|
||||
# single compressed archive is much more efficient than downloading
|
||||
# thousands)
|
||||
if not os.path.exists(local_cache_dir):
|
||||
print('Downloading efrocache starter-cache...', flush=True)
|
||||
print('Downloading efrocache starter-archive...', flush=True)
|
||||
|
||||
# Download and decompress the starter-cache into a temp dir
|
||||
# and then move it into place as our shiny new cache dir.
|
||||
|
||||
@ -37,7 +37,7 @@ class _FileBatchesRun:
|
||||
# pylint: disable=useless-suppression
|
||||
# pylint: disable=no-name-in-module, import-error
|
||||
# noinspection PyUnresolvedReferences
|
||||
from Cocoa import NSWorkspace
|
||||
from Cocoa import NSWorkspace # pyright: ignore
|
||||
|
||||
self._shared_nsworkspace = NSWorkspace.sharedWorkspace()
|
||||
# pylint: enable=useless-suppression
|
||||
@ -85,6 +85,7 @@ class _FileBatchesRun:
|
||||
# them out of the dir list we'll dive into and pass
|
||||
# them directly to our batch for processing.
|
||||
if self._include_mac_packages:
|
||||
assert self._shared_nsworkspace is not None
|
||||
for dirname in list(dirs):
|
||||
fullpath = os.path.join(root, dirname)
|
||||
if self._shared_nsworkspace.isFilePackageAtPath_(
|
||||
|
||||
@ -67,3 +67,20 @@ def openal_gather() -> None:
|
||||
raise CleanError('No args expected.')
|
||||
|
||||
gather()
|
||||
|
||||
|
||||
def pyright() -> None:
|
||||
"""Run Pyright checks on project Python code."""
|
||||
import subprocess
|
||||
|
||||
from efro.terminal import Clr
|
||||
|
||||
from efro.error import CleanError
|
||||
|
||||
print(f'{Clr.BLU}Running Pyright (experimental)...{Clr.RST}')
|
||||
try:
|
||||
subprocess.run(
|
||||
['pyright', '--project', '.pyrightconfig.json'], check=True
|
||||
)
|
||||
except Exception as exc:
|
||||
raise CleanError('Pyright failed.') from exc
|
||||
|
||||
@ -56,6 +56,7 @@ from efrotools.pcommand2 import (
|
||||
sortlines,
|
||||
openal_build_android,
|
||||
openal_gather,
|
||||
pyright,
|
||||
)
|
||||
from batools.pcommand import (
|
||||
resize_image,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user