I'm having a hard time trying to build this project.
I'm not able to make the rust module build by itself if I invoke maturin directly, even if I specifically use maturin 11.3 (as pyproject.toml specifies maturin>=0.11,<0.12
)
output from maturin build
$ maturin build
πΉ Building a mixed python/rust project
π Found pyo3 bindings
π Found CPython 3.10 at python3.10
π¦ Built source distribution to /home/h7x4/git/nuber/target/wheels/nuber-1.1.0.tar.gz
Compiling cfg-if v1.0.0
Compiling libc v0.2.101
Compiling autocfg v1.0.1
Compiling proc-macro2 v1.0.28
Compiling unicode-xid v0.2.2
Compiling syn v1.0.74
Compiling getrandom v0.1.16
Compiling ppv-lite86 v0.2.10
Compiling lazy_static v1.4.0
Compiling siphasher v0.3.6
Compiling crossbeam-utils v0.8.5
Compiling scopeguard v1.1.0
Compiling crossbeam-epoch v0.9.5
Compiling new_debug_unreachable v1.0.4
Compiling serde v1.0.127
Compiling rayon-core v1.9.1
Compiling crc32fast v1.2.1
Compiling pyo3-build-config v0.14.3
Compiling proc-macro-hack v0.5.19
Compiling mac v0.1.1
Compiling log v0.4.16
Compiling once_cell v1.8.0
Compiling utf-8 v0.7.6
Compiling precomputed-hash v0.1.1
Compiling pkg-config v0.3.19
Compiling cc v1.0.69
Compiling adler v1.0.2
Compiling fnv v1.0.7
Compiling byteorder v1.4.3
Compiling strsim v0.10.0
Compiling ident_case v1.0.1
Compiling memchr v2.4.0
Compiling adler32 v1.2.0
Compiling bitflags v1.2.1
Compiling either v1.6.1
Compiling smallvec v1.6.1
Compiling unindent v0.1.8
Compiling anyhow v1.0.43
Compiling weezl v0.1.5
Compiling regex-syntax v0.6.25
Compiling color_quant v1.1.0
Compiling xml-rs v0.8.4
Compiling bytemuck v1.7.2
Compiling percent-encoding v2.1.0
Compiling scoped_threadpool v0.1.9
Compiling unicode-width v0.1.8
Compiling remove_dir_all v0.5.3
Compiling instant v0.1.10
Compiling lock_api v0.4.4
Compiling phf_shared v0.8.0
Compiling memoffset v0.6.4
Compiling miniz_oxide v0.4.4
Compiling num-traits v0.2.14
Compiling num-integer v0.1.44
Compiling rayon v1.5.1
Compiling num-rational v0.3.2
Compiling num-iter v0.1.42
Compiling futf v0.1.4
Compiling miniz_oxide v0.3.7
Compiling deflate v0.8.6
Compiling bzip2-sys v0.1.11+1.0.8
Compiling gif v0.11.2
Compiling phf v0.8.0
Compiling tendril v0.4.2
Compiling crossbeam-channel v0.5.1
Compiling png v0.16.8
Compiling time v0.1.44
Compiling num_cpus v1.13.0
Compiling getrandom v0.2.3
Compiling parking_lot_core v0.8.3
Compiling quote v1.0.9
Compiling aho-corasick v0.7.18
Compiling rand_core v0.5.1
Compiling rand_core v0.6.3
Compiling flate2 v1.0.20
Compiling paste-impl v0.1.18
Compiling pyo3 v0.14.3
Compiling bzip2 v0.4.3
Compiling parking_lot v0.11.1
Compiling rand_chacha v0.2.2
Compiling rand_pcg v0.2.1
Compiling rand_chacha v0.3.1
Compiling crossbeam-deque v0.8.1
Compiling paste v0.1.18
Compiling rand v0.7.3
Compiling regex v1.5.4
Compiling rand v0.8.4
Compiling string_cache v0.8.1
Compiling phf_generator v0.8.0
Compiling tempfile v3.2.0
Compiling string_cache_codegen v0.5.1
Compiling phf_codegen v0.8.0
Compiling markup5ever v0.10.1
Compiling jpeg-decoder v0.1.22
Compiling tiff v0.6.1
Compiling xml5ever v0.16.1
Compiling darling_core v0.13.0
Compiling pyo3-macros-backend v0.14.3
Compiling html5ever v0.25.1
Compiling thiserror-impl v1.0.26
Compiling indoc-impl v0.3.6
Compiling image v0.23.14
Compiling indoc v0.3.6
Compiling thiserror v1.0.26
Compiling zip v0.5.13
Compiling darling_macro v0.13.0
Compiling epub v1.2.3
Compiling pyo3-macros v0.14.3
Compiling markup5ever_rcdom v0.1.0
Compiling darling v0.13.0
Compiling enumset_derive v0.5.5
Compiling html2text v0.2.1 (/home/h7x4/git/nuber/rust-html2text)
Compiling enumset v1.0.7
Compiling nuber v1.1.0 (/home/h7x4/git/nuber)
error[E0407]: method `decorate_header_start` is not a member of trait `TextDecorator`
--> src/parser.rs:270:5
|
270 | fn decorate_header_start(&mut self, level: usize) -> (String, Self::Annotation) {
| ^ --------------------- help: there is an associated function with a similar name: `decorate_code_start`
| _____|
| |
271 | | ("".to_string(), RichAnnotation::Header(level))
272 | | }
| |_____^ not a member of trait `TextDecorator`
error[E0407]: method `decorate_header_end` is not a member of trait `TextDecorator`
--> src/parser.rs:274:5
|
274 | fn decorate_header_end(&mut self) -> String {
| ^ ------------------- help: there is an associated function with a similar name: `decorate_code_end`
| _____|
| |
275 | | "".to_string()
276 | | }
| |_____^ not a member of trait `TextDecorator`
error[E0532]: expected tuple struct or tuple variant, found unit variant `RichAnnotation::Image`
--> src/parser.rs:134:13
|
134 | RichAnnotation::Image(_) => Some(Effect::Image.into()),
| ^^^^^^^^^^^^^^^^^^^^^^^^ help: use this syntax instead: `RichAnnotation::Image`
|
::: /home/h7x4/git/nuber/rust-html2text/src/render/text_renderer.rs:1471:5
|
1471 | Image,
| ----- `RichAnnotation::Image` defined here
error[E0532]: expected tuple struct or tuple variant, found unit variant `RichAnnotation::Image`
--> src/parser.rs:146:41
|
146 | RichAnnotation::Link(url) | RichAnnotation::Image(url) => Some(url),
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use this syntax instead: `RichAnnotation::Image`
|
::: /home/h7x4/git/nuber/rust-html2text/src/render/text_renderer.rs:1471:5
|
1471 | Image,
| ----- `RichAnnotation::Image` defined here
error[E0532]: expected tuple struct or tuple variant, found unit variant `RichAnnotation::Image`
--> src/parser.rs:207:16
|
207 | if let RichAnnotation::Image(url) = annotation {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use this syntax instead: `RichAnnotation::Image`
|
::: /home/h7x4/git/nuber/rust-html2text/src/render/text_renderer.rs:1471:5
|
1471 | Image,
| ----- `RichAnnotation::Image` defined here
error[E0050]: method `decorate_image` has 3 parameters but the declaration in trait `decorate_image` has 2
--> src/parser.rs:286:23
|
286 | fn decorate_image(&mut self, _title: &str, src: &str) -> (String, Self::Annotation) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ expected 2 parameters, found 3
|
= note: `decorate_image` from trait: `fn(&mut Self, &str) -> (String, <Self as TextDecorator>::Annotation)`
error[E0046]: not all trait items implemented, missing: `header_prefix`
--> src/parser.rs:215:1
|
215 | impl<'a> TextDecorator for Decorator<'a> {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ missing `header_prefix` in implementation
|
= help: implement the missing item: `fn header_prefix(&mut self, _: usize) -> String { todo!() }`
error[E0599]: no variant or associated item named `Header` found for enum `RichAnnotation` in the current scope
--> src/parser.rs:140:29
|
140 | RichAnnotation::Header(_) => Some(Effect::Bold.into()),
| ^^^^^^ variant or associated item not found in `RichAnnotation`
error[E0599]: no variant or associated item named `Header` found for enum `RichAnnotation` in the current scope
--> src/parser.rs:271:42
|
271 | ("".to_string(), RichAnnotation::Header(level))
| ^^^^^^ variant or associated item not found in `RichAnnotation`
error[E0618]: expected function, found enum variant `RichAnnotation::Image`
--> src/parser.rs:300:21
|
300 | (first_row, RichAnnotation::Image(src.to_string()))
| ^^^^^^^^^^^^^^^^^^^^^-----------------
| |
| call expression requires function
|
help: `RichAnnotation::Image` is a unit variant, you need to write it without the parentheses
|
300 - (first_row, RichAnnotation::Image(src.to_string()))
300 + (first_row, RichAnnotation::Image)
|
Buildingerror: aborting due to 10 previous errors
Some errors have detailed explanations: E0046, E0050, E0407, E0532, E0599, E0618.
For more information about an error, try `rustc --explain E0046`.
error: could not compile `nuber` due to 11 previous errors
π₯ maturin failed
Caused by: Failed to build a native library through cargo
Caused by: Cargo build finished with "exit status: 101": `cargo rustc --message-format json --manifest-path Cargo.toml --lib --`
I would suspect that the rust module was broken, but it seems like you made a commit to the project ~2 weeks ago, so that might not be the case?
This problem disappears if I rather try to invoke maturin through poetry.
But based on the error, it seems like maturin doesn't even get invoked at all?
Rust-Python bindings seems to be missing.
output from poetry run nuber
$ poetry run nuber
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1050, in _gcd_import
File "<frozen importlib._bootstrap>", line 1027, in _find_and_load
File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 688, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 883, in exec_module
File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
File "/home/h7x4/git/nuber/nuber/__init__.py", line 1, in <module>
from .reader import Reader
File "/home/h7x4/git/nuber/nuber/reader.py", line 6, in <module>
from .rust_module.nuber import Book, Image
ModuleNotFoundError: No module named 'nuber.rust_module.nuber'
Do you think you could add some documentation on how to build this project?