ragger 1.40.0__tar.gz → 1.40.2__tar.gz

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 (166) hide show
  1. {ragger-1.40.0 → ragger-1.40.2}/CHANGELOG.md +12 -0
  2. {ragger-1.40.0/src/ragger.egg-info → ragger-1.40.2}/PKG-INFO +1 -1
  3. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/__version__.py +3 -3
  4. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/firmware/touch/positions.py +289 -7
  5. {ragger-1.40.0 → ragger-1.40.2/src/ragger.egg-info}/PKG-INFO +1 -1
  6. {ragger-1.40.0 → ragger-1.40.2}/.codeql-config.yaml +0 -0
  7. {ragger-1.40.0 → ragger-1.40.2}/.gitattributes +0 -0
  8. {ragger-1.40.0 → ragger-1.40.2}/.github/workflows/build_and_tests.yml +0 -0
  9. {ragger-1.40.0 → ragger-1.40.2}/.github/workflows/codeql-analysis.yml +0 -0
  10. {ragger-1.40.0 → ragger-1.40.2}/.github/workflows/documentation.yml +0 -0
  11. {ragger-1.40.0 → ragger-1.40.2}/.github/workflows/fast-checks.yml +0 -0
  12. {ragger-1.40.0 → ragger-1.40.2}/.github/workflows/force-rebase.yml +0 -0
  13. {ragger-1.40.0 → ragger-1.40.2}/.gitignore +0 -0
  14. {ragger-1.40.0 → ragger-1.40.2}/LICENSE +0 -0
  15. {ragger-1.40.0 → ragger-1.40.2}/MANIFEST.in +0 -0
  16. {ragger-1.40.0 → ragger-1.40.2}/README.md +0 -0
  17. {ragger-1.40.0 → ragger-1.40.2}/doc/Makefile +0 -0
  18. {ragger-1.40.0 → ragger-1.40.2}/doc/_static/layout.css +0 -0
  19. {ragger-1.40.0 → ragger-1.40.2}/doc/_templates/layout.html +0 -0
  20. {ragger-1.40.0 → ragger-1.40.2}/doc/architecture.rst +0 -0
  21. {ragger-1.40.0 → ragger-1.40.2}/doc/conf.py +0 -0
  22. {ragger-1.40.0 → ragger-1.40.2}/doc/faq.rst +0 -0
  23. {ragger-1.40.0 → ragger-1.40.2}/doc/glossary.rst +0 -0
  24. {ragger-1.40.0 → ragger-1.40.2}/doc/images/navigate.draw +0 -0
  25. {ragger-1.40.0 → ragger-1.40.2}/doc/images/navigate.svg +0 -0
  26. {ragger-1.40.0 → ragger-1.40.2}/doc/images/ragger.png +0 -0
  27. {ragger-1.40.0 → ragger-1.40.2}/doc/images/stax_infos.png +0 -0
  28. {ragger-1.40.0 → ragger-1.40.2}/doc/images/stax_welcome.png +0 -0
  29. {ragger-1.40.0 → ragger-1.40.2}/doc/images/usage.draw +0 -0
  30. {ragger-1.40.0 → ragger-1.40.2}/doc/images/usage.svg +0 -0
  31. {ragger-1.40.0 → ragger-1.40.2}/doc/index.rst +0 -0
  32. {ragger-1.40.0 → ragger-1.40.2}/doc/installation.rst +0 -0
  33. {ragger-1.40.0 → ragger-1.40.2}/doc/rationale.rst +0 -0
  34. {ragger-1.40.0 → ragger-1.40.2}/doc/source.rst +0 -0
  35. {ragger-1.40.0 → ragger-1.40.2}/doc/tutorial.rst +0 -0
  36. {ragger-1.40.0 → ragger-1.40.2}/doc/tutorial_conftest.rst +0 -0
  37. {ragger-1.40.0 → ragger-1.40.2}/doc/tutorial_installation.rst +0 -0
  38. {ragger-1.40.0 → ragger-1.40.2}/doc/tutorial_screen.rst +0 -0
  39. {ragger-1.40.0 → ragger-1.40.2}/ledger_app.toml +0 -0
  40. {ragger-1.40.0 → ragger-1.40.2}/pyproject.toml +0 -0
  41. {ragger-1.40.0 → ragger-1.40.2}/setup.cfg +0 -0
  42. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/__init__.py +0 -0
  43. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/backend/__init__.py +0 -0
  44. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/backend/interface.py +0 -0
  45. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/backend/ledgercomm.py +0 -0
  46. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/backend/ledgerwallet.py +0 -0
  47. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/backend/physical_backend.py +0 -0
  48. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/backend/speculos.py +0 -0
  49. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/backend/stub.py +0 -0
  50. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/bip/__init__.py +0 -0
  51. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/bip/path.py +0 -0
  52. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/bip/seed.py +0 -0
  53. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/conftest/__init__.py +0 -0
  54. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/conftest/base_conftest.py +0 -0
  55. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/conftest/configuration.py +0 -0
  56. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/error.py +0 -0
  57. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/firmware/__init__.py +0 -0
  58. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/firmware/structs.py +0 -0
  59. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/firmware/touch/__init__.py +0 -0
  60. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/firmware/touch/element.py +0 -0
  61. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/firmware/touch/layouts.py +0 -0
  62. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/firmware/touch/screen.py +0 -0
  63. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/firmware/touch/use_cases.py +0 -0
  64. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/__init__.py +0 -0
  65. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/nanos_body.png +0 -0
  66. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/nanos_leftbutton.png +0 -0
  67. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/nanos_rightbutton.png +0 -0
  68. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/nanosp_body.png +0 -0
  69. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/nanosp_leftbutton.png +0 -0
  70. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/nanosp_rightbutton.png +0 -0
  71. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/nanox_body.png +0 -0
  72. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/nanox_leftbutton.png +0 -0
  73. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/nanox_rightbutton.png +0 -0
  74. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/stax_body.png +0 -0
  75. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/swipe_left_action.png +0 -0
  76. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/swipe_right_action.png +0 -0
  77. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/assets/touch_action.png +0 -0
  78. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/interface.py +0 -0
  79. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/gui/process.py +0 -0
  80. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/logger.py +0 -0
  81. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/navigator/__init__.py +0 -0
  82. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/navigator/instruction.py +0 -0
  83. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/navigator/nano_navigator.py +0 -0
  84. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/navigator/navigation_scenario.py +0 -0
  85. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/navigator/navigator.py +0 -0
  86. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/navigator/touch_navigator.py +0 -0
  87. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/py.typed +0 -0
  88. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/utils/__init__.py +0 -0
  89. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/utils/misc.py +0 -0
  90. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/utils/packing.py +0 -0
  91. {ragger-1.40.0 → ragger-1.40.2}/src/ragger/utils/structs.py +0 -0
  92. {ragger-1.40.0 → ragger-1.40.2}/src/ragger.egg-info/SOURCES.txt +0 -0
  93. {ragger-1.40.0 → ragger-1.40.2}/src/ragger.egg-info/dependency_links.txt +0 -0
  94. {ragger-1.40.0 → ragger-1.40.2}/src/ragger.egg-info/requires.txt +0 -0
  95. {ragger-1.40.0 → ragger-1.40.2}/src/ragger.egg-info/top_level.txt +0 -0
  96. {ragger-1.40.0 → ragger-1.40.2}/template/.dispatch_to_your_test_folder +0 -0
  97. {ragger-1.40.0 → ragger-1.40.2}/template/conftest.py +0 -0
  98. {ragger-1.40.0 → ragger-1.40.2}/template/usage.md +0 -0
  99. {ragger-1.40.0 → ragger-1.40.2}/tests/__init__.py +0 -0
  100. {ragger-1.40.0 → ragger-1.40.2}/tests/functional/__init__.py +0 -0
  101. {ragger-1.40.0 → ragger-1.40.2}/tests/functional/backend/__init__.py +0 -0
  102. {ragger-1.40.0 → ragger-1.40.2}/tests/functional/backend/test_speculos.py +0 -0
  103. {ragger-1.40.0 → ragger-1.40.2}/tests/functional/conftest.py +0 -0
  104. {ragger-1.40.0 → ragger-1.40.2}/tests/functional/navigator/__init__.py +0 -0
  105. {ragger-1.40.0 → ragger-1.40.2}/tests/functional/navigator/test_navigator.py +0 -0
  106. {ragger-1.40.0 → ragger-1.40.2}/tests/functional/test_boilerplate.py +0 -0
  107. {ragger-1.40.0 → ragger-1.40.2}/tests/pytest.ini +0 -0
  108. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/flex/waiting_screen/00000.png +0 -0
  109. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/flex/waiting_screen/00001.png +0 -0
  110. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/flex/waiting_screen/00002.png +0 -0
  111. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/flex/waiting_screen/00003.png +0 -0
  112. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/flex/waiting_screen/00004.png +0 -0
  113. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/generic/00000.png +0 -0
  114. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/generic/00001.png +0 -0
  115. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/generic/00002.png +0 -0
  116. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/generic/00003.png +0 -0
  117. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/generic/00004.png +0 -0
  118. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare/00000.png +0 -0
  119. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare/00001.png +0 -0
  120. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare/00002.png +0 -0
  121. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare/00003.png +0 -0
  122. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare/00004.png +0 -0
  123. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare/00005.png +0 -0
  124. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare/00006.png +0 -0
  125. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare/00007.png +0 -0
  126. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare_no_golden/00000.png +0 -0
  127. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare_wrong_golden/00000.png +0 -0
  128. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_and_compare_wrong_golden/00001.png +0 -0
  129. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_until_text_and_compare/00000.png +0 -0
  130. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_until_text_and_compare/00001.png +0 -0
  131. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_until_text_and_compare/00002.png +0 -0
  132. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/nanos/test_navigate_until_text_and_compare/00003.png +0 -0
  133. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/stax/waiting_screen/00000.png +0 -0
  134. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/stax/waiting_screen/00001.png +0 -0
  135. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/stax/waiting_screen/00002.png +0 -0
  136. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/stax/waiting_screen/00003.png +0 -0
  137. {ragger-1.40.0 → ragger-1.40.2}/tests/snapshots/stax/waiting_screen/00004.png +0 -0
  138. {ragger-1.40.0 → ragger-1.40.2}/tests/stubs.py +0 -0
  139. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/__init__.py +0 -0
  140. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/backend/__init__.py +0 -0
  141. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/backend/test_interface.py +0 -0
  142. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/backend/test_ledgercomm.py +0 -0
  143. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/backend/test_ledgerwallet.py +0 -0
  144. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/backend/test_physical_backend.py +0 -0
  145. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/backend/test_speculos.py +0 -0
  146. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/backend/test_stub.py +0 -0
  147. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/bip/test_path.py +0 -0
  148. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/bip/test_seed.py +0 -0
  149. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/conftests/__init__.py +0 -0
  150. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/conftests/test_base_conftest.py +0 -0
  151. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/firmware/test_structs_Firmware.py +0 -0
  152. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/firmware/touch/test_element.py +0 -0
  153. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/firmware/touch/test_screen_FullScreen.py +0 -0
  154. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/firmware/touch/test_screen_MetaScreen.py +0 -0
  155. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/helpers.py +0 -0
  156. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/navigator/__init__.py +0 -0
  157. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/navigator/test_nano_navigator.py +0 -0
  158. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/navigator/test_navigation_scenario.py +0 -0
  159. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/navigator/test_navigator.py +0 -0
  160. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/navigator/test_touch_navigator.py +0 -0
  161. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/test_error_ApplicationError.py +0 -0
  162. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/utils/__init__.py +0 -0
  163. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/utils/test_misc.py +0 -0
  164. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/utils/test_packing.py +0 -0
  165. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/utils/test_path.py +0 -0
  166. {ragger-1.40.0 → ragger-1.40.2}/tests/unit/utils/test_structs.py +0 -0
@@ -5,6 +5,18 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.40.2] - 2025-09-09
9
+
10
+ ### Fixed
11
+
12
+ - Fix APEX keyboards positions
13
+
14
+ ## [1.40.1] - 2025-09-03
15
+
16
+ ### Fixed
17
+
18
+ - Fix APEX BUTTON_LOWER_LEFT coordinates
19
+
8
20
  ## [1.40.0] - 2025-08-01
9
21
 
10
22
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ragger
3
- Version: 1.40.0
3
+ Version: 1.40.2
4
4
  Summary: Testing framework using Speculos and LedgerComm as backends
5
5
  Author-email: Ledger <hello@ledger.fr>
6
6
  Project-URL: Homepage, https://github.com/LedgerHQ/ragger
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
28
28
  commit_id: COMMIT_ID
29
29
  __commit_id__: COMMIT_ID
30
30
 
31
- __version__ = version = '1.40.0'
32
- __version_tuple__ = version_tuple = (1, 40, 0)
31
+ __version__ = version = '1.40.2'
32
+ __version_tuple__ = version_tuple = (1, 40, 2)
33
33
 
34
- __commit_id__ = commit_id = 'g3d7c1dd19'
34
+ __commit_id__ = commit_id = 'g178742d51'
@@ -55,8 +55,8 @@ APEX_M_BUTTON_UPPER_RIGHT = Position(256, 43)
55
55
 
56
56
  STAX_BUTTON_LOWER_LEFT = Position(36, 606)
57
57
  FLEX_BUTTON_LOWER_LEFT = Position(55, 530)
58
- APEX_P_BUTTON_LOWER_LEFT = Position(56, 370)
59
- APEX_M_BUTTON_LOWER_LEFT = Position(56, 370)
58
+ APEX_P_BUTTON_LOWER_LEFT = Position(50, 370)
59
+ APEX_M_BUTTON_LOWER_LEFT = Position(50, 370)
60
60
 
61
61
  STAX_BUTTON_LOWER_MIDDLE = Position(STAX_X_CENTER, 606)
62
62
  FLEX_BUTTON_LOWER_MIDDLE = Position(FLEX_X_CENTER, 550)
@@ -125,7 +125,7 @@ POSITIONS = {
125
125
  # indexes for left to right, from up to down
126
126
  1: Position(100, 280),
127
127
  2: Position(290, 280),
128
- 3: Position(110, 350),
128
+ 3: Position(100, 350),
129
129
  4: Position(290, 350),
130
130
  },
131
131
  DeviceType.FLEX: {
@@ -134,6 +134,16 @@ POSITIONS = {
134
134
  1: Position(140, 300),
135
135
  2: Position(350, 300),
136
136
  },
137
+ DeviceType.APEX_P: {
138
+ # On Apex, suggestions are on a single line
139
+ 1: Position(80, 190),
140
+ 2: Position(220, 300),
141
+ },
142
+ DeviceType.APEX_M: {
143
+ # On Apex, suggestions are on a single line
144
+ 1: Position(80, 190),
145
+ 2: Position(220, 300),
146
+ },
137
147
  },
138
148
  "LetterOnlyKeyboard": {
139
149
  DeviceType.STAX: {
@@ -199,7 +209,71 @@ POSITIONS = {
199
209
  "n": Position(264, 565),
200
210
  "m": Position(312, 565),
201
211
  "back": Position(400, 565),
202
- }
212
+ },
213
+ DeviceType.APEX_P: {
214
+ # first line
215
+ "q": Position(15, 270),
216
+ "w": Position(45, 270),
217
+ "e": Position(75, 270),
218
+ "r": Position(105, 270),
219
+ "t": Position(135, 270),
220
+ "y": Position(165, 270),
221
+ "u": Position(195, 270),
222
+ "i": Position(225, 270),
223
+ "o": Position(255, 270),
224
+ "p": Position(285, 270),
225
+ # second line
226
+ "a": Position(30, 320),
227
+ "s": Position(60, 320),
228
+ "d": Position(90, 320),
229
+ "f": Position(120, 320),
230
+ "g": Position(150, 320),
231
+ "h": Position(180, 320),
232
+ "j": Position(210, 320),
233
+ "k": Position(240, 320),
234
+ "l": Position(270, 320),
235
+ # third and last line
236
+ "z": Position(15, 370),
237
+ "x": Position(45, 370),
238
+ "c": Position(75, 370),
239
+ "v": Position(105, 370),
240
+ "b": Position(135, 370),
241
+ "n": Position(165, 370),
242
+ "m": Position(195, 370),
243
+ "back": Position(255, 370),
244
+ },
245
+ DeviceType.APEX_M: {
246
+ # first line
247
+ "q": Position(15, 270),
248
+ "w": Position(45, 270),
249
+ "e": Position(75, 270),
250
+ "r": Position(105, 270),
251
+ "t": Position(135, 270),
252
+ "y": Position(165, 270),
253
+ "u": Position(195, 270),
254
+ "i": Position(225, 270),
255
+ "o": Position(255, 270),
256
+ "p": Position(285, 270),
257
+ # second line
258
+ "a": Position(30, 320),
259
+ "s": Position(60, 320),
260
+ "d": Position(90, 320),
261
+ "f": Position(120, 320),
262
+ "g": Position(150, 320),
263
+ "h": Position(180, 320),
264
+ "j": Position(210, 320),
265
+ "k": Position(240, 320),
266
+ "l": Position(270, 320),
267
+ # third and last line
268
+ "z": Position(15, 370),
269
+ "x": Position(45, 370),
270
+ "c": Position(75, 370),
271
+ "v": Position(105, 370),
272
+ "b": Position(135, 370),
273
+ "n": Position(165, 370),
274
+ "m": Position(195, 370),
275
+ "back": Position(255, 370),
276
+ },
203
277
  },
204
278
  "FullKeyboardLetters": {
205
279
  DeviceType.STAX: {
@@ -273,7 +347,79 @@ POSITIONS = {
273
347
  # fourth and last line
274
348
  "change_layout": Position(72, 560),
275
349
  " ": Position(312, 560),
276
- }
350
+ },
351
+ DeviceType.APEX_P: {
352
+ # first line
353
+ "q": Position(15, 225),
354
+ "w": Position(45, 225),
355
+ "e": Position(75, 225),
356
+ "r": Position(105, 225),
357
+ "t": Position(135, 225),
358
+ "y": Position(165, 225),
359
+ "u": Position(195, 225),
360
+ "i": Position(225, 225),
361
+ "o": Position(255, 225),
362
+ "p": Position(285, 225),
363
+ # second line
364
+ "a": Position(30, 270),
365
+ "s": Position(60, 270),
366
+ "d": Position(90, 270),
367
+ "f": Position(120, 270),
368
+ "g": Position(150, 270),
369
+ "h": Position(180, 270),
370
+ "j": Position(210, 270),
371
+ "k": Position(240, 270),
372
+ "l": Position(270, 270),
373
+ # third and last line
374
+ "z": Position(60, 325),
375
+ "x": Position(90, 325),
376
+ "c": Position(120, 325),
377
+ "v": Position(150, 325),
378
+ "b": Position(180, 325),
379
+ "n": Position(210, 325),
380
+ "m": Position(240, 325),
381
+ "change_case": Position(20, 325),
382
+ "back": Position(280, 325),
383
+ # fourth and last line
384
+ "change_layout": Position(5, 370),
385
+ " ": Position(190, 370),
386
+ },
387
+ DeviceType.APEX_M: {
388
+ # first line
389
+ "q": Position(15, 225),
390
+ "w": Position(45, 225),
391
+ "e": Position(75, 225),
392
+ "r": Position(105, 225),
393
+ "t": Position(135, 225),
394
+ "y": Position(165, 225),
395
+ "u": Position(195, 225),
396
+ "i": Position(225, 225),
397
+ "o": Position(255, 225),
398
+ "p": Position(285, 225),
399
+ # second line
400
+ "a": Position(30, 270),
401
+ "s": Position(60, 270),
402
+ "d": Position(90, 270),
403
+ "f": Position(120, 270),
404
+ "g": Position(150, 270),
405
+ "h": Position(180, 270),
406
+ "j": Position(210, 270),
407
+ "k": Position(240, 270),
408
+ "l": Position(270, 270),
409
+ # third and last line
410
+ "z": Position(60, 325),
411
+ "x": Position(90, 325),
412
+ "c": Position(120, 325),
413
+ "v": Position(150, 325),
414
+ "b": Position(180, 325),
415
+ "n": Position(210, 325),
416
+ "m": Position(240, 325),
417
+ "change_case": Position(20, 325),
418
+ "back": Position(280, 325),
419
+ # fourth and last line
420
+ "change_layout": Position(5, 370),
421
+ " ": Position(190, 370),
422
+ },
277
423
  },
278
424
  "FullKeyboardSpecialCharacters1": {
279
425
  DeviceType.STAX: {
@@ -343,7 +489,75 @@ POSITIONS = {
343
489
  # fourth and last line
344
490
  "change_layout": Position(72, 560),
345
491
  " ": Position(312, 560),
346
- }
492
+ },
493
+ DeviceType.APEX_P: {
494
+ # first line
495
+ "1": Position(15, 220),
496
+ "2": Position(45, 220),
497
+ "3": Position(75, 220),
498
+ "4": Position(105, 220),
499
+ "5": Position(135, 220),
500
+ "6": Position(165, 220),
501
+ "7": Position(195, 220),
502
+ "8": Position(225, 220),
503
+ "9": Position(255, 220),
504
+ "0": Position(285, 220),
505
+ # second line
506
+ "-": Position(30, 270),
507
+ "/": Position(60, 270),
508
+ ":": Position(90, 270),
509
+ ";": Position(120, 270),
510
+ "(": Position(150, 270),
511
+ ")": Position(180, 270),
512
+ "&": Position(210, 270),
513
+ "@": Position(240, 270),
514
+ "\"": Position(270, 270),
515
+ # third line
516
+ "more_specials": Position(35, 320),
517
+ ".": Position(90, 320),
518
+ ",": Position(120, 320),
519
+ "?": Position(150, 320),
520
+ "!": Position(180, 320),
521
+ "'": Position(210, 320),
522
+ "back": Position(265, 320),
523
+ # fourth and last line
524
+ "change_layout": Position(50, 370),
525
+ " ": Position(190, 370),
526
+ },
527
+ DeviceType.APEX_M: {
528
+ # first line
529
+ "1": Position(15, 220),
530
+ "2": Position(45, 220),
531
+ "3": Position(75, 220),
532
+ "4": Position(105, 220),
533
+ "5": Position(135, 220),
534
+ "6": Position(165, 220),
535
+ "7": Position(195, 220),
536
+ "8": Position(225, 220),
537
+ "9": Position(255, 220),
538
+ "0": Position(285, 220),
539
+ # second line
540
+ "-": Position(30, 270),
541
+ "/": Position(60, 270),
542
+ ":": Position(90, 270),
543
+ ";": Position(120, 270),
544
+ "(": Position(150, 270),
545
+ ")": Position(180, 270),
546
+ "&": Position(210, 270),
547
+ "@": Position(240, 270),
548
+ "\"": Position(270, 270),
549
+ # third line
550
+ "more_specials": Position(35, 320),
551
+ ".": Position(90, 320),
552
+ ",": Position(120, 320),
553
+ "?": Position(150, 320),
554
+ "!": Position(180, 320),
555
+ "'": Position(210, 320),
556
+ "back": Position(265, 320),
557
+ # fourth and last line
558
+ "change_layout": Position(50, 370),
559
+ " ": Position(190, 370),
560
+ },
347
561
  },
348
562
  "FullKeyboardSpecialCharacters2": {
349
563
  DeviceType.STAX: {
@@ -413,7 +627,75 @@ POSITIONS = {
413
627
  # fourth and last line
414
628
  "change_layout": Position(72, 560),
415
629
  " ": Position(312, 560),
416
- }
630
+ },
631
+ DeviceType.APEX_P: {
632
+ # first line
633
+ "[": Position(15, 220),
634
+ "]": Position(45, 220),
635
+ "{": Position(75, 220),
636
+ "}": Position(105, 220),
637
+ "#": Position(135, 220),
638
+ "%": Position(165, 220),
639
+ "^": Position(195, 220),
640
+ "*": Position(225, 220),
641
+ "+": Position(255, 220),
642
+ "=": Position(285, 220),
643
+ # second line
644
+ "_": Position(30, 270),
645
+ "\\": Position(60, 270),
646
+ "|": Position(90, 270),
647
+ "~": Position(120, 270),
648
+ ">": Position(150, 270),
649
+ "<": Position(180, 270),
650
+ "$": Position(210, 270),
651
+ "`": Position(240, 270),
652
+ "\"": Position(270, 270),
653
+ # third line
654
+ "more_specials": Position(35, 320),
655
+ ".": Position(90, 320),
656
+ ",": Position(120, 320),
657
+ "?": Position(150, 320),
658
+ "!": Position(180, 320),
659
+ "'": Position(210, 320),
660
+ "back": Position(265, 320),
661
+ # fourth and last line
662
+ "change_layout": Position(50, 370),
663
+ " ": Position(190, 370),
664
+ },
665
+ DeviceType.APEX_M: {
666
+ # first line
667
+ "[": Position(15, 220),
668
+ "]": Position(45, 220),
669
+ "{": Position(75, 220),
670
+ "}": Position(105, 220),
671
+ "#": Position(135, 220),
672
+ "%": Position(165, 220),
673
+ "^": Position(195, 220),
674
+ "*": Position(225, 220),
675
+ "+": Position(255, 220),
676
+ "=": Position(285, 220),
677
+ # second line
678
+ "_": Position(30, 270),
679
+ "\\": Position(60, 270),
680
+ "|": Position(90, 270),
681
+ "~": Position(120, 270),
682
+ ">": Position(150, 270),
683
+ "<": Position(180, 270),
684
+ "$": Position(210, 270),
685
+ "`": Position(240, 270),
686
+ "\"": Position(270, 270),
687
+ # third line
688
+ "more_specials": Position(35, 320),
689
+ ".": Position(90, 320),
690
+ ",": Position(120, 320),
691
+ "?": Position(150, 320),
692
+ "!": Position(180, 320),
693
+ "'": Position(210, 320),
694
+ "back": Position(265, 320),
695
+ # fourth and last line
696
+ "change_layout": Position(50, 370),
697
+ " ": Position(190, 370),
698
+ },
417
699
  },
418
700
  "TappableCenter": {
419
701
  DeviceType.STAX: STAX_CENTER,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ragger
3
- Version: 1.40.0
3
+ Version: 1.40.2
4
4
  Summary: Testing framework using Speculos and LedgerComm as backends
5
5
  Author-email: Ledger <hello@ledger.fr>
6
6
  Project-URL: Homepage, https://github.com/LedgerHQ/ragger
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes