cad2d-ir-native 0.17.21__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 (28) hide show
  1. cad2d_ir_native-0.17.21/.gitignore +3 -0
  2. cad2d_ir_native-0.17.21/Cargo.lock +430 -0
  3. cad2d_ir_native-0.17.21/Cargo.toml +40 -0
  4. cad2d_ir_native-0.17.21/LICENSE +21 -0
  5. cad2d_ir_native-0.17.21/PKG-INFO +222 -0
  6. cad2d_ir_native-0.17.21/README.md +192 -0
  7. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/Cargo.toml +13 -0
  8. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/convert.rs +627 -0
  9. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/dxf/dimension.rs +390 -0
  10. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/dxf/image.rs +741 -0
  11. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/dxf/mod.rs +719 -0
  12. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/dxf/pairs.rs +333 -0
  13. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/dxf/structure.rs +528 -0
  14. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/dxf/tables.rs +376 -0
  15. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/lib.rs +16 -0
  16. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/model.rs +309 -0
  17. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/num.rs +150 -0
  18. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/pystr.rs +97 -0
  19. cad2d_ir_native-0.17.21/crates/cad2d-ir-core/src/value.rs +71 -0
  20. cad2d_ir_native-0.17.21/crates/cad2d-ir-jww/Cargo.toml +13 -0
  21. cad2d_ir_native-0.17.21/crates/cad2d-ir-jww/src/lib.rs +1312 -0
  22. cad2d_ir_native-0.17.21/crates/cad2d-ir-py/Cargo.toml +20 -0
  23. cad2d_ir_native-0.17.21/crates/cad2d-ir-py/src/lib.rs +993 -0
  24. cad2d_ir_native-0.17.21/pyproject.toml +51 -0
  25. cad2d_ir_native-0.17.21/python/cad2d_ir_native/__init__.py +31 -0
  26. cad2d_ir_native-0.17.21/python/cad2d_ir_native/jww.py +267 -0
  27. cad2d_ir_native-0.17.21/src/lib.rs +8 -0
  28. cad2d_ir_native-0.17.21/tests/test_native.py +488 -0
@@ -0,0 +1,3 @@
1
+ target/
2
+ *.so
3
+ __pycache__/
@@ -0,0 +1,430 @@
1
+ # This file is automatically @generated by Cargo.
2
+ # It is not intended for manual editing.
3
+ version = 4
4
+
5
+ [[package]]
6
+ name = "adler2"
7
+ version = "2.0.1"
8
+ source = "registry+https://github.com/rust-lang/crates.io-index"
9
+ checksum = "320119579fcad9c21884f5c4861d16174d0e06250625266f50fe6898340abefa"
10
+
11
+ [[package]]
12
+ name = "autocfg"
13
+ version = "1.5.1"
14
+ source = "registry+https://github.com/rust-lang/crates.io-index"
15
+ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
16
+
17
+ [[package]]
18
+ name = "cad2d-ir-core"
19
+ version = "0.17.21"
20
+ dependencies = [
21
+ "caseless",
22
+ "indexmap",
23
+ "unicode-general-category",
24
+ ]
25
+
26
+ [[package]]
27
+ name = "cad2d-ir-jww"
28
+ version = "0.17.21"
29
+ dependencies = [
30
+ "cad2d-ir-core",
31
+ "ezjww-core",
32
+ "flate2",
33
+ ]
34
+
35
+ [[package]]
36
+ name = "cad2d-ir-native"
37
+ version = "0.17.21"
38
+ dependencies = [
39
+ "cad2d-ir-py",
40
+ "pyo3",
41
+ ]
42
+
43
+ [[package]]
44
+ name = "cad2d-ir-py"
45
+ version = "0.17.21"
46
+ dependencies = [
47
+ "cad2d-ir-core",
48
+ "cad2d-ir-jww",
49
+ "ezjww-core",
50
+ "indexmap",
51
+ "pyo3",
52
+ ]
53
+
54
+ [[package]]
55
+ name = "caseless"
56
+ version = "0.2.2"
57
+ source = "registry+https://github.com/rust-lang/crates.io-index"
58
+ checksum = "8b6fd507454086c8edfd769ca6ada439193cdb209c7681712ef6275cccbfe5d8"
59
+ dependencies = [
60
+ "unicode-normalization",
61
+ ]
62
+
63
+ [[package]]
64
+ name = "cfg-if"
65
+ version = "1.0.5"
66
+ source = "registry+https://github.com/rust-lang/crates.io-index"
67
+ checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600"
68
+
69
+ [[package]]
70
+ name = "core_detect"
71
+ version = "1.0.0"
72
+ source = "registry+https://github.com/rust-lang/crates.io-index"
73
+ checksum = "7f8f80099a98041a3d1622845c271458a2d73e688351bf3cb999266764b81d48"
74
+
75
+ [[package]]
76
+ name = "crc32fast"
77
+ version = "1.5.5"
78
+ source = "registry+https://github.com/rust-lang/crates.io-index"
79
+ checksum = "2b929dd2a135771f40afabd1073f85eed59c800b7c61901e5c254270497dad64"
80
+ dependencies = [
81
+ "cfg-if",
82
+ ]
83
+
84
+ [[package]]
85
+ name = "encoding_rs"
86
+ version = "0.8.44"
87
+ source = "registry+https://github.com/rust-lang/crates.io-index"
88
+ checksum = "89253175e704ab869b04f9db224d38630e0211a53841a79181deae0889e169f5"
89
+ dependencies = [
90
+ "cfg-if",
91
+ "core_detect",
92
+ "multiversion_no_op",
93
+ "rustversion",
94
+ "scopeguard",
95
+ "simdutf8",
96
+ ]
97
+
98
+ [[package]]
99
+ name = "equivalent"
100
+ version = "1.0.3"
101
+ source = "registry+https://github.com/rust-lang/crates.io-index"
102
+ checksum = "00d174d5400e5e8fd687ad1049e2f578285fa914201b1af7e8b112a4546bd826"
103
+
104
+ [[package]]
105
+ name = "ezjww-core"
106
+ version = "0.7.13"
107
+ source = "git+https://github.com/monozukuri-ai/ezjww?tag=v0.7.13#020d5227a98283af6ea349503ca9944989feefb7"
108
+ dependencies = [
109
+ "encoding_rs",
110
+ "serde",
111
+ "serde_json",
112
+ ]
113
+
114
+ [[package]]
115
+ name = "flate2"
116
+ version = "1.1.11"
117
+ source = "registry+https://github.com/rust-lang/crates.io-index"
118
+ checksum = "626d4928326b646e70f65ed36fc7cf9f206bdb68a0019ee7c6b4709da4e084c4"
119
+ dependencies = [
120
+ "crc32fast",
121
+ "miniz_oxide",
122
+ "zlib-rs",
123
+ ]
124
+
125
+ [[package]]
126
+ name = "hashbrown"
127
+ version = "0.17.1"
128
+ source = "registry+https://github.com/rust-lang/crates.io-index"
129
+ checksum = "ed5909b6e89a2db4456e54cd5f673791d7eca6732202bbf2a9cc504fe2f9b84a"
130
+
131
+ [[package]]
132
+ name = "heck"
133
+ version = "0.5.0"
134
+ source = "registry+https://github.com/rust-lang/crates.io-index"
135
+ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
136
+
137
+ [[package]]
138
+ name = "indexmap"
139
+ version = "2.14.2"
140
+ source = "registry+https://github.com/rust-lang/crates.io-index"
141
+ checksum = "cc4e190f5d26ca7051642629da2c52fc03bde85a03197c99408dcd291734c855"
142
+ dependencies = [
143
+ "equivalent",
144
+ "hashbrown",
145
+ ]
146
+
147
+ [[package]]
148
+ name = "indoc"
149
+ version = "2.0.8"
150
+ source = "registry+https://github.com/rust-lang/crates.io-index"
151
+ checksum = "a37b2691796cffeb8a8cd305ac66e65841559f147f4e63231d0eafa4db5384d1"
152
+ dependencies = [
153
+ "rustversion",
154
+ ]
155
+
156
+ [[package]]
157
+ name = "itoa"
158
+ version = "1.0.19"
159
+ source = "registry+https://github.com/rust-lang/crates.io-index"
160
+ checksum = "3bd1574e617a9a6c1f8f8181bd7e841e1f20e4277607ef28945765188d6284d4"
161
+
162
+ [[package]]
163
+ name = "libc"
164
+ version = "0.2.191"
165
+ source = "registry+https://github.com/rust-lang/crates.io-index"
166
+ checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a"
167
+
168
+ [[package]]
169
+ name = "memchr"
170
+ version = "2.8.3"
171
+ source = "registry+https://github.com/rust-lang/crates.io-index"
172
+ checksum = "cf8baf1c55e62ffcace7a9f06f4bd9cd3f0c4beb022d3b367256b91b87513d98"
173
+
174
+ [[package]]
175
+ name = "memoffset"
176
+ version = "0.9.1"
177
+ source = "registry+https://github.com/rust-lang/crates.io-index"
178
+ checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a"
179
+ dependencies = [
180
+ "autocfg",
181
+ ]
182
+
183
+ [[package]]
184
+ name = "miniz_oxide"
185
+ version = "0.9.1"
186
+ source = "registry+https://github.com/rust-lang/crates.io-index"
187
+ checksum = "b63fbc4a50860e98e7b2aa7804ded1db5cbc3aff9193adaff57a6931bf7c4b4c"
188
+ dependencies = [
189
+ "adler2",
190
+ "simd-adler32",
191
+ ]
192
+
193
+ [[package]]
194
+ name = "multiversion_no_op"
195
+ version = "1.0.0"
196
+ source = "registry+https://github.com/rust-lang/crates.io-index"
197
+ checksum = "743fb55ba31b18fb1ecef6bdc9aa2743314978ac084044301a7eee33fb99a20d"
198
+
199
+ [[package]]
200
+ name = "once_cell"
201
+ version = "1.21.4"
202
+ source = "registry+https://github.com/rust-lang/crates.io-index"
203
+ checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
204
+
205
+ [[package]]
206
+ name = "portable-atomic"
207
+ version = "1.15.0"
208
+ source = "registry+https://github.com/rust-lang/crates.io-index"
209
+ checksum = "05c8b63e8d9609db387f0324918f81d68fe27748f084ef092fb35954d0539a85"
210
+
211
+ [[package]]
212
+ name = "proc-macro2"
213
+ version = "1.0.107"
214
+ source = "registry+https://github.com/rust-lang/crates.io-index"
215
+ checksum = "985e7ec9bb745e6ce6535b544d84d6cd6f7ad8bd711c398938ae983b91a766d9"
216
+ dependencies = [
217
+ "unicode-ident",
218
+ ]
219
+
220
+ [[package]]
221
+ name = "pyo3"
222
+ version = "0.22.6"
223
+ source = "registry+https://github.com/rust-lang/crates.io-index"
224
+ checksum = "f402062616ab18202ae8319da13fa4279883a2b8a9d9f83f20dbade813ce1884"
225
+ dependencies = [
226
+ "cfg-if",
227
+ "indoc",
228
+ "libc",
229
+ "memoffset",
230
+ "once_cell",
231
+ "portable-atomic",
232
+ "pyo3-build-config",
233
+ "pyo3-ffi",
234
+ "pyo3-macros",
235
+ "unindent",
236
+ ]
237
+
238
+ [[package]]
239
+ name = "pyo3-build-config"
240
+ version = "0.22.6"
241
+ source = "registry+https://github.com/rust-lang/crates.io-index"
242
+ checksum = "b14b5775b5ff446dd1056212d778012cbe8a0fbffd368029fd9e25b514479c38"
243
+ dependencies = [
244
+ "once_cell",
245
+ "target-lexicon",
246
+ ]
247
+
248
+ [[package]]
249
+ name = "pyo3-ffi"
250
+ version = "0.22.6"
251
+ source = "registry+https://github.com/rust-lang/crates.io-index"
252
+ checksum = "9ab5bcf04a2cdcbb50c7d6105de943f543f9ed92af55818fd17b660390fc8636"
253
+ dependencies = [
254
+ "libc",
255
+ "pyo3-build-config",
256
+ ]
257
+
258
+ [[package]]
259
+ name = "pyo3-macros"
260
+ version = "0.22.6"
261
+ source = "registry+https://github.com/rust-lang/crates.io-index"
262
+ checksum = "0fd24d897903a9e6d80b968368a34e1525aeb719d568dba8b3d4bfa5dc67d453"
263
+ dependencies = [
264
+ "proc-macro2",
265
+ "pyo3-macros-backend",
266
+ "quote",
267
+ "syn 2.0.119",
268
+ ]
269
+
270
+ [[package]]
271
+ name = "pyo3-macros-backend"
272
+ version = "0.22.6"
273
+ source = "registry+https://github.com/rust-lang/crates.io-index"
274
+ checksum = "36c011a03ba1e50152b4b394b479826cad97e7a21eb52df179cd91ac411cbfbe"
275
+ dependencies = [
276
+ "heck",
277
+ "proc-macro2",
278
+ "pyo3-build-config",
279
+ "quote",
280
+ "syn 2.0.119",
281
+ ]
282
+
283
+ [[package]]
284
+ name = "quote"
285
+ version = "1.0.47"
286
+ source = "registry+https://github.com/rust-lang/crates.io-index"
287
+ checksum = "1fbf4db142a473a8d80c26bbf18454ed458bf8d26c8219c331daecfdbd079001"
288
+ dependencies = [
289
+ "proc-macro2",
290
+ ]
291
+
292
+ [[package]]
293
+ name = "rustversion"
294
+ version = "1.0.23"
295
+ source = "registry+https://github.com/rust-lang/crates.io-index"
296
+ checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
297
+
298
+ [[package]]
299
+ name = "scopeguard"
300
+ version = "1.2.0"
301
+ source = "registry+https://github.com/rust-lang/crates.io-index"
302
+ checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49"
303
+
304
+ [[package]]
305
+ name = "serde"
306
+ version = "1.0.229"
307
+ source = "registry+https://github.com/rust-lang/crates.io-index"
308
+ checksum = "4148590afebada386688f18773da617792bf2ef03ffc1e4cbd2b1d45b023e0ba"
309
+ dependencies = [
310
+ "serde_core",
311
+ "serde_derive",
312
+ ]
313
+
314
+ [[package]]
315
+ name = "serde_core"
316
+ version = "1.0.229"
317
+ source = "registry+https://github.com/rust-lang/crates.io-index"
318
+ checksum = "67dca2c9c51e58a4791a4b1ed58308b39c64224d349a935ab5039aa360942a48"
319
+ dependencies = [
320
+ "serde_derive",
321
+ ]
322
+
323
+ [[package]]
324
+ name = "serde_derive"
325
+ version = "1.0.229"
326
+ source = "registry+https://github.com/rust-lang/crates.io-index"
327
+ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348"
328
+ dependencies = [
329
+ "proc-macro2",
330
+ "quote",
331
+ "syn 3.0.10",
332
+ ]
333
+
334
+ [[package]]
335
+ name = "serde_json"
336
+ version = "1.0.154"
337
+ source = "registry+https://github.com/rust-lang/crates.io-index"
338
+ checksum = "e7e9cc8b1b85264074fbcc02a88680c4096b1e47df8f739dceb03bf482f04bd6"
339
+ dependencies = [
340
+ "itoa",
341
+ "memchr",
342
+ "serde",
343
+ "serde_core",
344
+ "zmij",
345
+ ]
346
+
347
+ [[package]]
348
+ name = "simd-adler32"
349
+ version = "0.3.10"
350
+ source = "registry+https://github.com/rust-lang/crates.io-index"
351
+ checksum = "3a219298ac11a56ea9a6d2120044824d6f01aeb034955e7af7bc16858527deea"
352
+
353
+ [[package]]
354
+ name = "simdutf8"
355
+ version = "0.1.5"
356
+ source = "registry+https://github.com/rust-lang/crates.io-index"
357
+ checksum = "e3a9fe34e3e7a50316060351f37187a3f546bce95496156754b601a5fa71b76e"
358
+
359
+ [[package]]
360
+ name = "syn"
361
+ version = "2.0.119"
362
+ source = "registry+https://github.com/rust-lang/crates.io-index"
363
+ checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297"
364
+ dependencies = [
365
+ "proc-macro2",
366
+ "quote",
367
+ "unicode-ident",
368
+ ]
369
+
370
+ [[package]]
371
+ name = "syn"
372
+ version = "3.0.10"
373
+ source = "registry+https://github.com/rust-lang/crates.io-index"
374
+ checksum = "4ae9ccbea3a7b0b09443036490c8f34a8b1b760fd345e5c0dae0aac718faea79"
375
+ dependencies = [
376
+ "proc-macro2",
377
+ "quote",
378
+ "unicode-ident",
379
+ ]
380
+
381
+ [[package]]
382
+ name = "target-lexicon"
383
+ version = "0.12.16"
384
+ source = "registry+https://github.com/rust-lang/crates.io-index"
385
+ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1"
386
+
387
+ [[package]]
388
+ name = "tinyvec"
389
+ version = "1.13.3"
390
+ source = "registry+https://github.com/rust-lang/crates.io-index"
391
+ checksum = "fd3ca314f692efd6c868f8408f53fe444634a845f96c028b97d35f6a1f79f0ee"
392
+
393
+ [[package]]
394
+ name = "unicode-general-category"
395
+ version = "1.1.0"
396
+ source = "registry+https://github.com/rust-lang/crates.io-index"
397
+ checksum = "0b993bddc193ae5bd0d623b49ec06ac3e9312875fdae725a975c51db1cc1677f"
398
+
399
+ [[package]]
400
+ name = "unicode-ident"
401
+ version = "1.0.27"
402
+ source = "registry+https://github.com/rust-lang/crates.io-index"
403
+ checksum = "a2c754d6c33795a1c324727428e5a7dedb5b06195f9890bdbcba760d3e246563"
404
+
405
+ [[package]]
406
+ name = "unicode-normalization"
407
+ version = "0.1.26"
408
+ source = "registry+https://github.com/rust-lang/crates.io-index"
409
+ checksum = "75cd3fb03d5288b3ba9a1ee103ac7e9cbb59f0b03d64f8ddfcc04dd42758a85d"
410
+ dependencies = [
411
+ "tinyvec",
412
+ ]
413
+
414
+ [[package]]
415
+ name = "unindent"
416
+ version = "0.2.4"
417
+ source = "registry+https://github.com/rust-lang/crates.io-index"
418
+ checksum = "7264e107f553ccae879d21fbea1d6724ac785e8c3bfc762137959b5802826ef3"
419
+
420
+ [[package]]
421
+ name = "zlib-rs"
422
+ version = "0.6.8"
423
+ source = "registry+https://github.com/rust-lang/crates.io-index"
424
+ checksum = "b268e58e7c693d7c271f93ffc4ba3b380412554231c85bf61ca7af91042a4112"
425
+
426
+ [[package]]
427
+ name = "zmij"
428
+ version = "1.0.23"
429
+ source = "registry+https://github.com/rust-lang/crates.io-index"
430
+ checksum = "29666d0abbfad1e3dc4dcf6144730dd3a3ab225bbbdac83319345b1b44ccfc1b"
@@ -0,0 +1,40 @@
1
+ [workspace]
2
+ members = ["crates/cad2d-ir-core", "crates/cad2d-ir-jww", "crates/cad2d-ir-py"]
3
+ resolver = "2"
4
+
5
+ [workspace.package]
6
+ # The version of the cad2d-ir release this is built for (scripts/check_release.py
7
+ # keeps it equal to the one in pyproject.toml).
8
+ version = "0.17.21"
9
+ edition = "2021"
10
+ license = "MIT"
11
+ repository = "https://github.com/monozukuri-ai/cad2d-ir"
12
+
13
+ [workspace.dependencies]
14
+ # The JWW reader, from a released tag: a build needs no checkout of ezjww next
15
+ # to this repository. `ezjww` on PyPI of the same version reads the header in
16
+ # python/cad2d_ir_native/jww.py (the floor in pyproject.toml follows this tag).
17
+ ezjww-core = { git = "https://github.com/monozukuri-ai/ezjww", tag = "v0.7.13" }
18
+
19
+ [package]
20
+ name = "cad2d-ir-native"
21
+ version.workspace = true
22
+ edition.workspace = true
23
+ license.workspace = true
24
+ repository.workspace = true
25
+ description = "Native (Rust) IR core for cad2d-ir: typed IR, DXF writer and JWW mapping (experimental)"
26
+ publish = false
27
+ readme = "README.md"
28
+
29
+ [lib]
30
+ name = "_core"
31
+ crate-type = ["cdylib"]
32
+
33
+ [dependencies]
34
+ cad2d-ir-py = { path = "crates/cad2d-ir-py" }
35
+ pyo3 = { version = "0.22.4", features = ["extension-module", "abi3-py310"] }
36
+
37
+ [profile.release]
38
+ opt-level = 3
39
+ lto = "thin"
40
+ codegen-units = 4
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 neka-nat
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.