simion / pip-upgrader Goto Github PK
View Code? Open in Web Editor NEWAn interactive pip requirements upgrader. It also updates the version in your requirements.txt file.
License: Apache License 2.0
An interactive pip requirements upgrader. It also updates the version in your requirements.txt file.
License: Apache License 2.0
…
Please choose which packages should be upgraded. Choices: "all" or "1 2 3"
Choice: q
Traceback (most recent call last):
…
File "…/pip_upgrader/packages_interactive_selector.py", line 84, in ask_for_packages
selected = list(self._select_packages([int(index.strip()) for index in choice.split(' ')]))
ValueError: invalid literal for int() with base 10: 'q'
Should be caught with a nice message. And "q(uit)" plus maybe "x/exit" supported as an answer.
Traceback (most recent call last):
File "/Users/fulgerulnegru/.virtualenvs/cyber7/lib/python3.7/site-packages/pip_upgrader/packages_status_detector.py", line 15, in
from pip.locations import site_config_files
ModuleNotFoundError: No module named 'pip.locations'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/fulgerulnegru/.virtualenvs/cyber7/bin/pip-upgrade", line 6, in
from pip_upgrader.cli import main
File "/Users/fulgerulnegru/.virtualenvs/cyber7/lib/python3.7/site-packages/pip_upgrader/cli.py", line 37, in
from pip_upgrader.packages_status_detector import PackagesStatusDetector
File "/Users/fulgerulnegru/.virtualenvs/cyber7/lib/python3.7/site-packages/pip_upgrader/packages_status_detector.py", line 17, in
from pip._internal.locations import site_config_files
ImportError: cannot import name 'site_config_files' from 'pip._internal.locations' (/Users/fulgerulnegru/.virtualenvs/cyber7/lib/python3.7/site-packages/pip/_internal/locations.py)
(cyber7) 192-168-0-240:cyber fulgerulnegru$ pip-upgrade
Traceback (most recent call last):
File "/Users/fulgerulnegru/.virtualenvs/cyber7/lib/python3.7/site-packages/pip_upgrader/packages_status_detector.py", line 15, in
from pip.locations import site_config_files
ModuleNotFoundError: No module named 'pip.locations'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/fulgerulnegru/.virtualenvs/cyber7/bin/pip-upgrade", line 6, in
from pip_upgrader.cli import main
File "/Users/fulgerulnegru/.virtualenvs/cyber7/lib/python3.7/site-packages/pip_upgrader/cli.py", line 37, in
from pip_upgrader.packages_status_detector import PackagesStatusDetector
File "/Users/fulgerulnegru/.virtualenvs/cyber7/lib/python3.7/site-packages/pip_upgrader/packages_status_detector.py", line 17, in
from pip._internal.locations import site_config_files
ImportError: cannot import name 'site_config_files' from 'pip._internal.locations' (/Users/fulgerulnegru/.virtualenvs/cyber7/lib/python3.7/site-packages/pip/_internal/locations.py)
pip freeze
activecampaign-python==0.1.1
amqp==2.5.1
asn1crypto==0.24.0
attrs==19.1.0
Automat==0.7.0
Babel==2.7.0
backports.csv==1.0.7
beautifulsoup4==4.8.0
billiard==3.5.0.5
cairocffi==1.0.2
CairoSVG==2.4.1
celery==4.2.1
certifi==2019.6.16
cffi==1.12.3
chardet==3.0.4
colorclass==2.2.0
constantly==15.1.0
crochet==1.10.0
cryptography==2.7
cssselect==1.1.0
cssselect2==0.2.1
defusedxml==0.6.0
dicttoxml==1.7.4
diff-match-patch==20181111
Django==2.1.7
django-allauth==0.39.1
django-appconf==1.0.3
django-celery==3.2.2
django-celery-beat==1.4.0
django-ckeditor==5.6.1
django-compressor==2.2
django-environ==0.4.5
django-filter==2.1.0
django-import-export==1.2.0
django-js-asset==1.2.2
django-pipeline==1.6.14
django-rest-auth==0.9.3
django-select2==6.3.1
django-settings-export==1.2.1
django-simple-history==2.4.0
django-sslserver==0.20
django-suit==0.2.26
django-suit-daterange-filter==0.0.6
django-suit-redactor==0.0.4
django-suit-sortable==0.1.0
django-test-plus==1.1.1
django-timezone-field==3.0
djangorestframework==3.9.1
docopt==0.6.2
entrypoints==0.3
et-xmlfile==1.0.1
fake-useragent==0.1.11
flake8==3.7.7
flower==0.9.2
gunicorn==19.9.0
html5lib==1.0.1
hyperlink==19.0.0
idna==2.8
incremental==17.5.0
jdcal==1.4.1
kombu==4.3.0
lxml==4.4.1
mailchimp3==3.0.6
Markdown==3.0.1
mccabe==0.6.1
oauthlib==3.1.0
odfpy==1.4.0
openpyxl==2.6.3
packaging==19.1
parsel==1.5.2
paypalrestsdk==1.13.1
Pillow==5.4.1
pip-upgrader==1.4.6
progressbar2==3.39.2
psycopg2==2.7.7
psycopg2-binary==2.7.7
pyasn1==0.4.6
pyasn1-modules==0.2.6
pycodestyle==2.5.0
pycparser==2.19
PyDispatcher==2.0.5
pyflakes==2.1.1
Pygments==2.4.2
PyHamcrest==1.9.0
pyOpenSSL==19.0.0
pyparsing==2.4.2
Pyphen==0.9.5
python-crontab==2.3.8
python-dateutil==2.8.0
python-memcached==1.59
python-utils==2.3.0
python3-openid==3.1.0
pytz==2019.2
PyYAML==5.1.2
queuelib==1.5.0
raven==6.10.0
rcssmin==1.0.6
requests==2.21.0
requests-oauthlib==1.2.0
rjsmin==1.0.12
Scrapy==1.4.0
scrapy-amazon-robot-middleware3==0.2.2
scrapy-splash==0.7.2
scrapydo==0.2.2
selenium==3.141.0
service-identity==18.1.0
simplejson==3.16.0
six==1.12.0
smartbill-sdk==0.2.6
soupsieve==1.9.3
tablib==0.13.0
terminaltables==3.1.0
tinycss2==1.0.2
tornado==5.1.1
Twisted==18.9.0
urllib3==1.24.3
vine==1.3.0
w3lib==1.21.0
WeasyPrint==45
webencodings==0.5.1
wrapt==1.11.2
xlrd==1.2.0
xlwt==1.3.0
zope.interface==4.6.0
Hello,
Setuptools supports configuring libraries using only the setup.cfg nowadays., see:
https://setuptools.readthedocs.io/en/latest/setuptools.html#configuring-setup-using-setup-cfg-files
It would be nice if pip-upgrader could parse that aswell. I think that it should limit itself for dependencies are pinned e.g.:
[options.extras_require]
tests =
flake8==3.7.8
isort==4.3.21
mypy==0.711
pytest==5.0.1
pytest-cov==2.7.1
black==19.3b0
pre-commit==1.17.0
bump2version==0.5.10
And not so much for the version ranges.
Let me know if this is a welcome addition, I could maybe contribute to the project myself 😁
Thanks!
For example Black autoformatter version could not be parsed by pip-upgrader
.
krystofrehacek@Krystof-MacBook-Pro:retino/src ‹1213-update-npm-and-pip*›$ pip-upgrade
Found valid requirements file(s):
requirements.txt
black==19.10b0 error while parsing version
2/47: coreapi ... up to date: 2.3.3
3/47: dicttoxml ... up to date: 1.7.4
4/47: Django ... upgrade available: 3.0.2 ==> 3.0.5 (uploaded on 2020-04-01 07:59:15)
... output continues ...
Support for this kind of versioning (e. g. 19.10b0
) should be added, since pip accepts it.
I just filed a bug, I'd be happy to fix it, but I noticed you have marked the project as unmaintained.
Add requirements.in to valid requirements files, not just requirements.txt
I keep the requirements in a requirements.in
file and "compile" a requirements.txt through pip-compile
(https://github.com/jazzband/pip-tools).
The workflow could be more simple than executing:
cp requirements.in requirements.in.txt
pip-upgrader requirements.in.txt
mv requirements.in.txt requirements.in
pip-compile requirements.in > requirements.txt
Thanks for making this tool! I never knew it existed until I scroll deeply down a stack overflow page.
I was wondering if the --skip-package-installation
option could be set from a config file, or environment variable, since that would be my normal default usage. I have been using tjunnone/npm-check-updates to keep my package.json
files up to date, and this tool only manipulates the file and instructs the user to npm install
after running ncu -u
.
If an environment variable is preferable, tell me the preferred name and I'll make a PR.
Specs like foo~=1.2.3
should be supported, with the newest compatible version as a replacement. In this case that means any 1.2.*
that is newer then 1.2.3
found would be offered as an update, but not 2.*
or 1.3.*
.
In essence, bumping the minimum required version up, within the specified version range.
First off, this utility is very handy, thank you!
I'm stuck on Windows 7 for a little while longer and noticed the "Choice:" prompt is displaying incorrect characters, as you can see below.
A little googling shows that a few other projects have had this issue (Git Bash, Babel) and it's related to ANSI color codes and incompatibility with Windows 7. Any chance you could disable the colors in Windows 7?
It throws a invalid version message.
$ cd fresh-directory
$ echo 'paramiko==2.12.0' > requirements.txt
$ pip-upgrade requirements.txt --skip-virtualenv-check
Found valid requirements file(s):
requirements.txt
Error while parsing package paramiko==2.12.0 (skipping).
Exception: Invalid version: '0.1-bulbasaur'
All packages are up-to-date.
Upgrade interrupted.
"dev" requirements typically also load the install requirements via -r requirements.txt
– load and expand those lines as-if the inclusion appeared at that place. This has to work recursively.
Best implemented as a pre-processor that resolves any "-r" line until none are there any more, and THEN parses the list of requirements.
pipupgrade
Checking...
Traceback (most recent call last):
File "/Users/cocoonkid/.pyenv/versions/3.7.1/bin/pipupgrade", line 10, in
sys.exit(main())
File "/Users/cocoonkid/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipupgrade/cli/init.py", line 14, in wrapper
return fn(**params)
File "/Users/cocoonkid/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipupgrade/commands/init.py", line 178, in command
format = "json", pip_exec = pip_)
File "/Users/cocoonkid/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipupgrade/_pip.py", line 69, in call
return popen(*params, output = True)
File "/Users/cocoonkid/.pyenv/versions/3.7.1/lib/python3.7/site-packages/pipupgrade/util/system.py", line 70, in popen
raise sp.CalledProcessError(code, command)
subprocess.CalledProcessError: Command '/Users/cocoonkid/.pyenv/shims/pip2 list --outdated --format json' returned non-zero exit status 127.
The command should run pip3 list --outdated --format json
Thank you for this great tool!
It would be great to have support for pyproject.toml
files. This is the new official way to specify PyPI packages as described in PEP-621, recommended over setup.py
and setup.cfg
files.
Being a simple TOML file, it should be pretty straightforward to parse and write with the toml
package. It could also be easily extended to other metadata formats.
pyproject.toml
[project.dependencies]
[project.optional-dependencies]
pyproject.toml
[tool.poetry.dependencies]
[tool.flit.metadata.requires-extra]
setup.cfg
file[tool.flit.metadata.requires]
[tool.flit.metadata.requires-extra]
flit.ini
file[tool.flit.metadata.requires]
[tool.flit.metadata.requires-extra]
I get this exception being raised when I call pip-upgrade
with Python2.7. The problem is in pip_upgrader/packages_status_detector.py", line 80
:
try:
from configparser import ConfigParser, NoOptionError, NoSectionError
except ImportError: # pragma: nocover
from ConfigParser import ConfigParser, NoOptionError
[…]
except (NoOptionError, NoSectionError): # pragma: nocover
If you have ConfigParser
then the NoSectionError
exception is not imported thus the above error.
I get this for prettytable==0.7.2 (latest version):
prettytable ... upgrade available: 0.7.2 ==> 7 (uploaded on 2013-02-17 18:05:18)
https://pypi.python.org/pypi/PrettyTable/json indeed has "version" set to 7 but maybe there's a way to handle this?
Would like to see if pip-upgrade can add support for local user install (e.g. pip --user equivalent) for non-virtualenv environment?
Not sure what i'm doing wrong here but pip-upgrade keeps failing and saying that all packages are up to date. Below is an example when i was trying to upgrade scikit-learn. You can see that pip-upgrade gives up but then I immediately run pip install -U scikit-learn
and it upgrades.
Any ideas?
Thanks for building such a great and necessary package!
`(.venv) Pauls-Mac-mini:my_dir Paul$ pip-upgrade requirements.txt
Found valid requirements file(s):
requirements.txt
All packages are up-to-date.
Upgrade interrupted.
(.venv) Pauls-Mac-mini:my_dir Paul$ pip install -U scikit-learn
Collecting scikit-learn
Using cached scikit_learn-0.22.2.post1-cp37-cp37m-macosx_10_9_x86_64.whl (7.1 MB)
Requirement already satisfied, skipping upgrade: scipy>=0.17.0 in ./.venv/lib/python3.7/site-packages (from scikit-learn) (1.4.1)
Requirement already satisfied, skipping upgrade: numpy>=1.11.0 in ./.venv/lib/python3.7/site-packages (from scikit-learn) (1.18.1)
Requirement already satisfied, skipping upgrade: joblib>=0.11 in ./.venv/lib/python3.7/site-packages (from scikit-learn) (0.14.1)
Installing collected packages: scikit-learn
Attempting uninstall: scikit-learn
Found existing installation: scikit-learn 0.21.3
Uninstalling scikit-learn-0.21.3:
Successfully uninstalled scikit-learn-0.21.3
Successfully installed scikit-learn-0.22.2.post1`
For example, nicegui package currently requires justpy<0.3. If I run pip-upgrader, will it upgrade justpy to currently available 0.9.0, or hold the upgrade until nicegui allows?
Given my first tests, you don't support ~/.pip/pip.conf
when doing the version checks, specifically its index-url
setting – that in turn prevents the use of local PyPI caches (e.g. devpi).
It would be nice to have default behaviour of pip-upgrader to only upgrade within major version ranges to avoid introducing backwards incompatible changes.
I would suggest implementing a --latest
flag to overriding this behaviour mimicing yarn
The upgrade --latest command upgrades packages the same as the upgrade command but
ignores the version range specified in package.json. Instead, the version specified by the
latest tag will be used (potentially upgrading the packages across major versions).
Thoughts?
$ virtualenv venv
$ source bin/activate
$ pip install pip-upgrader
Create a requirements.txt
with the following content
simplejson==3.10.0
Run
$ pip-upgrade --prerelease
Found valid requirements file(s):
requirements.txt
simplejson==3.10.0 error while parsing version
All packages are up-to-date.
Upgrade interrupted.
On our machines, only pip3
is installed. Would be nice to add support for this setup.
The .in
extension is often used when using pip-compile
to "compile" the .in
to .txt
. It should be treated as valid in
Furthermore, I don't understand why you are checking file extensions at all in the case one is explicitly specifying a file via command line argument.
If no requirements are given, the command attempts to detect the requirements file(s) in the current directory.
How do I skip this? Let's say I just sourced my environment from my home directory.
$ pip-upgrade
No requirements files found in current directory. CD into your project or manually specify requirements files as arguments.
Thanks.
After upgrade to Python 3.12, pip-upgrade fails as follows:
pip-upgrade
Traceback (most recent call last):
File "./.venv/bin/pip-upgrade", line 5, in <module>
from pip_upgrader.cli import main
File "./.venv/lib/python3.12/site-packages/pip_upgrader/__init__.py", line 1, in <module>
import pkg_resources
File "./.venv/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2191, in <module>
register_finder(pkgutil.ImpImporter, find_on_path)
^^^^^^^^^^^^^^^^^^^
From Python 3.11 doc:
class pkgutil.ImpImporter(dirname=None)
[PEP 302](https://peps.python.org/pep-0302/) Finder that wraps Python’s “classic” import algorithm.
If dirname is a string, a [PEP 302](https://peps.python.org/pep-0302/) finder is created that searches
that directory. If dirname is None, a [PEP 302](https://peps.python.org/pep-0302/) finder is created that
searches the current [sys.path] (https://docs.python.org/3.11/library/sys.html#sys.path),
plus any modules that are frozen or built-in.
Note that [ImpImporter](https://docs.python.org/3.11/library/pkgutil.html#pkgutil.ImpImporter) does
not currently support being used by placement on
[sys.meta_path](https://docs.python.org/3.11/library/sys.html#sys.meta_path).
Deprecated since version 3.3: This emulation is no longer needed, as the standard import mechanism
is now fully [PEP 302](https://peps.python.org/pep-0302/) compliant and available in
[importlib](https://docs.python.org/3.11/library/importlib.html#module-importlib).
Apparently the deprecation has now become a removal.
% pip-upgrader
<snip>
Traceback (most recent call last):
File "/home/username/.virtualenvs/venv/bin/pip-upgrade", line 11, in <module>
sys.exit(main())
File "/home/username/.virtualenvs/venv/lib/python3.5/site-packages/pip_upgrader/cli.py", line 70, in main
packages, options.get('--use-default-index')).detect_available_upgrades(options)
File "/home/username/.virtualenvs/venv/lib/python3.5/site-packages/pip_upgrader/packages_status_detector.py", line 126, in detect_available_upgrades
package_status, reason = self._fetch_index_package_info(package_name, current_version)
File "/home/username/.virtualenvs/venv/lib/python3.5/site-packages/pip_upgrader/packages_status_detector.py", line 167, in _fetch_index_package_info
return self._parse_simple_html_package_info(package_name, current_version, response)
File "/home/username/.virtualenvs/venv/lib/python3.5/site-packages/pip_upgrader/packages_status_detector.py", line 228, in _parse_simple_html_package_info
latest_version = max([vers for vers in all_versions if not vers.is_prerelease and not vers.is_postrelease])
ValueError: max() arg is an empty sequence
% pip-upgrade --version
1.4.0
% python --version
Python 3.5.3
You might not want to support running pip-upgrader on itself, but I don't think the app should crash because someone has put it in requirements.txt
.
pip-upgrader imports internal modules of pip, and pip 10 changes things.
If you're used to self-apply pip-upgrader, this time it is:
pip install -U pip-upgrader
to get v1.4.6+. Just leaving this as a note to other people getting tangled up in dependency hell.
⇒ ba8613d
Getting an issue with what appears to be config-parser. Wondering if anyone else has seen this, its only popping up with pip-upgrade
since installing into an existing porject 2 mins ago:
Found valid requirements file(s):
requirements.txt
Traceback (most recent call last):
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/configparser.py", line 1138, in _unify_values
sectiondict = self._sections[section]
KeyError: 'global'During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/pfiddes/PythonProjects/gcloud/bin/pip-upgrade", line 11, in
sys.exit(main())
File "/Users/pfiddes/PythonProjects/gcloud/lib/python3.6/site-packages/pip_upgrader/cli.py", line 70, in main
packages, options.get('--use-default-index')).detect_available_upgrades(options)
File "/Users/pfiddes/PythonProjects/gcloud/lib/python3.6/site-packages/pip_upgrader/packages_status_detector.py", line 47, in init
self._update_index_url_from_configs()
File "/Users/pfiddes/PythonProjects/gcloud/lib/python3.6/site-packages/pip_upgrader/packages_status_detector.py", line 77, in _update_index_url_from_configs
index_url = config.get('global', 'index-url')
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/configparser.py", line 781, in get
d = self._unify_values(section, vars)
File "/usr/local/Cellar/python3/3.6.2/Frameworks/Python.framework/Versions/3.6/lib/python3.6/configparser.py", line 1141, in _unify_values
raise NoSectionError(section)
configparser.NoSectionError: No section: 'global'
appnope==0.1.0
astroid==1.5.3
cachetools==2.0.1
certifi==2017.7.27.1
chardet==3.0.4
decorator==4.1.2
dill==0.2.7.1
future==0.16.0
gapic-google-cloud-datastore-v1==0.15.3
gapic-google-cloud-error-reporting-v1beta1==0.15.3
gapic-google-cloud-logging-v2==0.91.3
gapic-google-cloud-pubsub-v1==0.15.4
gapic-google-cloud-spanner-admin-database-v1==0.15.3
gapic-google-cloud-spanner-admin-instance-v1==0.15.3
gapic-google-cloud-spanner-v1==0.15.3
gapic-google-cloud-speech-v1==0.15.3
google-auth==1.0.2
google-auth-httplib2==0.0.2
google-cloud==0.27.0
google-cloud-bigquery==0.26.0
google-cloud-bigtable==0.26.0
google-cloud-core==0.26.0
google-cloud-datastore==1.2.0
google-cloud-dns==0.26.0
google-cloud-error-reporting==0.26.0
google-cloud-language==0.27.0
google-cloud-logging==1.2.0
google-cloud-monitoring==0.26.0
google-cloud-pubsub==0.27.0
google-cloud-resource-manager==0.26.0
google-cloud-runtimeconfig==0.26.0
google-cloud-spanner==0.26.0
google-cloud-speech==0.28.0
google-cloud-storage==1.3.1
google-cloud-translate==1.1.0
google-cloud-videointelligence==0.25.0
google-cloud-vision==0.26.0
google-gax==0.15.14
google-resumable-media==0.2.3
googleapis-common-protos==1.5.2
grpc-google-iam-v1==0.11.1
grpcio==1.4.0
httplib2==0.10.3
idna==2.6
ipython==6.1.0
ipython-genutils==0.2.0
isort==4.2.15
jedi==0.10.2
lazy-object-proxy==1.3.1
mccabe==0.6.1
monotonic==1.3
oauth2client==4.1.2
pexpect==4.2.1
pickleshare==0.7.4
plumbum==1.6.3
ply==3.10
pprint==0.1
prompt-toolkit==1.0.15
proto-google-cloud-datastore-v1==0.90.4
proto-google-cloud-error-reporting-v1beta1==0.15.3
proto-google-cloud-logging-v2==0.91.3
proto-google-cloud-pubsub-v1==0.15.4
proto-google-cloud-spanner-admin-database-v1==0.15.3
proto-google-cloud-spanner-admin-instance-v1==0.15.3
proto-google-cloud-spanner-v1==0.15.3
proto-google-cloud-speech-v1==0.15.3
protobuf==3.3.0
psutil==5.2.2
ptyprocess==0.5.2
pyasn1==0.3.2
pyasn1-modules==0.0.11
Pygments==2.2.0
pylint==1.7.2
PyYAML==3.12
requests==2.18.4
rsa==3.4.2
simplegeneric==0.8.1
six==1.10.0
tenacity==4.4.0
traitlets==4.3.2
urllib3==1.22
wcwidth==0.1.7
wrapt==1.10.11
Using python3 in a virtual env:
Python 3.6.2
Any clues?
Would it be possible to disable Choices question or auto populate Choices answer?
Please choose which packages should be upgraded. Choices: "all", "q" (quit), "x" (exit) or "1 2 3"
Great tool but seems it does not work with environment markers in requirements files:
Found valid requirements file(s):
requirements.txt
1/22: Appium-Python-Client ... upgrade available: 0.50 ==> 0.51 (uploaded on 2020-04-12 03:16:19)
2/22: colorama ... up to date: 0.4.3
3/22: grpcio ... upgrade available: 1.27.2 ==> 1.28.1 (uploaded on 2020-04-03 18:11:34)
4/22: grpcio-tools ... upgrade available: 1.27.2 ==> 1.28.1 (uploaded on 2020-04-03 18:12:52)
5/22: numpy ... up to date: 1.18.2
6/22: matplotlib ... up to date: 3.2.1
7/22: mido ... up to date: 1.2.9
Error while parsing package osascript==2019.4.13; sys_platform == 'darwin' (skipping).
Exception: too many values to unpack (expected 2)
9/22: python-rtmidi ... up to date: 1.4.0
10/22: paramiko ... up to date: 2.7.1
11/22: protobuf ... up to date: 3.11.3
12/22: PyAudio ... up to date: 0.2.11
13/22: PyAutoGUI ... up to date: 0.9.50
Error while parsing package pyobjc-core==6.2; sys_platform == 'darwin' (skipping).
Exception: too many values to unpack (expected 2)
Error while parsing package pyobjc==6.2; sys_platform == 'darwin' (skipping).
Exception: too many values to unpack (expected 2)
16/22: pyscreenshot ... up to date: 1.0
17/22: requests ... up to date: 2.23.0
Any chance to get support for this pip feature?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.