lingua 1.8.0

An accurate natural language detection library, suitable for short text and mixed-language text
Documentation
#
# Copyright © 2020-present Peter M. Stahl pemistahl@gmail.com
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either expressed or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Python Build

on:
  push:
    branches:
      - main
    paths:
      - 'Cargo.lock'
      - 'Cargo.toml'
      - 'pyproject.toml'
      - 'requirements.txt'
      - 'src/**'
      - 'tests/**'
      - '**.yml'
  pull_request:
    branches:
      - main
    paths:
      - 'Cargo.lock'
      - 'Cargo.toml'
      - 'pyproject.toml'
      - 'requirements.txt'
      - 'src/**'
      - 'tests/**'
      - '**.yml'

jobs:
  python-build:
      name: Python ${{ matrix.python-version }} on ${{ matrix.name }}

      runs-on: ${{ matrix.os }}

      strategy:
        fail-fast: false
        matrix:
          os: [ ubuntu-latest, macos-latest, windows-latest ]
          python-version: [ '3.12', '3.13', '3.14' ]
          include:
            - os: ubuntu-latest
              name: Linux 64-Bit

            - os: macos-latest
              name: MacOS 64-Bit

            - os: windows-latest
              name: Windows 64-Bit

      steps:
        - name: Check out repository
          uses: actions/checkout@v6

        - name: Set up Python
          uses: actions/setup-python@v6
          with:
            python-version: ${{ matrix.python-version }}
            cache: 'pip'

        - name: Install maturin and pytest
          run: pip install -r requirements.txt

        - name: Build Python extension
          run: maturin build

        - name: Install Python extension
          run: pip install --find-links=target/wheels lingua-language-detector

        - name: Run Python unit tests
          run: pytest tests/python