Skip to content
This repository was archived by the owner on Jan 2, 2021. It is now read-only.

Commit 7fbaf92

Browse files
committed
Prep for v7.3.0 release
1 parent 6bdfea0 commit 7fbaf92

11 files changed

Lines changed: 143 additions & 101 deletions

File tree

.travis.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,9 @@ python:
77
- "pypy"
88
- "3.5"
99
- "3.6"
10-
11-
matrix:
12-
include:
13-
- python: "3.7"
14-
dist: xenial # required for >= Python 3.7
15-
- python: "3.7-dev"
16-
dist: xenial # required for >= Python 3.7
17-
- python: "3.8-dev"
18-
dist: xenial # required for >= Python 3.7
10+
- "3.7"
11+
- "3.8"
12+
- "3.9"
1913

2014
install:
2115
- pip install tox-travis

README.md

Lines changed: 116 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
** NOTE ** This project is no longer actively developed!
2+
13
# Can I Use Python 3?
24

35
[![Build Status](https://travis-ci.org/brettcannon/caniusepython3.svg?branch=master)](https://travis-ci.org/brettcannon/caniusepython3)
@@ -6,7 +8,6 @@ You can read the documentation on how to use caniusepython3 from its
68
[PyPI page](https://pypi.python.org/pypi/caniusepython3). A [web interface](https://github.com/jezdez/caniusepython3.com)
79
is also available.
810

9-
1011
# How do you tell if a project has been ported to Python 3?
1112

1213
On [PyPI](https://pypi.python.org/) each project can specify various
@@ -30,15 +31,15 @@ As long as a trove classifier for some version of Python 3 is specified then the
3031
project is considered to support Python 3 (project owners: it is preferred you
3132
**at least** specify `Programming Language :: Python :: 3` as that is how you
3233
end up listed on the [Python 3 Packages list on PyPI](https://pypi.python.org/pypi?%3Aaction=packages_rss);
33-
you can represent Python 2 support with `Programming Language :: Python`). Note
34+
you can represent Python 2 support with `Programming Language :: Python`). Note
3435
that Python 3.0 through 3.4 have reached their [End Of Life](https://docs.python.org/devguide/index.html#branchstatus).
3536

3637
The other way is through a [manual override](https://github.com/brettcannon/caniusepython3/blob/master/caniusepython3/overrides.json) in
3738
`caniusepython3` itself. Projects ends up on this list because:
3839

39-
* They are now part of [Python's standard library](http://docs.python.org/3/py-modindex.html) in some release of Python 3
40-
* Their Python 3 port is under a different name
41-
* They are missing a Python 3 trove classifier but have actually been ported
40+
- They are now part of [Python's standard library](http://docs.python.org/3/py-modindex.html) in some release of Python 3
41+
- Their Python 3 port is under a different name
42+
- They are missing a Python 3 trove classifier but have actually been ported
4243

4344
If any of these various requirements are met, then a project is considered to
4445
support Python 3 and thus will be added to the manual overrides list. You can
@@ -57,13 +58,12 @@ against Python 3, etc.). Projects that have Python 3 support in their version co
5758
system but not yet available on PyPI will **not** be considered for inclusion in the
5859
overrides file.
5960

60-
6161
# How can I get a project ported to Python 3?
6262

6363
Typically projects which have not switched to Python 3 yet are waiting for:
6464

65-
* A dependency to be ported to Python 3
66-
* Someone to volunteer to put in the time and effort to do the port
65+
- A dependency to be ported to Python 3
66+
- Someone to volunteer to put in the time and effort to do the port
6767

6868
Since `caniusepython3` will tell you what dependencies are blocking a project
6969
that you depend on from being ported, you can try to port a project farther
@@ -81,7 +81,6 @@ various sources of help. If you want a specific starting point there are
8181
on [porting pure Python modules](http://docs.python.org/3/howto/pyporting.html)
8282
and [extension modules](http://docs.python.org/3/howto/cporting.html).
8383

84-
8584
# Can I use it as a pre-commit hook?
8685

8786
Yes! Begin by installing [pre-commit](https://pre-commit.com/):
@@ -92,6 +91,7 @@ pre-commit install
9291
```
9392

9493
You can add the following hook in your `.pre-commit-config.yaml` file.
94+
9595
```yaml
9696
- repo: https://github.com/brettcannon/caniusepython3
9797
rev: v7.1.0 # Update as desired to new releases/tags
@@ -105,153 +105,188 @@ You can add the following hook in your `.pre-commit-config.yaml` file.
105105
```
106106
107107
If you are running manually somewhere, we can run the following command:
108+
108109
```
109110
pre-commit run --hook-stage manual caniusepython3 --files requirements.txt
110111
```
111112

112113
# Change Log
113114

115+
# 7.3.0
116+
117+
- Usual overrides updates
118+
- Removed argparse as a requirement
119+
- Added Python 3.9 support
120+
- Silenced a warning from setuptools about importing distutils (via distlib)
121+
before setuptools itself
122+
- Made it a bit more clear that false-negatives are possible (by design)
123+
- Marked the project as retired
124+
114125
# 7.2.0
115-
* Add an `--index`/`-i` flag to specify an index URL (thanks [macleodbroad-wf](https://github.com/macleodbroad-wf))
116-
* Add support for [pre-commit](https://pre-commit.com/) (thanks [Milind Shakya](https://github.com/milind-shakya-sp))
117-
* Update overrides data (thanks [Andriy Yablonskyy](https://github.com/yablonsky))
126+
127+
- Add an `--index`/`-i` flag to specify an index URL (thanks [macleodbroad-wf](https://github.com/macleodbroad-wf))
128+
- Add support for [pre-commit](https://pre-commit.com/) (thanks [Milind Shakya](https://github.com/milind-shakya-sp))
129+
- Update overrides data (thanks [Andriy Yablonskyy](https://github.com/yablonsky))
118130

119131
# 7.1.0
120-
* Remove unused imports from Pylint checker
121-
* Usual overrides updates
122-
* Introduce the `--exclude` flag (thanks [Milind Shakya](https://github.com/milind-shakya-sp))
132+
133+
- Remove unused imports from Pylint checker
134+
- Usual overrides updates
135+
- Introduce the `--exclude` flag (thanks [Milind Shakya](https://github.com/milind-shakya-sp))
123136

124137
# 7.0.0
125-
* Drop Python 3.3 support
126-
* Usual overrides updates
138+
139+
- Drop Python 3.3 support
140+
- Usual overrides updates
127141

128142
# 6.0.0
129-
* Refactor some code to avoid a warning in Python 3.6
130-
* Stop calling pip's internals (pip 10 would break everything)
131-
* Fix "No handler found" output under Python 2.7
143+
144+
- Refactor some code to avoid a warning in Python 3.6
145+
- Stop calling pip's internals (pip 10 would break everything)
146+
- Fix "No handler found" output under Python 2.7
132147
(patch by [arnuschky](https://github.com/arnuschky))
133-
* Usual overrides updates
148+
- Usual overrides updates
134149

135150
# 5.0.0
136-
* Return a `3` error code when a command completes successfully but there are
151+
152+
- Return a `3` error code when a command completes successfully but there are
137153
found blockers (patch by [pcattori](https://github.com/pcattori);
138154
accidentally left out of the 4.0.0 release)
139-
* Officially support Python 3.6
140-
* Usual overrides updates
155+
- Officially support Python 3.6
156+
- Usual overrides updates
141157

142158
# 4.0.0
143-
* Stop using PyPI's XML-RPC API and move to its JSON one for better performance
159+
160+
- Stop using PyPI's XML-RPC API and move to its JSON one for better performance
144161
(and switch to https://pypi.org)
145-
* Load the overrides data from GitHub when possible, falling back to the data
162+
- Load the overrides data from GitHub when possible, falling back to the data
146163
included with the package when necessary (thanks to
147164
[shafrom](https://github.com/shaform) for adding local, one-day caching)
148165

149166
# 3.4.1
150-
* Update the URL used for PyPI to https://pypi.org
167+
168+
- Update the URL used for PyPI to https://pypi.org
151169
(patch by [Chris Fournier](https://github.com/cfournie))
152-
* Usual override updates
170+
- Usual override updates
153171

154172
# 3.4.0
155-
* Fix a dict comprehension failure with the pylint checker
173+
174+
- Fix a dict comprehension failure with the pylint checker
156175
(patch by [Jeroen Oldenburger](https://github.com/jeroenoldenburger))
157-
* Usual override updates
158-
* Python 3.5 support
159-
* Tests have been made less flaky
160-
* Use pypi.io instead of pypi.python.org
161-
* Normalize project names to help guarantee lookup success
176+
- Usual override updates
177+
- Python 3.5 support
178+
- Tests have been made less flaky
179+
- Use pypi.io instead of pypi.python.org
180+
- Normalize project names to help guarantee lookup success
162181

163182
# 3.3.0
164-
* Made tests more robust in the face of PyPI timing out
165-
* Added Python 3.5 support
166-
* Dropped Python 2.6 and 3.2 support
167-
* Updated tests to not use Twisted as a Python 2-only project
168-
* Fixed a bug where the pylint checker was incorrectly missing `from __future__ import unicode_literals` ([issue #103](https://github.com/brettcannon/caniusepython3/issues/103); reported by [David Euresti](https://github.com/euresti))
169-
* Usual overrides updates
183+
184+
- Made tests more robust in the face of PyPI timing out
185+
- Added Python 3.5 support
186+
- Dropped Python 2.6 and 3.2 support
187+
- Updated tests to not use Twisted as a Python 2-only project
188+
- Fixed a bug where the pylint checker was incorrectly missing `from __future__ import unicode_literals` ([issue #103](https://github.com/brettcannon/caniusepython3/issues/103); reported by [David Euresti](https://github.com/euresti))
189+
- Usual overrides updates
170190

171191
# 3.2.0
172-
* Fix a failing test due to the assumed unported project being ported =)
173-
* Work around distlib 0.2.0 bug (patch by @rawrgulmuffins)
174-
* Usual override updates
192+
193+
- Fix a failing test due to the assumed unported project being ported =)
194+
- Work around distlib 0.2.0 bug (patch by @rawrgulmuffins)
195+
- Usual override updates
175196

176197
# 3.1.0
177-
* Log more details when running under `-v` (patch by @msabramo)
178-
* Print a 🎉 -- it's a party popper in case you have mojibake for it -- when the
198+
199+
- Log more details when running under `-v` (patch by @msabramo)
200+
- Print a 🎉 -- it's a party popper in case you have mojibake for it -- when the
179201
terminal supports it and there are no blocking dependencies (patch by @msabramo)
180-
* Fix compatibility with pip 6.1.0 (patch by @msabramo)
181-
* Fix warning of missing logger when using `setup.py` integration
202+
- Fix compatibility with pip 6.1.0 (patch by @msabramo)
203+
- Fix warning of missing logger when using `setup.py` integration
182204
(issue #80; patch by @msabramo)
183-
* Remove checkers for `filter`, `map`, `range`, and `zip` as they have been
205+
- Remove checkers for `filter`, `map`, `range`, and `zip` as they have been
184206
improved upon and
185207
[merged upstream in Pylint](https://bitbucket.org/logilab/pylint/pull-request/216/warn-when-filter-map-range-and-filter-are/diff)
186-
* Updated outdated documentation
187-
* Usual override updates
208+
- Updated outdated documentation
209+
- Usual override updates
188210

189211
# 3.0.0
190-
* Introduce `caniusepython3.pylint_checker` which extends `pylint --py3k` with
212+
213+
- Introduce `caniusepython3.pylint_checker` which extends `pylint --py3k` with
191214
very strict porting checks
192-
* Work around a [bug in distlib](https://bitbucket.org/pypa/distlib/issue/58/distliblocatorslocate-returning-an-empty)
193-
* Compatibility fix for pip 6.0 ([issue #72](https://github.com/brettcannon/caniusepython3/issues/72))
194-
* Usual override updates
215+
- Work around a [bug in distlib](https://bitbucket.org/pypa/distlib/issue/58/distliblocatorslocate-returning-an-empty)
216+
- Compatibility fix for pip 6.0 ([issue #72](https://github.com/brettcannon/caniusepython3/issues/72))
217+
- Usual override updates
195218

196219
# 2.2.0
197-
* Suppress an `xmlrpclib.Fault` exception under Python 2.6 when trying to close
220+
221+
- Suppress an `xmlrpclib.Fault` exception under Python 2.6 when trying to close
198222
an XML-RPC connection (can't close a connection under Python 2.6 anyway and
199223
the exception has only been seen on [Travis](https://travis-ci.org/))
200-
* Move to [unittest2](https://pypi.python.org/pypi/unittest2) as a developer
224+
- Move to [unittest2](https://pypi.python.org/pypi/unittest2) as a developer
201225
dependency
202-
* Move [mock](https://pypi.python.org/pypi/mock) to a developer dependency
203-
* Usual override tweaks
226+
- Move [mock](https://pypi.python.org/pypi/mock) to a developer dependency
227+
- Usual override tweaks
204228

205229
# 2.1.2
206-
* Avoid infinite recursion when there is a circular dependency
230+
231+
- Avoid infinite recursion when there is a circular dependency
207232
([issue #60](https://github.com/brettcannon/caniusepython3/issues/60))
208-
* Usual overrides tweaks
233+
- Usual overrides tweaks
209234

210235
# 2.1.1
211-
* Normalize the names of direct dependencies for proper Python 3 compatibility
236+
237+
- Normalize the names of direct dependencies for proper Python 3 compatibility
212238
checking
213239
([issue #55](https://github.com/brettcannon/caniusepython3/issues/55))
214-
* Properly set the logging details when executed from the entry point
215-
* Usual overrides tweaks
240+
- Properly set the logging details when executed from the entry point
241+
- Usual overrides tweaks
216242

217243
## 2.1.0
218-
* Verbose output will print what manual overrides are used and why
244+
245+
- Verbose output will print what manual overrides are used and why
219246
(when available)
220-
* Fix logging to only be configured when running as a script as well as fix a
247+
- Fix logging to only be configured when running as a script as well as fix a
221248
format bug
222-
* Usual override updates
249+
- Usual override updates
223250

224251
## 2.0.3
225-
* Fixed `setup.py caniusepython3` to work with `extras_require` properly
226-
* Fix various errors triggered from the moving of the `just_name()` function to
252+
253+
- Fixed `setup.py caniusepython3` to work with `extras_require` properly
254+
- Fix various errors triggered from the moving of the `just_name()` function to
227255
a new module in 2.0.0 (patch by Vaibhav Sagar w/ input from Jannis Leidel)
228-
* Usual overrides tweaks (thanks to CyrilRoelandteNovance for contributing)
256+
- Usual overrides tweaks (thanks to CyrilRoelandteNovance for contributing)
229257

230258
## 2.0.2
231-
* Fix lack of unicode usage in a test
232-
* Make Python 2.6 happy again due to its distate of empty XML-RPC results
259+
260+
- Fix lack of unicode usage in a test
261+
- Make Python 2.6 happy again due to its distate of empty XML-RPC results
233262

234263
## 2.0.1
235-
* Fix syntax error
264+
265+
- Fix syntax error
236266

237267
## 2.0.0
238-
* Tweak overrides
239-
* `-r`, `-m`, and `-p` now take 1+ arguments instead of a single comma-separated
268+
269+
- Tweak overrides
270+
- `-r`, `-m`, and `-p` now take 1+ arguments instead of a single comma-separated
240271
list
241-
* Unrecognized projects are considered ported to prevent the lack of info on
272+
- Unrecognized projects are considered ported to prevent the lack of info on
242273
the unrecognized project perpetually suggesting that it's never been ported
243-
* Introduced `icanusepython3.check()`
274+
- Introduced `icanusepython3.check()`
244275

245276
## 1.2.1
246-
* Fix `-v` to actually do something again
247-
* Tweaked overrides
277+
278+
- Fix `-v` to actually do something again
279+
- Tweaked overrides
248280

249281
## 1.2.0
250-
* `-r` accepts a comma-separated list of file paths
282+
283+
- `-r` accepts a comma-separated list of file paths
251284

252285
## 1.1.0
253-
* Setuptools command support
254-
* Various fixes
286+
287+
- Setuptools command support
288+
- Various fixes
255289

256290
## 1.0
291+
257292
Initial release.

README_PyPI.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
** NOTE ** This project is no longer actively developed!
2+
13
Can I Use Python 3?
24
===================
35

caniusepython3/__main__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ def message(blockers):
8686
else:
8787
flair = ''
8888
return [flair +
89-
'You have 0 projects blocking you from using Python 3!']
89+
'You (potentially) have 0 projects blocking you from using Python 3!']
9090
flattened_blockers = set()
9191
for blocker_reasons in blockers:
9292
for blocker in blocker_reasons:

caniusepython3/dependencies.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
from __future__ import unicode_literals
1616

17+
import setuptools # To silence a warning.
1718
import distlib.locators
1819
import packaging.utils
1920

@@ -57,7 +58,7 @@ def dependencies(project_name):
5758
log.info('Locating dependencies for {}'.format(project_name))
5859
located = distlib.locators.locate(project_name, prereleases=True)
5960
if not located:
60-
log.warning('{0} not found'.format(project_name))
61+
log.warning('{0} not found; false-negatives possible'.format(project_name))
6162
return None
6263
return {packaging.utils.canonicalize_name(pypi.just_name(dep))
6364
for dep in located.run_requires}

caniusepython3/projects.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
from caniusepython3 import pypi
55

6+
import setuptools # To silenace a warning.
67
import distlib.metadata
78
import packaging.requirements
89
import packaging.utils

0 commit comments

Comments
 (0)