Merge pull request #4915 from oz123/remove-dep-first

Remove vendored first
This commit is contained in:
Frost Ming
2022-01-10 15:48:40 +08:00
committed by GitHub
4 changed files with 2 additions and 100 deletions
+2 -2
View File
@@ -2525,7 +2525,6 @@ def do_check(
args=None,
pypi_mirror=None
):
from pipenv.vendor.first import first
from pipenv.vendor.vistir.compat import JSONDecodeError
if not system:
@@ -2569,7 +2568,8 @@ def do_check(
if not system:
python = project._which("python")
else:
python = first(system_which(p) for p in ("python", "python3", "python2"))
interpreters = [system_which(p) for p in ("python", "python3", "python2")]
python = interpreters[0] if interpreters else None
if not python:
click.echo(crayons.red("The Python interpreter can't be found."), err=True)
sys.exit(1)
-19
View File
@@ -1,19 +0,0 @@
Copyright (c) 2012 Hynek Schlawack
Permission is hereby granted, free of charge, to any person obtaining a copy of
this software and associated documentation files (the "Software"), to deal in
the Software without restriction, including without limitation the rights to
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
of the Software, and to permit persons to whom the Software is furnished to do
so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-78
View File
@@ -1,78 +0,0 @@
## -*- coding: utf-8 -*-
"""
first
=====
first is the function you always missed in Python.
In the simplest case, it returns the first true element from an iterable:
>>> from first import first
>>> first([0, False, None, [], (), 42])
42
Or None if there is none:
>>> from first import first
>>> first([]) is None
True
>>> first([0, False, None, [], ()]) is None
True
It also supports the passing of a key argument to help selecting the first
match in a more advanced way.
>>> from first import first
>>> first([1, 1, 3, 4, 5], key=lambda x: x % 2 == 0)
4
:copyright: (c) 2012 by Hynek Schlawack.
:license: MIT, see LICENSE for more details.
"""
__title__ = 'first'
__version__ = '2.0.2'
__author__ = 'Hynek Schlawack'
__license__ = 'MIT'
__copyright__ = 'Copyright 2012 Hynek Schlawack'
def first(iterable, default=None, key=None):
"""
Return first element of `iterable` that evaluates true, else return None
(or an optional default value).
>>> first([0, False, None, [], (), 42])
42
>>> first([0, False, None, [], ()]) is None
True
>>> first([0, False, None, [], ()], default='ohai')
'ohai'
>>> import re
>>> m = first(re.match(regex, 'abc') for regex in ['b.*', 'a(.*)'])
>>> m.group(1)
'bc'
The optional `key` argument specifies a one-argument predicate function
like that used for `filter()`. The `key` argument, if supplied, must be
in keyword form. For example:
>>> first([1, 1, 3, 4, 5], key=lambda x: x % 2 == 0)
4
"""
if key is None:
for el in iterable:
if el:
return el
else:
for el in iterable:
if key(el):
return el
return default
-1
View File
@@ -10,7 +10,6 @@ colorama==0.4.4
distlib==0.3.2
docopt==0.6.2
dparse==0.5.1
first==2.0.2
funcsigs==1.0.2
idna==3.2
importlib-metadata==4.6.1