Skip to main content

Aggregate build for the nl_processing multi-package repository

Project description

nl_processing

PyPI

Dutch language processing toolkit organized as a multi-package Python repository.

Install

pip install nl_processing

The published nl_processing package is the aggregate build from the repo root. Day-to-day development happens inside the package folders under packages/.

Repository Layout

packages/
  core/
  extract_text_from_image/
  extract_words_from_text/
  translate_text/
  translate_word/
  database/
  database_cache/
  sampling/
docs/
pyproject.toml        # aggregate build for the published nl_processing package
Makefile              # repo-wide lint/test entrypoint

Each package has its own:

  • pyproject.toml
  • ruff.toml
  • pytest.ini
  • tests/
  • docs/

Modules

Module Class Description Docs
core N/A Shared models, ports, exceptions, and prompt helpers docs
extract_text_from_image ImageTextExtractor Extract Dutch text from images via Vision API docs
extract_words_from_text WordExtractor Extract and normalize words from markdown text docs
translate_text TextTranslator Translate text (NL -> RU) with markdown preservation docs
translate_word WordTranslator Batch-translate words (NL -> RU) docs
database DatabaseService Remote source of truth and default progress/sync provider docs
database_cache DatabaseCacheService Local-first SQLite cache with injectable remote progress sync docs
sampling WordSampler Weighted word sampling over any compatible scored-pair provider docs

Development

Work inside one package when you only touch one module:

cd packages/translate_word
uv sync --all-groups
uv run pytest tests/unit

Run the repo-wide quality gate from the root:

make check

Useful package-local examples:

cd packages/core
uv run pytest tests/unit/core

cd packages/database
doppler run -- uv run pytest tests/integration/database

Dependency Rule

Modules are independent packages. Cross-module dependencies must be explicit in the consuming package's pyproject.toml.

Shared cross-module storage contracts live in nl_processing.core.ports. database and database_cache are concrete implementations and adapters, not the owners of those shared interfaces.

One intentional design change in this layout: database no longer imports translate_word directly. If you want automatic translation on add_words(), compose it explicitly:

from nl_processing.core.models import Language
from nl_processing.database.service import DatabaseService
from nl_processing.translate_word.service import WordTranslator

db = DatabaseService(
    user_id="alex",
    translator=WordTranslator(
        source_language=Language.NL,
        target_language=Language.RU,
    ),
)

Docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nl_processing-1.0.4.tar.gz (7.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nl_processing-1.0.4-py3-none-any.whl (7.7 MB view details)

Uploaded Python 3

File details

Details for the file nl_processing-1.0.4.tar.gz.

File metadata

  • Download URL: nl_processing-1.0.4.tar.gz
  • Upload date:
  • Size: 7.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for nl_processing-1.0.4.tar.gz
Algorithm Hash digest
SHA256 5f13b12da180fe06a1443eabca47805c4927716eae716e47327ad4f59aa07469
MD5 2088e2b97a51b2aef231ccf05f3bc274
BLAKE2b-256 f3e3600b650fbaad2440c459a6d4e41f1b79ba05df56edf51c6c59955bfce0c7

See more details on using hashes here.

File details

Details for the file nl_processing-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: nl_processing-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 7.7 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for nl_processing-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 47f57f24617f091edc689245dbe40c124cdc11a3f1d447a67e738807df1234a7
MD5 f719793094585f7ecb1c47a34e94035f
BLAKE2b-256 5bda2c5b2f31b5be6b51b5ad882eff96d42d005169d579e04dd49125f9419ac7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page