Last active
December 2, 2020 02:30
-
-
Save futursolo/0ddb0dd7091393dc03527202e15ff475 to your computer and use it in GitHub Desktop.
Pip output sample
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python3 | |
# -*- coding: utf-8 -*- | |
# | |
# Copyright 2019 Kaede Hoshikawa | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
""" | |
The output of Python's current Package Installer(pip) is quite messy and | |
Pythonistas deserve a better output. | |
If you don't believe me, just type `pip install pyobjc` and watch the terminal | |
go nuts. | |
So I made this sample script to showcase two potential designs that can be | |
used to improve the output of pip. | |
1. `next_pip.py` | |
This one mimics Red Hat's dnf package manager. Dnf has a very nice table | |
based design and it makes the output looks tidy and consistent even with | |
a large quantity of packages. | |
2. `next_pip.py -s` | |
This one is inspired by Rust's Cargo package manager. Pip's current output | |
has too much useless information which makes the output look very messy. | |
Cargo has a very minimal output design and it looks very clean. | |
Also, you need Python 3.6 to run this script as I used f-string. | |
If you have any suggestions on how this can be improved, please comment below. | |
Related Issue: https://github.com/pypa/pip/issues/4649 | |
""" | |
import shutil | |
import time | |
import secrets | |
import sys | |
import random | |
update_every = .1 | |
packages = [ | |
("pyobjc", "5.1.2", True), | |
("pyobjc-core", "5.1.2"), | |
("pyobjc-framework-AVFoundation", "5.1.2"), | |
("pyobjc-framework-AVKit", "5.1.2"), | |
("pyobjc-framework-Accounts", "5.1.2"), | |
("pyobjc-framework-AdSupport", "5.1.2"), | |
("pyobjc-framework-AddressBook", "5.1.2"), | |
("pyobjc-framework-AppleScriptKit", "5.1.2"), | |
("pyobjc-framework-AppleScriptObjC", "5.1.2"), | |
("pyobjc-framework-ApplicationServices", "5.1.2"), | |
("pyobjc-framework-Automator", "5.1.2"), | |
("pyobjc-framework-BusinessChat", "5.1.2"), | |
("pyobjc-framework-CFNetwork", "5.1.2"), | |
("pyobjc-framework-CalendarStore", "5.1.2"), | |
("pyobjc-framework-CloudKit", "5.1.2"), | |
("pyobjc-framework-Cocoa", "5.1.2"), | |
("pyobjc-framework-Collaboration", "5.1.2"), | |
("pyobjc-framework-ColorSync", "5.1.2"), | |
("pyobjc-framework-Contacts", "5.1.2"), | |
("pyobjc-framework-ContactsUI", "5.1.2"), | |
("pyobjc-framework-CoreAudio", "5.1.2"), | |
("pyobjc-framework-CoreAudioKit", "5.1.2"), | |
("pyobjc-framework-CoreBluetooth", "5.1.2"), | |
("pyobjc-framework-CoreData", "5.1.2"), | |
("pyobjc-framework-CoreLocation", "5.1.2"), | |
("pyobjc-framework-CoreML", "5.1.2"), | |
("pyobjc-framework-CoreMedia", "5.1.2"), | |
("pyobjc-framework-CoreMediaIO", "5.1.2"), | |
("pyobjc-framework-CoreServices", "5.1.2"), | |
("pyobjc-framework-CoreSpotlight", "5.1.2"), | |
("pyobjc-framework-CoreText", "5.1.2"), | |
("pyobjc-framework-CoreWLAN", "5.1.2"), | |
("pyobjc-framework-CryptoTokenKit", "5.1.2"), | |
("pyobjc-framework-DVDPlayback", "5.1.2"), | |
("pyobjc-framework-DictionaryServices", "5.1.2"), | |
("pyobjc-framework-DiscRecording", "5.1.2"), | |
("pyobjc-framework-DiscRecordingUI", "5.1.2"), | |
("pyobjc-framework-DiskArbitration", "5.1.2"), | |
("pyobjc-framework-EventKit", "5.1.2"), | |
("pyobjc-framework-ExceptionHandling", "5.1.2"), | |
("pyobjc-framework-ExternalAccessory", "5.1.2"), | |
("pyobjc-framework-FSEvents", "5.1.2"), | |
("pyobjc-framework-FinderSync", "5.1.2"), | |
("pyobjc-framework-GameCenter", "5.1.2"), | |
("pyobjc-framework-GameController", "5.1.2"), | |
("pyobjc-framework-GameKit", "5.1.2"), | |
("pyobjc-framework-GameplayKit", "5.1.2"), | |
("pyobjc-framework-IMServicePlugIn", "5.1.2"), | |
("pyobjc-framework-IOSurface", "5.1.2"), | |
("pyobjc-framework-ImageCaptureCore", "5.1.2"), | |
("pyobjc-framework-InputMethodKit", "5.1.2"), | |
("pyobjc-framework-InstallerPlugins", "5.1.2"), | |
("pyobjc-framework-InstantMessage", "5.1.2"), | |
("pyobjc-framework-Intents", "5.1.2"), | |
("pyobjc-framework-LatentSemanticMapping", "5.1.2"), | |
("pyobjc-framework-LaunchServices", "5.1.2"), | |
("pyobjc-framework-LocalAuthentication", "5.1.2"), | |
("pyobjc-framework-MapKit", "5.1.2"), | |
("pyobjc-framework-MediaAccessibility", "5.1.2"), | |
("pyobjc-framework-MediaLibrary", "5.1.2"), | |
("pyobjc-framework-MediaPlayer", "5.1.2"), | |
("pyobjc-framework-MediaToolbox", "5.1.2"), | |
("pyobjc-framework-ModelIO", "5.1.2"), | |
("pyobjc-framework-MultipeerConnectivity", "5.1.2"), | |
("pyobjc-framework-NaturalLanguage", "5.1.2"), | |
("pyobjc-framework-NetFS", "5.1.2"), | |
("pyobjc-framework-Network", "5.1.2"), | |
("pyobjc-framework-NetworkExtension", "5.1.2"), | |
("pyobjc-framework-NotificationCenter", "5.1.2"), | |
("pyobjc-framework-OSAKit", "5.1.2"), | |
("pyobjc-framework-OpenDirectory", "5.1.2"), | |
("pyobjc-framework-Photos", "5.1.2"), | |
("pyobjc-framework-PhotosUI", "5.1.2"), | |
("pyobjc-framework-PreferencePanes", "5.1.2"), | |
("pyobjc-framework-PubSub", "5.1.2"), | |
("pyobjc-framework-QTKit", "5.1.2"), | |
("pyobjc-framework-Quartz", "5.1.2"), | |
("pyobjc-framework-SafariServices", "5.1.2"), | |
("pyobjc-framework-SceneKit", "5.1.2"), | |
("pyobjc-framework-ScreenSaver", "5.1.2"), | |
("pyobjc-framework-ScriptingBridge", "5.1.2"), | |
("pyobjc-framework-SearchKit", "5.1.2"), | |
("pyobjc-framework-Security", "5.1.2"), | |
("pyobjc-framework-SecurityFoundation", "5.1.2"), | |
("pyobjc-framework-SecurityInterface", "5.1.2"), | |
("pyobjc-framework-ServiceManagement", "5.1.2"), | |
("pyobjc-framework-Social", "5.1.2"), | |
("pyobjc-framework-SpriteKit", "5.1.2"), | |
("pyobjc-framework-StoreKit", "5.1.2"), | |
("pyobjc-framework-SyncServices", "5.1.2"), | |
("pyobjc-framework-SystemConfiguration", "5.1.2"), | |
("pyobjc-framework-UserNotifications", "5.1.2"), | |
("pyobjc-framework-VideoSubscriberAccount", "5.1.2"), | |
("pyobjc-framework-VideoToolbox", "5.1.2"), | |
("pyobjc-framework-Vision", "5.1.2"), | |
("pyobjc-framework-WebKit", "5.1.2"), | |
("pyobjc-framework-iTunesLibrary", "5.1.2"), | |
("pyobjc-framework-libdispatch", "5.1.2"), | |
] | |
mean_speed = secrets.choice(range(200, 3000)) | |
class Stdout: | |
def __init__(self): | |
self.active_lines = 0 | |
@staticmethod | |
def get_twidth(): | |
return shutil.get_terminal_size().columns | |
@staticmethod | |
def print_fill_line(s): | |
print(s + " " * (Stdout.get_twidth() - len(s))) | |
def moveback(self): | |
for _ in range(0, self.active_lines): | |
sys.stdout.write("\033[F") | |
sys.stdout.flush() | |
def update_active_lines(self, lines): | |
if len(lines) < self.active_lines: | |
raise ValueError | |
self.moveback() | |
for line in lines: | |
self.print_fill_line(line) | |
self.active_lines = len(lines) | |
sys.stdout.flush() | |
def print_permanent_line(self, s): | |
self.moveback() | |
sys.stdout.write("\033[K") | |
print(s.rstrip()) | |
self.active_lines = 0 | |
sys.stdout.flush() | |
stdout = Stdout() | |
initial_twidth = stdout.get_twidth() | |
class ProgressBar: | |
def __init__(self, hashtag=True, max_length=None): | |
self.progress = 0 | |
self.hashtag = hashtag | |
self.max_length = max_length | |
def get_bar(self, length, new_progress=None): | |
if new_progress is not None: | |
self.progress = new_progress | |
if self.max_length is None: | |
max_length = stdout.get_twidth() | |
else: | |
max_length = self.max_length | |
if not length: | |
length = max_length | |
length = min((length, max_length)) - 2 | |
hlength = length * self.progress // 100 | |
hlength = min((hlength, length)) | |
if self.hashtag: | |
return f"[{'#' * hlength}{' ' * (length - hlength)}]" | |
else: | |
if hlength > 0 and hlength < length: | |
fhlength = hlength - 1 | |
cur = ">" | |
else: | |
cur = "" | |
fhlength = hlength | |
return f"[{'=' * fhlength}{cur}{' ' * (length - hlength)}]" | |
def convert_to_size_text(size): | |
if size < 1024: | |
return f"{size}KB" | |
else: | |
size_f = size / 1024 | |
return f"{size_f:.1f}MB" | |
class Package: | |
def __init__(self, name, ver, non_any=False, hashtag=False): | |
self.name = name | |
self.ver = ver | |
self.progress = None | |
self.prefix = f"{self.name} v{self.ver} " | |
self.full_info_len = len(self.prefix) + 8 | |
self._speed_cache = None | |
self._speed_guard = None | |
if self.is_sdist(): | |
self.platform = "sdist" | |
else: | |
self.platform = "wheel(non-any)" if non_any else "wheel(macOS)" | |
self.bar = ProgressBar(hashtag=hashtag, max_length=40) | |
def get_size(self): | |
rand = random.Random(self.prefix.encode()) | |
return rand.choice(range(100, 2500)) | |
def get_size_text(self): | |
return convert_to_size_text(self.get_size()) | |
def get_rand_speed(self): | |
if self._speed_cache is not None and \ | |
self._speed_guard == int(time.time() * 5): | |
return self._speed_cache | |
self._speed_guard = int(time.time() * 2) | |
variance = secrets.choice(range(0, 200)) | |
if secrets.choice((0, 1)): | |
speed = mean_speed + variance | |
else: | |
speed = mean_speed - variance | |
if speed < 1024: | |
self._speed_cache = f"{speed}KB/s" | |
else: | |
speed_f = speed / 1024 | |
self._speed_cache = f"{speed_f:.1f}MB/s" | |
return self._speed_cache | |
def is_sdist(self): | |
rand = random.Random(self.prefix.encode()) | |
return rand.random() < 0.05 | |
def get_progress_bar(self, info_len=None): | |
if not info_len: | |
info_len = self.full_info_len | |
if self.bar.hashtag: | |
length = get_field_len()[-1] - 10 | |
else: | |
length = stdout.get_twidth() - info_len - 10 | |
return self.bar.get_bar(length, new_progress=self.progress) | |
def get_seq_prefix(self, seq): | |
if not self.download_finished(): | |
return " " * 7 | |
base = f" {seq}." | |
if len(base) < 7: | |
return base + " " * (7 - len(base)) | |
else: | |
return base | |
def get_cargo_download_line(self, info_len=None): | |
speed_s = self.get_rand_speed() | |
if self.progress is None: | |
self.progress = 0 | |
else: | |
self.progress += secrets.choice(range(5, 60)) | |
suffix = speed_s | |
bar = self.get_progress_bar(info_len=info_len) | |
seq_prefix = self.get_seq_prefix(0) | |
full_prefix = f"{seq_prefix}{self.prefix}" | |
if info_len and self.full_info_len < info_len: | |
full_prefix += " " * (info_len - self.full_info_len) | |
space = " " * ( | |
stdout.get_twidth() - ( | |
info_len or self.full_info_len) - len(bar) - 8) | |
return f"{full_prefix}{space}{bar} {suffix}" | |
def get_cargo_download_finished_line(self, seq): | |
seq_prefix = self.get_seq_prefix(seq) | |
return f"{seq_prefix}{self.prefix}" | |
def get_dnf_download_line(self): | |
if self.progress is None: | |
self.progress = 0 | |
else: | |
self.progress += secrets.choice(range(5, 60)) | |
return format_dnf_download_line( | |
self.name, self.ver, self.platform, self.get_size_text(), | |
self.get_rand_speed() + self.get_progress_bar()) | |
def get_dnf_download_finished_line(self): | |
return format_dnf_download_line( | |
self.name, self.ver, self.platform, self.get_size_text(), | |
self.get_rand_speed()) | |
def download_finished(self): | |
return self.progress >= 100 | |
def get_cargo_install_line(self, seq): | |
seq_prefix = self.get_seq_prefix(seq) | |
return f"{seq_prefix}{self.prefix}" | |
min_pkg_len = 15 | |
min_ver_len = 8 | |
min_dist_len = 15 | |
min_size_len = 6 | |
min_speed_len = 15 | |
min_speed_first_len = 21 | |
min_to_show = \ | |
min_pkg_len + min_ver_len + min_dist_len + min_size_len + min_speed_len | |
min_to_distribute_space = \ | |
min_pkg_len + min_ver_len + min_dist_len + min_size_len + \ | |
min_speed_first_len | |
def get_field_len(): | |
twidth = max((stdout.get_twidth(), min_to_show)) | |
twidth = min((twidth, initial_twidth)) - 4 | |
if twidth <= min_to_distribute_space: | |
speed_len = twidth - min_to_show + min_speed_len | |
pkg_len = min_pkg_len | |
ver_len = min_ver_len | |
dist_len = min_dist_len | |
size_len = min_size_len | |
else: | |
space_all = (twidth - min_to_distribute_space) // 5 | |
pkg_len = min_pkg_len + space_all | |
ver_len = min_ver_len + space_all | |
dist_len = min_dist_len + space_all | |
size_len = min_size_len + space_all | |
speed_len = twidth - pkg_len - ver_len - dist_len - size_len | |
return pkg_len, ver_len, dist_len, size_len, speed_len | |
def format_dnf_download_line(*items): | |
def fmt_field(s, f_len): | |
if len(s) <= f_len: | |
return s + " " * (f_len - len(s)) | |
else: | |
return s[:f_len] | |
def fmt_rfield(s, f_len): | |
if len(s) <= f_len: | |
return " " * (f_len - len(s)) + s | |
else: | |
return s[:f_len] | |
parts = [] | |
for index, l in enumerate(get_field_len()): | |
if index <= 3: | |
parts.append(fmt_field(items[index], l)) | |
else: | |
parts.append(fmt_rfield(items[index], l)) | |
return " ".join(parts) | |
def print_table_line(): | |
stdout.print_permanent_line("=" * initial_twidth) | |
def print_dnf_download_table(): | |
if initial_twidth < min_to_show: | |
raise RuntimeError("Resize window and try again.") | |
print_table_line() | |
stdout.print_permanent_line(format_dnf_download_line( | |
"Package(s)", "Version", "Distribution", "Size", "Speed")) | |
print_table_line() | |
building_pre = " Building : " | |
installl_pre = " Installing : " | |
def show_dnf(): | |
stdout.print_permanent_line("Fetching Package(s):") | |
print_dnf_download_table() | |
pkg_lists = iter(packages) | |
full_pkg_lists = [] | |
p = Package(*next(pkg_lists), hashtag=True) | |
while True: | |
stdout.update_active_lines([p.get_dnf_download_line()]) | |
if p.download_finished(): | |
stdout.print_permanent_line(p.get_dnf_download_finished_line()) | |
break | |
time.sleep(update_every) | |
full_pkg_lists.append(p) | |
current_pkgs = [] | |
while True: | |
while len(current_pkgs) < 3: | |
try: | |
current_pkgs.append(Package(*next(pkg_lists), hashtag=True)) | |
except StopIteration: | |
break | |
if not current_pkgs: | |
break | |
time.sleep(update_every) | |
stdout.update_active_lines( | |
[pkg.get_dnf_download_line() for pkg in current_pkgs]) | |
for pkg in list(current_pkgs): | |
if pkg.download_finished(): | |
stdout.print_permanent_line( | |
pkg.get_dnf_download_finished_line()) | |
current_pkgs.remove(pkg) | |
full_pkg_lists.append(pkg) | |
total_size = sum([pkg.get_size() for pkg in full_pkg_lists]) | |
total_size_text = convert_to_size_text(total_size) | |
print_table_line() | |
stdout.print_permanent_line( | |
format_dnf_download_line( | |
"Total:", "", "", total_size_text, | |
f"{len(full_pkg_lists)} Package(s)")) | |
stdout.print_permanent_line("") | |
stdout.print_permanent_line("Installing Package(s):") | |
total_wheels = len([pkg for pkg in full_pkg_lists if pkg.is_sdist()]) | |
all_jobs = total_wheels + len(full_pkg_lists) | |
total_bar = ProgressBar(hashtag=True) | |
longest_name_length = max( | |
[len(pkg.prefix.strip()) for pkg in full_pkg_lists]) - 2 | |
overhead_len = 10 + longest_name_length + \ | |
len(str(total_wheels)) * 2 + len(building_pre) | |
ctr = 1 | |
for pkg in full_pkg_lists: | |
if not pkg.is_sdist(): | |
continue | |
wheel_building_time = secrets.choice(range(1, 3)) | |
start_time = time.time() | |
wheel_prefix = f"{pkg.name}-{pkg.ver}" | |
wheel_prefix = building_pre + wheel_prefix | |
while True: | |
if time.time() - start_time > wheel_building_time: | |
break | |
bar = total_bar.get_bar( | |
stdout.get_twidth() - overhead_len, 100 * ctr // all_jobs) | |
counter = f"({ctr}/{all_jobs})" | |
counter = " " * ( | |
(len(str(all_jobs)) * 2 + 3) - len(counter)) + counter | |
space = " " * ( | |
stdout.get_twidth() - len(bar) - len(counter) | |
- len(wheel_prefix)) | |
stdout.update_active_lines( | |
[f"{wheel_prefix}{space}{bar}{counter}"]) | |
time.sleep(update_every) | |
space = " " * ( | |
stdout.get_twidth() - len(wheel_prefix) - len(counter)) | |
stdout.print_permanent_line(f"{wheel_prefix}{space}{counter} ") | |
ctr += 1 | |
for pkg in full_pkg_lists: | |
inst_time = secrets.choice(range(1, 5)) | |
start_time = time.time() | |
inst_prefix = f"{pkg.name}-{pkg.ver}" | |
inst_prefix = installl_pre + inst_prefix | |
while True: | |
if time.time() - start_time > inst_time / 10: | |
break | |
bar = total_bar.get_bar( | |
stdout.get_twidth() - overhead_len, 100 * ctr // all_jobs) | |
counter = f"({ctr}/{all_jobs})" | |
counter = " " * ( | |
(len(str(all_jobs)) * 2 + 3) - len(counter)) + counter | |
space = " " * ( | |
stdout.get_twidth() - len(bar) - len(counter) | |
- len(inst_prefix)) | |
stdout.update_active_lines( | |
[f"{inst_prefix}{space}{bar}{counter}"]) | |
time.sleep(update_every) | |
space = " " * ( | |
stdout.get_twidth() - len(inst_prefix) - len(counter)) | |
stdout.print_permanent_line(f"{inst_prefix}{space}{counter} ") | |
ctr += 1 | |
stdout.print_permanent_line("") | |
stdout.print_permanent_line("Installed Package(s):") | |
columns = stdout.get_twidth() // (longest_name_length + 3) | |
column_len = stdout.get_twidth() // columns | |
pkg_names = [f"{pkg.name}-{pkg.ver}" for pkg in full_pkg_lists] | |
while True: | |
parts = [" "] | |
for _ in range(0, columns): | |
try: | |
n = pkg_names.pop(0) | |
parts.append(n + " " * (column_len - len(n))) | |
except IndexError: | |
break | |
stdout.print_permanent_line("".join(parts)) | |
if not pkg_names: | |
break | |
stdout.print_permanent_line("") | |
stdout.print_permanent_line( | |
f"Successfully Installed {len(full_pkg_lists)} package(s).") | |
stdout.print_permanent_line("") | |
stdout.print_permanent_line("Done!") | |
def show_cargo(): | |
stdout.print_permanent_line("Fetching Package(s):") | |
pkg_lists = iter(packages) | |
full_pkg_lists = [] | |
p = Package(*next(pkg_lists)) | |
while True: | |
stdout.update_active_lines([p.get_cargo_download_line()]) | |
if p.download_finished(): | |
stdout.print_permanent_line(p.get_cargo_download_finished_line(1)) | |
break | |
time.sleep(update_every) | |
full_pkg_lists.append(p) | |
ctr = 2 | |
current_pkgs = [] | |
while True: | |
while len(current_pkgs) < 3: | |
try: | |
current_pkgs.append(Package(*next(pkg_lists))) | |
except StopIteration: | |
break | |
if not current_pkgs: | |
break | |
time.sleep(update_every) | |
info_len = max([pkg.full_info_len for pkg in current_pkgs]) | |
stdout.update_active_lines( | |
[pkg.get_cargo_download_line(info_len=info_len) | |
for pkg in current_pkgs]) | |
for pkg in list(current_pkgs): | |
if pkg.download_finished(): | |
stdout.print_permanent_line( | |
pkg.get_cargo_download_finished_line(ctr)) | |
ctr += 1 | |
current_pkgs.remove(pkg) | |
full_pkg_lists.append(pkg) | |
total_size = sum([pkg.get_size() for pkg in full_pkg_lists]) | |
total_size_text = convert_to_size_text(total_size) | |
stdout.print_permanent_line("") | |
stdout.print_permanent_line( | |
f"Downloaded {ctr - 1} package(s) with a total size of " | |
f"{total_size_text}.") | |
stdout.print_permanent_line("") | |
longest_name_length = max( | |
[len(pkg.prefix.strip()) for pkg in full_pkg_lists]) | |
wheel_bar = ProgressBar(hashtag=False) | |
total_wheels = len([pkg for pkg in full_pkg_lists if pkg.is_sdist()]) | |
overhead_len = 10 + longest_name_length + len(str(total_wheels)) * 2 | |
stdout.print_permanent_line("Building Wheel(s):") | |
ctr = 1 | |
all_time = 0 | |
for index, pkg in enumerate(full_pkg_lists): | |
if not pkg.is_sdist(): | |
continue | |
wheel_building_time = secrets.choice(range(1, 3)) | |
all_time += wheel_building_time | |
start_time = time.time() | |
wheel_prefix = pkg.get_cargo_install_line(ctr) | |
while True: | |
if time.time() - start_time > wheel_building_time: | |
break | |
bar = wheel_bar.get_bar( | |
stdout.get_twidth() - overhead_len, 100 * ctr // total_wheels) | |
space = " " * (longest_name_length - len(pkg.prefix.strip()) + 1) | |
counter = f"({ctr}/{total_wheels})" | |
counter += " " * (7 - len(counter)) | |
stdout.update_active_lines( | |
[f"{counter}{pkg.prefix.strip()}{space}{bar}"]) | |
time.sleep(update_every) | |
stdout.print_permanent_line(wheel_prefix) | |
ctr += 1 | |
stdout.print_permanent_line("") | |
stdout.print_permanent_line(f"Built {ctr - 1} wheel(s) in {all_time}s.") | |
stdout.print_permanent_line("") | |
stdout.print_permanent_line("Installing Package(s):") | |
inst_bar = ProgressBar(hashtag=False) | |
overhead_len = 10 + longest_name_length + len(str(len(full_pkg_lists))) * 2 | |
inst_start_time = time.time() | |
for index, pkg in enumerate(full_pkg_lists): | |
install_time = secrets.choice(range(1, 5)) | |
inst_prefix = pkg.get_cargo_install_line(index + 1) | |
start_time = time.time() | |
while True: | |
if time.time() - start_time > install_time / 10: | |
break | |
bar = inst_bar.get_bar( | |
stdout.get_twidth() - overhead_len, | |
100 * (index + 1) // len(full_pkg_lists)) | |
space = " " * (longest_name_length - len(pkg.prefix.strip()) + 1) | |
counter = f"({index + 1}/{len(full_pkg_lists)})" | |
counter += " " * (7 - len(counter)) | |
stdout.update_active_lines( | |
[f"{counter}{pkg.prefix.strip()}{space}{bar}"]) | |
time.sleep(update_every) | |
stdout.print_permanent_line(inst_prefix) | |
used_time = int(time.time() - inst_start_time) | |
stdout.print_permanent_line("") | |
stdout.print_permanent_line( | |
f"Successfully Installed {len(full_pkg_lists)} package(s) " | |
f"in {used_time}s.") | |
stdout.print_permanent_line("") | |
stdout.print_permanent_line("Complete!") | |
def main(args=sys.argv[1:]): | |
if "--simple" in args or "-s" in args: | |
show_cargo() | |
else: | |
show_dnf() | |
if __name__ == "__main__": | |
main() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fetching Package(s): | |
==================================================================================================== | |
Package(s) Version Distribution Size Speed | |
==================================================================================================== | |
pyobjc 5.1.2 wheel(non-any) 1.1MB 199KB/s | |
pyobjc-core 5.1.2 wheel(macOS) 1.8MB 414KB/s | |
pyobjc-framework-AVKi 5.1.2 wheel(macOS) 1.8MB 138KB/s | |
pyobjc-framework-AVFo 5.1.2 wheel(macOS) 2.1MB 85KB/s | |
pyobjc-framework-Acco 5.1.2 wheel(macOS) 1.6MB 381KB/s | |
pyobjc-framework-AdSu 5.1.2 wheel(macOS) 2.0MB 68KB/s | |
pyobjc-framework-Addr 5.1.2 wheel(macOS) 1.1MB 313KB/s | |
pyobjc-framework-Appl 5.1.2 wheel(macOS) 2.4MB 31KB/s | |
pyobjc-framework-Appl 5.1.2 wheel(macOS) 2.0MB 239KB/s | |
pyobjc-framework-Appl 5.1.2 wheel(macOS) 1.4MB 230KB/s | |
pyobjc-framework-Auto 5.1.2 wheel(macOS) 372KB 119KB/s | |
pyobjc-framework-Busi 5.1.2 wheel(macOS) 2.2MB 110KB/s | |
pyobjc-framework-Cale 5.1.2 wheel(macOS) 1.5MB 339KB/s | |
pyobjc-framework-CFNe 5.1.2 sdist 157KB 81KB/s | |
pyobjc-framework-Clou 5.1.2 wheel(macOS) 1.1MB 413KB/s | |
pyobjc-framework-Coco 5.1.2 wheel(macOS) 868KB 425KB/s | |
pyobjc-framework-Coll 5.1.2 wheel(macOS) 2.2MB 401KB/s | |
pyobjc-framework-Colo 5.1.2 wheel(macOS) 2.0MB 33KB/s | |
pyobjc-framework-Cont 5.1.2 sdist 137KB 161KB/s | |
pyobjc-framework-Cont 5.1.2 wheel(macOS) 2.2MB 169KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 1.2MB 264KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 1.6MB 235KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 1.1MB 251KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 2.3MB 118KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 1.3MB 366KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 1.6MB 413KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 1.9MB 114KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 1.4MB 166KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 1.6MB 321KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 354KB 81KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 487KB 81KB/s | |
pyobjc-framework-Core 5.1.2 wheel(macOS) 1.6MB 320KB/s | |
pyobjc-framework-Cryp 5.1.2 wheel(macOS) 1.6MB 266KB/s | |
pyobjc-framework-DVDP 5.1.2 wheel(macOS) 1.4MB 413KB/s | |
pyobjc-framework-Dict 5.1.2 wheel(macOS) 1.0MB 360KB/s | |
pyobjc-framework-Disc 5.1.2 wheel(macOS) 2.2MB 185KB/s | |
pyobjc-framework-Disc 5.1.2 wheel(macOS) 1.1MB 424KB/s | |
pyobjc-framework-Disk 5.1.2 wheel(macOS) 1.9MB 92KB/s | |
pyobjc-framework-Exce 5.1.2 wheel(macOS) 2.1MB 358KB/s | |
pyobjc-framework-Even 5.1.2 wheel(macOS) 1.0MB 293KB/s | |
pyobjc-framework-Exte 5.1.2 wheel(macOS) 833KB 98KB/s | |
pyobjc-framework-FSEv 5.1.2 wheel(macOS) 684KB 345KB/s | |
pyobjc-framework-Find 5.1.2 wheel(macOS) 2.4MB 56KB/s | |
pyobjc-framework-Game 5.1.2 wheel(macOS) 1.8MB 294KB/s | |
pyobjc-framework-Game 5.1.2 wheel(macOS) 1.6MB 173KB/s | |
pyobjc-framework-Game 5.1.2 wheel(macOS) 2.0MB 312KB/s | |
pyobjc-framework-Game 5.1.2 wheel(macOS) 916KB 313KB/s | |
pyobjc-framework-IMSe 5.1.2 wheel(macOS) 869KB 122KB/s | |
pyobjc-framework-Inpu 5.1.2 sdist 250KB 295KB/s | |
pyobjc-framework-IOSu 5.1.2 wheel(macOS) 2.4MB 193KB/s | |
pyobjc-framework-Imag 5.1.2 wheel(macOS) 529KB 272KB/s | |
pyobjc-framework-Inst 5.1.2 wheel(macOS) 1.0MB 32KB/s | |
pyobjc-framework-Inst 5.1.2 wheel(macOS) 1.8MB 370KB/s | |
pyobjc-framework-Inte 5.1.2 wheel(macOS) 1.5MB 114KB/s | |
pyobjc-framework-Late 5.1.2 wheel(macOS) 516KB 370KB/s | |
pyobjc-framework-Loca 5.1.2 wheel(macOS) 1.0MB 62KB/s | |
pyobjc-framework-Laun 5.1.2 wheel(macOS) 1.6MB 234KB/s | |
pyobjc-framework-MapK 5.1.2 wheel(macOS) 306KB 236KB/s | |
pyobjc-framework-Medi 5.1.2 wheel(macOS) 2.3MB 384KB/s | |
pyobjc-framework-Medi 5.1.2 wheel(macOS) 614KB 145KB/s | |
pyobjc-framework-Medi 5.1.2 wheel(macOS) 1.7MB 420KB/s | |
pyobjc-framework-Medi 5.1.2 wheel(macOS) 1.3MB 120KB/s | |
pyobjc-framework-Mode 5.1.2 wheel(macOS) 2.3MB 331KB/s | |
pyobjc-framework-Mult 5.1.2 wheel(macOS) 2.2MB 294KB/s | |
pyobjc-framework-NetF 5.1.2 wheel(macOS) 686KB 124KB/s | |
pyobjc-framework-Natu 5.1.2 wheel(macOS) 227KB 74KB/s | |
pyobjc-framework-Netw 5.1.2 wheel(macOS) 706KB 212KB/s | |
pyobjc-framework-Noti 5.1.2 wheel(macOS) 1.8MB 312KB/s | |
pyobjc-framework-Netw 5.1.2 wheel(macOS) 1.6MB 62KB/s | |
pyobjc-framework-OSAK 5.1.2 wheel(macOS) 854KB 194KB/s | |
pyobjc-framework-Open 5.1.2 wheel(macOS) 348KB 49KB/s | |
pyobjc-framework-Phot 5.1.2 wheel(macOS) 536KB 165KB/s | |
pyobjc-framework-Phot 5.1.2 wheel(macOS) 429KB 408KB/s | |
pyobjc-framework-Pref 5.1.2 wheel(macOS) 1.9MB 253KB/s | |
pyobjc-framework-PubS 5.1.2 wheel(macOS) 1.3MB 54KB/s | |
pyobjc-framework-QTKi 5.1.2 wheel(macOS) 445KB 216KB/s | |
pyobjc-framework-Quar 5.1.2 wheel(macOS) 2.0MB 198KB/s | |
pyobjc-framework-Scen 5.1.2 wheel(macOS) 1.5MB 325KB/s | |
pyobjc-framework-Safa 5.1.2 wheel(macOS) 956KB 72KB/s | |
pyobjc-framework-Scre 5.1.2 wheel(macOS) 174KB 392KB/s | |
pyobjc-framework-Scri 5.1.2 wheel(macOS) 1.3MB 99KB/s | |
pyobjc-framework-Sear 5.1.2 sdist 291KB 109KB/s | |
pyobjc-framework-Secu 5.1.2 wheel(macOS) 1.4MB 241KB/s | |
pyobjc-framework-Secu 5.1.2 wheel(macOS) 2.0MB 85KB/s | |
pyobjc-framework-Secu 5.1.2 wheel(macOS) 1.6MB 226KB/s | |
pyobjc-framework-Serv 5.1.2 wheel(macOS) 535KB 204KB/s | |
pyobjc-framework-Soci 5.1.2 wheel(macOS) 554KB 130KB/s | |
pyobjc-framework-Spri 5.1.2 wheel(macOS) 1.6MB 124KB/s | |
pyobjc-framework-Stor 5.1.2 wheel(macOS) 1.7MB 238KB/s | |
pyobjc-framework-Sync 5.1.2 wheel(macOS) 1.7MB 31KB/s | |
pyobjc-framework-Syst 5.1.2 wheel(macOS) 1.8MB 119KB/s | |
pyobjc-framework-User 5.1.2 wheel(macOS) 772KB 341KB/s | |
pyobjc-framework-Vide 5.1.2 wheel(macOS) 1.8MB 384KB/s | |
pyobjc-framework-Vide 5.1.2 wheel(macOS) 953KB 410KB/s | |
pyobjc-framework-Visi 5.1.2 wheel(macOS) 1.7MB 209KB/s | |
pyobjc-framework-WebK 5.1.2 sdist 120KB 163KB/s | |
pyobjc-framework-libd 5.1.2 wheel(macOS) 1.7MB 66KB/s | |
pyobjc-framework-iTun 5.1.2 wheel(macOS) 989KB 201KB/s | |
==================================================================================================== | |
Total: 128.9MB 98 Package(s) | |
Installing Package(s): | |
Building : pyobjc-framework-CFNetwork-5.1.2 (1/103) | |
Building : pyobjc-framework-ContactsUI-5.1.2 (2/103) | |
Building : pyobjc-framework-InputMethodKit-5.1.2 (3/103) | |
Building : pyobjc-framework-SearchKit-5.1.2 (4/103) | |
Building : pyobjc-framework-WebKit-5.1.2 (5/103) | |
Installing : pyobjc-5.1.2 (6/103) | |
Installing : pyobjc-core-5.1.2 (7/103) | |
Installing : pyobjc-framework-AVKit-5.1.2 (8/103) | |
Installing : pyobjc-framework-AVFoundation-5.1.2 (9/103) | |
Installing : pyobjc-framework-Accounts-5.1.2 (10/103) | |
Installing : pyobjc-framework-AdSupport-5.1.2 (11/103) | |
Installing : pyobjc-framework-AddressBook-5.1.2 (12/103) | |
Installing : pyobjc-framework-AppleScriptKit-5.1.2 (13/103) | |
Installing : pyobjc-framework-AppleScriptObjC-5.1.2 (14/103) | |
Installing : pyobjc-framework-ApplicationServices-5.1.2 (15/103) | |
Installing : pyobjc-framework-Automator-5.1.2 (16/103) | |
Installing : pyobjc-framework-BusinessChat-5.1.2 (17/103) | |
Installing : pyobjc-framework-CalendarStore-5.1.2 (18/103) | |
Installing : pyobjc-framework-CFNetwork-5.1.2 (19/103) | |
Installing : pyobjc-framework-CloudKit-5.1.2 (20/103) | |
Installing : pyobjc-framework-Cocoa-5.1.2 (21/103) | |
Installing : pyobjc-framework-Collaboration-5.1.2 (22/103) | |
Installing : pyobjc-framework-ColorSync-5.1.2 (23/103) | |
Installing : pyobjc-framework-ContactsUI-5.1.2 (24/103) | |
Installing : pyobjc-framework-Contacts-5.1.2 (25/103) | |
Installing : pyobjc-framework-CoreAudio-5.1.2 (26/103) | |
Installing : pyobjc-framework-CoreAudioKit-5.1.2 (27/103) | |
Installing : pyobjc-framework-CoreBluetooth-5.1.2 (28/103) | |
Installing : pyobjc-framework-CoreData-5.1.2 (29/103) | |
Installing : pyobjc-framework-CoreLocation-5.1.2 (30/103) | |
Installing : pyobjc-framework-CoreMedia-5.1.2 (31/103) | |
Installing : pyobjc-framework-CoreML-5.1.2 (32/103) | |
Installing : pyobjc-framework-CoreMediaIO-5.1.2 (33/103) | |
Installing : pyobjc-framework-CoreServices-5.1.2 (34/103) | |
Installing : pyobjc-framework-CoreSpotlight-5.1.2 (35/103) | |
Installing : pyobjc-framework-CoreText-5.1.2 (36/103) | |
Installing : pyobjc-framework-CoreWLAN-5.1.2 (37/103) | |
Installing : pyobjc-framework-CryptoTokenKit-5.1.2 (38/103) | |
Installing : pyobjc-framework-DVDPlayback-5.1.2 (39/103) | |
Installing : pyobjc-framework-DictionaryServices-5.1.2 (40/103) | |
Installing : pyobjc-framework-DiscRecording-5.1.2 (41/103) | |
Installing : pyobjc-framework-DiscRecordingUI-5.1.2 (42/103) | |
Installing : pyobjc-framework-DiskArbitration-5.1.2 (43/103) | |
Installing : pyobjc-framework-ExceptionHandling-5.1.2 (44/103) | |
Installing : pyobjc-framework-EventKit-5.1.2 (45/103) | |
Installing : pyobjc-framework-ExternalAccessory-5.1.2 (46/103) | |
Installing : pyobjc-framework-FSEvents-5.1.2 (47/103) | |
Installing : pyobjc-framework-FinderSync-5.1.2 (48/103) | |
Installing : pyobjc-framework-GameController-5.1.2 (49/103) | |
Installing : pyobjc-framework-GameCenter-5.1.2 (50/103) | |
Installing : pyobjc-framework-GameKit-5.1.2 (51/103) | |
Installing : pyobjc-framework-GameplayKit-5.1.2 (52/103) | |
Installing : pyobjc-framework-IMServicePlugIn-5.1.2 (53/103) | |
Installing : pyobjc-framework-InputMethodKit-5.1.2 (54/103) | |
Installing : pyobjc-framework-IOSurface-5.1.2 (55/103) | |
Installing : pyobjc-framework-ImageCaptureCore-5.1.2 (56/103) | |
Installing : pyobjc-framework-InstallerPlugins-5.1.2 (57/103) | |
Installing : pyobjc-framework-InstantMessage-5.1.2 (58/103) | |
Installing : pyobjc-framework-Intents-5.1.2 (59/103) | |
Installing : pyobjc-framework-LatentSemanticMapping-5.1.2 (60/103) | |
Installing : pyobjc-framework-LocalAuthentication-5.1.2 (61/103) | |
Installing : pyobjc-framework-LaunchServices-5.1.2 (62/103) | |
Installing : pyobjc-framework-MapKit-5.1.2 (63/103) | |
Installing : pyobjc-framework-MediaAccessibility-5.1.2 (64/103) | |
Installing : pyobjc-framework-MediaLibrary-5.1.2 (65/103) | |
Installing : pyobjc-framework-MediaPlayer-5.1.2 (66/103) | |
Installing : pyobjc-framework-MediaToolbox-5.1.2 (67/103) | |
Installing : pyobjc-framework-ModelIO-5.1.2 (68/103) | |
Installing : pyobjc-framework-MultipeerConnectivity-5.1.2 (69/103) | |
Installing : pyobjc-framework-NetFS-5.1.2 (70/103) | |
Installing : pyobjc-framework-NaturalLanguage-5.1.2 (71/103) | |
Installing : pyobjc-framework-Network-5.1.2 (72/103) | |
Installing : pyobjc-framework-NotificationCenter-5.1.2 (73/103) | |
Installing : pyobjc-framework-NetworkExtension-5.1.2 (74/103) | |
Installing : pyobjc-framework-OSAKit-5.1.2 (75/103) | |
Installing : pyobjc-framework-OpenDirectory-5.1.2 (76/103) | |
Installing : pyobjc-framework-Photos-5.1.2 (77/103) | |
Installing : pyobjc-framework-PhotosUI-5.1.2 (78/103) | |
Installing : pyobjc-framework-PreferencePanes-5.1.2 (79/103) | |
Installing : pyobjc-framework-PubSub-5.1.2 (80/103) | |
Installing : pyobjc-framework-QTKit-5.1.2 (81/103) | |
Installing : pyobjc-framework-Quartz-5.1.2 (82/103) | |
Installing : pyobjc-framework-SceneKit-5.1.2 (83/103) | |
Installing : pyobjc-framework-SafariServices-5.1.2 (84/103) | |
Installing : pyobjc-framework-ScreenSaver-5.1.2 (85/103) | |
Installing : pyobjc-framework-ScriptingBridge-5.1.2 (86/103) | |
Installing : pyobjc-framework-SearchKit-5.1.2 (87/103) | |
Installing : pyobjc-framework-Security-5.1.2 (88/103) | |
Installing : pyobjc-framework-SecurityFoundation-5.1.2 (89/103) | |
Installing : pyobjc-framework-SecurityInterface-5.1.2 (90/103) | |
Installing : pyobjc-framework-ServiceManagement-5.1.2 (91/103) | |
Installing : pyobjc-framework-Social-5.1.2 (92/103) | |
Installing : pyobjc-framework-SpriteKit-5.1.2 (93/103) | |
Installing : pyobjc-framework-StoreKit-5.1.2 (94/103) | |
Installing : pyobjc-framework-SyncServices-5.1.2 (95/103) | |
Installing : pyobjc-framework-SystemConfiguration-5.1.2 (96/103) | |
Installing : pyobjc-framework-UserNotifications-5.1.2 (97/103) | |
Installing : pyobjc-framework-VideoSubscriberAccount-5.1.2 (98/103) | |
Installing : pyobjc-framework-VideoToolbox-5.1.2 (99/103) | |
Installing : pyobjc-framework-Vision-5.1.2 (100/103) | |
Installing : pyobjc-framework-WebKit-5.1.2 (101/103) | |
Installing : pyobjc-framework-libdispatch-5.1.2 (102/103) | |
Installing : pyobjc-framework-iTunesLibrary-5.1.2 (103/103) | |
Installed Package(s): | |
pyobjc-5.1.2 pyobjc-core-5.1.2 | |
pyobjc-framework-AVKit-5.1.2 pyobjc-framework-AVFoundation-5.1.2 | |
pyobjc-framework-Accounts-5.1.2 pyobjc-framework-AdSupport-5.1.2 | |
pyobjc-framework-AddressBook-5.1.2 pyobjc-framework-AppleScriptKit-5.1.2 | |
pyobjc-framework-AppleScriptObjC-5.1.2 pyobjc-framework-ApplicationServices-5.1.2 | |
pyobjc-framework-Automator-5.1.2 pyobjc-framework-BusinessChat-5.1.2 | |
pyobjc-framework-CalendarStore-5.1.2 pyobjc-framework-CFNetwork-5.1.2 | |
pyobjc-framework-CloudKit-5.1.2 pyobjc-framework-Cocoa-5.1.2 | |
pyobjc-framework-Collaboration-5.1.2 pyobjc-framework-ColorSync-5.1.2 | |
pyobjc-framework-ContactsUI-5.1.2 pyobjc-framework-Contacts-5.1.2 | |
pyobjc-framework-CoreAudio-5.1.2 pyobjc-framework-CoreAudioKit-5.1.2 | |
pyobjc-framework-CoreBluetooth-5.1.2 pyobjc-framework-CoreData-5.1.2 | |
pyobjc-framework-CoreLocation-5.1.2 pyobjc-framework-CoreMedia-5.1.2 | |
pyobjc-framework-CoreML-5.1.2 pyobjc-framework-CoreMediaIO-5.1.2 | |
pyobjc-framework-CoreServices-5.1.2 pyobjc-framework-CoreSpotlight-5.1.2 | |
pyobjc-framework-CoreText-5.1.2 pyobjc-framework-CoreWLAN-5.1.2 | |
pyobjc-framework-CryptoTokenKit-5.1.2 pyobjc-framework-DVDPlayback-5.1.2 | |
pyobjc-framework-DictionaryServices-5.1.2 pyobjc-framework-DiscRecording-5.1.2 | |
pyobjc-framework-DiscRecordingUI-5.1.2 pyobjc-framework-DiskArbitration-5.1.2 | |
pyobjc-framework-ExceptionHandling-5.1.2 pyobjc-framework-EventKit-5.1.2 | |
pyobjc-framework-ExternalAccessory-5.1.2 pyobjc-framework-FSEvents-5.1.2 | |
pyobjc-framework-FinderSync-5.1.2 pyobjc-framework-GameController-5.1.2 | |
pyobjc-framework-GameCenter-5.1.2 pyobjc-framework-GameKit-5.1.2 | |
pyobjc-framework-GameplayKit-5.1.2 pyobjc-framework-IMServicePlugIn-5.1.2 | |
pyobjc-framework-InputMethodKit-5.1.2 pyobjc-framework-IOSurface-5.1.2 | |
pyobjc-framework-ImageCaptureCore-5.1.2 pyobjc-framework-InstallerPlugins-5.1.2 | |
pyobjc-framework-InstantMessage-5.1.2 pyobjc-framework-Intents-5.1.2 | |
pyobjc-framework-LatentSemanticMapping-5.1.2 pyobjc-framework-LocalAuthentication-5.1.2 | |
pyobjc-framework-LaunchServices-5.1.2 pyobjc-framework-MapKit-5.1.2 | |
pyobjc-framework-MediaAccessibility-5.1.2 pyobjc-framework-MediaLibrary-5.1.2 | |
pyobjc-framework-MediaPlayer-5.1.2 pyobjc-framework-MediaToolbox-5.1.2 | |
pyobjc-framework-ModelIO-5.1.2 pyobjc-framework-MultipeerConnectivity-5.1.2 | |
pyobjc-framework-NetFS-5.1.2 pyobjc-framework-NaturalLanguage-5.1.2 | |
pyobjc-framework-Network-5.1.2 pyobjc-framework-NotificationCenter-5.1.2 | |
pyobjc-framework-NetworkExtension-5.1.2 pyobjc-framework-OSAKit-5.1.2 | |
pyobjc-framework-OpenDirectory-5.1.2 pyobjc-framework-Photos-5.1.2 | |
pyobjc-framework-PhotosUI-5.1.2 pyobjc-framework-PreferencePanes-5.1.2 | |
pyobjc-framework-PubSub-5.1.2 pyobjc-framework-QTKit-5.1.2 | |
pyobjc-framework-Quartz-5.1.2 pyobjc-framework-SceneKit-5.1.2 | |
pyobjc-framework-SafariServices-5.1.2 pyobjc-framework-ScreenSaver-5.1.2 | |
pyobjc-framework-ScriptingBridge-5.1.2 pyobjc-framework-SearchKit-5.1.2 | |
pyobjc-framework-Security-5.1.2 pyobjc-framework-SecurityFoundation-5.1.2 | |
pyobjc-framework-SecurityInterface-5.1.2 pyobjc-framework-ServiceManagement-5.1.2 | |
pyobjc-framework-Social-5.1.2 pyobjc-framework-SpriteKit-5.1.2 | |
pyobjc-framework-StoreKit-5.1.2 pyobjc-framework-SyncServices-5.1.2 | |
pyobjc-framework-SystemConfiguration-5.1.2 pyobjc-framework-UserNotifications-5.1.2 | |
pyobjc-framework-VideoSubscriberAccount-5.1.2 pyobjc-framework-VideoToolbox-5.1.2 | |
pyobjc-framework-Vision-5.1.2 pyobjc-framework-WebKit-5.1.2 | |
pyobjc-framework-libdispatch-5.1.2 pyobjc-framework-iTunesLibrary-5.1.2 | |
Successfully Installed 98 package(s). | |
Done! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Fetching Package(s): | |
1. pyobjc v5.1.2 | |
2. pyobjc-core v5.1.2 | |
3. pyobjc-framework-AVFoundation v5.1.2 | |
4. pyobjc-framework-AVKit v5.1.2 | |
5. pyobjc-framework-Accounts v5.1.2 | |
6. pyobjc-framework-AdSupport v5.1.2 | |
7. pyobjc-framework-AddressBook v5.1.2 | |
8. pyobjc-framework-AppleScriptObjC v5.1.2 | |
9. pyobjc-framework-AppleScriptKit v5.1.2 | |
10. pyobjc-framework-ApplicationServices v5.1.2 | |
11. pyobjc-framework-Automator v5.1.2 | |
12. pyobjc-framework-BusinessChat v5.1.2 | |
13. pyobjc-framework-CFNetwork v5.1.2 | |
14. pyobjc-framework-CalendarStore v5.1.2 | |
15. pyobjc-framework-CloudKit v5.1.2 | |
16. pyobjc-framework-Cocoa v5.1.2 | |
17. pyobjc-framework-ColorSync v5.1.2 | |
18. pyobjc-framework-Collaboration v5.1.2 | |
19. pyobjc-framework-Contacts v5.1.2 | |
20. pyobjc-framework-ContactsUI v5.1.2 | |
21. pyobjc-framework-CoreAudioKit v5.1.2 | |
22. pyobjc-framework-CoreAudio v5.1.2 | |
23. pyobjc-framework-CoreBluetooth v5.1.2 | |
24. pyobjc-framework-CoreLocation v5.1.2 | |
25. pyobjc-framework-CoreData v5.1.2 | |
26. pyobjc-framework-CoreML v5.1.2 | |
27. pyobjc-framework-CoreMedia v5.1.2 | |
28. pyobjc-framework-CoreServices v5.1.2 | |
29. pyobjc-framework-CoreMediaIO v5.1.2 | |
30. pyobjc-framework-CoreSpotlight v5.1.2 | |
31. pyobjc-framework-CoreText v5.1.2 | |
32. pyobjc-framework-CoreWLAN v5.1.2 | |
33. pyobjc-framework-CryptoTokenKit v5.1.2 | |
34. pyobjc-framework-DVDPlayback v5.1.2 | |
35. pyobjc-framework-DiscRecordingUI v5.1.2 | |
36. pyobjc-framework-DiscRecording v5.1.2 | |
37. pyobjc-framework-DictionaryServices v5.1.2 | |
38. pyobjc-framework-DiskArbitration v5.1.2 | |
39. pyobjc-framework-EventKit v5.1.2 | |
40. pyobjc-framework-ExceptionHandling v5.1.2 | |
41. pyobjc-framework-ExternalAccessory v5.1.2 | |
42. pyobjc-framework-FSEvents v5.1.2 | |
43. pyobjc-framework-FinderSync v5.1.2 | |
44. pyobjc-framework-GameCenter v5.1.2 | |
45. pyobjc-framework-GameController v5.1.2 | |
46. pyobjc-framework-GameKit v5.1.2 | |
47. pyobjc-framework-IMServicePlugIn v5.1.2 | |
48. pyobjc-framework-GameplayKit v5.1.2 | |
49. pyobjc-framework-IOSurface v5.1.2 | |
50. pyobjc-framework-ImageCaptureCore v5.1.2 | |
51. pyobjc-framework-InputMethodKit v5.1.2 | |
52. pyobjc-framework-InstallerPlugins v5.1.2 | |
53. pyobjc-framework-InstantMessage v5.1.2 | |
54. pyobjc-framework-Intents v5.1.2 | |
55. pyobjc-framework-LatentSemanticMapping v5.1.2 | |
56. pyobjc-framework-LaunchServices v5.1.2 | |
57. pyobjc-framework-LocalAuthentication v5.1.2 | |
58. pyobjc-framework-MapKit v5.1.2 | |
59. pyobjc-framework-MediaAccessibility v5.1.2 | |
60. pyobjc-framework-MediaPlayer v5.1.2 | |
61. pyobjc-framework-MediaToolbox v5.1.2 | |
62. pyobjc-framework-MediaLibrary v5.1.2 | |
63. pyobjc-framework-ModelIO v5.1.2 | |
64. pyobjc-framework-MultipeerConnectivity v5.1.2 | |
65. pyobjc-framework-NaturalLanguage v5.1.2 | |
66. pyobjc-framework-NetFS v5.1.2 | |
67. pyobjc-framework-NetworkExtension v5.1.2 | |
68. pyobjc-framework-Network v5.1.2 | |
69. pyobjc-framework-NotificationCenter v5.1.2 | |
70. pyobjc-framework-OSAKit v5.1.2 | |
71. pyobjc-framework-OpenDirectory v5.1.2 | |
72. pyobjc-framework-Photos v5.1.2 | |
73. pyobjc-framework-PhotosUI v5.1.2 | |
74. pyobjc-framework-PreferencePanes v5.1.2 | |
75. pyobjc-framework-PubSub v5.1.2 | |
76. pyobjc-framework-Quartz v5.1.2 | |
77. pyobjc-framework-QTKit v5.1.2 | |
78. pyobjc-framework-SafariServices v5.1.2 | |
79. pyobjc-framework-SceneKit v5.1.2 | |
80. pyobjc-framework-ScriptingBridge v5.1.2 | |
81. pyobjc-framework-ScreenSaver v5.1.2 | |
82. pyobjc-framework-SearchKit v5.1.2 | |
83. pyobjc-framework-SecurityFoundation v5.1.2 | |
84. pyobjc-framework-Security v5.1.2 | |
85. pyobjc-framework-ServiceManagement v5.1.2 | |
86. pyobjc-framework-SecurityInterface v5.1.2 | |
87. pyobjc-framework-Social v5.1.2 | |
88. pyobjc-framework-SpriteKit v5.1.2 | |
89. pyobjc-framework-StoreKit v5.1.2 | |
90. pyobjc-framework-SyncServices v5.1.2 | |
91. pyobjc-framework-SystemConfiguration v5.1.2 | |
92. pyobjc-framework-UserNotifications v5.1.2 | |
93. pyobjc-framework-VideoSubscriberAccount v5.1.2 | |
94. pyobjc-framework-VideoToolbox v5.1.2 | |
95. pyobjc-framework-Vision v5.1.2 | |
96. pyobjc-framework-WebKit v5.1.2 | |
97. pyobjc-framework-iTunesLibrary v5.1.2 | |
98. pyobjc-framework-libdispatch v5.1.2 | |
Downloaded 98 package(s) with a total size of 128.9MB. | |
Building Wheel(s): | |
1. pyobjc-framework-CFNetwork v5.1.2 | |
2. pyobjc-framework-ContactsUI v5.1.2 | |
3. pyobjc-framework-InputMethodKit v5.1.2 | |
4. pyobjc-framework-SearchKit v5.1.2 | |
5. pyobjc-framework-WebKit v5.1.2 | |
Built 5 wheel(s) in 9s. | |
Installing Package(s): | |
1. pyobjc v5.1.2 | |
2. pyobjc-core v5.1.2 | |
3. pyobjc-framework-AVFoundation v5.1.2 | |
4. pyobjc-framework-AVKit v5.1.2 | |
5. pyobjc-framework-Accounts v5.1.2 | |
6. pyobjc-framework-AdSupport v5.1.2 | |
7. pyobjc-framework-AddressBook v5.1.2 | |
8. pyobjc-framework-AppleScriptObjC v5.1.2 | |
9. pyobjc-framework-AppleScriptKit v5.1.2 | |
10. pyobjc-framework-ApplicationServices v5.1.2 | |
11. pyobjc-framework-Automator v5.1.2 | |
12. pyobjc-framework-BusinessChat v5.1.2 | |
13. pyobjc-framework-CFNetwork v5.1.2 | |
14. pyobjc-framework-CalendarStore v5.1.2 | |
15. pyobjc-framework-CloudKit v5.1.2 | |
16. pyobjc-framework-Cocoa v5.1.2 | |
17. pyobjc-framework-ColorSync v5.1.2 | |
18. pyobjc-framework-Collaboration v5.1.2 | |
19. pyobjc-framework-Contacts v5.1.2 | |
20. pyobjc-framework-ContactsUI v5.1.2 | |
21. pyobjc-framework-CoreAudioKit v5.1.2 | |
22. pyobjc-framework-CoreAudio v5.1.2 | |
23. pyobjc-framework-CoreBluetooth v5.1.2 | |
24. pyobjc-framework-CoreLocation v5.1.2 | |
25. pyobjc-framework-CoreData v5.1.2 | |
26. pyobjc-framework-CoreML v5.1.2 | |
27. pyobjc-framework-CoreMedia v5.1.2 | |
28. pyobjc-framework-CoreServices v5.1.2 | |
29. pyobjc-framework-CoreMediaIO v5.1.2 | |
30. pyobjc-framework-CoreSpotlight v5.1.2 | |
31. pyobjc-framework-CoreText v5.1.2 | |
32. pyobjc-framework-CoreWLAN v5.1.2 | |
33. pyobjc-framework-CryptoTokenKit v5.1.2 | |
34. pyobjc-framework-DVDPlayback v5.1.2 | |
35. pyobjc-framework-DiscRecordingUI v5.1.2 | |
36. pyobjc-framework-DiscRecording v5.1.2 | |
37. pyobjc-framework-DictionaryServices v5.1.2 | |
38. pyobjc-framework-DiskArbitration v5.1.2 | |
39. pyobjc-framework-EventKit v5.1.2 | |
40. pyobjc-framework-ExceptionHandling v5.1.2 | |
41. pyobjc-framework-ExternalAccessory v5.1.2 | |
42. pyobjc-framework-FSEvents v5.1.2 | |
43. pyobjc-framework-FinderSync v5.1.2 | |
44. pyobjc-framework-GameCenter v5.1.2 | |
45. pyobjc-framework-GameController v5.1.2 | |
46. pyobjc-framework-GameKit v5.1.2 | |
47. pyobjc-framework-IMServicePlugIn v5.1.2 | |
48. pyobjc-framework-GameplayKit v5.1.2 | |
49. pyobjc-framework-IOSurface v5.1.2 | |
50. pyobjc-framework-ImageCaptureCore v5.1.2 | |
51. pyobjc-framework-InputMethodKit v5.1.2 | |
52. pyobjc-framework-InstallerPlugins v5.1.2 | |
53. pyobjc-framework-InstantMessage v5.1.2 | |
54. pyobjc-framework-Intents v5.1.2 | |
55. pyobjc-framework-LatentSemanticMapping v5.1.2 | |
56. pyobjc-framework-LaunchServices v5.1.2 | |
57. pyobjc-framework-LocalAuthentication v5.1.2 | |
58. pyobjc-framework-MapKit v5.1.2 | |
59. pyobjc-framework-MediaAccessibility v5.1.2 | |
60. pyobjc-framework-MediaPlayer v5.1.2 | |
61. pyobjc-framework-MediaToolbox v5.1.2 | |
62. pyobjc-framework-MediaLibrary v5.1.2 | |
63. pyobjc-framework-ModelIO v5.1.2 | |
64. pyobjc-framework-MultipeerConnectivity v5.1.2 | |
65. pyobjc-framework-NaturalLanguage v5.1.2 | |
66. pyobjc-framework-NetFS v5.1.2 | |
67. pyobjc-framework-NetworkExtension v5.1.2 | |
68. pyobjc-framework-Network v5.1.2 | |
69. pyobjc-framework-NotificationCenter v5.1.2 | |
70. pyobjc-framework-OSAKit v5.1.2 | |
71. pyobjc-framework-OpenDirectory v5.1.2 | |
72. pyobjc-framework-Photos v5.1.2 | |
73. pyobjc-framework-PhotosUI v5.1.2 | |
74. pyobjc-framework-PreferencePanes v5.1.2 | |
75. pyobjc-framework-PubSub v5.1.2 | |
76. pyobjc-framework-Quartz v5.1.2 | |
77. pyobjc-framework-QTKit v5.1.2 | |
78. pyobjc-framework-SafariServices v5.1.2 | |
79. pyobjc-framework-SceneKit v5.1.2 | |
80. pyobjc-framework-ScriptingBridge v5.1.2 | |
81. pyobjc-framework-ScreenSaver v5.1.2 | |
82. pyobjc-framework-SearchKit v5.1.2 | |
83. pyobjc-framework-SecurityFoundation v5.1.2 | |
84. pyobjc-framework-Security v5.1.2 | |
85. pyobjc-framework-ServiceManagement v5.1.2 | |
86. pyobjc-framework-SecurityInterface v5.1.2 | |
87. pyobjc-framework-Social v5.1.2 | |
88. pyobjc-framework-SpriteKit v5.1.2 | |
89. pyobjc-framework-StoreKit v5.1.2 | |
90. pyobjc-framework-SyncServices v5.1.2 | |
91. pyobjc-framework-SystemConfiguration v5.1.2 | |
92. pyobjc-framework-UserNotifications v5.1.2 | |
93. pyobjc-framework-VideoSubscriberAccount v5.1.2 | |
94. pyobjc-framework-VideoToolbox v5.1.2 | |
95. pyobjc-framework-Vision v5.1.2 | |
96. pyobjc-framework-WebKit v5.1.2 | |
97. pyobjc-framework-iTunesLibrary v5.1.2 | |
98. pyobjc-framework-libdispatch v5.1.2 | |
Successfully Installed 98 package(s) in 23s. | |
Complete! |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Collecting pyobjc | |
Downloading https://files.pythonhosted.org/packages/42/fc/e78407e8ed0417ec57f093b919325d2c8ae0bab238fbf2804ff01cc93002/pyobjc-5.1.2-py3-none-any.whl | |
Collecting pyobjc-framework-IOSurface==5.1.2; platform_release >= "10.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/12/03/a3c4093bd1ba1c544140ce383664a3732a2e65b7853a8ebd3480011d8833/pyobjc_framework_IOSurface-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-Network==5.1.2; platform_release >= "18.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/69/86/c52baab82100501d835855f8d659a15e3708c7bc5a3fda8e8ceac64886c4/pyobjc_framework_Network-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-libdispatch==5.1.2; platform_release >= "12.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/80/40/23d7ea317801c0cc9e194c9e83775ddf67b97cf7861b97b13f69f120ed54/pyobjc_framework_libdispatch-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-AVFoundation==5.1.2; platform_release >= "11.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/7f/60/6555515e80f23d0cbce046e9209179202df9b713884155499a192d35080e/pyobjc_framework_AVFoundation-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-Automator==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/b8/39/88753d20804618b44aaf875afe4847fcfe4a38d6c50dd0b758550afc30c0/pyobjc_framework_Automator-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-DiscRecordingUI==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/fc/a2/6cd38bd5e1b3ff55d091f49ed108ef741101cac8b867a4812ef4741df29a/pyobjc_framework_DiscRecordingUI-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-ModelIO==5.1.2; platform_release >= "15.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/20/1d/a96574d95701551c0260365816c3c66f1d41953baee0ab41904f628c4926/pyobjc_framework_ModelIO-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-SystemConfiguration==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/69/44/7a5057bcef76bcd49bc8b42a5ea8c0ab1e681acec9b361cb45e9edc6e149/pyobjc_framework_SystemConfiguration-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-WebKit==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/56/1c/b4afa7e4f2591ff1935884b4ae3374ce3da84b010784f36bc1ba80b139db/pyobjc_framework_WebKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-CFNetwork==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/7d/3e/186f5899174c1017d59b422baae90abcde9bc9b0a79b3698501d8ecf8c87/pyobjc_framework_CFNetwork-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-CoreWLAN==5.1.2; platform_release >= "10.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/4b/ef/dec3b06c6c1c18c71a1b80ab8baf0599206a6d3596433c02befca340b913/pyobjc_framework_CoreWLAN-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-InstallerPlugins==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/7f/db/72712ab86155534ff5292c9346954f65368d6aac9dbb7f4dc416d004396e/pyobjc_framework_InstallerPlugins-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-NaturalLanguage==5.1.2; platform_release >= "18.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/e5/10/f5a44ad80bd7d5a8c7de177d78866f7e58040beee910570cc749263dc039/pyobjc_framework_NaturalLanguage-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-CoreLocation==5.1.2; platform_release >= "10.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/aa/63/bdfeb3f8e2d80409f3cc27fdabd276e93902ac9b39d68556ad248f65fb74/pyobjc_framework_CoreLocation-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-AppleScriptObjC==5.1.2; platform_release >= "10.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/b0/fd/fcf7ae47e433d8357fcab4cc2f98c22d66e0889ee6ff740cf774a3af19d9/pyobjc_framework_AppleScriptObjC-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-ServiceManagement==5.1.2; platform_release >= "10.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/2e/e1/32d76cbb278872d2ad7a45b6c76e7f32058a22a3c86da333451bc0fbe1ef/pyobjc_framework_ServiceManagement-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-Social==5.1.2; platform_release >= "12.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/b7/93/caa94b7d52b9d4a94d1fb0f8a3535f56e888b0f5e87895568af07aa5a4f5/pyobjc_framework_Social-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-InputMethodKit==5.1.2; platform_release >= "9.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/03/52/0278b0fba0b822215db8db2affd7bdf5dc3ee3731b777cc524897ffa9d47/pyobjc_framework_InputMethodKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-StoreKit==5.1.2; platform_release >= "11.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/fe/d6/3565be4f43eddacab894f48a5a77afd0a6c51d9b0357b1d903dd135b1230/pyobjc_framework_StoreKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-ImageCaptureCore==5.1.2; platform_release >= "10.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/41/44/23165987febdb19e0e24d780a47f29b5654da9dc9da73d3e2cb3d09c79dc/pyobjc_framework_ImageCaptureCore-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-EventKit==5.1.2; platform_release >= "12.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/e7/54/b2310725b4fba6b938d90a60e56eadf621683b70d754a6b4582473285495/pyobjc_framework_EventKit-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-CoreBluetooth==5.1.2; platform_release >= "14.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/97/7c/1ee75c2e088fefb9bbc1709403775116ddab873e829ac65582ec836bc46a/pyobjc_framework_CoreBluetooth-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-Contacts==5.1.2; platform_release >= "15.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/2c/ac/ece3fa3b7be15a57fd66321ffbb35a66e79f490197200b22b9d2ee33c34d/pyobjc_framework_Contacts-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-BusinessChat==5.1.2; platform_release >= "18.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/3d/78/f442f9c8100ab307909b6c92fb4b952d062b910eadf178fbd407ca248b53/pyobjc_framework_BusinessChat-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-SecurityInterface==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/0b/d4/fd47387eb99fe9c5f06e8524a44a1b9f9a61790f9bf109d0ec3c871a35c0/pyobjc_framework_SecurityInterface-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-LocalAuthentication==5.1.2; platform_release >= "14.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/39/00/169a77c8b1b93f49fb375c68a2ea0beeaa0dc347e9ada76e01a04e60c586/pyobjc_framework_LocalAuthentication-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-NetFS==5.1.2; platform_release >= "10.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/e8/92/b9ce84f9820066edc5cb0adba68b13969c3fdb7b9a6a488783d0f691c19a/pyobjc_framework_NetFS-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-PreferencePanes==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/7f/82/f954d80e831270211f706d8a7f1d64036c8b98550f11364606ad915215f8/pyobjc_framework_PreferencePanes-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-MediaPlayer==5.1.2; platform_release >= "16.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/99/b6/e156c4e1c6d20b06aad488016029784893272b19c210f57c749d9c3cb09f/pyobjc_framework_MediaPlayer-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-Quartz==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/f4/50/75d42578d2cf61824f7090f44b513c003c78eb62c2884ad5252fc12bac29/pyobjc_framework_Quartz-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl (100kB) | |
100% |████████████████████████████████| 102kB 4.4MB/s | |
Collecting pyobjc-framework-ScreenSaver==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/58/5e/19d1bd17e7536a2b850be14024e86b664589827c436d7eada627b4729b62/pyobjc_framework_ScreenSaver-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-NetworkExtension==5.1.2; platform_release >= "15.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/34/1d/233683820975e5eb1ae02746f3b7a040461f1e23d1185d02a7b3569cbcd8/pyobjc_framework_NetworkExtension-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-ColorSync==5.1.2; platform_release >= "17.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/22/34/4630f15835edc58bb5f3aec035ca74975a05f19f226739a932ed3c9ec97c/pyobjc_framework_ColorSync-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-PubSub==5.1.2; platform_release >= "9.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/4c/35/3d8f2b20572fe1bb9ad1bcb8083335d093200a7e77b570b52763ac932111/pyobjc_framework_PubSub-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-CoreData==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/eb/1c/5c95136b6a53e9bdffb10e215c0c999c1f336ec88eb97f1923ff2efc0662/pyobjc_framework_CoreData-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-DictionaryServices==5.1.2; platform_release >= "9.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/3c/2b/db3721c2af4f8ec07951e7860af05dcda4ae684c549b066969630bf53de1/pyobjc_framework_DictionaryServices-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-LaunchServices==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/65/a6/4c2804805b8317ad57c8e94be365a70c18b730f6191a5cc6899729ac81e5/pyobjc_framework_LaunchServices-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-MediaLibrary==5.1.2; platform_release >= "13.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/b8/2f/ece88ac12133b9e3d80201b21fffa0dcc6492a09cb06218e7763730b5156/pyobjc_framework_MediaLibrary-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-GameCenter==5.1.2; platform_release >= "12.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/89/88/5015505e6f06b23c9efd9fcde05bebd31625e72f9cd67d61c1f388dd0377/pyobjc_framework_GameCenter-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-SecurityFoundation==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/96/d9/ebe0ca40d2b3986fed9811593ed235b266c318f796d9fd2c7296195d4c3e/pyobjc_framework_SecurityFoundation-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-Collaboration==5.1.2; platform_release >= "9.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/36/a2/612c56ad3e116cae8ac8e087050fb639c07d6afbd2dd6a8a1f3cdef0cbb5/pyobjc_framework_Collaboration-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-SpriteKit==5.1.2; platform_release >= "13.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/fc/55/0d17341970c919492a70aef28258cec8ff787de443ee6b1e998914b38714/pyobjc_framework_SpriteKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-Cocoa==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/34/f3/590e0ced5c297b763447b39926f8a1884865704302dd55d2174a37b3bb0a/pyobjc_framework_Cocoa-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl (235kB) | |
100% |████████████████████████████████| 245kB 4.4MB/s | |
Collecting pyobjc-framework-MediaToolbox==5.1.2; platform_release >= "13.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/6c/4b/c3da6eec3b23f5988d85ce3600fb5989b879afb5b214eb5949466614e302/pyobjc_framework_MediaToolbox-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-AppleScriptKit==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/3d/ba/c560bad60f4112f9dde0a08609297a1b72d82e19fc21e040b0c012dbd25d/pyobjc_framework_AppleScriptKit-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-FinderSync==5.1.2; platform_release >= "14.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/e3/fe/92b7d64811b7c386e5dd82beefdd84e4b62b7fda0d08d41f2dc49ece7759/pyobjc_framework_FinderSync-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-OSAKit==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/7c/6a/aacf57179587387adf81a993ac06feb1c0f34de5ca30f9319dc809ae5ab7/pyobjc_framework_OSAKit-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-AdSupport==5.1.2; platform_release >= "18.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/af/db/90bed58de9499f12564b9cb6997b4501be5b5f44ee4b4bf5820f1fe79709/pyobjc_framework_AdSupport-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-Accounts==5.1.2; platform_release >= "12.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/cf/e3/3ea826c78faa34a3694a86defa9ff8f51a0f297833fab7e3e68f61eb0c68/pyobjc_framework_Accounts-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-AddressBook==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/96/35/2c3f7b7a7e4229de4e70964d4660692a07c518d3b2d3640e897059c542ce/pyobjc_framework_AddressBook-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-DiskArbitration==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/1f/73/5c2ae1ecfcefbecf2954aec8c997f4464585486eec4922a856e4e4d9f25e/pyobjc_framework_DiskArbitration-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-ApplicationServices==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/e9/13/4724e6af09694e57ea80e1995520b7df9d384e6b5230fba82c09afaab3f4/pyobjc_framework_ApplicationServices-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-CoreMedia==5.1.2; platform_release >= "11.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/68/3d/80c673e936481a8abfb099dc91f60e9b43a641c60b232c88edb03827ccb4/pyobjc_framework_CoreMedia-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-MultipeerConnectivity==5.1.2; platform_release >= "14.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/8d/af/adea6a18e290bddefb40a9ee82f933a628e7d218c2db0e82580e88906cd9/pyobjc_framework_MultipeerConnectivity-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-AVKit==5.1.2; platform_release >= "13.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/60/2a/c7f1735eff7742f0e1b2864b741c65918ebba89eccbd143c068a6838502e/pyobjc_framework_AVKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-NotificationCenter==5.1.2; platform_release >= "14.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/ef/6d/47929c187a8640d4a84e05ea4225709286bdd21c342585980c5223f22a7d/pyobjc_framework_NotificationCenter-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-VideoToolbox==5.1.2; platform_release >= "12.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/14/a2/a318e67e649510ed9c7114626a77ae2a3f0a85dde51981076c799b320bd4/pyobjc_framework_VideoToolbox-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-MediaAccessibility==5.1.2; platform_release >= "13.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/83/57/78ae56afef5b2e5ec6af900618da9f499ae7ab1a89a0b41985f5954c4fe5/pyobjc_framework_MediaAccessibility-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-ScriptingBridge==5.1.2; platform_release >= "9.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/35/54/a358aedbd9514474cfdb642b94d0829e84def922506fb1d6898ff9bb175b/pyobjc_framework_ScriptingBridge-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-CoreText==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/f0/7f/1cf4ed64d69842837d7f7c1597b3b5f3e932d795e29a4d5e466ce01ae49a/pyobjc_framework_CoreText-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-PhotosUI==5.1.2; platform_release >= "15.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/48/4a/6866fe9ad8ac2837a0068b89baed8a0ba36a0941eef9a3e16b82295722e6/pyobjc_framework_PhotosUI-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-QTKit==5.1.2; platform_release >= "9.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/bb/37/13ab8cd5b04b4ffa818bdc86dceefc012d18bcc83362b6563c9b6c9091aa/pyobjc_framework_QTKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-OpenDirectory==5.1.2; platform_release >= "10.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/27/e7/0ced99fec0fff85d5c1e69248072c6a41a0cecfd49b0852b659c29f59300/pyobjc_framework_OpenDirectory-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-ExternalAccessory==5.1.2; platform_release >= "17.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/2c/9a/f86427e6d3485ac668322ea050da5355d2ef14a95aa50c96f74bffffef86/pyobjc_framework_ExternalAccessory-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-CoreMediaIO==5.1.2; platform_release >= "11.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/ce/d3/d38b8ed3acb74ced0a21f80532cd509a4325eae626a39e888bcd6e72ef11/pyobjc_framework_CoreMediaIO-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-SafariServices==5.1.2; platform_release >= "15.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/1e/91/2e37f84bc6df0d670fc5282acc43be9ef708a6b89b664d80ac21f056b4e2/pyobjc_framework_SafariServices-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-DVDPlayback==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/47/78/2a0ed9aa5fd28f6c6f32b9eec1b74e3f3f19e277bb4f0c9d5e389ab72f8b/pyobjc_framework_DVDPlayback-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-Intents==5.1.2; platform_release >= "16.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/05/0d/f662c5de2ab28f03d16552cf6e716ca4444fdb3a075aa1d9240e6ff714e1/pyobjc_framework_Intents-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-ExceptionHandling==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/6f/12/bb3cce8b5e17d3dbbfc1504854fb669bac5c2e9faad55940b2a66661a269/pyobjc_framework_ExceptionHandling-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-CoreServices==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/41/6c/e030d8d099cbd36c6d47d25c3e095cbbe63c8685e461713413f563a86a5b/pyobjc_framework_CoreServices-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-MapKit==5.1.2; platform_release >= "13.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/a0/09/a5545338919b1970b87171608155dfde86e5d7aee5f1ef0577ec5aa689ea/pyobjc_framework_MapKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-ContactsUI==5.1.2; platform_release >= "15.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/da/a8/ef0d026975835e02408226521a81b15b48254f1373aa893ff5d83ec998dd/pyobjc_framework_ContactsUI-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-UserNotifications==5.1.2; platform_release >= "18.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/38/c4/33947d9147f26773b2cd2b5b7aa4b8c4c31ea3c9d2f4baa5c531cad84778/pyobjc_framework_UserNotifications-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-InstantMessage==5.1.2; platform_release >= "9.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/46/f6/88f932e3d6247078b145116e686eac54a866270ba849aedca95f4f393733/pyobjc_framework_InstantMessage-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-Photos==5.1.2; platform_release >= "15.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/d4/86/b7a461ceb044d491faecc1ba9cdd6f3d403d5b1be9a20174ad36101d0181/pyobjc_framework_Photos-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-LatentSemanticMapping==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/29/ba/c081df0b14bae399c6e43949166eb39fcd8e7ffe7ae01794579e94ec720b/pyobjc_framework_LatentSemanticMapping-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-CoreAudio==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/e7/85/3557f5ce2d6547d106335afe7324351dec646563bc50110764a9e28d9e87/pyobjc_framework_CoreAudio-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-GameplayKit==5.1.2; platform_release >= "15.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/cc/ec/170cbd9cc98763edebafde5aa58fb3402f9ef151bd6f683fa50066865b09/pyobjc_framework_GameplayKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-SceneKit==5.1.2; platform_release >= "11.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/cc/1d/e1245c59936dffda2ddc8193910d5cff94a0f89fb644546dff3012c9dc8b/pyobjc_framework_SceneKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-FSEvents==5.1.2; platform_release >= "9.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/cc/19/8d523f79e544ebaa1fdd5d50c6facd1240ceb73d8657282e5af2301619e7/pyobjc_framework_FSEvents-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-VideoSubscriberAccount==5.1.2; platform_release >= "18.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/fc/64/1762f3a1b1051208aef29869fdfe49243c4c170fa1ca6026bc2444e6ce3d/pyobjc_framework_VideoSubscriberAccount-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-IMServicePlugIn==5.1.2; platform_release >= "11.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/9b/21/3f4465502df06ad1ce97d8d2f1931ce4dee47cb155caa12802c83ebb3f63/pyobjc_framework_IMServicePlugIn-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-CoreML==5.1.2; platform_release >= "17.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/e9/90/dd6ab380b3d95018bb44b0908ffb15a4b9a63e17133967bc6a23da64212b/pyobjc_framework_CoreML-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-CalendarStore==5.1.2; platform_release >= "9.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/6c/0e/78be648de438ed172392e7a4dbc89807389a043cbebbe0bebf8b2bf634f7/pyobjc_framework_CalendarStore-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-SyncServices==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/c6/58/6d94d7bea39255d203971b14f66ff48becc29f2afd239ccab471f76a965d/pyobjc_framework_SyncServices-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-DiscRecording==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/eb/49/22e344fbc50f218634ec930fcf80e8799d7f497f0f459434d2b0b63dcfff/pyobjc_framework_DiscRecording-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-iTunesLibrary==5.1.2; platform_release >= "10.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/00/69/e86b70599b4e2606f92647e990f36273d6883011ba817da53e370ec76beb/pyobjc_framework_iTunesLibrary-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-Security==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/51/67/f2317f0d02a651eb724a7faca8a3cd8cf356a89b6bbea26224b96f47e7cd/pyobjc_framework_Security-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-CryptoTokenKit==5.1.2; platform_release >= "14.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/ae/82/c058208d3fc347faa2b6243bfed6799c7d40ef65431bb0ad65b8c45eedaa/pyobjc_framework_CryptoTokenKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-CloudKit==5.1.2; platform_release >= "14.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/7e/ba/f6c1f2cf9b1c3b13d9768637e208e237b2d95ab945679daba5324262a74c/pyobjc_framework_CloudKit-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-framework-SearchKit==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/04/d2/93a504d3da4ee217a70b81778845746946ee1cd4f92d921861fd62b40084/pyobjc_framework_SearchKit-5.1.2-py2.py3-none-any.whl | |
Collecting pyobjc-core==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/e7/9e/940cf7128603130d032ff9002406af2d8359b05075996f9be8f88e42b759/pyobjc_core-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl (294kB) | |
100% |████████████████████████████████| 296kB 3.5MB/s | |
Collecting pyobjc-framework-CoreSpotlight==5.1.2; platform_release >= "17.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/c2/84/7fae71c805f57362ba25fc2bd56616f59a1c108eff892dd8b432b27a5b63/pyobjc_framework_CoreSpotlight-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-CoreAudioKit==5.1.2 (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/be/92/02b230ed3298fccf46c0108e7881150e55785c1f5c890596160097210a52/pyobjc_framework_CoreAudioKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-GameKit==5.1.2; platform_release >= "12.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/e4/70/327ccc07c401e12eefd1d14235606a55da43c7e12b20346a0b23ba6d026a/pyobjc_framework_GameKit-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-Vision==5.1.2; platform_release >= "17.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/5c/9f/5e128f4e028bb7743de177d40c0ea54955ab12dda7893dee6a4b8393b5f5/pyobjc_framework_Vision-5.1.2-cp37-cp37m-macosx_10_9_x86_64.whl | |
Collecting pyobjc-framework-GameController==5.1.2; platform_release >= "13.0" (from pyobjc) | |
Downloading https://files.pythonhosted.org/packages/71/20/09085a29b2b969ba7da08811eaa37d74401d4e45edd31140bc7de32eb22a/pyobjc_framework_GameController-5.1.2-py2.py3-none-any.whl | |
Installing collected packages: pyobjc-core, pyobjc-framework-Cocoa, pyobjc-framework-IOSurface, pyobjc-framework-Network, pyobjc-framework-libdispatch, pyobjc-framework-Quartz, pyobjc-framework-AVFoundation, pyobjc-framework-Automator, pyobjc-framework-DiscRecording, pyobjc-framework-DiscRecordingUI, pyobjc-framework-ModelIO, pyobjc-framework-SystemConfiguration, pyobjc-framework-WebKit, pyobjc-framework-CFNetwork, pyobjc-framework-CoreWLAN, pyobjc-framework-InstallerPlugins, pyobjc-framework-NaturalLanguage, pyobjc-framework-CoreLocation, pyobjc-framework-AppleScriptObjC, pyobjc-framework-ServiceManagement, pyobjc-framework-Social, pyobjc-framework-InputMethodKit, pyobjc-framework-StoreKit, pyobjc-framework-ImageCaptureCore, pyobjc-framework-EventKit, pyobjc-framework-CoreBluetooth, pyobjc-framework-Contacts, pyobjc-framework-BusinessChat, pyobjc-framework-Security, pyobjc-framework-SecurityInterface, pyobjc-framework-LocalAuthentication, pyobjc-framework-NetFS, pyobjc-framework-PreferencePanes, pyobjc-framework-MediaPlayer, pyobjc-framework-ScreenSaver, pyobjc-framework-NetworkExtension, pyobjc-framework-ColorSync, pyobjc-framework-PubSub, pyobjc-framework-CoreData, pyobjc-framework-FSEvents, pyobjc-framework-CoreServices, pyobjc-framework-DictionaryServices, pyobjc-framework-LaunchServices, pyobjc-framework-MediaLibrary, pyobjc-framework-GameCenter, pyobjc-framework-SecurityFoundation, pyobjc-framework-Collaboration, pyobjc-framework-SpriteKit, pyobjc-framework-MediaToolbox, pyobjc-framework-AppleScriptKit, pyobjc-framework-FinderSync, pyobjc-framework-OSAKit, pyobjc-framework-AdSupport, pyobjc-framework-Accounts, pyobjc-framework-AddressBook, pyobjc-framework-DiskArbitration, pyobjc-framework-ApplicationServices, pyobjc-framework-CoreMedia, pyobjc-framework-MultipeerConnectivity, pyobjc-framework-AVKit, pyobjc-framework-NotificationCenter, pyobjc-framework-VideoToolbox, pyobjc-framework-MediaAccessibility, pyobjc-framework-ScriptingBridge, pyobjc-framework-CoreText, pyobjc-framework-PhotosUI, pyobjc-framework-QTKit, pyobjc-framework-OpenDirectory, pyobjc-framework-ExternalAccessory, pyobjc-framework-CoreMediaIO, pyobjc-framework-SafariServices, pyobjc-framework-DVDPlayback, pyobjc-framework-Intents, pyobjc-framework-ExceptionHandling, pyobjc-framework-MapKit, pyobjc-framework-ContactsUI, pyobjc-framework-UserNotifications, pyobjc-framework-InstantMessage, pyobjc-framework-Photos, pyobjc-framework-LatentSemanticMapping, pyobjc-framework-CoreAudio, pyobjc-framework-GameplayKit, pyobjc-framework-SceneKit, pyobjc-framework-VideoSubscriberAccount, pyobjc-framework-IMServicePlugIn, pyobjc-framework-CoreML, pyobjc-framework-CalendarStore, pyobjc-framework-SyncServices, pyobjc-framework-iTunesLibrary, pyobjc-framework-CryptoTokenKit, pyobjc-framework-CloudKit, pyobjc-framework-SearchKit, pyobjc-framework-CoreSpotlight, pyobjc-framework-CoreAudioKit, pyobjc-framework-GameKit, pyobjc-framework-Vision, pyobjc-framework-GameController, pyobjc | |
Successfully installed pyobjc-5.1.2 pyobjc-core-5.1.2 pyobjc-framework-AVFoundation-5.1.2 pyobjc-framework-AVKit-5.1.2 pyobjc-framework-Accounts-5.1.2 pyobjc-framework-AdSupport-5.1.2 pyobjc-framework-AddressBook-5.1.2 pyobjc-framework-AppleScriptKit-5.1.2 pyobjc-framework-AppleScriptObjC-5.1.2 pyobjc-framework-ApplicationServices-5.1.2 pyobjc-framework-Automator-5.1.2 pyobjc-framework-BusinessChat-5.1.2 pyobjc-framework-CFNetwork-5.1.2 pyobjc-framework-CalendarStore-5.1.2 pyobjc-framework-CloudKit-5.1.2 pyobjc-framework-Cocoa-5.1.2 pyobjc-framework-Collaboration-5.1.2 pyobjc-framework-ColorSync-5.1.2 pyobjc-framework-Contacts-5.1.2 pyobjc-framework-ContactsUI-5.1.2 pyobjc-framework-CoreAudio-5.1.2 pyobjc-framework-CoreAudioKit-5.1.2 pyobjc-framework-CoreBluetooth-5.1.2 pyobjc-framework-CoreData-5.1.2 pyobjc-framework-CoreLocation-5.1.2 pyobjc-framework-CoreML-5.1.2 pyobjc-framework-CoreMedia-5.1.2 pyobjc-framework-CoreMediaIO-5.1.2 pyobjc-framework-CoreServices-5.1.2 pyobjc-framework-CoreSpotlight-5.1.2 pyobjc-framework-CoreText-5.1.2 pyobjc-framework-CoreWLAN-5.1.2 pyobjc-framework-CryptoTokenKit-5.1.2 pyobjc-framework-DVDPlayback-5.1.2 pyobjc-framework-DictionaryServices-5.1.2 pyobjc-framework-DiscRecording-5.1.2 pyobjc-framework-DiscRecordingUI-5.1.2 pyobjc-framework-DiskArbitration-5.1.2 pyobjc-framework-EventKit-5.1.2 pyobjc-framework-ExceptionHandling-5.1.2 pyobjc-framework-ExternalAccessory-5.1.2 pyobjc-framework-FSEvents-5.1.2 pyobjc-framework-FinderSync-5.1.2 pyobjc-framework-GameCenter-5.1.2 pyobjc-framework-GameController-5.1.2 pyobjc-framework-GameKit-5.1.2 pyobjc-framework-GameplayKit-5.1.2 pyobjc-framework-IMServicePlugIn-5.1.2 pyobjc-framework-IOSurface-5.1.2 pyobjc-framework-ImageCaptureCore-5.1.2 pyobjc-framework-InputMethodKit-5.1.2 pyobjc-framework-InstallerPlugins-5.1.2 pyobjc-framework-InstantMessage-5.1.2 pyobjc-framework-Intents-5.1.2 pyobjc-framework-LatentSemanticMapping-5.1.2 pyobjc-framework-LaunchServices-5.1.2 pyobjc-framework-LocalAuthentication-5.1.2 pyobjc-framework-MapKit-5.1.2 pyobjc-framework-MediaAccessibility-5.1.2 pyobjc-framework-MediaLibrary-5.1.2 pyobjc-framework-MediaPlayer-5.1.2 pyobjc-framework-MediaToolbox-5.1.2 pyobjc-framework-ModelIO-5.1.2 pyobjc-framework-MultipeerConnectivity-5.1.2 pyobjc-framework-NaturalLanguage-5.1.2 pyobjc-framework-NetFS-5.1.2 pyobjc-framework-Network-5.1.2 pyobjc-framework-NetworkExtension-5.1.2 pyobjc-framework-NotificationCenter-5.1.2 pyobjc-framework-OSAKit-5.1.2 pyobjc-framework-OpenDirectory-5.1.2 pyobjc-framework-Photos-5.1.2 pyobjc-framework-PhotosUI-5.1.2 pyobjc-framework-PreferencePanes-5.1.2 pyobjc-framework-PubSub-5.1.2 pyobjc-framework-QTKit-5.1.2 pyobjc-framework-Quartz-5.1.2 pyobjc-framework-SafariServices-5.1.2 pyobjc-framework-SceneKit-5.1.2 pyobjc-framework-ScreenSaver-5.1.2 pyobjc-framework-ScriptingBridge-5.1.2 pyobjc-framework-SearchKit-5.1.2 pyobjc-framework-Security-5.1.2 pyobjc-framework-SecurityFoundation-5.1.2 pyobjc-framework-SecurityInterface-5.1.2 pyobjc-framework-ServiceManagement-5.1.2 pyobjc-framework-Social-5.1.2 pyobjc-framework-SpriteKit-5.1.2 pyobjc-framework-StoreKit-5.1.2 pyobjc-framework-SyncServices-5.1.2 pyobjc-framework-SystemConfiguration-5.1.2 pyobjc-framework-UserNotifications-5.1.2 pyobjc-framework-VideoSubscriberAccount-5.1.2 pyobjc-framework-VideoToolbox-5.1.2 pyobjc-framework-Vision-5.1.2 pyobjc-framework-WebKit-5.1.2 pyobjc-framework-iTunesLibrary-5.1.2 pyobjc-framework-libdispatch-5.1.2 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment