Nltk: Menjatuhkan Dukungan Python 2.7

Dibuat pada 10 Mei 2019  ·  4Komentar  ·  Sumber: nltk/nltk

Dari https://travis-ci.org/nltk/nltk/jobs/530566954 , beberapa dependensi yang bergantung pada NLTK tidak lagi mendukung Python 2.7. Saya pikir ini saat yang tepat untuk juga menghentikan dukungan untuk Python 2.7 sehingga CI kami terus bekerja dan memajukan perpustakaan.

admin python2.7 python3 pythonic

Komentar yang paling membantu

Dengan dukungan Python 3.8 dari #2432 , mungkin sudah saatnya kita secara resmi menjatuhkan Python 2.7? Ini tahun 2020 =)

P/S: Ini sudah keluar dari alur kerja CI kami cukup lama.

Semua 4 komentar

Saya melihat, ok, saatnya untuk melanjutkan!

Mulai dari ini __future__ =)

~/git-stuff/my-contrib/nltk$ grep "__future__" nltk/**/*
nltk/app/chartparser_app.py:from __future__ import division
nltk/app/chunkparser_app.py:from __future__ import division
nltk/app/collocations_app.py:from __future__ import division
nltk/app/rdparser_app.py:from __future__ import division
nltk/app/wordnet_app.py:from __future__ import print_function
nltk/ccg/api.py:from __future__ import unicode_literals
nltk/ccg/chart.py:from __future__ import print_function, division, unicode_literals
nltk/ccg/combinator.py:from __future__ import unicode_literals
nltk/ccg/lexicon.py:from __future__ import unicode_literals
nltk/chat/__init__.py:from __future__ import print_function
nltk/chat/eliza.py:from __future__ import print_function
nltk/chat/iesha.py:from __future__ import print_function
nltk/chat/rude.py:from __future__ import print_function
nltk/chat/suntsu.py:from __future__ import print_function
nltk/chat/util.py:from __future__ import print_function
nltk/chat/zen.py:from __future__ import print_function
nltk/chunk/named_entity.py:from __future__ import print_function
nltk/chunk/named_entity.py:from __future__ import unicode_literals
nltk/chunk/regexp.py:from __future__ import print_function, unicode_literals
nltk/chunk/regexp.py:from __future__ import division
nltk/chunk/util.py:from __future__ import print_function, unicode_literals, division
nltk/classify/decisiontree.py:from __future__ import print_function, unicode_literals, division
nltk/classify/maxent.py:from __future__ import print_function, unicode_literals
nltk/classify/megam.py:from __future__ import print_function
nltk/classify/naivebayes.py:from __future__ import print_function, unicode_literals
nltk/classify/rte_classify.py:from __future__ import print_function
nltk/classify/scikitlearn.py:from __future__ import print_function, unicode_literals
nltk/classify/senna.py:    >>> from __future__ import unicode_literals
nltk/classify/senna.py:from __future__ import unicode_literals
nltk/classify/tadm.py:from __future__ import print_function, unicode_literals
nltk/classify/textcat.py:from __future__ import print_function, unicode_literals
nltk/classify/util.py:from __future__ import print_function, division
nltk/classify/weka.py:from __future__ import print_function
nltk/cluster/em.py:from __future__ import print_function, unicode_literals
nltk/cluster/gaac.py:from __future__ import print_function, unicode_literals, division
nltk/cluster/kmeans.py:from __future__ import print_function, unicode_literals, division
nltk/cluster/util.py:from __future__ import print_function, unicode_literals, division
grep: nltk/corpus/reader: Is a directory
nltk/corpus/util.py:from __future__ import unicode_literals
nltk/draw/table.py:from __future__ import division
nltk/inference/api.py:from __future__ import print_function
nltk/inference/discourse.py:from __future__ import print_function
nltk/inference/mace.py:from __future__ import print_function
nltk/inference/nonmonotonic.py:from __future__ import print_function, unicode_literals
nltk/inference/prover9.py:from __future__ import print_function
nltk/inference/resolution.py:from __future__ import print_function, unicode_literals
nltk/inference/tableau.py:from __future__ import print_function, unicode_literals
nltk/lm/api.py:from __future__ import division, unicode_literals
nltk/lm/counter.py:from __future__ import unicode_literals
nltk/lm/models.py:from __future__ import division, unicode_literals
nltk/lm/vocabulary.py:from __future__ import unicode_literals
nltk/metrics/agreement.py:from __future__ import print_function, unicode_literals, division
nltk/metrics/aline.py:from __future__ import unicode_literals
nltk/metrics/association.py:from __future__ import division
nltk/metrics/confusionmatrix.py:from __future__ import print_function, unicode_literals
nltk/metrics/distance.py:from __future__ import print_function
nltk/metrics/distance.py:from __future__ import division
nltk/metrics/scores.py:from __future__ import print_function, division
nltk/metrics/spearman.py:from __future__ import division
nltk/misc/babelfish.py:from __future__ import print_function
nltk/misc/chomsky.py:from __future__ import print_function
nltk/misc/sort.py:from __future__ import print_function, division
nltk/misc/wordfinder.py:from __future__ import print_function
nltk/parse/bllip.py:from __future__ import print_function
nltk/parse/chart.py:from __future__ import print_function, division, unicode_literals
nltk/parse/corenlp.py:from __future__ import unicode_literals
nltk/parse/dependencygraph.py:from __future__ import print_function, unicode_literals
nltk/parse/earleychart.py:from __future__ import print_function, division
nltk/parse/evaluate.py:from __future__ import division
nltk/parse/featurechart.py:from __future__ import print_function, unicode_literals
nltk/parse/generate.py:from __future__ import print_function
nltk/parse/malt.py:from __future__ import print_function, unicode_literals
nltk/parse/nonprojectivedependencyparser.py:from __future__ import print_function
nltk/parse/pchart.py:from __future__ import print_function, unicode_literals
nltk/parse/projectivedependencyparser.py:from __future__ import print_function, unicode_literals
nltk/parse/recursivedescent.py:from __future__ import print_function, unicode_literals
nltk/parse/shiftreduce.py:from __future__ import print_function, unicode_literals
nltk/parse/stanford.py:from __future__ import unicode_literals
nltk/parse/transitionparser.py:from __future__ import absolute_import
nltk/parse/transitionparser.py:from __future__ import division
nltk/parse/transitionparser.py:from __future__ import print_function
nltk/parse/util.py:from __future__ import print_function
nltk/parse/viterbi.py:from __future__ import print_function, unicode_literals
nltk/sem/boxer.py:from __future__ import print_function, unicode_literals
nltk/sem/chat80.py:from __future__ import print_function, unicode_literals
nltk/sem/cooper_storage.py:from __future__ import print_function
nltk/sem/drt.py:from __future__ import print_function, unicode_literals
nltk/sem/evaluate.py:from __future__ import print_function, unicode_literals
nltk/sem/glue.py:from __future__ import print_function, division, unicode_literals
nltk/sem/hole.py:from __future__ import print_function, unicode_literals
nltk/sem/lfg.py:from __future__ import print_function, division, unicode_literals
nltk/sem/linearlogic.py:from __future__ import print_function, unicode_literals
nltk/sem/logic.py:from __future__ import print_function, unicode_literals
nltk/sem/relextract.py:from __future__ import print_function
nltk/sem/util.py:from __future__ import print_function, unicode_literals
nltk/sentiment/sentiment_analyzer.py:from __future__ import print_function
nltk/sentiment/util.py:from __future__ import division
nltk/stem/arlstem.py:from __future__ import unicode_literals
nltk/stem/cistem.py:from __future__ import unicode_literals
nltk/stem/isri.py:from __future__ import unicode_literals
nltk/stem/lancaster.py:from __future__ import unicode_literals
nltk/stem/porter.py:from __future__ import print_function, unicode_literals
nltk/stem/regexp.py:from __future__ import unicode_literals
nltk/stem/rslp.py:from __future__ import print_function, unicode_literals
nltk/stem/snowball.py:from __future__ import unicode_literals, print_function
nltk/stem/wordnet.py:from __future__ import unicode_literals
nltk/tag/__init__.py:from __future__ import print_function
nltk/tag/brill.py:from __future__ import print_function, division
nltk/tag/brill_trainer.py:from __future__ import print_function, division
nltk/tag/crf.py:from __future__ import absolute_import
nltk/tag/crf.py:from __future__ import unicode_literals
nltk/tag/hmm.py:from __future__ import print_function, unicode_literals, division
nltk/tag/mapping.py:from __future__ import print_function, unicode_literals, division
nltk/tag/perceptron.py:from __future__ import absolute_import
nltk/tag/perceptron.py:from __future__ import print_function, division
nltk/tag/sequential.py:from __future__ import print_function, unicode_literals
nltk/tag/tnt.py:from __future__ import print_function, division
nltk/tbl/demo.py:from __future__ import print_function, absolute_import, division
nltk/tbl/erroranalysis.py:from __future__ import print_function
nltk/tbl/feature.py:from __future__ import division, print_function, unicode_literals
nltk/tbl/rule.py:from __future__ import print_function
nltk/tbl/template.py:from __future__ import print_function
nltk/test/childes_fixt.py:from __future__ import absolute_import
nltk/test/classify_fixt.py:from __future__ import absolute_import
nltk/test/compat_fixt.py:from __future__ import absolute_import
nltk/test/corpus_fixt.py:from __future__ import absolute_import
nltk/test/data.doctest:    >>> from __future__ import print_function
nltk/test/discourse_fixt.py:from __future__ import absolute_import
nltk/test/doctest_nose_plugin.py:from __future__ import print_function
nltk/test/featgram.doctest:    >>> from __future__ import print_function
nltk/test/featstruct.doctest:    >>> from __future__ import print_function
nltk/test/gensim_fixt.py:from __future__ import absolute_import
nltk/test/gluesemantics_malt_fixt.py:from __future__ import absolute_import
grep: nltk/test/images: Is a directory
nltk/test/inference_fixt.py:from __future__ import absolute_import
nltk/test/metrics.doctest:   >>> from __future__ import print_function
nltk/test/nonmonotonic_fixt.py:from __future__ import absolute_import
nltk/test/portuguese_en_fixt.py:from __future__ import absolute_import
nltk/test/probability_fixt.py:from __future__ import absolute_import
nltk/test/runtests.py:from __future__ import absolute_import, print_function
nltk/test/segmentation_fixt.py:from __future__ import absolute_import
nltk/test/semantics_fixt.py:from __future__ import absolute_import
nltk/test/simple.doctest:    >>> from __future__ import print_function
nltk/test/stem.doctest:    >>> from __future__ import print_function
nltk/test/tokenize.doctest:    >>> from __future__ import print_function
nltk/test/translate_fixt.py:from __future__ import absolute_import
grep: nltk/test/unit: Is a directory
nltk/test/util.doctest:    >>> from __future__ import print_function
nltk/test/wordnet.doctest:    >>> from __future__ import print_function, unicode_literals
nltk/test/wordnet_fixt.py:from __future__ import absolute_import
nltk/tokenize/casual.py:from __future__ import unicode_literals
nltk/tokenize/nist.py:from __future__ import unicode_literals
nltk/tokenize/punkt.py:from __future__ import print_function, unicode_literals, division
nltk/tokenize/regexp.py:from __future__ import unicode_literals
nltk/tokenize/repp.py:from __future__ import unicode_literals, print_function
nltk/tokenize/simple.py:from __future__ import unicode_literals
nltk/tokenize/sonority_sequencing.py:from __future__ import unicode_literals
nltk/tokenize/stanford.py:from __future__ import unicode_literals, print_function
nltk/tokenize/stanford_segmenter.py:from __future__ import unicode_literals, print_function
nltk/translate/api.py:from __future__ import print_function, unicode_literals
nltk/translate/bleu_score.py:from __future__ import division
nltk/translate/chrf_score.py:from __future__ import division
nltk/translate/gale_church.py:from __future__ import division
nltk/translate/gleu_score.py:from __future__ import division
nltk/translate/ibm1.py:from __future__ import division
nltk/translate/ibm2.py:from __future__ import division
nltk/translate/ibm3.py:from __future__ import division
nltk/translate/ibm4.py:from __future__ import division
nltk/translate/ibm5.py:from __future__ import division
nltk/translate/ibm_model.py:from __future__ import division
nltk/translate/metrics.py:from __future__ import division
nltk/translate/nist_score.py:from __future__ import division
nltk/translate/ribes_score.py:from __future__ import division
nltk/twitter/common.py:from __future__ import print_function
nltk/twitter/twitter_demo.py:from __future__ import print_function
nltk/twitter/util.py:from __future__ import print_function

Kemudian kode kompat:

~/git-stuff/my-contrib/nltk$ grep "compat" nltk/**/*
nltk/app/chartparser_app.py:        if not self._checkcompat():
nltk/app/chartparser_app.py:        if not self._checkcompat():
nltk/app/chartparser_app.py:        if not self._checkcompat():
nltk/app/chartparser_app.py:    def _checkcompat(self):
nltk/app/concordance_app.py:import nltk.compat
nltk/app/wordnet_app.py:from nltk import compat
nltk/app/wordnet_app.py:if compat.PY3:
nltk/ccg/api.py:from nltk.compat import python_2_unicode_compatible, unicode_repr
nltk/ccg/api.py:<strong i="6">@python_2_unicode_compatible</strong>
nltk/ccg/api.py:<strong i="7">@python_2_unicode_compatible</strong>
nltk/ccg/api.py:<strong i="8">@python_2_unicode_compatible</strong>
nltk/ccg/api.py:<strong i="9">@python_2_unicode_compatible</strong>
nltk/ccg/chart.py:from nltk.compat import python_2_unicode_compatible
nltk/ccg/chart.py:<strong i="10">@python_2_unicode_compatible</strong>
nltk/ccg/chart.py:<strong i="11">@python_2_unicode_compatible</strong>
nltk/ccg/chart.py:<strong i="12">@python_2_unicode_compatible</strong>
nltk/ccg/combinator.py:from nltk.compat import python_2_unicode_compatible
nltk/ccg/combinator.py:<strong i="13">@python_2_unicode_compatible</strong>
nltk/ccg/combinator.py:<strong i="14">@python_2_unicode_compatible</strong>
nltk/ccg/combinator.py:<strong i="15">@python_2_unicode_compatible</strong>
nltk/ccg/combinator.py:<strong i="16">@python_2_unicode_compatible</strong>
nltk/ccg/combinator.py:<strong i="17">@python_2_unicode_compatible</strong>
nltk/ccg/combinator.py:<strong i="18">@python_2_unicode_compatible</strong>
nltk/ccg/lexicon.py:from nltk.compat import python_2_unicode_compatible
nltk/ccg/lexicon.py:<strong i="19">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:from nltk.compat import python_2_unicode_compatible, unicode_repr
nltk/chunk/regexp.py:<strong i="20">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="21">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="22">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="23">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="24">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="25">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="26">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="27">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="28">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="29">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="30">@python_2_unicode_compatible</strong>
nltk/chunk/regexp.py:<strong i="31">@python_2_unicode_compatible</strong>
nltk/chunk/util.py:from nltk.compat import python_2_unicode_compatible
nltk/classify/decisiontree.py:from nltk.compat import python_2_unicode_compatible
nltk/classify/decisiontree.py:<strong i="32">@python_2_unicode_compatible</strong>
nltk/classify/maxent.py:from nltk import compat
nltk/classify/maxent.py:@compat.python_2_unicode_compatible
nltk/classify/megam.py:from nltk import compat
nltk/classify/scikitlearn.py:from nltk import compat
nltk/classify/scikitlearn.py:@compat.python_2_unicode_compatible
nltk/classify/senna.py:from nltk.compat import python_2_unicode_compatible
nltk/classify/senna.py:<strong i="33">@python_2_unicode_compatible</strong>
nltk/classify/textcat.py:from nltk.compat import PY3
nltk/cluster/em.py:from nltk.compat import python_2_unicode_compatible
nltk/cluster/em.py:<strong i="34">@python_2_unicode_compatible</strong>
nltk/cluster/gaac.py:from nltk.compat import python_2_unicode_compatible
nltk/cluster/gaac.py:<strong i="35">@python_2_unicode_compatible</strong>
nltk/cluster/kmeans.py:from nltk.compat import python_2_unicode_compatible
nltk/cluster/kmeans.py:<strong i="36">@python_2_unicode_compatible</strong>
nltk/cluster/util.py:from nltk.compat import python_2_unicode_compatible
nltk/cluster/util.py:<strong i="37">@python_2_unicode_compatible</strong>
grep: nltk/corpus/reader: Is a directory
nltk/corpus/util.py:from nltk.compat import python_2_unicode_compatible
nltk/corpus/util.py:<strong i="38">@python_2_unicode_compatible</strong>
nltk/draw/dispersion.py:    import nltk.compat
nltk/draw/table.py:    a way that's incompatible with the fact that ``Table`` behaves as a
nltk/inference/nonmonotonic.py:from nltk.compat import python_2_unicode_compatible
nltk/inference/nonmonotonic.py:<strong i="39">@python_2_unicode_compatible</strong>
nltk/inference/resolution.py:from nltk.compat import python_2_unicode_compatible
nltk/inference/resolution.py:<strong i="40">@python_2_unicode_compatible</strong>
nltk/inference/resolution.py:<strong i="41">@python_2_unicode_compatible</strong>
nltk/lm/counter.py:from nltk import compat
nltk/lm/counter.py:@compat.python_2_unicode_compatible
nltk/lm/models.py:from nltk import compat
nltk/lm/models.py:@compat.python_2_unicode_compatible
nltk/lm/models.py:@compat.python_2_unicode_compatible
nltk/lm/models.py:@compat.python_2_unicode_compatible
nltk/lm/vocabulary.py:from nltk import compat
nltk/lm/vocabulary.py:@compat.python_2_unicode_compatible
nltk/metrics/agreement.py:from nltk.compat import python_2_unicode_compatible
nltk/metrics/agreement.py:<strong i="42">@python_2_unicode_compatible</strong>
nltk/metrics/confusionmatrix.py:from nltk.compat import python_2_unicode_compatible
nltk/metrics/confusionmatrix.py:<strong i="43">@python_2_unicode_compatible</strong>
nltk/parse/chart.py:from nltk.compat import python_2_unicode_compatible, unicode_repr
nltk/parse/chart.py:<strong i="44">@python_2_unicode_compatible</strong>
nltk/parse/chart.py:<strong i="45">@python_2_unicode_compatible</strong>
nltk/parse/chart.py:<strong i="46">@python_2_unicode_compatible</strong>
nltk/parse/corenlp.py:                response = requests.get(requests.compat.urljoin(self.url, 'live'))
nltk/parse/corenlp.py:                response = requests.get(requests.compat.urljoin(self.url, 'ready'))
nltk/parse/dependencygraph.py:from nltk.compat import python_2_unicode_compatible
nltk/parse/dependencygraph.py:<strong i="47">@python_2_unicode_compatible</strong>
nltk/parse/featurechart.py:from nltk.compat import python_2_unicode_compatible
nltk/parse/featurechart.py:<strong i="48">@python_2_unicode_compatible</strong>
nltk/parse/pchart.py:from nltk.compat import python_2_unicode_compatible
nltk/parse/pchart.py:<strong i="49">@python_2_unicode_compatible</strong>
nltk/parse/projectivedependencyparser.py:from nltk.compat import python_2_unicode_compatible
nltk/parse/projectivedependencyparser.py:<strong i="50">@python_2_unicode_compatible</strong>
nltk/parse/projectivedependencyparser.py:<strong i="51">@python_2_unicode_compatible</strong>
nltk/parse/recursivedescent.py:from nltk.compat import unicode_repr
nltk/parse/shiftreduce.py:from nltk.compat import unicode_repr
nltk/parse/stanford.py:        # Windows is incompatible with NamedTemporaryFile() without passing in delete=False.
nltk/parse/viterbi.py:from nltk.compat import python_2_unicode_compatible
nltk/parse/viterbi.py:<strong i="52">@python_2_unicode_compatible</strong>
nltk/sem/boxer.py:from nltk.compat import python_2_unicode_compatible
nltk/sem/boxer.py:<strong i="53">@python_2_unicode_compatible</strong>
nltk/sem/boxer.py:<strong i="54">@python_2_unicode_compatible</strong>
nltk/sem/boxer.py:<strong i="55">@python_2_unicode_compatible</strong>
nltk/sem/chat80.py:from nltk.compat import python_2_unicode_compatible
nltk/sem/chat80.py:<strong i="56">@python_2_unicode_compatible</strong>
nltk/sem/drt.py:from nltk.compat import python_2_unicode_compatible
nltk/sem/drt.py:<strong i="57">@python_2_unicode_compatible</strong>
nltk/sem/drt.py:<strong i="58">@python_2_unicode_compatible</strong>
nltk/sem/drt.py:<strong i="59">@python_2_unicode_compatible</strong>
nltk/sem/drt.py:<strong i="60">@python_2_unicode_compatible</strong>
nltk/sem/evaluate.py:from nltk.compat import python_2_unicode_compatible
nltk/sem/evaluate.py:<strong i="61">@python_2_unicode_compatible</strong>
nltk/sem/evaluate.py:<strong i="62">@python_2_unicode_compatible</strong>
nltk/sem/evaluate.py:<strong i="63">@python_2_unicode_compatible</strong>
nltk/sem/glue.py:from nltk.compat import python_2_unicode_compatible
nltk/sem/glue.py:<strong i="64">@python_2_unicode_compatible</strong>
nltk/sem/glue.py:<strong i="65">@python_2_unicode_compatible</strong>
nltk/sem/hole.py:from nltk import compat
nltk/sem/hole.py:@compat.python_2_unicode_compatible
nltk/sem/lfg.py:from nltk.compat import python_2_unicode_compatible
nltk/sem/lfg.py:<strong i="66">@python_2_unicode_compatible</strong>
nltk/sem/linearlogic.py:from nltk.compat import python_2_unicode_compatible
nltk/sem/linearlogic.py:<strong i="67">@python_2_unicode_compatible</strong>
nltk/sem/linearlogic.py:<strong i="68">@python_2_unicode_compatible</strong>
nltk/sem/linearlogic.py:<strong i="69">@python_2_unicode_compatible</strong>
nltk/sem/linearlogic.py:<strong i="70">@python_2_unicode_compatible</strong>
nltk/sem/linearlogic.py:<strong i="71">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:from nltk.compat import python_2_unicode_compatible
nltk/sem/logic.py:<strong i="72">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="73">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="74">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="75">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="76">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="77">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="78">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="79">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="80">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="81">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="82">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="83">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="84">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="85">@python_2_unicode_compatible</strong>
nltk/sem/logic.py:<strong i="86">@python_2_unicode_compatible</strong>
nltk/sem/util.py:    Check that interpret_sents() is compatible with legacy grammars that use
nltk/sentiment/util.py:        # The protocol=2 parameter is for python2 compatibility
nltk/sentiment/util.py:        (writer, outf) = outf_writer_compat(outfile, encoding, errors, gzip_compress)
nltk/sentiment/util.py:    from nltk.twitter.common import outf_writer_compat, extract_fields
nltk/sentiment/vader.py:# ensure Python 3 compatibility, and refactoring to achieve greater modularity.
nltk/stem/cistem.py:from nltk.compat import python_2_unicode_compatible
nltk/stem/cistem.py:<strong i="87">@python_2_unicode_compatible</strong>
nltk/stem/lancaster.py:from nltk.compat import python_2_unicode_compatible
nltk/stem/lancaster.py:<strong i="88">@python_2_unicode_compatible</strong>
nltk/stem/porter.py:from nltk.compat import python_2_unicode_compatible
nltk/stem/porter.py:<strong i="89">@python_2_unicode_compatible</strong>
nltk/stem/regexp.py:from nltk.compat import python_2_unicode_compatible
nltk/stem/regexp.py:<strong i="90">@python_2_unicode_compatible</strong>
nltk/stem/snowball.py:from nltk import compat
nltk/stem/snowball.py:@compat.python_2_unicode_compatible
nltk/stem/wordnet.py:from nltk.compat import python_2_unicode_compatible
nltk/stem/wordnet.py:<strong i="91">@python_2_unicode_compatible</strong>
nltk/tag/hmm.py:from nltk.compat import python_2_unicode_compatible
nltk/tag/hmm.py:<strong i="92">@python_2_unicode_compatible</strong>
nltk/tag/perceptron.py:from nltk.compat import python_2_unicode_compatible
nltk/tag/perceptron.py:<strong i="93">@python_2_unicode_compatible</strong>
nltk/tag/perceptron.py:                # changed protocol from -1 to 2 to make pickling Python 2 compatible
nltk/tag/senna.py:from nltk.compat import python_2_unicode_compatible
nltk/tag/senna.py:<strong i="94">@python_2_unicode_compatible</strong>
nltk/tag/senna.py:<strong i="95">@python_2_unicode_compatible</strong>
nltk/tag/senna.py:<strong i="96">@python_2_unicode_compatible</strong>
nltk/tag/sequential.py:from nltk.compat import python_2_unicode_compatible
nltk/tag/sequential.py:<strong i="97">@python_2_unicode_compatible</strong>
nltk/tag/sequential.py:<strong i="98">@python_2_unicode_compatible</strong>
nltk/tag/sequential.py:<strong i="99">@python_2_unicode_compatible</strong>
nltk/tag/sequential.py:<strong i="100">@python_2_unicode_compatible</strong>
nltk/tbl/rule.py:from nltk.compat import python_2_unicode_compatible, unicode_repr
nltk/tbl/rule.py:<strong i="101">@python_2_unicode_compatible</strong>
nltk/tbl/rule.py:                # for complete compatibility with the wordy format of nltk2
nltk/tbl/template.py:        An alternative calling convention (kept for backwards compatibility,
nltk/test/compat.doctest:NLTK comes with a Python 2.x/3.x compatibility layer, nltk.compat
nltk/test/compat.doctest:    >>> from nltk import compat
nltk/test/compat.doctest:    >>> compat.PY3
nltk/test/compat.doctest:<strong i="102">@python_2_unicode_compatible</strong>
nltk/test/compat.doctest:``@python_2_unicode_compatible`` decorator allows writing these methods
nltk/test/compat.doctest:in a way compatible with Python 3.x:
nltk/test/compat.doctest:    >>> from nltk.compat import python_2_unicode_compatible
nltk/test/compat.doctest:    >>> <strong i="103">@python_2_unicode_compatible</strong>
nltk/test/compat.doctest:There is no need to wrap a subclass with ``@python_2_unicode_compatible``
nltk/test/compat.doctest:    >>> <strong i="104">@python_2_unicode_compatible</strong>
nltk/test/compat.doctest:Applying ``@python_2_unicode_compatible`` to a subclass
nltk/test/compat.doctest:``nltk.compat.unicode_repr`` function may be used instead of ``repr`` and
nltk/test/compat.doctest:    >>> from nltk.compat import unicode_repr
nltk/test/compat.doctest:of objects which class was fixed by ``@python_2_unicode_compatible``
nltk/test/compat.doctest:    >>> <strong i="105">@python_2_unicode_compatible</strong>
nltk/test/compat.doctest:methods of classes fixed by ``@python_2_unicode_compatible``
nltk/test/compat_fixt.py:from nltk.compat import PY3
nltk/test/compat_fixt.py:        raise SkipTest("compat.doctest is for Python 2.x")
nltk/test/corpus.doctest:    >>> # We use float for backward compatibility with division in Python2.7
nltk/test/data.doctest:    >>> from nltk.compat import StringIO
nltk/test/floresta.txt:O norte-americano Pete Sampras foi afastado pelo seu compatriota Jim Courier (24? ATP) pelos parciais de 7-6 (7-5), 6-4, o que significa que o n?mero um do mundo vai chegar ? ?catedral da terra batida?, Roland Garros, com duas derrotas em outros tantos encontros disputados sobre o p? de tijolo.
grep: nltk/test/images: Is a directory
nltk/test/index.doctest:.. _compat howto: compat.html
nltk/test/index.doctest:* `compat HOWTO`_
nltk/test/portuguese_en_fixt.py:from nltk.compat import PY3
nltk/test/semantics.doctest:In order to provide backwards compatibility with 'legacy' grammars where the semantics value
nltk/test/twitter.ipynb:    "from nltk.compat import StringIO\n",
grep: nltk/test/unit: Is a directory
nltk/tokenize/punkt.py:from nltk.compat import unicode_repr, python_2_unicode_compatible
nltk/tokenize/punkt.py:<strong i="106">@python_2_unicode_compatible</strong>
nltk/tokenize/regexp.py:from nltk.compat import python_2_unicode_compatible
nltk/tokenize/regexp.py:<strong i="107">@python_2_unicode_compatible</strong>
nltk/tokenize/stanford.py:        # Windows is incompatible with NamedTemporaryFile() without passing in delete=False.
nltk/tokenize/stanford_segmenter.py:from nltk import compat
nltk/translate/api.py:from nltk.compat import python_2_unicode_compatible
nltk/translate/api.py:<strong i="108">@python_2_unicode_compatible</strong>
nltk/translate/api.py:<strong i="109">@python_2_unicode_compatible</strong>
nltk/translate/bleu_score.py:    from nltk.compat import Fraction
nltk/twitter/api.py:from nltk.compat import UTC
nltk/twitter/common.py:from nltk import compat
nltk/twitter/common.py:    (writer, outf) = outf_writer_compat(outfile, encoding, errors, gzip_compress)
nltk/twitter/common.py:def outf_writer_compat(outfile, encoding, errors, gzip_compress=False):
nltk/twitter/common.py:    if compat.PY3:
nltk/twitter/common.py:        writer = compat.UnicodeWriter(outf, encoding=encoding, errors=errors)
nltk/twitter/common.py:    (writer, outf) = outf_writer_compat(outfile, encoding, errors, gzip_compress)
nltk/twitter/twitter_demo.py:from nltk.compat import StringIO

Dan beberapa buah gantung rendah:

~/git-stuff/my-contrib/nltk$ grep "sys.version" nltk/**/*
grep: nltk/corpus/reader: Is a directory
nltk/lm/vocabulary.py:    if sys.version_info[0] == 2:
nltk/sem/evaluate.py:    if sys.version_info[0] >= 3:
nltk/sentiment/util.py:    if sys.version_info[0] == 3:
nltk/sentiment/util.py:    elif sys.version_info[0] < 3:
grep: nltk/test/images: Is a directory
grep: nltk/test/unit: Is a directory

Dengan dukungan Python 3.8 dari #2432 , mungkin sudah saatnya kita secara resmi menjatuhkan Python 2.7? Ini tahun 2020 =)

P/S: Ini sudah keluar dari alur kerja CI kami cukup lama.

Jika #2504 digabungkan, masih ada beberapa hal dari Python 2 di sekitar:

  • [x] Plugin pengujian di nltk/test/doctest_nose_plugin.py yang mengabaikan awalan u dari literal Unicode dan memastikan perbandingan kesetaraan berhasil. Jika seseorang ingin menghapus plugin ini, mereka harus memastikan bahwa semua literal Unicode dihapus dari pengujian.
  • [ ] web/dev/local_testing.rst masih menyebutkan Python 2 dan harus diperbarui.
  • [ ] menyebutkan Python 2.7 dan Python 2.6 dalam kode, harus memeriksa apakah masih relevan
Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

chaseireland picture chaseireland  ·  3Komentar

zdog234 picture zdog234  ·  3Komentar

talbaumel picture talbaumel  ·  4Komentar

ndvbd picture ndvbd  ·  4Komentar

DavidNemeskey picture DavidNemeskey  ·  4Komentar