RE-OSCR 11.1.0.dev11__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- .dockerignore +5 -0
- .flake8 +3 -0
- .github/workflows/linux-portable.yml +76 -0
- .github/workflows/pypi-release.yml +88 -0
- .github/workflows/tests.yml +21 -0
- .gitignore +18 -0
- .pre-commit-config.yaml +5 -0
- LICENSE +674 -0
- PKG-INFO +136 -0
- README.md +104 -0
- assets/Overpass-Bold.ttf +0 -0
- assets/Overpass-Medium.ttf +0 -0
- assets/Overpass-Regular.ttf +0 -0
- assets/RobotoMono-Medium.ttf +0 -0
- assets/RobotoMono-Regular.ttf +0 -0
- assets/TFO_advanced.png +0 -0
- assets/TFO_elite.png +0 -0
- assets/TFO_normal.png +0 -0
- assets/check.svg +3 -0
- assets/chevron-down.svg +1 -0
- assets/chevron-right.svg +1 -0
- assets/cla_credit.svg +8 -0
- assets/clear-plot.svg +3 -0
- assets/close.svg +1 -0
- assets/collapse-bottom.svg +5 -0
- assets/collapse-left.svg +1 -0
- assets/collapse-right.svg +1 -0
- assets/collapse-top.svg +5 -0
- assets/copy.svg +1 -0
- assets/dash.svg +3 -0
- assets/edit.svg +1 -0
- assets/error.svg +4 -0
- assets/expand-bottom.svg +5 -0
- assets/expand-left.svg +1 -0
- assets/expand-right.svg +1 -0
- assets/expand-top.svg +5 -0
- assets/export.svg +1 -0
- assets/info.svg +5 -0
- assets/json.svg +3 -0
- assets/ladder.svg +4 -0
- assets/live-parser.svg +26 -0
- assets/oscr_icon_small.ico +0 -0
- assets/oscr_icon_small.png +0 -0
- assets/oscrbanner-slim-dark-label.png +0 -0
- assets/parser-active.svg +1 -0
- assets/parser-down.svg +23 -0
- assets/parser-ready.svg +1 -0
- assets/resize.svg +1 -0
- assets/section31badge.png +0 -0
- assets/snowflake.svg +25 -0
- assets/star_minus.svg +8 -0
- assets/star_plus.svg +8 -0
- assets/stobuildslogo.png +0 -0
- assets/thick-chevron-down.svg +1 -0
- assets/warning.svg +5 -0
- distribution/.gitignore +2 -0
- distribution/README.md +13 -0
- distribution/linux/README.md +40 -0
- distribution/linux/build_retro_escalation.sh +95 -0
- distribution/windows/README.md +24 -0
- distribution/windows/build_retro_escalation.ps1 +96 -0
- docs/CREDITS.md +21 -0
- docs/DEVELOPMENT.md +43 -0
- docs/PROJECT_SCOPE.md +242 -0
- docs/PYPI_RELEASES.md +34 -0
- docs/TESTING.md +202 -0
- docs/dedication_plaque.html +210 -0
- locales/de/LC_MESSAGES/messages.mo +0 -0
- locales/de/LC_MESSAGES/messages.po +694 -0
- locales/en/LC_MESSAGES/messages.mo +0 -0
- locales/en/LC_MESSAGES/messages.po +691 -0
- locales/fr/LC_MESSAGES/messages.mo +0 -0
- locales/fr/LC_MESSAGES/messages.po +695 -0
- locales/zh/LC_MESSAGES/messages.mo +0 -0
- locales/zh/LC_MESSAGES/messages.po +695 -0
- main.py +47 -0
- pyproject.toml +77 -0
- re_oscr/__init__.py +3 -0
- re_oscr/analysisgraphs.py +154 -0
- re_oscr/analysistables.py +394 -0
- re_oscr/apiclient.py +203 -0
- re_oscr/app.py +1006 -0
- re_oscr/appearance.py +61 -0
- re_oscr/config.py +232 -0
- re_oscr/console/__init__.py +10 -0
- re_oscr/console/components.py +188 -0
- re_oscr/console/tables.py +1947 -0
- re_oscr/console/tokens.py +809 -0
- re_oscr/datamodels.py +582 -0
- re_oscr/dedicationplaque.py +151 -0
- re_oscr/dialogs.py +481 -0
- re_oscr/iofunctions.py +105 -0
- re_oscr/leagueconnector.py +472 -0
- re_oscr/liveparser.py +375 -0
- re_oscr/parserbridge.py +539 -0
- re_oscr/shell.py +314 -0
- re_oscr/sidebar.py +449 -0
- re_oscr/splitdialog.py +180 -0
- re_oscr/statusbar.py +159 -0
- re_oscr/textedit.py +97 -0
- re_oscr/theme.py +945 -0
- re_oscr/themes/__init__.py +19 -0
- re_oscr/themes/command_console.py +61 -0
- re_oscr/themes/registry.py +100 -0
- re_oscr/translation.py +39 -0
- re_oscr/views/__init__.py +8 -0
- re_oscr/views/analysis.py +818 -0
- re_oscr/views/league.py +264 -0
- re_oscr/views/overview.py +329 -0
- re_oscr/views/settings.py +786 -0
- re_oscr/widgetbuilder.py +315 -0
- re_oscr/widgetmanager.py +301 -0
- re_oscr/widgets.py +581 -0
- re_oscr/workbench.py +1289 -0
- re_oscr/workbenchcontroller.py +807 -0
- re_oscr/workbenchruleeditor.py +345 -0
- re_oscr/workbenchrules.py +156 -0
- re_oscr-11.1.0.dev11.dist-info/METADATA +136 -0
- re_oscr-11.1.0.dev11.dist-info/RECORD +148 -0
- re_oscr-11.1.0.dev11.dist-info/WHEEL +4 -0
- re_oscr-11.1.0.dev11.dist-info/entry_points.txt +2 -0
- re_oscr-11.1.0.dev11.dist-info/licenses/LICENSE +674 -0
- retro_escalation.py +95 -0
- shell.nix +41 -0
- tests/__init__.py +1 -0
- tests/league_live_probe.py +113 -0
- tests/startup_probe.py +555 -0
- tests/test_analysis_display_lenses.py +53 -0
- tests/test_analysis_modified_copy.py +75 -0
- tests/test_analysis_plot_presentation.py +79 -0
- tests/test_analysis_tree_view.py +340 -0
- tests/test_config.py +173 -0
- tests/test_console_tables.py +384 -0
- tests/test_console_tokens.py +233 -0
- tests/test_dedication_plaque.py +53 -0
- tests/test_league_command_state.py +39 -0
- tests/test_league_downloads.py +124 -0
- tests/test_league_standings_table.py +67 -0
- tests/test_parserbridge_analysis_refresh.py +73 -0
- tests/test_portable_launcher.py +76 -0
- tests/test_product_identity.py +39 -0
- tests/test_startup.py +102 -0
- tests/test_theme.py +119 -0
- tests/test_workbench.py +908 -0
- tests/test_workbench_controller.py +855 -0
- tests/test_workbench_league_isolation.py +182 -0
- tests/test_workbench_rules.py +161 -0
- theme_assets/command_console/.gitkeep +1 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
name: Linux portable build
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- retro-escalation
|
|
8
|
+
paths:
|
|
9
|
+
- ".github/workflows/linux-portable.yml"
|
|
10
|
+
- "assets/**"
|
|
11
|
+
- "distribution/linux/**"
|
|
12
|
+
- "docs/TESTING.md"
|
|
13
|
+
- "locales/**"
|
|
14
|
+
- "main.py"
|
|
15
|
+
- "pyproject.toml"
|
|
16
|
+
- "re_oscr/**"
|
|
17
|
+
- "retro_escalation.py"
|
|
18
|
+
- "tests/**"
|
|
19
|
+
- "theme_assets/**"
|
|
20
|
+
|
|
21
|
+
permissions:
|
|
22
|
+
contents: read
|
|
23
|
+
|
|
24
|
+
jobs:
|
|
25
|
+
linux-x86-64:
|
|
26
|
+
runs-on: ubuntu-22.04
|
|
27
|
+
timeout-minutes: 30
|
|
28
|
+
env:
|
|
29
|
+
QT_QPA_PLATFORM: offscreen
|
|
30
|
+
|
|
31
|
+
steps:
|
|
32
|
+
- uses: actions/checkout@v4
|
|
33
|
+
|
|
34
|
+
- uses: actions/setup-python@v5
|
|
35
|
+
with:
|
|
36
|
+
python-version: "3.13"
|
|
37
|
+
cache: pip
|
|
38
|
+
|
|
39
|
+
- name: Install Linux desktop runtime libraries
|
|
40
|
+
run: |
|
|
41
|
+
sudo apt-get update
|
|
42
|
+
sudo apt-get install --yes libegl1 libgl1 libxkbcommon-x11-0 libxcb-cursor0
|
|
43
|
+
|
|
44
|
+
- name: Install application and packager
|
|
45
|
+
run: |
|
|
46
|
+
python -m venv .venv
|
|
47
|
+
.venv/bin/python -m pip install --upgrade pip
|
|
48
|
+
.venv/bin/python -m pip install -e ".[pyinst]"
|
|
49
|
+
|
|
50
|
+
- name: Run regression tests
|
|
51
|
+
run: .venv/bin/python -m unittest discover -s tests -v
|
|
52
|
+
|
|
53
|
+
- name: Build portable archive
|
|
54
|
+
run: |
|
|
55
|
+
chmod +x distribution/linux/build_retro_escalation.sh
|
|
56
|
+
distribution/linux/build_retro_escalation.sh \
|
|
57
|
+
--output-root .artifacts/linux-package \
|
|
58
|
+
--package
|
|
59
|
+
|
|
60
|
+
- name: Verify packaged startup
|
|
61
|
+
run: |
|
|
62
|
+
config_dir="$(mktemp -d)"
|
|
63
|
+
trap 'rm -rf "$config_dir"' EXIT
|
|
64
|
+
.artifacts/linux-package/RE-OSCR/RE-OSCR \
|
|
65
|
+
--config_dir "$config_dir" \
|
|
66
|
+
--startup-check
|
|
67
|
+
|
|
68
|
+
- name: Upload Linux tester package
|
|
69
|
+
uses: actions/upload-artifact@v4
|
|
70
|
+
with:
|
|
71
|
+
name: RE-OSCR-${{ github.sha }}-linux-x86_64
|
|
72
|
+
if-no-files-found: error
|
|
73
|
+
retention-days: 14
|
|
74
|
+
path: |
|
|
75
|
+
.artifacts/linux-package/*.tar.gz
|
|
76
|
+
.artifacts/linux-package/*.sha256
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
name: Publish PyPI release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
tags:
|
|
7
|
+
- "v*"
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
test:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
env:
|
|
16
|
+
QT_QPA_PLATFORM: offscreen
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
- uses: actions/setup-python@v5
|
|
20
|
+
with:
|
|
21
|
+
python-version: "3.13"
|
|
22
|
+
cache: pip
|
|
23
|
+
- name: Install Qt runtime libraries
|
|
24
|
+
run: |
|
|
25
|
+
sudo apt-get update
|
|
26
|
+
sudo apt-get install --yes libegl1 libgl1 libxkbcommon-x11-0 libxcb-cursor0
|
|
27
|
+
- name: Install application
|
|
28
|
+
run: python -m pip install .
|
|
29
|
+
- name: Run regression tests
|
|
30
|
+
run: python -m unittest discover -s tests -v
|
|
31
|
+
|
|
32
|
+
build:
|
|
33
|
+
needs: test
|
|
34
|
+
runs-on: ubuntu-latest
|
|
35
|
+
steps:
|
|
36
|
+
- uses: actions/checkout@v4
|
|
37
|
+
- uses: actions/setup-python@v5
|
|
38
|
+
with:
|
|
39
|
+
python-version: "3.13"
|
|
40
|
+
- name: Verify tagged release version
|
|
41
|
+
if: github.ref_type == 'tag'
|
|
42
|
+
env:
|
|
43
|
+
TAG_VERSION: ${{ github.ref_name }}
|
|
44
|
+
run: |
|
|
45
|
+
expected="${TAG_VERSION#v}"
|
|
46
|
+
actual="$(python - <<'PY'
|
|
47
|
+
import re
|
|
48
|
+
from pathlib import Path
|
|
49
|
+
|
|
50
|
+
source = Path("retro_escalation.py").read_text(encoding="utf-8")
|
|
51
|
+
match = re.search(r"__version__ = '([^']+)'", source)
|
|
52
|
+
if match is None:
|
|
53
|
+
raise SystemExit("Could not find the application version")
|
|
54
|
+
print(match.group(1))
|
|
55
|
+
PY
|
|
56
|
+
)"
|
|
57
|
+
test "$actual" = "$expected"
|
|
58
|
+
case "$actual" in *+*) echo "PyPI releases cannot use a local version label"; exit 1;; esac
|
|
59
|
+
- name: Build source and wheel distributions
|
|
60
|
+
run: |
|
|
61
|
+
python -m pip install --upgrade build
|
|
62
|
+
python -m build
|
|
63
|
+
- name: Validate package metadata
|
|
64
|
+
run: |
|
|
65
|
+
python -m pip install --upgrade twine
|
|
66
|
+
python -m twine check dist/*
|
|
67
|
+
- uses: actions/upload-artifact@v4
|
|
68
|
+
with:
|
|
69
|
+
name: python-distributions
|
|
70
|
+
if-no-files-found: error
|
|
71
|
+
path: dist/
|
|
72
|
+
|
|
73
|
+
publish:
|
|
74
|
+
needs: build
|
|
75
|
+
if: github.ref_type == 'tag' && startsWith(github.ref_name, 'v')
|
|
76
|
+
runs-on: ubuntu-latest
|
|
77
|
+
environment:
|
|
78
|
+
name: pypi
|
|
79
|
+
url: https://pypi.org/project/re-oscr/
|
|
80
|
+
permissions:
|
|
81
|
+
id-token: write
|
|
82
|
+
steps:
|
|
83
|
+
- uses: actions/download-artifact@v4
|
|
84
|
+
with:
|
|
85
|
+
name: python-distributions
|
|
86
|
+
path: dist/
|
|
87
|
+
- name: Publish distributions to PyPI
|
|
88
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Baseline tests
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
pull_request:
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
windows:
|
|
9
|
+
runs-on: windows-latest
|
|
10
|
+
env:
|
|
11
|
+
QT_QPA_PLATFORM: offscreen
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
- uses: actions/setup-python@v5
|
|
15
|
+
with:
|
|
16
|
+
python-version: "3.13"
|
|
17
|
+
cache: pip
|
|
18
|
+
- name: Install application
|
|
19
|
+
run: python -m pip install .
|
|
20
|
+
- name: Run baseline tests
|
|
21
|
+
run: python -m unittest discover -s tests -v
|
.gitignore
ADDED