Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
0eb93d9
:arrow_up: bump minimum python version to 3.10
sebastianMindee May 29, 2026
0708131
:boom: :coffin: remove support for all unused V1 prompt APIs (#406)
sebastianMindee Jun 1, 2026
af9e357
:boom: :recycle: move v1 and v2 internals to their respective namespaces
sebastianMindee Jun 1, 2026
31e54c1
:boom: :recycle: rename inference product to extraction and move inte…
sebastianMindee Jun 1, 2026
be8a9e0
:boom: :recycle: move more v2 and v1 internals
sebastianMindee Jun 1, 2026
987c188
:boom: :recycle: move extraction PDF and Image into their respective …
sebastianMindee Jun 2, 2026
2853658
:boom: :recycle: remove support for source_from_xxx() pattern (#409)
sebastianMindee Jun 2, 2026
59ff0c9
:arrow_up: upgrade dependencies and add more tools
sebastianMindee Jun 2, 2026
e5dbc74
:memo: fix doc
sebastianMindee Jun 2, 2026
5280d1c
:muscle: :wrench: beef up rust criteria and fix many errors
sebastianMindee Jun 2, 2026
267d010
:recycle: refactor internals
sebastianMindee Jun 3, 2026
52131bd
:recycle: fix inference fields circular imports
sebastianMindee Jun 3, 2026
0191e09
:sparkles: add typed accessors for inference fields
sebastianMindee Jun 3, 2026
b3a167a
:recycle: move crop and split extractors to result level and update f…
sebastianMindee Jun 3, 2026
f7fc0e7
:wrench: add sphinx to pre-commit
sebastianMindee Jun 3, 2026
4ba94d5
:boom: :recycle: remove version slug from V1 and V2 urls
sebastianMindee Jun 5, 2026
ae73285
:boom: :recycle: remove deprecated methods and classes
sebastianMindee Jun 5, 2026
7084913
:boom: :wrench: convert LocalInputSource page_count to an attribute
sebastianMindee Jun 5, 2026
c2c5e92
:arrow_down: remove pytz dependency
sebastianMindee Jun 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
69 changes: 69 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
version: 2

updates:
- package-ecosystem: "pip"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:00"
timezone: "Europe/Paris"
open-pull-requests-limit: 8
commit-message:
prefix: "chore(deps)"
groups:
runtime-dependencies:
patterns:
- "requests"
optional-dependencies:
patterns:
- "pypdfium2"
- "Pillow"
test-dependencies:
patterns:
- "pytest"
- "pytest-cov"
- "toml"
lint-dependencies:
patterns:
- "pylint"
- "pre-commit"
- "types-*"
docs-dependencies:
patterns:
- "sphinx"
- "sphinx-*"
build-dependencies:
patterns:
- "build"
- "twine"

- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "09:30"
timezone: "Europe/Paris"
open-pull-requests-limit: 3
commit-message:
prefix: "chore(ci)"
groups:
github-actions:
patterns:
- "*"

- package-ecosystem: "pre-commit"
directory: "/"
schedule:
interval: "weekly"
day: "monday"
time: "10:00"
timezone: "Europe/Paris"
open-pull-requests-limit: 3
commit-message:
prefix: "chore(pre-commit)"
groups:
pre-commit-hooks:
patterns:
- "*"
6 changes: 6 additions & 0 deletions .github/workflows/_publish-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,14 @@ jobs:
cd ./docs
make html

- name: Sphinx make linkcheck
run: |
cd ./docs
make linkcheck

- name: Deploy
uses: peaceiris/actions-gh-pages@v4
if: success()
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/_build/html
4 changes: 2 additions & 2 deletions .github/workflows/_smoke-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
max-parallel: 2
matrix:
python-version:
- "3.8"
- "3.10"
- "3.14"
runs-on: "ubuntu-22.04"
steps:
Expand Down Expand Up @@ -56,7 +56,7 @@ jobs:
./tests/test_v1_code_samples.sh ${{ secrets.MINDEE_ACCOUNT_SE_TESTS }} ${{ secrets.MINDEE_ENDPOINT_SE_TESTS }}

- name: Notify Slack Action on Failure
uses: ravsamhq/notify-slack-action@2.3.0
uses: ravsamhq/notify-slack-action@2.5.0
if: ${{ always() && github.ref_name == 'main' }}
with:
status: ${{ job.status }}
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/_static-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -52,5 +52,7 @@ jobs:
${{ runner.os }}-prec-

- name: Run all static analysis
env:
SKIP: sphinx-html,sphinx-linkcheck
run: |
pre-commit run --all-files
2 changes: 1 addition & 1 deletion .github/workflows/_test-integrations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- "ubuntu-22.04"
- "windows-2022"
python-version:
- "3.8"
- "3.10"
- "3.14"
runs-on: ${{ matrix.os }}
steps:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/_test-regressions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- "ubuntu-22.04"
- "windows-2022"
python-version:
- "3.8"
- "3.10"
- "3.14"
runs-on: ${{ matrix.os }}
steps:
Expand Down
4 changes: 1 addition & 3 deletions .github/workflows/_test-units.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,6 @@ jobs:
- "ubuntu-22.04"
- "windows-2022"
python-version:
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12"
Expand All @@ -38,7 +36,7 @@ jobs:
uses: actions/cache@v5
with:
path: ~/.cache/pip
key: ${{ runner.os }}-test-${{ hashFiles('setup.cfg') }}
key: ${{ runner.os }}-test-${{ hashFiles('pyproject.toml') }}
restore-keys: |
${{ runner.os }}-test-

Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -137,5 +137,6 @@ dmypy.json
*.swp
*-swp
_test.py
_test*.py
_test.json
local_test
29 changes: 24 additions & 5 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@ repos:
args: [ --fix, --exit-non-zero-on-fix]
- id: ruff-format

- repo: https://github.com/gitleaks/gitleaks
rev: v8.30.0
- repo: https://github.com/betterleaks/betterleaks
rev: v1.3.1
hooks:
- id: gitleaks
- id: betterleaks

- repo: https://github.com/PyCQA/pylint
rev: v3.3.9
rev: v4.0.5
hooks:
- id: pylint
name: pylint
Expand All @@ -22,6 +22,11 @@ repos:
args: [
"-j2"
]
- repo: https://github.com/pypa/pip-audit
rev: v2.10.0
hooks:
- id: pip-audit
args: ["."]

- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.18.2
Expand All @@ -31,8 +36,22 @@ repos:
exclude: "tests/|examples/|docs/"
additional_dependencies:
- toml
- types-pytz
- types-requests
- types-setuptools
- importlib-metadata
- types-Pillow
- repo: local
hooks:
- id: sphinx-html
name: Sphinx HTML build
entry: make -C docs html
language: system
pass_filenames: false
files: ^docs/.*$|^mindee/.*\.py$

- id: sphinx-linkcheck
name: Sphinx Linkcheck
entry: make -C docs linkcheck
language: system
pass_filenames: false
files: ^docs/.*$|^mindee/.*\.py$
4 changes: 0 additions & 4 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -104,10 +104,6 @@ recursive=no
# source root.
source-roots=

# When enabled, pylint would attempt to guess common misconfiguration and emit
# user-friendly hints instead of false-positive error messages.
suggestion-mode=yes

# Allow loading of arbitrary C extensions. Extensions are imported into the
# active Python interpreter and may run arbitrary code.
unsafe-load-any-extension=no
Expand Down
10 changes: 0 additions & 10 deletions docs/client.rst

This file was deleted.

7 changes: 7 additions & 0 deletions docs/client_mixin.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
------------
Client Mixin
------------

.. autoclass:: mindee.client_mixin
:members:
:inherited-members:
8 changes: 8 additions & 0 deletions docs/client_options.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
Client Options
##############

Polling Options
===============
.. autoclass:: mindee.client_options.polling_options.PollingOptions
:members:
:inherited-members:
1 change: 1 addition & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -73,3 +73,4 @@
# -- autodoc-typehints -------------------------------------------------------

typehints_defaults = "comma"
suppress_warnings = ["ref.python"]
File renamed without changes.
5 changes: 3 additions & 2 deletions docs/extras/code_samples/bank_account_details_v1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
# pip install mindee
#

from mindee import Client, PredictResponse, product
from mindee.v1 import Client, PredictResponse, product
from mindee import PathInput

# Init a new client
mindee_client = Client(api_key="my-api-key")

# Load a file from disk
input_doc = mindee_client.source_from_path("/path/to/the/file.ext")
input_doc = PathInput("/path/to/the/file.ext")

# Load a file from disk and parse it.
result: PredictResponse = mindee_client.parse(
Expand Down
5 changes: 3 additions & 2 deletions docs/extras/code_samples/bank_account_details_v2.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
# pip install mindee
#

from mindee import Client, PredictResponse, product
from mindee.v1 import Client, PredictResponse, product
from mindee import PathInput

# Init a new client
mindee_client = Client(api_key="my-api-key")

# Load a file from disk
input_doc = mindee_client.source_from_path("/path/to/the/file.ext")
input_doc = PathInput("/path/to/the/file.ext")

# Load a file from disk and parse it.
result: PredictResponse = mindee_client.parse(
Expand Down
5 changes: 3 additions & 2 deletions docs/extras/code_samples/bank_check_v1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
# pip install mindee
#

from mindee import Client, PredictResponse, product
from mindee.v1 import Client, PredictResponse, product
from mindee import PathInput

# Init a new client
mindee_client = Client(api_key="my-api-key")

# Load a file from disk
input_doc = mindee_client.source_from_path("/path/to/the/file.ext")
input_doc = PathInput("/path/to/the/file.ext")

# Load a file from disk and parse it.
result: PredictResponse = mindee_client.parse(
Expand Down
5 changes: 3 additions & 2 deletions docs/extras/code_samples/barcode_reader_v1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
# pip install mindee
#

from mindee import Client, PredictResponse, product
from mindee.v1 import Client, PredictResponse, product
from mindee import PathInput

# Init a new client
mindee_client = Client(api_key="my-api-key")

# Load a file from disk
input_doc = mindee_client.source_from_path("/path/to/the/file.ext")
input_doc = PathInput("/path/to/the/file.ext")

# Load a file from disk and parse it.
result: PredictResponse = mindee_client.parse(
Expand Down
21 changes: 0 additions & 21 deletions docs/extras/code_samples/bill_of_lading_v1_async.txt

This file was deleted.

21 changes: 0 additions & 21 deletions docs/extras/code_samples/business_card_v1_async.txt

This file was deleted.

5 changes: 3 additions & 2 deletions docs/extras/code_samples/carte_grise_v1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
# pip install mindee
#

from mindee import Client, PredictResponse, product
from mindee.v1 import Client, PredictResponse, product
from mindee import PathInput

# Init a new client
mindee_client = Client(api_key="my-api-key")

# Load a file from disk
input_doc = mindee_client.source_from_path("/path/to/the/file.ext")
input_doc = PathInput("/path/to/the/file.ext")

# Load a file from disk and parse it.
result: PredictResponse = mindee_client.parse(
Expand Down
5 changes: 3 additions & 2 deletions docs/extras/code_samples/cropper_v1.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
# pip install mindee
#

from mindee import Client, PredictResponse, product
from mindee.v1 import Client, PredictResponse, product
from mindee import PathInput

# Init a new client
mindee_client = Client(api_key="my-api-key")

# Load a file from disk
input_doc = mindee_client.source_from_path("/path/to/the/file.ext")
input_doc = PathInput("/path/to/the/file.ext")

# Load a file from disk and parse it.
result: PredictResponse = mindee_client.parse(
Expand Down
Loading
Loading