Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop Python 2 support #1253

Closed
Harmon758 opened this issue Aug 3, 2019 · 3 comments · Fixed by #1482
Closed

Drop Python 2 support #1253

Harmon758 opened this issue Aug 3, 2019 · 3 comments · Fixed by #1482
Assignees
Labels
Improvement This is regarding an improvement to an existing feature RFC This is a Request For Comments Task This is a task related to the library
Milestone

Comments

@Harmon758
Copy link
Member

Harmon758 commented Aug 3, 2019

With Python 2.7 reaching its EOL at the end of the year, I'd like to start planning to drop support for it.
It would increase maintainability and reduce a lot of the overhead required for compatibility, as well as allowing improvements that would be difficult to implement while supporting Python 2.

Specifically, I want to look into adding asynchronous support with asyncio (#732), i.e. async/await syntax, and maybe with aiohttp (or requests 3 if that's released soon), especially to replace the current threading method for streams.

I think the current plan should be for Tweepy v3.9 (v3.9 was released without noting that it would be the last version to support Python 2 in its changelog and release notes, so a v3.10 is planned) v3.10 to be the last version to support Python 2.7, and then for v4.0 to be Python 3.5+ (3.5 is also EOL now) 3.6+.

@Harmon758 Harmon758 added Improvement This is regarding an improvement to an existing feature Task This is a task related to the library RFC This is a Request For Comments labels Aug 3, 2019
@Harmon758 Harmon758 added this to the 4.0 milestone Aug 3, 2019
@Harmon758 Harmon758 self-assigned this Aug 3, 2019
@Harmon758 Harmon758 pinned this issue Aug 3, 2019
@hugovk
Copy link
Contributor

hugovk commented Aug 6, 2019

The plan sounds good. Python 2.7 installs of Tweepy are relatively low for Tweepy.

Here's the pip installs for Tweepy from PyPI for July 2019:

category percent downloads
3 73.34% 83,887
2 25.93% 29,655
null 0.73% 836
Total 114,378

Source: pip install -U pypistats && pypistats python_major tweepy --last-month

category percent downloads
3.6 37.23% 42,582
2.7 25.89% 29,611
3.7 18.38% 21,022
3.5 15.50% 17,734
3.4 2.08% 2,381
null 0.73% 836
3.8 0.09% 98
3.3 0.06% 69
2.6 0.04% 44
3.9 0.00% 1
Total 114,378

Source: pip install -U pypistats && pypistats python_minor tweepy --last-month

@hugovk
Copy link
Contributor

hugovk commented Aug 7, 2019

Please see PR #1255.

@Harmon758
Copy link
Member Author

Since Python 2 has been EOL for almost a year now and PyPI Stats shows Python 2 downloads averaging at about 5% or less, and with Tweepy v3.10.0 released now, I've gone ahead and made a branch and PR #1482 to drop support for Python 2.

Note, Tweepy v3.10.0 will also be the last version to support Python 3.5, since it's also EOL now.
PyPI Stats shows downloads for it averaging at even less, about 2-4% or lower.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Improvement This is regarding an improvement to an existing feature RFC This is a Request For Comments Task This is a task related to the library
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants