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.
Files changed (148) hide show
  1. .dockerignore +5 -0
  2. .flake8 +3 -0
  3. .github/workflows/linux-portable.yml +76 -0
  4. .github/workflows/pypi-release.yml +88 -0
  5. .github/workflows/tests.yml +21 -0
  6. .gitignore +18 -0
  7. .pre-commit-config.yaml +5 -0
  8. LICENSE +674 -0
  9. PKG-INFO +136 -0
  10. README.md +104 -0
  11. assets/Overpass-Bold.ttf +0 -0
  12. assets/Overpass-Medium.ttf +0 -0
  13. assets/Overpass-Regular.ttf +0 -0
  14. assets/RobotoMono-Medium.ttf +0 -0
  15. assets/RobotoMono-Regular.ttf +0 -0
  16. assets/TFO_advanced.png +0 -0
  17. assets/TFO_elite.png +0 -0
  18. assets/TFO_normal.png +0 -0
  19. assets/check.svg +3 -0
  20. assets/chevron-down.svg +1 -0
  21. assets/chevron-right.svg +1 -0
  22. assets/cla_credit.svg +8 -0
  23. assets/clear-plot.svg +3 -0
  24. assets/close.svg +1 -0
  25. assets/collapse-bottom.svg +5 -0
  26. assets/collapse-left.svg +1 -0
  27. assets/collapse-right.svg +1 -0
  28. assets/collapse-top.svg +5 -0
  29. assets/copy.svg +1 -0
  30. assets/dash.svg +3 -0
  31. assets/edit.svg +1 -0
  32. assets/error.svg +4 -0
  33. assets/expand-bottom.svg +5 -0
  34. assets/expand-left.svg +1 -0
  35. assets/expand-right.svg +1 -0
  36. assets/expand-top.svg +5 -0
  37. assets/export.svg +1 -0
  38. assets/info.svg +5 -0
  39. assets/json.svg +3 -0
  40. assets/ladder.svg +4 -0
  41. assets/live-parser.svg +26 -0
  42. assets/oscr_icon_small.ico +0 -0
  43. assets/oscr_icon_small.png +0 -0
  44. assets/oscrbanner-slim-dark-label.png +0 -0
  45. assets/parser-active.svg +1 -0
  46. assets/parser-down.svg +23 -0
  47. assets/parser-ready.svg +1 -0
  48. assets/resize.svg +1 -0
  49. assets/section31badge.png +0 -0
  50. assets/snowflake.svg +25 -0
  51. assets/star_minus.svg +8 -0
  52. assets/star_plus.svg +8 -0
  53. assets/stobuildslogo.png +0 -0
  54. assets/thick-chevron-down.svg +1 -0
  55. assets/warning.svg +5 -0
  56. distribution/.gitignore +2 -0
  57. distribution/README.md +13 -0
  58. distribution/linux/README.md +40 -0
  59. distribution/linux/build_retro_escalation.sh +95 -0
  60. distribution/windows/README.md +24 -0
  61. distribution/windows/build_retro_escalation.ps1 +96 -0
  62. docs/CREDITS.md +21 -0
  63. docs/DEVELOPMENT.md +43 -0
  64. docs/PROJECT_SCOPE.md +242 -0
  65. docs/PYPI_RELEASES.md +34 -0
  66. docs/TESTING.md +202 -0
  67. docs/dedication_plaque.html +210 -0
  68. locales/de/LC_MESSAGES/messages.mo +0 -0
  69. locales/de/LC_MESSAGES/messages.po +694 -0
  70. locales/en/LC_MESSAGES/messages.mo +0 -0
  71. locales/en/LC_MESSAGES/messages.po +691 -0
  72. locales/fr/LC_MESSAGES/messages.mo +0 -0
  73. locales/fr/LC_MESSAGES/messages.po +695 -0
  74. locales/zh/LC_MESSAGES/messages.mo +0 -0
  75. locales/zh/LC_MESSAGES/messages.po +695 -0
  76. main.py +47 -0
  77. pyproject.toml +77 -0
  78. re_oscr/__init__.py +3 -0
  79. re_oscr/analysisgraphs.py +154 -0
  80. re_oscr/analysistables.py +394 -0
  81. re_oscr/apiclient.py +203 -0
  82. re_oscr/app.py +1006 -0
  83. re_oscr/appearance.py +61 -0
  84. re_oscr/config.py +232 -0
  85. re_oscr/console/__init__.py +10 -0
  86. re_oscr/console/components.py +188 -0
  87. re_oscr/console/tables.py +1947 -0
  88. re_oscr/console/tokens.py +809 -0
  89. re_oscr/datamodels.py +582 -0
  90. re_oscr/dedicationplaque.py +151 -0
  91. re_oscr/dialogs.py +481 -0
  92. re_oscr/iofunctions.py +105 -0
  93. re_oscr/leagueconnector.py +472 -0
  94. re_oscr/liveparser.py +375 -0
  95. re_oscr/parserbridge.py +539 -0
  96. re_oscr/shell.py +314 -0
  97. re_oscr/sidebar.py +449 -0
  98. re_oscr/splitdialog.py +180 -0
  99. re_oscr/statusbar.py +159 -0
  100. re_oscr/textedit.py +97 -0
  101. re_oscr/theme.py +945 -0
  102. re_oscr/themes/__init__.py +19 -0
  103. re_oscr/themes/command_console.py +61 -0
  104. re_oscr/themes/registry.py +100 -0
  105. re_oscr/translation.py +39 -0
  106. re_oscr/views/__init__.py +8 -0
  107. re_oscr/views/analysis.py +818 -0
  108. re_oscr/views/league.py +264 -0
  109. re_oscr/views/overview.py +329 -0
  110. re_oscr/views/settings.py +786 -0
  111. re_oscr/widgetbuilder.py +315 -0
  112. re_oscr/widgetmanager.py +301 -0
  113. re_oscr/widgets.py +581 -0
  114. re_oscr/workbench.py +1289 -0
  115. re_oscr/workbenchcontroller.py +807 -0
  116. re_oscr/workbenchruleeditor.py +345 -0
  117. re_oscr/workbenchrules.py +156 -0
  118. re_oscr-11.1.0.dev11.dist-info/METADATA +136 -0
  119. re_oscr-11.1.0.dev11.dist-info/RECORD +148 -0
  120. re_oscr-11.1.0.dev11.dist-info/WHEEL +4 -0
  121. re_oscr-11.1.0.dev11.dist-info/entry_points.txt +2 -0
  122. re_oscr-11.1.0.dev11.dist-info/licenses/LICENSE +674 -0
  123. retro_escalation.py +95 -0
  124. shell.nix +41 -0
  125. tests/__init__.py +1 -0
  126. tests/league_live_probe.py +113 -0
  127. tests/startup_probe.py +555 -0
  128. tests/test_analysis_display_lenses.py +53 -0
  129. tests/test_analysis_modified_copy.py +75 -0
  130. tests/test_analysis_plot_presentation.py +79 -0
  131. tests/test_analysis_tree_view.py +340 -0
  132. tests/test_config.py +173 -0
  133. tests/test_console_tables.py +384 -0
  134. tests/test_console_tokens.py +233 -0
  135. tests/test_dedication_plaque.py +53 -0
  136. tests/test_league_command_state.py +39 -0
  137. tests/test_league_downloads.py +124 -0
  138. tests/test_league_standings_table.py +67 -0
  139. tests/test_parserbridge_analysis_refresh.py +73 -0
  140. tests/test_portable_launcher.py +76 -0
  141. tests/test_product_identity.py +39 -0
  142. tests/test_startup.py +102 -0
  143. tests/test_theme.py +119 -0
  144. tests/test_workbench.py +908 -0
  145. tests/test_workbench_controller.py +855 -0
  146. tests/test_workbench_league_isolation.py +182 -0
  147. tests/test_workbench_rules.py +161 -0
  148. theme_assets/command_console/.gitkeep +1 -0
.dockerignore ADDED
@@ -0,0 +1,5 @@
1
+ .*
2
+ build
3
+ dist
4
+ __pycache__
5
+ distribution/arch
.flake8 ADDED
@@ -0,0 +1,3 @@
1
+ [flake8]
2
+ ignore=E501,F401,E126,W503
3
+ max-line-length = 100
@@ -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
@@ -0,0 +1,18 @@
1
+ *.AppImage
2
+ *.deb
3
+ *.desktop
4
+ *.spec
5
+ *.tar.gz
6
+ *.tgz
7
+ *.zip
8
+ *.zst
9
+ .artifacts
10
+ .idea
11
+ .python-version
12
+ .re-oscr-settings
13
+ .venv
14
+ __pycache__
15
+ build
16
+ dist
17
+ pkg/
18
+ src/
@@ -0,0 +1,5 @@
1
+ repos:
2
+ - repo: https://github.com/PyCQA/flake8.git
3
+ rev: 6.1.0
4
+ hooks:
5
+ - id: flake8