forked from pool/python-nltk
		
	the latter has very messy combination of CRLF and LF EOLs, which are hard to patch. - Refresh all patches from the original locations. - Add CVE-2024-39705-disable-download.patch to make a crude workaround around CVE-2024-39705 (gh#nltk/nltk#3266, bsc#1227174). OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-nltk?expand=0&rev=47
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 25d35fc4283dedd2053ec6d821f4b707fff8d72c Mon Sep 17 00:00:00 2001
 | 
						|
From: Konstantin Chernyshev <k4black@ya.ru>
 | 
						|
Date: Thu, 16 Nov 2023 19:00:15 +0100
 | 
						|
Subject: [PATCH 1/8] ci: enable 3.12 in ci tests
 | 
						|
 | 
						|
---
 | 
						|
 .github/workflows/ci.yaml             |    2 +-
 | 
						|
 README.md                             |    2 +-
 | 
						|
 nltk/test/unit/translate/test_bleu.py |    1 -
 | 
						|
 nltk/translate/bleu_score.py          |   29 +++++++++++++++++++++++++++--
 | 
						|
 setup.py                              |    3 ++-
 | 
						|
 5 files changed, 31 insertions(+), 6 deletions(-)
 | 
						|
 | 
						|
--- a/.github/workflows/ci.yaml
 | 
						|
+++ b/.github/workflows/ci.yaml
 | 
						|
@@ -76,7 +76,7 @@ jobs:
 | 
						|
     needs: [cache_nltk_data, cache_third_party]
 | 
						|
     strategy:
 | 
						|
       matrix:
 | 
						|
-        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
 | 
						|
+        python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12']
 | 
						|
         os: [ubuntu-latest, macos-latest, windows-latest]
 | 
						|
       fail-fast: false
 | 
						|
     runs-on: ${{ matrix.os }}
 | 
						|
--- a/README.md
 | 
						|
+++ b/README.md
 | 
						|
@@ -4,7 +4,7 @@
 | 
						|
 
 | 
						|
 NLTK -- the Natural Language Toolkit -- is a suite of open source Python
 | 
						|
 modules, data sets, and tutorials supporting research and development in Natural
 | 
						|
-Language Processing. NLTK requires Python version 3.7, 3.8, 3.9, 3.10 or 3.11.
 | 
						|
+Language Processing. NLTK requires Python version 3.7, 3.8, 3.9, 3.10, 3.11 or 3.12.
 | 
						|
 
 | 
						|
 For documentation, please visit [nltk.org](https://www.nltk.org/).
 | 
						|
 
 | 
						|
--- a/nltk/test/unit/translate/test_bleu.py
 | 
						|
+++ b/nltk/test/unit/translate/test_bleu.py
 | 
						|
@@ -2,7 +2,6 @@
 | 
						|
 Tests for BLEU translation evaluation metric
 | 
						|
 """
 | 
						|
 
 | 
						|
-import io
 | 
						|
 import unittest
 | 
						|
 
 | 
						|
 from nltk.data import find
 | 
						|
--- a/nltk/translate/bleu_score.py
 | 
						|
+++ b/nltk/translate/bleu_score.py
 | 
						|
@@ -7,16 +7,41 @@
 | 
						|
 # For license information, see LICENSE.TXT
 | 
						|
 
 | 
						|
 """BLEU score implementation."""
 | 
						|
-
 | 
						|
 import math
 | 
						|
 import sys
 | 
						|
 import warnings
 | 
						|
 from collections import Counter
 | 
						|
-from fractions import Fraction
 | 
						|
+from fractions import Fraction as _Fraction
 | 
						|
 
 | 
						|
 from nltk.util import ngrams
 | 
						|
 
 | 
						|
 
 | 
						|
+class Fraction(_Fraction):
 | 
						|
+    """Fraction with _normalize=False support for 3.12"""
 | 
						|
+
 | 
						|
+    def __new__(cls, numerator=0, denominator=None, _normalize=False):
 | 
						|
+        if sys.version_info >= (3, 12):
 | 
						|
+            self = super().__new__(cls, numerator, denominator)
 | 
						|
+        else:
 | 
						|
+            self = super().__new__(cls, numerator, denominator, _normalize=_normalize)
 | 
						|
+        self._normalize = _normalize
 | 
						|
+        self._original_numerator = numerator
 | 
						|
+        self._original_denominator = denominator
 | 
						|
+        return self
 | 
						|
+
 | 
						|
+    @property
 | 
						|
+    def numerator(self):
 | 
						|
+        if not self._normalize:
 | 
						|
+            return self._original_numerator
 | 
						|
+        return super().numerator
 | 
						|
+
 | 
						|
+    @property
 | 
						|
+    def denominator(self):
 | 
						|
+        if not self._normalize:
 | 
						|
+            return self._original_denominator
 | 
						|
+        return super().denominator
 | 
						|
+
 | 
						|
+
 | 
						|
 def sentence_bleu(
 | 
						|
     references,
 | 
						|
     hypothesis,
 | 
						|
--- a/setup.py
 | 
						|
+++ b/setup.py
 | 
						|
@@ -67,7 +67,7 @@ setup(
 | 
						|
     },
 | 
						|
     long_description="""\
 | 
						|
 The Natural Language Toolkit (NLTK) is a Python package for
 | 
						|
-natural language processing.  NLTK requires Python 3.7, 3.8, 3.9, 3.10 or 3.11.""",
 | 
						|
+natural language processing.  NLTK requires Python 3.7, 3.8, 3.9, 3.10, 3.11 or 3.12.""",
 | 
						|
     license="Apache License, Version 2.0",
 | 
						|
     keywords=[
 | 
						|
         "NLP",
 | 
						|
@@ -100,6 +100,7 @@ natural language processing.  NLTK requi
 | 
						|
         "Programming Language :: Python :: 3.9",
 | 
						|
         "Programming Language :: Python :: 3.10",
 | 
						|
         "Programming Language :: Python :: 3.11",
 | 
						|
+        "Programming Language :: Python :: 3.12",
 | 
						|
         "Topic :: Scientific/Engineering",
 | 
						|
         "Topic :: Scientific/Engineering :: Artificial Intelligence",
 | 
						|
         "Topic :: Scientific/Engineering :: Human Machine Interfaces",
 |