xberg 1.0.0.pre.rc.4 → 1.0.0.pre.rc.5

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0f60934602c639945ecbda935c02cabe03df8fe8de5bcddcc0899dba68efe646
4
- data.tar.gz: 82b50843c61556eb6792503bfb42705a5c7fb9e6b56c978a809b2fea0cb88114
3
+ metadata.gz: fed75d3a0eb4b36e4678f04a53e9235dc49d431ce66ed615e2087b221c328305
4
+ data.tar.gz: a8cfc8cb1d431100f941a0caa5ec89e2404df60011ba4d1db99b032ae9b2778c
5
5
  SHA512:
6
- metadata.gz: d68291a01b8624efaaf620858afdcab0f45791da334e2684a0d1717082a0a4e1d46222f88935f99f149490efb9c45129c69b53fc82cc8f1cb90dfe7276db9dfa
7
- data.tar.gz: 19871a4ca7b01cc2592ab6727ded46818c9a3ffcd19a8e6dacca9447067faa86e9b69f528bd4eca1e42d397d9784bc612894c0b8eddb3631f8499d5676d795e7
6
+ metadata.gz: 6bc43cfaf3bf98784c2b4e727677a2aa0051f75cf6542773db5003d1ac0fb538e098cddb9bb8c82171ea337a9b977cb79d0ee612032d92c8965e07a132ba311d
7
+ data.tar.gz: e5a03eb280da8eabac05bfa66490580d4e35be0b9690223f26e9fc9f0c5fbea0c7459be5ca312bc72bc95fb66da0b520b19b1f72af8cce6c552033bf8bc501b1
@@ -8041,9 +8041,9 @@ dependencies = [
8041
8041
 
8042
8042
  [[package]]
8043
8043
  name = "xberg"
8044
- version = "1.0.0-rc.4"
8044
+ version = "1.0.0-rc.5"
8045
8045
  source = "registry+https://github.com/rust-lang/crates.io-index"
8046
- checksum = "a76147a7c25971413ce67ecdd0bf8511e98e1d2961c277ddb9780a04042d1520"
8046
+ checksum = "58e6e5aad16fbd5fcc7b6502fae40cdb5e704578352d19f717ed147beae4d656"
8047
8047
  dependencies = [
8048
8048
  "ahash 0.8.12",
8049
8049
  "async-trait",
@@ -8159,9 +8159,9 @@ dependencies = [
8159
8159
 
8160
8160
  [[package]]
8161
8161
  name = "xberg-gliner"
8162
- version = "1.0.0-rc.4"
8162
+ version = "1.0.0-rc.5"
8163
8163
  source = "registry+https://github.com/rust-lang/crates.io-index"
8164
- checksum = "807df47546452eeac17e6cc5b806458b0fb388944737bb2ab947f755d3fdc3d4"
8164
+ checksum = "14960d4f14be04ad7599e9b4bc9971d886daab9af3b1c8c18cb5e47c5c1f087e"
8165
8165
  dependencies = [
8166
8166
  "ndarray 0.17.2",
8167
8167
  "ort",
@@ -8173,9 +8173,9 @@ dependencies = [
8173
8173
 
8174
8174
  [[package]]
8175
8175
  name = "xberg-libheif"
8176
- version = "1.0.0-rc.4"
8176
+ version = "1.0.0-rc.5"
8177
8177
  source = "registry+https://github.com/rust-lang/crates.io-index"
8178
- checksum = "4e148e2a3c8e83255340e7c1c25ef182f295671db67394d757cfe20bca64a5b1"
8178
+ checksum = "63979f3aaceb7223c7487da9adb4218f0fd8b24945f7addc39c703367005b82b"
8179
8179
  dependencies = [
8180
8180
  "cfg-if",
8181
8181
  "enumn",
@@ -8186,9 +8186,9 @@ dependencies = [
8186
8186
 
8187
8187
  [[package]]
8188
8188
  name = "xberg-paddle-ocr"
8189
- version = "1.0.0-rc.4"
8189
+ version = "1.0.0-rc.5"
8190
8190
  source = "registry+https://github.com/rust-lang/crates.io-index"
8191
- checksum = "debc0f3a756b2804b1405f7be5d54ecc6c1b6147d27ee80ae787332b1b2c5679"
8191
+ checksum = "a7312f7dd14925ba307cfbae49a401f00cb10adc61ee0143eebf1823a7d6dde2"
8192
8192
  dependencies = [
8193
8193
  "geo-clipper",
8194
8194
  "geo-types",
@@ -8198,11 +8198,12 @@ dependencies = [
8198
8198
  "ort",
8199
8199
  "serde",
8200
8200
  "thiserror 2.0.18",
8201
+ "tracing",
8201
8202
  ]
8202
8203
 
8203
8204
  [[package]]
8204
8205
  name = "xberg-rb"
8205
- version = "1.0.0-rc.4"
8206
+ version = "1.0.0-rc.5"
8206
8207
  dependencies = [
8207
8208
  "async-trait",
8208
8209
  "crawlberg",
@@ -8216,9 +8217,9 @@ dependencies = [
8216
8217
 
8217
8218
  [[package]]
8218
8219
  name = "xberg-tesseract"
8219
- version = "1.0.0-rc.4"
8220
+ version = "1.0.0-rc.5"
8220
8221
  source = "registry+https://github.com/rust-lang/crates.io-index"
8221
- checksum = "5304cbdb76bdd5a447b3dffd4649e62a865dad2a50d8e290648fd5d2871b9853"
8222
+ checksum = "baa8f3da708f99800852607a72dd0e7a606a8dc55959c4eac05e1c62836aa31b"
8222
8223
  dependencies = [
8223
8224
  "cc",
8224
8225
  "cmake",
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "xberg-rb"
3
- version = "1.0.0-rc.4"
3
+ version = "1.0.0-rc.5"
4
4
  edition = "2024"
5
5
  license = "MIT"
6
6
  description = "High-performance document intelligence library"
@@ -17,37 +17,7 @@ path = "../src/lib.rs"
17
17
  crate-type = ["cdylib"]
18
18
 
19
19
  [features]
20
- default = [
21
- "api",
22
- "api-types",
23
- "auto-rotate-types",
24
- "chunking-tokenizers",
25
- "diff",
26
- "heic",
27
- "heuristics",
28
- "html",
29
- "keywords-rake",
30
- "keywords-yake",
31
- "layout-types",
32
- "liter-llm",
33
- "markdown-footnotes",
34
- "ocr",
35
- "ocr-wasm",
36
- "office",
37
- "paddle-ocr-types",
38
- "pdf",
39
- "presets",
40
- "quality",
41
- "redaction",
42
- "reranker",
43
- "reranker-presets",
44
- "svg",
45
- "transcription-types",
46
- "tree-sitter",
47
- "url-config-types",
48
- "url-ingestion",
49
- "xml",
50
- ]
20
+ default = ["api", "api-types", "auto-rotate-types", "chunking-tokenizers", "diff", "heic", "heuristics", "html", "keywords-rake", "keywords-yake", "layout-types", "liter-llm", "markdown-footnotes", "ocr", "ocr-wasm", "office", "paddle-ocr-types", "pdf", "presets", "quality", "redaction", "reranker", "reranker-presets", "svg", "transcription-types", "tree-sitter", "url-config-types", "url-ingestion", "xml"]
51
21
  api = ["xberg/api"]
52
22
  api-types = ["xberg/api-types"]
53
23
  auto-rotate-types = ["xberg/auto-rotate-types"]
@@ -80,62 +50,17 @@ xml = ["xberg/xml"]
80
50
 
81
51
  [dependencies]
82
52
  async-trait = "0.1"
83
- crawlberg = { default-features = false, version = "1.0.1" }
53
+ crawlberg = { default-features = false, version = "1.0.2" }
84
54
  magnus = "0.8"
85
55
  rb-sys = ">=0.9, <0.9.128"
86
56
  serde = { version = "1", features = ["derive"] }
87
57
  serde_json = "1"
88
58
  tokio = { version = "1", features = ["rt-multi-thread"] }
89
59
  [target.'cfg(not(any(target_os = "windows", all(target_os = "macos", target_arch = "x86_64"))))'.dependencies]
90
- xberg = { version = "1.0.0-rc.4", features = [
91
- "full",
92
- "pdf",
93
- "ocr",
94
- "paddle-ocr",
95
- "paddle-ocr-types",
96
- "layout-detection",
97
- "layout-types",
98
- "embeddings",
99
- "embedding-presets",
100
- "reranker",
101
- "reranker-presets",
102
- "chunking",
103
- "keywords-yake",
104
- "keywords-rake",
105
- "language-detection",
106
- "html",
107
- "tree-sitter",
108
- "office",
109
- "email",
110
- "archives",
111
- "stopwords",
112
- "auto-rotate",
113
- "auto-rotate-types",
114
- "tokio-runtime",
115
- "api",
116
- "api-types",
117
- "mcp",
118
- "liter-llm",
119
- "quality",
120
- "svg",
121
- "transcription",
122
- "transcription-types",
123
- "classification",
124
- "captioning",
125
- "ner-onnx",
126
- "ner-llm",
127
- "diff",
128
- "markdown-footnotes",
129
- "redaction",
130
- "enrichment",
131
- "heuristics",
132
- "presets",
133
- "structured",
134
- "url-ingestion",
135
- ] }
60
+ xberg = { version = "1.0.0-rc.5", features = ["full", "pdf", "ocr", "paddle-ocr", "paddle-ocr-types", "layout-detection", "layout-types", "embeddings", "embedding-presets", "reranker", "reranker-presets", "chunking", "keywords-yake", "keywords-rake", "language-detection", "html", "tree-sitter", "office", "email", "archives", "stopwords", "auto-rotate", "auto-rotate-types", "tokio-runtime", "api", "api-types", "mcp", "liter-llm", "quality", "svg", "transcription", "transcription-types", "classification", "captioning", "ner-onnx", "ner-llm", "diff", "markdown-footnotes", "redaction", "enrichment", "heuristics", "presets", "structured", "url-ingestion"] }
136
61
 
137
62
  [target.'cfg(target_os = "windows")'.dependencies]
138
- xberg = { version = "1.0.0-rc.4", features = ["windows-target"] }
63
+ xberg = { version = "1.0.0-rc.5", features = ["windows-target"] }
139
64
 
140
65
  [target.'cfg(all(target_os = "macos", target_arch = "x86_64"))'.dependencies]
141
- xberg = { version = "1.0.0-rc.4", features = ["macos-intel-target"] }
66
+ xberg = { version = "1.0.0-rc.5", features = ["macos-intel-target"] }
@@ -1,5 +1,5 @@
1
1
  // This file is auto-generated by alef. DO NOT EDIT.
2
- // alef:hash:064b2fedf5a210fd140f7a7a70a21a62470f21a1e52b3357db9f1855bc4b332b
2
+ // alef:hash:9b6c82fdc18c3106bdec2c926b44f0262b7dcc51189a52c181c04410d16a2fd9
3
3
  // Re-generate with: alef generate
4
4
  #![allow(dead_code, unused_imports, unused_variables)]
5
5
  #![allow(
@@ -2415,6 +2415,7 @@ pub struct LayoutDetectionConfig {
2415
2415
  confidence_threshold: Option<f32>,
2416
2416
  apply_heuristics: bool,
2417
2417
  table_model: TableModel,
2418
+ table_overlap_preference: TableOverlapPreference,
2418
2419
  acceleration: Option<AccelerationConfig>,
2419
2420
  enable_chart_understanding: bool,
2420
2421
  }
@@ -2471,6 +2472,10 @@ impl LayoutDetectionConfig {
2471
2472
  .get(ruby.to_symbol("table_model"))
2472
2473
  .and_then(|v| TableModel::try_convert(v).ok())
2473
2474
  .unwrap_or_default(),
2475
+ table_overlap_preference: kwargs
2476
+ .get(ruby.to_symbol("table_overlap_preference"))
2477
+ .and_then(|v| TableOverlapPreference::try_convert(v).ok())
2478
+ .unwrap_or_default(),
2474
2479
  acceleration: kwargs
2475
2480
  .get(ruby.to_symbol("acceleration"))
2476
2481
  .and_then(|v| AccelerationConfig::try_convert(v).ok()),
@@ -2493,6 +2498,10 @@ impl LayoutDetectionConfig {
2493
2498
  self.table_model.clone()
2494
2499
  }
2495
2500
 
2501
+ fn table_overlap_preference(&self) -> TableOverlapPreference {
2502
+ self.table_overlap_preference.clone()
2503
+ }
2504
+
2496
2505
  fn acceleration(&self) -> Option<AccelerationConfig> {
2497
2506
  self.acceleration.clone()
2498
2507
  }
@@ -20581,6 +20590,51 @@ impl magnus::TryConvert for TableModel {
20581
20590
  unsafe impl IntoValueFromNative for TableModel {}
20582
20591
  unsafe impl TryConvertOwned for TableModel {}
20583
20592
 
20593
+ #[derive(Clone, Copy, PartialEq, Eq, Debug, serde::Serialize, serde::Deserialize)]
20594
+ #[serde(rename_all = "snake_case")]
20595
+ pub enum TableOverlapPreference {
20596
+ Content,
20597
+ Native,
20598
+ Layout,
20599
+ }
20600
+
20601
+ impl Default for TableOverlapPreference {
20602
+ fn default() -> Self {
20603
+ Self::Content
20604
+ }
20605
+ }
20606
+
20607
+ impl magnus::IntoValue for TableOverlapPreference {
20608
+ fn into_value_with(self, handle: &Ruby) -> magnus::Value {
20609
+ let sym = match self {
20610
+ TableOverlapPreference::Content => "content",
20611
+ TableOverlapPreference::Native => "native",
20612
+ TableOverlapPreference::Layout => "layout",
20613
+ };
20614
+ handle.to_symbol(sym).into_value_with(handle)
20615
+ }
20616
+ }
20617
+
20618
+ impl magnus::TryConvert for TableOverlapPreference {
20619
+ fn try_convert(val: magnus::Value) -> Result<Self, magnus::Error> {
20620
+ let s: String = magnus::TryConvert::try_convert(val)?;
20621
+ // Accept the serde wire name (snake_case), the PascalCase Rust variant name,
20622
+ // and a lowercase fallback so fixtures written in any of those styles work.
20623
+ match s.as_str() {
20624
+ "content" | "Content" => Ok(TableOverlapPreference::Content),
20625
+ "native" | "Native" => Ok(TableOverlapPreference::Native),
20626
+ "layout" | "Layout" => Ok(TableOverlapPreference::Layout),
20627
+ other => Err(magnus::Error::new(
20628
+ unsafe { Ruby::get_unchecked() }.exception_arg_error(),
20629
+ format!("invalid TableOverlapPreference value: {other}"),
20630
+ )),
20631
+ }
20632
+ }
20633
+ }
20634
+
20635
+ unsafe impl IntoValueFromNative for TableOverlapPreference {}
20636
+ unsafe impl TryConvertOwned for TableOverlapPreference {}
20637
+
20584
20638
  #[derive(Clone, Copy, PartialEq, Eq, Debug, serde::Serialize, serde::Deserialize)]
20585
20639
  #[serde(rename_all = "snake_case")]
20586
20640
  pub enum CallMode {
@@ -26356,6 +26410,7 @@ impl From<LayoutDetectionConfig> for xberg::LayoutDetectionConfig {
26356
26410
  confidence_threshold: val.confidence_threshold,
26357
26411
  apply_heuristics: val.apply_heuristics,
26358
26412
  table_model: val.table_model.into(),
26413
+ table_overlap_preference: val.table_overlap_preference.into(),
26359
26414
  acceleration: val.acceleration.map(Into::into),
26360
26415
  enable_chart_understanding: val.enable_chart_understanding,
26361
26416
  }
@@ -26369,6 +26424,7 @@ impl From<xberg::LayoutDetectionConfig> for LayoutDetectionConfig {
26369
26424
  confidence_threshold: val.confidence_threshold,
26370
26425
  apply_heuristics: val.apply_heuristics,
26371
26426
  table_model: val.table_model.into(),
26427
+ table_overlap_preference: val.table_overlap_preference.into(),
26372
26428
  acceleration: val.acceleration.map(Into::into),
26373
26429
  enable_chart_understanding: val.enable_chart_understanding,
26374
26430
  }
@@ -30841,6 +30897,26 @@ impl From<xberg::TableModel> for TableModel {
30841
30897
  }
30842
30898
  }
30843
30899
 
30900
+ impl From<TableOverlapPreference> for xberg::core::config::layout::TableOverlapPreference {
30901
+ fn from(val: TableOverlapPreference) -> Self {
30902
+ match val {
30903
+ TableOverlapPreference::Content => Self::Content,
30904
+ TableOverlapPreference::Native => Self::Native,
30905
+ TableOverlapPreference::Layout => Self::Layout,
30906
+ }
30907
+ }
30908
+ }
30909
+
30910
+ impl From<xberg::core::config::layout::TableOverlapPreference> for TableOverlapPreference {
30911
+ fn from(val: xberg::core::config::layout::TableOverlapPreference) -> Self {
30912
+ match val {
30913
+ xberg::core::config::layout::TableOverlapPreference::Content => Self::Content,
30914
+ xberg::core::config::layout::TableOverlapPreference::Native => Self::Native,
30915
+ xberg::core::config::layout::TableOverlapPreference::Layout => Self::Layout,
30916
+ }
30917
+ }
30918
+ }
30919
+
30844
30920
  impl From<CallMode> for xberg::CallMode {
30845
30921
  fn from(val: CallMode) -> Self {
30846
30922
  match val {
@@ -32991,6 +33067,11 @@ fn ruby_init(ruby: &Ruby) -> Result<(), Error> {
32991
33067
 
32992
33068
  class.define_method("table_model", method!(LayoutDetectionConfig::table_model, 0))?;
32993
33069
 
33070
+ class.define_method(
33071
+ "table_overlap_preference",
33072
+ method!(LayoutDetectionConfig::table_overlap_preference, 0),
33073
+ )?;
33074
+
32994
33075
  class.define_method("acceleration", method!(LayoutDetectionConfig::acceleration, 0))?;
32995
33076
 
32996
33077
  class.define_method(
data/lib/xberg/native.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:a8a2fb5049e2e094c83b3ad2e0f6f13f62b4fea58f71c4a4f1e331a37b4cdec3
2
+ # alef:hash:9b6c82fdc18c3106bdec2c926b44f0262b7dcc51189a52c181c04410d16a2fd9
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify --exit-code
5
5
  # frozen_string_literal: true
data/lib/xberg/version.rb CHANGED
@@ -1,10 +1,10 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:a8a2fb5049e2e094c83b3ad2e0f6f13f62b4fea58f71c4a4f1e331a37b4cdec3
2
+ # alef:hash:9b6c82fdc18c3106bdec2c926b44f0262b7dcc51189a52c181c04410d16a2fd9
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify --exit-code
5
5
  # frozen_string_literal: true
6
6
 
7
7
  module Xberg
8
8
  ## The version string for this package.
9
- VERSION = "1.0.0.pre.rc.4"
9
+ VERSION = "1.0.0.pre.rc.5"
10
10
  end
data/lib/xberg.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:a8a2fb5049e2e094c83b3ad2e0f6f13f62b4fea58f71c4a4f1e331a37b4cdec3
2
+ # alef:hash:9b6c82fdc18c3106bdec2c926b44f0262b7dcc51189a52c181c04410d16a2fd9
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify --exit-code
5
5
  # frozen_string_literal: true
data/lib/xberg_rb.so CHANGED
Binary file
data/sig/types.rbs CHANGED
@@ -1,5 +1,5 @@
1
1
  # This file is auto-generated by alef — DO NOT EDIT.
2
- # alef:hash:a8a2fb5049e2e094c83b3ad2e0f6f13f62b4fea58f71c4a4f1e331a37b4cdec3
2
+ # alef:hash:9b6c82fdc18c3106bdec2c926b44f0262b7dcc51189a52c181c04410d16a2fd9
3
3
  # To regenerate: alef generate
4
4
  # To verify freshness: alef verify --exit-code
5
5
 
@@ -266,10 +266,11 @@ def initialize: (?results: Array[ExtractedDocument], ?errors: Array[ExtractionEr
266
266
  attr_accessor confidence_threshold: Float?
267
267
  attr_accessor apply_heuristics: bool?
268
268
  attr_accessor table_model: TableModel?
269
+ attr_accessor table_overlap_preference: TableOverlapPreference?
269
270
  attr_accessor acceleration: AccelerationConfig?
270
271
  attr_accessor enable_chart_understanding: bool?
271
272
 
272
- def initialize: (?confidence_threshold: Float, ?apply_heuristics: bool, ?table_model: TableModel, ?acceleration: AccelerationConfig, ?enable_chart_understanding: bool) -> void
273
+ def initialize: (?confidence_threshold: Float, ?apply_heuristics: bool, ?table_model: TableModel, ?table_overlap_preference: TableOverlapPreference, ?acceleration: AccelerationConfig, ?enable_chart_understanding: bool) -> void
273
274
  def self.default: () -> LayoutDetectionConfig
274
275
  end
275
276
 
@@ -2202,6 +2203,10 @@ def initialize: (?max_depth: Integer, ?max_pages: Integer, ?max_concurrent: Inte
2202
2203
  type value = :tatr | :slanet_wired | :slanet_wireless | :slanet_plus | :slanet_auto | :disabled
2203
2204
  end
2204
2205
 
2206
+ class TableOverlapPreference
2207
+ type value = :content | :native | :layout
2208
+ end
2209
+
2205
2210
  class CallMode
2206
2211
  type value = :text_only | :vision_only | :text_plus_vision
2207
2212
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xberg
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0.pre.rc.4
4
+ version: 1.0.0.pre.rc.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Na'aman Hirschfeld <naaman@xberg.io>