mapfile-parser 2.7.1__tar.gz → 2.7.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 (36) hide show
  1. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/CHANGELOG.md +20 -0
  2. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/Cargo.lock +14 -138
  3. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/Cargo.toml +2 -2
  4. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/PKG-INFO +5 -5
  5. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/README.md +2 -2
  6. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/pyproject.toml +2 -2
  7. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/__init__.py +1 -1
  8. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/file.rs +6 -3
  9. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/found_symbol_info.rs +2 -1
  10. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/lib.rs +1 -1
  11. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/maps_comparison_info.rs +3 -3
  12. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/segment.rs +1 -0
  13. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/symbol.rs +23 -41
  14. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/symbol_comparison_info.rs +1 -1
  15. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/.gitattributes +0 -0
  16. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/.gitignore +0 -0
  17. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/LICENSE +0 -0
  18. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/__main__.py +0 -0
  19. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/frontends/__init__.py +0 -0
  20. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/frontends/bss_check.py +0 -0
  21. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/frontends/first_diff.py +0 -0
  22. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/frontends/jsonify.py +0 -0
  23. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/frontends/pj64_syms.py +0 -0
  24. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/frontends/progress.py +0 -0
  25. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/frontends/sym_info.py +0 -0
  26. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/frontends/symbol_sizes_csv.py +0 -0
  27. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/frontends/upload_frogress.py +0 -0
  28. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/mapfile.py +0 -0
  29. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/mapfile_parser.pyi +0 -0
  30. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/mapfile_rs.py +0 -0
  31. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/progress_stats.py +0 -0
  32. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/progress_stats_rs.py +0 -0
  33. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/mapfile_parser/utils.py +0 -0
  34. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/mapfile.rs +0 -0
  35. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/progress_stats.rs +0 -0
  36. {mapfile_parser-2.7.1 → mapfile_parser-2.7.2}/src/rs/utils.rs +0 -0
@@ -7,6 +7,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [2.7.2] - 2024-12-15
11
+
12
+ ### Added
13
+
14
+ - Prebuilt binaries for Python 3.13.
15
+
16
+ ### Changed
17
+
18
+ - Python 3.9 or later is now required.
19
+ - Bump from Python 3.8 to 3.9.
20
+ - Older versions can't be checked on CI anymore, so I prefer to not claim to
21
+ support something that may have broken without anybody noticing.
22
+ - Nothing really changed. Just the CI tools I was using are refusing to use
23
+ any Python version older than this. Sorry if you were affected by this.
24
+ - Use newer pyo3 version.
25
+ - From 0.20 to 0.23.
26
+ - Updated to avoid warnings with newer Rust versions.
27
+ - Fix issues introduced by updating pyo3.
28
+
10
29
  ## [2.7.1] - 2024-09-25
11
30
 
12
31
  ### Added
@@ -426,6 +445,7 @@ Full changes: <https://github.com/Decompollaborate/mapfile_parser/compare/702a73
426
445
  - Initial release
427
446
 
428
447
  [unreleased]: https://github.com/Decompollaborate/mapfile_parser/compare/master...develop
448
+ [2.7.2]: https://github.com/Decompollaborate/mapfile_parser/compare/2.7.1...2.7.2
429
449
  [2.7.1]: https://github.com/Decompollaborate/mapfile_parser/compare/2.7.0...2.7.1
430
450
  [2.7.0]: https://github.com/Decompollaborate/mapfile_parser/compare/2.6.0...2.7.0
431
451
  [2.6.0]: https://github.com/Decompollaborate/mapfile_parser/compare/2.5.1...2.6.0
@@ -17,12 +17,6 @@ version = "1.3.0"
17
17
  source = "registry+https://github.com/rust-lang/crates.io-index"
18
18
  checksum = "0c4b4d0bd25bd0b74681c0ad21497610ce1b7c91b1022cd21c80c6fbdd9476b0"
19
19
 
20
- [[package]]
21
- name = "bitflags"
22
- version = "2.6.0"
23
- source = "registry+https://github.com/rust-lang/crates.io-index"
24
- checksum = "b048fb63fd8b5923fc5aa7b340d8e156aec7ec02f0c78fa8a6ddc2613f6f71de"
25
-
26
20
  [[package]]
27
21
  name = "cfg-if"
28
22
  version = "1.0.0"
@@ -31,9 +25,9 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
31
25
 
32
26
  [[package]]
33
27
  name = "heck"
34
- version = "0.4.1"
28
+ version = "0.5.0"
35
29
  source = "registry+https://github.com/rust-lang/crates.io-index"
36
- checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
30
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
37
31
 
38
32
  [[package]]
39
33
  name = "indoc"
@@ -53,19 +47,9 @@ version = "0.2.155"
53
47
  source = "registry+https://github.com/rust-lang/crates.io-index"
54
48
  checksum = "97b3888a4aecf77e811145cadf6eef5901f4782c53886191b2f693f24761847c"
55
49
 
56
- [[package]]
57
- name = "lock_api"
58
- version = "0.4.12"
59
- source = "registry+https://github.com/rust-lang/crates.io-index"
60
- checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17"
61
- dependencies = [
62
- "autocfg",
63
- "scopeguard",
64
- ]
65
-
66
50
  [[package]]
67
51
  name = "mapfile_parser"
68
- version = "2.7.1"
52
+ version = "2.7.2"
69
53
  dependencies = [
70
54
  "lazy_static",
71
55
  "pyo3",
@@ -94,29 +78,6 @@ version = "1.19.0"
94
78
  source = "registry+https://github.com/rust-lang/crates.io-index"
95
79
  checksum = "3fdb12b2476b595f9358c5161aa467c2438859caa136dec86c26fdd2efe17b92"
96
80
 
97
- [[package]]
98
- name = "parking_lot"
99
- version = "0.12.3"
100
- source = "registry+https://github.com/rust-lang/crates.io-index"
101
- checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27"
102
- dependencies = [
103
- "lock_api",
104
- "parking_lot_core",
105
- ]
106
-
107
- [[package]]
108
- name = "parking_lot_core"
109
- version = "0.9.10"
110
- source = "registry+https://github.com/rust-lang/crates.io-index"
111
- checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8"
112
- dependencies = [
113
- "cfg-if",
114
- "libc",
115
- "redox_syscall",
116
- "smallvec",
117
- "windows-targets",
118
- ]
119
-
120
81
  [[package]]
121
82
  name = "portable-atomic"
122
83
  version = "1.7.0"
@@ -134,15 +95,15 @@ dependencies = [
134
95
 
135
96
  [[package]]
136
97
  name = "pyo3"
137
- version = "0.20.3"
98
+ version = "0.23.3"
138
99
  source = "registry+https://github.com/rust-lang/crates.io-index"
139
- checksum = "53bdbb96d49157e65d45cc287af5f32ffadd5f4761438b527b055fb0d4bb8233"
100
+ checksum = "e484fd2c8b4cb67ab05a318f1fd6fa8f199fcc30819f08f07d200809dba26c15"
140
101
  dependencies = [
141
102
  "cfg-if",
142
103
  "indoc",
143
104
  "libc",
144
105
  "memoffset",
145
- "parking_lot",
106
+ "once_cell",
146
107
  "portable-atomic",
147
108
  "pyo3-build-config",
148
109
  "pyo3-ffi",
@@ -152,9 +113,9 @@ dependencies = [
152
113
 
153
114
  [[package]]
154
115
  name = "pyo3-build-config"
155
- version = "0.20.3"
116
+ version = "0.23.3"
156
117
  source = "registry+https://github.com/rust-lang/crates.io-index"
157
- checksum = "deaa5745de3f5231ce10517a1f5dd97d53e5a2fd77aa6b5842292085831d48d7"
118
+ checksum = "dc0e0469a84f208e20044b98965e1561028180219e35352a2afaf2b942beff3b"
158
119
  dependencies = [
159
120
  "once_cell",
160
121
  "target-lexicon",
@@ -162,9 +123,9 @@ dependencies = [
162
123
 
163
124
  [[package]]
164
125
  name = "pyo3-ffi"
165
- version = "0.20.3"
126
+ version = "0.23.3"
166
127
  source = "registry+https://github.com/rust-lang/crates.io-index"
167
- checksum = "62b42531d03e08d4ef1f6e85a2ed422eb678b8cd62b762e53891c05faf0d4afa"
128
+ checksum = "eb1547a7f9966f6f1a0f0227564a9945fe36b90da5a93b3933fc3dc03fae372d"
168
129
  dependencies = [
169
130
  "libc",
170
131
  "pyo3-build-config",
@@ -172,9 +133,9 @@ dependencies = [
172
133
 
173
134
  [[package]]
174
135
  name = "pyo3-macros"
175
- version = "0.20.3"
136
+ version = "0.23.3"
176
137
  source = "registry+https://github.com/rust-lang/crates.io-index"
177
- checksum = "7305c720fa01b8055ec95e484a6eca7a83c841267f0dd5280f0c8b8551d2c158"
138
+ checksum = "fdb6da8ec6fa5cedd1626c886fc8749bdcbb09424a86461eb8cdf096b7c33257"
178
139
  dependencies = [
179
140
  "proc-macro2",
180
141
  "pyo3-macros-backend",
@@ -184,9 +145,9 @@ dependencies = [
184
145
 
185
146
  [[package]]
186
147
  name = "pyo3-macros-backend"
187
- version = "0.20.3"
148
+ version = "0.23.3"
188
149
  source = "registry+https://github.com/rust-lang/crates.io-index"
189
- checksum = "7c7e9b68bb9c3149c5b0cade5d07f953d6d125eb4337723c4ccdb665f1f96185"
150
+ checksum = "38a385202ff5a92791168b1136afae5059d3ac118457bb7bc304c197c2d33e7d"
190
151
  dependencies = [
191
152
  "heck",
192
153
  "proc-macro2",
@@ -204,15 +165,6 @@ dependencies = [
204
165
  "proc-macro2",
205
166
  ]
206
167
 
207
- [[package]]
208
- name = "redox_syscall"
209
- version = "0.5.3"
210
- source = "registry+https://github.com/rust-lang/crates.io-index"
211
- checksum = "2a908a6e00f1fdd0dfd9c0eb08ce85126f6d8bbda50017e74bc4a4b7d4a926a4"
212
- dependencies = [
213
- "bitflags",
214
- ]
215
-
216
168
  [[package]]
217
169
  name = "regex"
218
170
  version = "1.10.6"
@@ -242,12 +194,6 @@ version = "0.8.4"
242
194
  source = "registry+https://github.com/rust-lang/crates.io-index"
243
195
  checksum = "7a66a03ae7c801facd77a29370b4faec201768915ac14a721ba36f20bc9c209b"
244
196
 
245
- [[package]]
246
- name = "scopeguard"
247
- version = "1.2.0"
248
- source = "registry+https://github.com/rust-lang/crates.io-index"
249
- checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
250
-
251
197
  [[package]]
252
198
  name = "serde"
253
199
  version = "1.0.205"
@@ -268,12 +214,6 @@ dependencies = [
268
214
  "syn",
269
215
  ]
270
216
 
271
- [[package]]
272
- name = "smallvec"
273
- version = "1.13.2"
274
- source = "registry+https://github.com/rust-lang/crates.io-index"
275
- checksum = "3c5e1a9a646d36c3599cd173a41282daf47c44583ad367b8e6837255952e5c67"
276
-
277
217
  [[package]]
278
218
  name = "syn"
279
219
  version = "2.0.72"
@@ -302,67 +242,3 @@ name = "unindent"
302
242
  version = "0.2.3"
303
243
  source = "registry+https://github.com/rust-lang/crates.io-index"
304
244
  checksum = "c7de7d73e1754487cb58364ee906a499937a0dfabd86bcb980fa99ec8c8fa2ce"
305
-
306
- [[package]]
307
- name = "windows-targets"
308
- version = "0.52.6"
309
- source = "registry+https://github.com/rust-lang/crates.io-index"
310
- checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973"
311
- dependencies = [
312
- "windows_aarch64_gnullvm",
313
- "windows_aarch64_msvc",
314
- "windows_i686_gnu",
315
- "windows_i686_gnullvm",
316
- "windows_i686_msvc",
317
- "windows_x86_64_gnu",
318
- "windows_x86_64_gnullvm",
319
- "windows_x86_64_msvc",
320
- ]
321
-
322
- [[package]]
323
- name = "windows_aarch64_gnullvm"
324
- version = "0.52.6"
325
- source = "registry+https://github.com/rust-lang/crates.io-index"
326
- checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3"
327
-
328
- [[package]]
329
- name = "windows_aarch64_msvc"
330
- version = "0.52.6"
331
- source = "registry+https://github.com/rust-lang/crates.io-index"
332
- checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469"
333
-
334
- [[package]]
335
- name = "windows_i686_gnu"
336
- version = "0.52.6"
337
- source = "registry+https://github.com/rust-lang/crates.io-index"
338
- checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b"
339
-
340
- [[package]]
341
- name = "windows_i686_gnullvm"
342
- version = "0.52.6"
343
- source = "registry+https://github.com/rust-lang/crates.io-index"
344
- checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66"
345
-
346
- [[package]]
347
- name = "windows_i686_msvc"
348
- version = "0.52.6"
349
- source = "registry+https://github.com/rust-lang/crates.io-index"
350
- checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66"
351
-
352
- [[package]]
353
- name = "windows_x86_64_gnu"
354
- version = "0.52.6"
355
- source = "registry+https://github.com/rust-lang/crates.io-index"
356
- checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78"
357
-
358
- [[package]]
359
- name = "windows_x86_64_gnullvm"
360
- version = "0.52.6"
361
- source = "registry+https://github.com/rust-lang/crates.io-index"
362
- checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d"
363
-
364
- [[package]]
365
- name = "windows_x86_64_msvc"
366
- version = "0.52.6"
367
- source = "registry+https://github.com/rust-lang/crates.io-index"
368
- checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec"
@@ -3,7 +3,7 @@
3
3
 
4
4
  [package]
5
5
  name = "mapfile_parser"
6
- version = "2.7.1"
6
+ version = "2.7.2"
7
7
  edition = "2021"
8
8
  rust-version = "1.65.0"
9
9
  authors = ["Anghelo Carvajal <angheloalf95@gmail.com>"]
@@ -23,7 +23,7 @@ crate-type = ["cdylib", "staticlib", "rlib"]
23
23
 
24
24
  [dependencies]
25
25
  regex = "1.10.2"
26
- pyo3 = { version = "0.20.0", optional = true, features = ["abi3", "abi3-py37"]}
26
+ pyo3 = { version = "0.23.2", optional = true, features = ["extension-module"]}
27
27
  lazy_static = "1.4.0"
28
28
  serde = { version = "1.0", features = ["derive"], optional = true }
29
29
 
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: mapfile_parser
3
- Version: 2.7.1
3
+ Version: 2.7.2
4
4
  Classifier: Programming Language :: Rust
5
5
  Classifier: Programming Language :: Python :: Implementation :: CPython
6
6
  Classifier: Programming Language :: Python :: Implementation :: PyPy
@@ -11,7 +11,7 @@ Keywords: mapfile,parser,decomp,decompilation
11
11
  Author: Anghelo Carvajal <angheloalf95@gmail.com>
12
12
  Author-email: Anghelo Carvajal <angheloalf95@gmail.com>
13
13
  License: MIT
14
- Requires-Python: >=3.8
14
+ Requires-Python: >=3.9
15
15
  Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
16
16
  Project-URL: Homepage, https://github.com/Decompollaborate/mapfile_parser
17
17
  Project-URL: Bug Tracker, https://github.com/Decompollaborate/mapfile_parser/issues
@@ -53,7 +53,7 @@ If you use a `requirements.txt` file in your repository, then you can add
53
53
  this library with the following line:
54
54
 
55
55
  ```txt
56
- mapfile_parser>=2.7.1,<3.0.0
56
+ mapfile_parser>=2.7.2,<3.0.0
57
57
  ```
58
58
 
59
59
  #### Development version
@@ -92,7 +92,7 @@ cargo add mapfile_parser
92
92
  Or add the following line manually to your `Cargo.toml` file:
93
93
 
94
94
  ```toml
95
- mapfile_parser = "2.7.1"
95
+ mapfile_parser = "2.7.2"
96
96
  ```
97
97
 
98
98
  ## Versioning and changelog
@@ -35,7 +35,7 @@ If you use a `requirements.txt` file in your repository, then you can add
35
35
  this library with the following line:
36
36
 
37
37
  ```txt
38
- mapfile_parser>=2.7.1,<3.0.0
38
+ mapfile_parser>=2.7.2,<3.0.0
39
39
  ```
40
40
 
41
41
  #### Development version
@@ -74,7 +74,7 @@ cargo add mapfile_parser
74
74
  Or add the following line manually to your `Cargo.toml` file:
75
75
 
76
76
  ```toml
77
- mapfile_parser = "2.7.1"
77
+ mapfile_parser = "2.7.2"
78
78
  ```
79
79
 
80
80
  ## Versioning and changelog
@@ -3,10 +3,10 @@
3
3
 
4
4
  [project]
5
5
  name = "mapfile_parser"
6
- version = "2.7.1"
6
+ version = "2.7.2"
7
7
  description = "Map file parser library focusing decompilation projects"
8
8
  readme = "README.md"
9
- requires-python = ">=3.8"
9
+ requires-python = ">=3.9"
10
10
  dependencies = [
11
11
  "requests"
12
12
  ]
@@ -5,7 +5,7 @@
5
5
 
6
6
  from __future__ import annotations
7
7
 
8
- __version_info__ = (2, 7, 1)
8
+ __version_info__ = (2, 7, 2)
9
9
  __version__ = ".".join(map(str, __version_info__))# + "-dev0"
10
10
  __author__ = "Decompollaborate"
11
11
 
@@ -379,7 +379,7 @@ impl Hash for File {
379
379
  #[cfg(feature = "python_bindings")]
380
380
  #[allow(non_snake_case)]
381
381
  pub(crate) mod python_bindings {
382
- use pyo3::{intern, prelude::*};
382
+ use pyo3::{intern, prelude::*, IntoPyObjectExt};
383
383
 
384
384
  use std::path::PathBuf;
385
385
 
@@ -390,9 +390,12 @@ pub(crate) mod python_bindings {
390
390
 
391
391
  use std::collections::hash_map::DefaultHasher;
392
392
 
393
+ use super::*;
394
+
393
395
  #[pymethods]
394
- impl super::File {
396
+ impl File {
395
397
  #[new]
398
+ #[pyo3(signature = (filepath, vram, size, section_type, vrom=None, align=None))]
396
399
  fn py_new(
397
400
  filepath: PathBuf,
398
401
  vram: u64,
@@ -414,7 +417,7 @@ pub(crate) mod python_bindings {
414
417
  let pathlib_path = pathlib.getattr(intern!(py, "Path"))?;
415
418
  let args = (self.filepath.clone(),);
416
419
 
417
- Ok(pathlib_path.call1(args)?.to_object(py))
420
+ pathlib_path.call1(args)?.into_py_any(py)
418
421
  })
419
422
  }
420
423
 
@@ -132,6 +132,7 @@ pub(crate) mod python_bindings {
132
132
  }
133
133
 
134
134
  #[pyo3(name = "getAsStrPlusOffset")]
135
+ #[pyo3(signature = (sym_name=None))]
135
136
  fn getAsStrPlusOffset(&self, sym_name: Option<String>) -> String {
136
137
  let temp = super::FoundSymbolInfo::from(self);
137
138
  temp.get_as_str_plus_offset(sym_name)
@@ -144,7 +145,7 @@ pub(crate) mod python_bindings {
144
145
  }
145
146
  }
146
147
 
147
- impl<'a> From<super::FoundSymbolInfo<'a>> for PyFoundSymbolInfo {
148
+ impl From<super::FoundSymbolInfo<'_>> for PyFoundSymbolInfo {
148
149
  fn from(value: super::FoundSymbolInfo) -> Self {
149
150
  Self::new(value.file.clone(), value.symbol.clone(), value.offset)
150
151
  }
@@ -28,7 +28,7 @@ use pyo3::prelude::*;
28
28
 
29
29
  #[cfg(feature = "python_bindings")]
30
30
  #[pymodule]
31
- fn mapfile_parser(_py: Python<'_>, m: &PyModule) -> PyResult<()> {
31
+ fn mapfile_parser(m: &Bound<'_, PyModule>) -> PyResult<()> {
32
32
  m.add_class::<mapfile::MapFile>()?;
33
33
  m.add_class::<segment::Segment>()?;
34
34
  m.add_class::<file::File>()?;
@@ -14,7 +14,7 @@ pub struct MapsComparisonInfo<'a> {
14
14
  pub compared_list: Vec<symbol_comparison_info::SymbolComparisonInfo<'a>>,
15
15
  }
16
16
 
17
- impl<'a> MapsComparisonInfo<'a> {
17
+ impl MapsComparisonInfo<'_> {
18
18
  pub fn new() -> Self {
19
19
  Self {
20
20
  bad_files: HashSet::new(),
@@ -24,7 +24,7 @@ impl<'a> MapsComparisonInfo<'a> {
24
24
  }
25
25
  }
26
26
 
27
- impl<'a> Default for MapsComparisonInfo<'a> {
27
+ impl Default for MapsComparisonInfo<'_> {
28
28
  fn default() -> Self {
29
29
  Self::new()
30
30
  }
@@ -116,7 +116,7 @@ pub(crate) mod python_bindings {
116
116
  }
117
117
  }
118
118
 
119
- impl<'a> From<super::MapsComparisonInfo<'a>> for PyMapsComparisonInfo {
119
+ impl From<super::MapsComparisonInfo<'_>> for PyMapsComparisonInfo {
120
120
  fn from(value: super::MapsComparisonInfo) -> Self {
121
121
  Self {
122
122
  bad_files: value.bad_files.into_iter().cloned().collect(),
@@ -328,6 +328,7 @@ pub(crate) mod python_bindings {
328
328
  #[pymethods]
329
329
  impl super::Segment {
330
330
  #[new]
331
+ #[pyo3(signature = (name, vram, size, vrom, align=None))]
331
332
  fn py_new(name: String, vram: u64, size: u64, vrom: u64, align: Option<u64>) -> Self {
332
333
  Self::new(name, vram, size, vrom, align)
333
334
  }
@@ -23,11 +23,6 @@ pub struct Symbol {
23
23
  pub vrom: Option<u64>,
24
24
 
25
25
  pub align: Option<u64>,
26
-
27
- // idk if it is worth to continue maintaining this, given the complexity introduced by other features
28
- #[cfg(feature = "python_bindings")]
29
- #[cfg_attr(feature = "serde", serde(skip))]
30
- chached_name: Option<PyObject>,
31
26
  }
32
27
 
33
28
  impl Symbol {
@@ -44,9 +39,6 @@ impl Symbol {
44
39
  size,
45
40
  vrom,
46
41
  align,
47
-
48
- #[cfg(feature = "python_bindings")]
49
- chached_name: None,
50
42
  }
51
43
  }
52
44
 
@@ -57,9 +49,6 @@ impl Symbol {
57
49
  size: None,
58
50
  vrom: None,
59
51
  align: None,
60
-
61
- #[cfg(feature = "python_bindings")]
62
- chached_name: None,
63
52
  }
64
53
  }
65
54
 
@@ -125,8 +114,7 @@ impl Hash for Symbol {
125
114
  #[cfg(feature = "python_bindings")]
126
115
  #[allow(non_snake_case)]
127
116
  pub(crate) mod python_bindings {
128
- use pyo3::prelude::*;
129
- use pyo3::types::IntoPyDict;
117
+ use pyo3::{prelude::*, types::IntoPyDict, IntoPyObjectExt};
130
118
 
131
119
  use std::collections::hash_map::DefaultHasher;
132
120
 
@@ -150,14 +138,8 @@ pub(crate) mod python_bindings {
150
138
  /* Getters and setters */
151
139
 
152
140
  #[getter]
153
- fn get_name(&mut self) -> PyObject {
154
- Python::with_gil(|py| {
155
- if self.chached_name.is_none() {
156
- self.chached_name = Some(self.name.to_object(py));
157
- }
158
-
159
- self.chached_name.as_ref().unwrap().to_object(py)
160
- })
141
+ fn get_name(&self) -> PyResult<&str> {
142
+ Ok(&self.name)
161
143
  }
162
144
 
163
145
  #[setter]
@@ -213,58 +195,58 @@ pub(crate) mod python_bindings {
213
195
  /* Serializers */
214
196
 
215
197
  #[pyo3(signature=(_humanReadable=true))]
216
- fn serializeName(&self, _humanReadable: bool) -> PyObject {
217
- Python::with_gil(|py| self.name.to_object(py))
198
+ fn serializeName(&self, _humanReadable: bool) -> PyResult<PyObject> {
199
+ Python::with_gil(|py| self.name.clone().into_py_any(py))
218
200
  }
219
201
 
220
202
  #[pyo3(signature=(humanReadable=true))]
221
- fn serializeVram(&self, humanReadable: bool) -> PyObject {
203
+ fn serializeVram(&self, humanReadable: bool) -> PyResult<PyObject> {
222
204
  Python::with_gil(|py| {
223
205
  if humanReadable {
224
- return format!("0x{:08X}", self.vram).to_object(py);
206
+ return format!("0x{:08X}", self.vram).into_py_any(py);
225
207
  }
226
208
 
227
- self.vram.to_object(py)
209
+ self.vram.into_py_any(py)
228
210
  })
229
211
  }
230
212
 
231
213
  #[pyo3(signature=(humanReadable=true))]
232
- fn serializeSize(&self, humanReadable: bool) -> PyObject {
214
+ fn serializeSize(&self, humanReadable: bool) -> PyResult<PyObject> {
233
215
  Python::with_gil(|py| match self.size {
234
- None => Python::None(py),
216
+ None => Ok(Python::None(py)),
235
217
  Some(size) => {
236
218
  if humanReadable {
237
- return format!("0x{:X}", size).to_object(py);
219
+ return format!("0x{:X}", size).into_py_any(py);
238
220
  }
239
- size.to_object(py)
221
+ size.into_py_any(py)
240
222
  }
241
223
  })
242
224
  }
243
225
 
244
226
  #[pyo3(signature=(humanReadable=true))]
245
- fn serializeVrom(&self, humanReadable: bool) -> PyObject {
227
+ fn serializeVrom(&self, humanReadable: bool) -> PyResult<PyObject> {
246
228
  Python::with_gil(|py| match self.vrom {
247
- None => Python::None(py),
229
+ None => Ok(Python::None(py)),
248
230
  Some(vrom) => {
249
231
  if humanReadable {
250
- return format!("0x{:06X}", vrom).to_object(py);
232
+ return format!("0x{:06X}", vrom).into_py_any(py);
251
233
  }
252
- vrom.to_object(py)
234
+ vrom.into_py_any(py)
253
235
  }
254
236
  })
255
237
  }
256
238
 
257
239
  #[pyo3(signature=(humanReadable=true))]
258
- fn toJson(&self, humanReadable: bool) -> PyObject {
240
+ fn toJson(&self, humanReadable: bool) -> PyResult<PyObject> {
259
241
  Python::with_gil(|py| {
260
242
  [
261
- ("name", self.serializeName(humanReadable)),
262
- ("vram", self.serializeVram(humanReadable)),
263
- ("size", self.serializeSize(humanReadable)),
264
- ("vrom", self.serializeVrom(humanReadable)),
243
+ ("name", self.serializeName(humanReadable)?),
244
+ ("vram", self.serializeVram(humanReadable)?),
245
+ ("size", self.serializeSize(humanReadable)?),
246
+ ("vrom", self.serializeVrom(humanReadable)?),
265
247
  ]
266
- .into_py_dict(py)
267
- .to_object(py)
248
+ .into_py_dict(py)?
249
+ .into_py_any(py)
268
250
  })
269
251
  }
270
252
 
@@ -174,7 +174,7 @@ pub(crate) mod python_bindings {
174
174
  }
175
175
  }
176
176
 
177
- impl<'a> From<super::SymbolComparisonInfo<'a>> for PySymbolComparisonInfo {
177
+ impl From<super::SymbolComparisonInfo<'_>> for PySymbolComparisonInfo {
178
178
  fn from(value: super::SymbolComparisonInfo) -> Self {
179
179
  Self::new(
180
180
  value.symbol.clone(),
File without changes