codelucas / newspaper

newspaper3k is a news, full-text, and article metadata extraction in Python 3. Advanced docs:
https://goo.gl/VX41yK
MIT License
14.06k stars 2.11k forks source link

Loosen the version constraint of tinysegmenter to avoid dependency #717

Open NeolithEra opened 5 years ago

NeolithEra commented 5 years ago

Hi, newspaper locked the version constraint of tinysegmenter as tinysegmenter==0.3, which leads to a troubling scenario that its direct downstream project [fakenewsnet, openwebtext] has to lock tinysegmenter.

Could you please loosen the version constraint of tinysegmenter? Benefit of this is that users using both of [fakenewsnet, openwebtext] and tinysegmenter can upgrade their third party libraries in a timely manner to reduce technical debts.

Solution

The dependency trees of your project and affected downstream projects are shown as follows. Taking the version constraints of upstream and downstream projects into comprehensive consideration, you can

  1. Loosen tinysegmenter==0.3 to be tinysegmenter>=0.9.1.
  2. Loosen tinysegmenter==0.3 to be tinysegmenter==*.
  3. Try to add an upper bound for tinysegmenter’ version constraint, according to your compatibility.

@codelucas Please let me know your choice. I can submit a PR to fix this issue.

Thanks for your attention. Best, Neolith

NeolithEra commented 5 years ago

Dependency tree-----

newspaper3k-0.2.8
| +-beautifulsoup4(version range:>=4.4.1)
| | +-soupsieve(version range:>=1.2)
| +-cssselect(version range:>=0.9.2)
| +-feedfinder2(version range:>=0.0.4)
| | +-beautifulsoup4(version range:*)
| | | +-soupsieve(version range:>=1.2)
| | +-requests(version range:*)
| | | +-certifi(version range:>=2017.4.17)
| | | +-chardet(version range:<3.1.0,>=3.0.2)
| | | +-idna(version range:>=2.5,<2.9)
| | | +-urllib3(version range:<1.26,>=1.21.1)
| | +-six(version range:*)
| +-feedparser(version range:>=5.2.1)
| +-jieba3k(version range:>=0.35.1)
| +-lxml(version range:>=3.6.0)
| +-nltk(version range:>=3.2.1)
| +-pillow(version range:>=3.3.0)
| +-python-dateutil(version range:>=2.5.3)
| | +-six(version range:>=1.5)
| +-pyyaml(version range:>=3.11)
| +-requests(version range:>=2.10.0)
| | +-certifi(version range:>=2017.4.17)
| | +-chardet(version range:<3.1.0,>=3.0.2)
| | +-idna(version range:>=2.5,<2.9)
| | +-urllib3(version range:<1.26,>=1.21.1)
| +-tinysegmenter(version range:==0.3)
| +-tldextract(version range:>=2.0.1)
| | +-idna(version range:*)
| | +-requests(version range:>=2.1.0)
| | | +-certifi(version range:>=2017.4.17)
| | | +-chardet(version range:<3.1.0,>=3.0.2)
| | | +-idna(version range:>=2.5,<2.9)
| | | +-urllib3(version range:<1.26,>=1.21.1)
| | +-requests-file(version range:>=1.4)
| | | +-requests(version range:>=1.0.0)
| | | +-six(version range:*)
| | +-setuptools(version range:*)

Direct downstream project:

fakenewsnet-master
.
.
.
| +-newspaper3k(version range:==0.2.8)
| | +-beautifulsoup4(version range:>=4.4.1)
| | | +-soupsieve(version range:>=1.2)
| | +-cssselect(version range:>=0.9.2)
| | +-feedfinder2(version range:>=0.0.4)
| | | +-beautifulsoup4(version range:*)
| | | +-requests(version range:*)
| | | +-six(version range:*)
| | +-feedparser(version range:>=5.2.1)
| | +-jieba3k(version range:>=0.35.1)
| | +-lxml(version range:>=3.6.0)
| | | +-cython(version range:>=0.29.1)
| | +-nltk(version range:>=3.2.1)
| | +-pillow(version range:>=3.3.0)
| | +-python-dateutil(version range:>=2.5.3)
| | | +-six(version range:>=1.5)
| | +-pyyaml(version range:>=3.11)
| | +-requests(version range:>=2.10.0)
| | | +-certifi(version range:>=2017.4.17)
| | | +-chardet(version range:<3.1.0,>=3.0.2)
| | | +-idna(version range:>=2.5,<2.9)
| | | +-urllib3(version range:>=1.21.1,<1.25)
| | +-tinysegmenter(version range:==0.3)
.
.
.
| +-tinysegmenter(version range:==0.3)
.
.
.
openwebtext-master
.
.
.
| +-newspaper3k(version range:==0.2.8)
| | +-beautifulsoup4(version range:>=4.4.1)
| | | +-soupsieve(version range:>=1.2)
| | +-cssselect(version range:>=0.9.2)
| | +-feedfinder2(version range:>=0.0.4)
| | | +-beautifulsoup4(version range:*)
| | | +-requests(version range:*)
| | | +-six(version range:*)
| | +-feedparser(version range:>=5.2.1)
| | +-jieba3k(version range:>=0.35.1)
| | +-lxml(version range:>=3.6.0)
| | | +-cython(version range:>=0.29.1)
| | +-nltk(version range:>=3.2.1)
| | +-pillow(version range:>=3.3.0)
| | +-python-dateutil(version range:>=2.5.3)
| | | +-six(version range:>=1.5)
| | +-pyyaml(version range:>=3.11)
| | +-requests(version range:>=2.10.0)
| | | +-certifi(version range:>=2017.4.17)
| | | +-chardet(version range:<3.1.0,>=3.0.2)
| | | +-idna(version range:>=2.5,<2.9)
| | | +-urllib3(version range:>=1.21.1,<1.25)
| | +-tinysegmenter(version range:==0.3)
| | +-tldextract(version range:>=2.0.1)
| | | +-idna(version range:*)
| | | +-requests(version range:>=2.1.0)
| | | +-requests-file(version range:>=1.4)
| | | +-setuptools(version range:*)
.
.
.
| +-tinysegmenter(version range:==0.3)
.
.
.
gk2go commented 4 years ago

True, I have the same issue @codelucas.

Installing collected packages: tinysegmenter
  Found existing installation: tinysegmenter 0.4
    Uninstalling tinysegmenter-0.4:
      Successfully uninstalled tinysegmenter-0.4
    Running setup.py install for tinysegmenter ... done
Successfully installed tinysegmenter-0.3