AttributeError: 'Qwen2TokenizerFast' object has no attribute 'tokenizer'. Did you mean: '_tokenizer'?

Using the latest versions of mlx and mlx_vlm, on
import mlx.core as mx
from mlx_vlm import load, generate
from mlx_vlm.prompt_utils import apply_chat_template
from mlx_vlm.utils import load_config

from PIL import Image

import os
from pathlib import Path

# model_path = "mlx-community/llava-1.5-7b-4bit"
# model_path = "mlx-community/llava-v1.6-mistral-7b-8bit"
# model_path = "mlx-community/pixtral-12b-8bit" # To the point
# model_path = "Qwen/Qwen2-VL-7B-Instruct"  # libc++abi: terminating due to uncaught exception of type std::runtime_error: Attempting to allocate<PHONE_NUMBER>24 bytes which is greater than the maximum allowed buffer size of<PHONE_NUMBER>8 bytes.###
# model_path = "mlx-community/llava-v1.6-34b-8bit" # Slower but more precise
# model_path = "mlx-community/Phi-3.5-vision-instruct-bf16" # OK, but doesn't provide keywords
# model_path = "mistral-community/pixtral-12b"
# model_path = "meta-llama/Llama-3.2-11B-Vision-Instruct"  # needs about 95Gb, but is slow
# model_path ="mlx-community/Qwen2-VL-72B-Instruct-8bit" # libc++abi: terminating due to uncaught exception of type std::runtime_error: Attempting to allocate<PHONE_NUMBER>52 bytes which is greater than the maximum allowed buffer size of<PHONE_NUMBER>8 bytes.
model_path ="mlx-community/dolphin-vision-72b-4bit"

print("Model: ", model_path)

# Load the model
model, processor = load(model_path)
config = load_config(model_path)

prompt = "Provide a factual caption, description and comma-separated keywords or tags for this image so that it can be searched for easily"

picpath = "/Users/xxx/Pictures/Processed"
pics = sorted(Path(picpath).iterdir(), key=os.path.getmtime, reverse=True)
pic = str(pics[0])
print("Image: ", pic)

# Apply chat template
formatted_prompt = apply_chat_template(processor, config, prompt, num_images=1)

# Generate output
output = generate(model, processor, pic, formatted_prompt, max_tokens=500, verbose=True)
print(output)

I get:
>  python mytest.py
(mlx) ~/Documents/AI/mlx/scripts/vlm % python mytest.py
Model:  mlx-community/dolphin-vision-72b-4bit
Fetching 19 files: 100%|█████████████████████████████████████████████████████████████| 19/19 [00:00<00:00, 23570.48it/s]
The repository for /Users/xxx/.cache/huggingface/hub/models--mlx-community--dolphin-vision-72b-4bit/snapshots/82156979ae25603e5d1bbec346559fe27d279f22 contains custom code which must be executed to correctly load the model. You can inspect the repository content at https://hf.co//Users/xxx/.cache/huggingface/hub/models--mlx-community--dolphin-vision-72b-4bit/snapshots/82156979ae25603e5d1bbec346559fe27d279f22.
You can avoid this prompt in future by passing the argument `trust_remote_code=True`.

Do you wish to run the custom code? [y/N] y
Fetching 19 files: 100%|█████████████████████████████████████████████████████████████| 19/19 [00:00<00:00, 13077.09it/s]
Image:  /Users/xxx/Pictures/Processed/20241123-231118_DSC02850_DxO.jpg
==========
Image: /Users/xxx/Pictures/Processed/20241123-231118_DSC02850_DxO.jpg

Prompt: <|im_start|>system
Answer the questions.<|im_end|><|im_start|>user
<image>
Provide a factual caption, description and comma-separated keywords or tags for this image so that it can be searched for easily<|im_end|><|im_start|>assistant

Traceback (most recent call last):
  File "/Users/xxx/Documents/AI/mlx/scripts/vlm/mytest.py", line 39, in <module>
    output = generate(model, processor, pic, formatted_prompt, max_tokens=500, verbose=True)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniconda/base/envs/mlx/lib/python3.12/site-packages/mlx_vlm/utils.py", line 1181, in generate
    prompt_tokens = mx.array(processor.tokenizer.encode(prompt))
                             ^^^^^^^^^^^^^^^^^^^
AttributeError: 'Qwen2TokenizerFast' object has no attribute 'tokenizer'. Did you mean: '_tokenizer'?

Try updating your transformers to the latest as well

yes, I think that I have all the latest via a pip install -U -r requirements.txt (transformers       4.46.3)
The full list is
Package            Version
------------------ ----------------------------
accelerate         1.1.1
aiofiles           23.2.1
aiohappyeyeballs   2.4.3
aiohttp            3.11.2
aiosignal          1.3.1
annotated-types    0.7.0
anyio              4.6.2.post1
attrs              24.2.0
certifi            2024.8.30
charset-normalizer 3.4.0
click              8.1.7
cmake              3.31.1
datasets           3.1.0
dill               0.3.8
fastapi            0.115.5
ffmpy              0.4.0
filelock           3.16.1
frozenlist         1.5.0
fsspec             2024.9.0
gradio             5.7.1
gradio_client      1.5.0
h11                0.14.0
hf_transfer        0.1.8
httpcore           1.0.7
httpx              0.27.2
huggingface-hub    0.26.2
idna               3.10
inquirerpy         0.3.4
Jinja2             3.1.4
llvmlite           0.43.0
markdown-it-py     3.0.0
MarkupSafe         2.1.5
mdurl              0.1.2
mlx                0.21.0.dev20241128+974bb54ab
mlx-lm             0.20.1
mlx-vlm            0.1.3
mlx-whisper        0.4.1
more-itertools     10.5.0
mpmath             1.3.0
multidict          6.1.0
multiprocess       0.70.16
nanobind           2.2.0
networkx           3.4.2
numba              0.60.0
numpy              1.26.4
orjson             3.10.11
packaging          24.2
pandas             2.2.3
pfzy               0.3.4
pillow             11.0.0
pip                24.3.1
prompt_toolkit     3.0.48
propcache          0.2.0
protobuf           5.28.3
psutil             6.1.0
pyarrow            18.0.0
pydantic           2.9.2
pydantic_core      2.23.4
pydub              0.25.1
Pygments           2.18.0
python-dateutil    2.9.0.post0
python-multipart   0.0.12
pytz               2024.2
PyYAML             6.0.2
regex              2024.11.6
requests           2.32.3
rich               13.9.4
ruff               0.7.4
safehttpx          0.1.1
safetensors        0.4.5
scipy              1.13.1
semantic-version   2.10.0
sentencepiece      0.2.0
setuptools         75.6.0
shellingham        1.5.4
six                1.16.0
sniffio            1.3.1
starlette          0.41.2
sympy              1.13.1
tiktoken           0.8.0
tokenizers         0.20.3
tomlkit            0.12.0
torch              2.5.1
torchaudio         2.5.1
torchvision        0.20.1
tqdm               4.67.1
tqdn               0.2.1
transformers       4.46.3
typer              0.13.0
typing_extensions  4.12.2
tzdata             2024.2
urllib3            2.2.3
uvicorn            0.32.0
wcwidth            0.2.13
websockets         12.0
wheel              0.44.0
xxhash             3.5.0
yarl               1.17.1

I see,
Dolphin like NanoLLaVA use image_processor :)
Here is an example:
https://github.com/Blaizzy/mlx-vlm/blob/595c1f0676066fe348b14b2fc8edfdb7607f812d/mlx_vlm/generate.py#L71

I will probably simplify this on a future release by adding it as a attribute in the processor at load time 👌🏽
So we can avoid this type of issues.

Thanks.  I'm not sure how I was supposed to know that, and I'm still not sure what I was supposed to know.  I don't use nanolava when I can use the full fat version.
I was kind of hoping that whatever needed to be done was done under the hood...  particularly in the absence of documentation to the contrary.

My bad!
I promise, I'm working on it :)

I realise that you are busy, but it can take an hour or two to download a different model...
In this case, even when setting processor = load_image_processor(model_path) I get:
    formatted_prompt = apply_chat_template(processor, config, prompt, num_images=1)
                       ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/homebrew/Caskroom/miniconda/base/envs/mlx/lib/python3.12/site-packages/mlx_vlm/prompt_utils.py", line 170, in apply_chat_template
    raise ValueError(
ValueError: Error: processor does not have 'chat_template' or 'tokenizer' attribute.


Fix endpoint count log

Previously this was counting the number of localities not number of
endpoints.
[x] Networking

@howardjohn: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_istio
eb1f4b56093ac7c6088507bc4897ab866437392c
link
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@howardjohn: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_istio
eb1f4b56093ac7c6088507bc4897ab866437392c
link
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest


Issue with changed message and pop up notification

When user change some message and after that another user in chat gives reaction on this message ( that had been changed ) Pop up notification on Apple iOS 17.2.1 shows the state of the previous text(not updated with new modified message) that was before.

Hi @mefistaa! Please report issues with the Instagram app in the app itself. It'll get routed to the right team that way. Thanks!


Question about installed path

the droplex package will install the app in the default path or other paths?

Yes, will install to whatever the default path is for the app. This can also be changed if the app supports it.


Remove ODR violations due to global constexpr objects

As reported in #76, we have benign ODR violations due to global constexpr function objects. The variable templates are OK because they have linkonce_odr semantics by default in the language, but not the non-templates. We can use C++17 inline variables to solve that.

I found candidates to be made inline variables with:
grep -r include -e 'constexpr' | grep '{}' | grep -v 'INLINE_VARIABLE'


Clarifications to use of groups

Following on from #144 which implemented groups, there are a couple of comments at the bottom of that issue which had been raised as a result of defining the conformance requirements for groups but have not yet implemented.  Summary of the comments and responses:

If paths are allowed in all areas of the convention it would be good to have a general statement that where "variable" or "dimension" is used this can either be a single variable name or a path to a variable. Perhaps we could also add path to the definitions in chapter 1? So that we don't have to define the term specifically in the conformance document.

Although the CF standard doesn't standardize group names, which I understand is due to the abundance of NASA datasets that wouldn't meet this, I wonder whether it might be good to recommend that group names follow the same naming conventions as variables, dimensions and attributes (ie. begin with a letter and be composed of letters, digits and underscores). This way we would be encouraging human readable names but still allowing them not to be if required by some organizations.

Both of these were agreed in principle.
There was confirmation given that point 2 is indeed what NASA Dataset Interoperability Recommendations for Earth Science: Part 2 recommends.

I'll create a PR for review.

Hi @RosalynHatcher sorry about the long turnaround here - I'd seen this issue before and had noted down that I wanted to review the PR when it comes but haven't seen it yet.
I agree with these ideas still and would be willing to review and most likely endorse the PR :)

Hi @erget sorry about the delay on this I got diverted onto something else.  I'm going to try and have a CF day tomorrow and will pick this up then.

@dblodgett-usgs wrote (in pull request https://github.com/cf-convention/cf-conventions/issues/203)

With no dissent on this or #203 in a while, ok if I go ahead and merge? If no response by January 6th, I will.
Yes, please merge it. According to the rules, it's already well-qualified (in terms of time and support expressed)! Thanks for noticing.


KBC-2761 migrate Events to JSON

Jira: KBC-2761
Before asking for review make sure that:
Checklist

[x] New client method(s) has tests
[x] Apiary file is updated

Release

[x] I gave the PR a proper label:

major (BC break)
minor (new feature)
patch (backwards compatible fix)
no release (just test changes)

ℹ Rebase

Tag prosel 🟢


Node.js bindings: Add bindings for GPIO enum-string translation functions

This adds bindings for GPIO enum-string translation functions and use them in the highlevel JS bindings.
Signed-off-by: Sudarsana Nagineni<EMAIL_ADDRESS>

@cabelitos @edersondisouza Could you please have a look when you have time?

+1 :+1:


Html5 target exception while playing sound after 30 seconds of silence

To reproduce:
play sound, wait greater than 30 secs (don't play any others sounds), play sound again
Latest howler.js from github (v2.1.0) works fine.

I've updated Lime's version of Howler.js to 2.1.0 :grin:
https://github.com/openfl/lime/commit/1ee9f02646d3523fc14244baff81276c52dd437b


Custom scan profiles fail due to read-only directory mount

Issue
When using a custom profile, the directory structure that is stored as a ConfigMap gets mounted into the scan pod. The scan attempts to use that same directory (the CONFIG_DIR in the run_sonobuoy_plugin.sh script). Since that directory is mounted, kubebench doesn't have write access to store the temp files it needs, which causes failed scans.
Suggested Fix
Add something similar to the following to handle when the CONFIG_DIR is set to something non-standard and utilize a temporary directory:
# Handle read-only issue in custom benchmark mounts
if [[ "$CONFIG_DIR" != "/etc/kube-bench/cfg" ]]; then
  cp -r "$CONFIG_DIR" /tmp/cfg
  CONFIG_DIR=/tmp/cfg
fi

@atoy3731 I think that the cis-operator sets up a specific dir for custom config as you can see here https://github.com/rancher/cis-operator/blob/master/pkg/securityscan/job/job.go#L250-L256 it defaults the custom config to:
const cisoperatorapiv1.CustomBenchmarkBaseDir untyped string = "/etc/kbs/custombenchmark/cfg"

@atoy3731 This is where the CustomBenchmarkBaseDir is defined and mounted with the configmap contents:
const cisoperatorapiv1.CustomBenchmarkBaseDir untyped string = "/etc/kbs/custombenchmark/cfg"
https://github.com/rancher/cis-operator/blob/master/pkg/securityscan/job/job.go#L262-L265
As seen in line https://github.com/rancher/cis-operator/blob/master/pkg/securityscan/job/job.go#L263 the ENV variable CONFIG_DIR is set to the above CustomBenchmarkBaseDir and that is used by the run_sonobuoy_plugin.sh script.

Related issue on attempt modifying read-only files is reported in issue #144.
Since custom versions are mounted from ConfigMap with 0422 permission, files cannot modified.  In issue #144, the need to modify read only files was due to attempt to replace values in control files for k3s.  It should probably just limit modification to k3s control files.

Closing since the right directory should be used in order to use to consume the custom benchmark correctly as @prachidamle mentioned, @atoy3731 please feel free to re-open if the /etc/kbs/custombenchmark/cfg dir is not working as expected

Thanks for looking into this and have a few more points of clarification to recreate this issue:

This only affects CentOS/RHEL operating systems due to this block:if [[ "$(journalctl -D $JOURNAL_LOG --lines=0 2>&1 | grep -s 'No such file or directory' | wc -l)" -gt 0 ]]; then
  JOURNAL_LOG=/run/log/journal
  echo "CONFIG_DIR=$CONFIG_DIR"
  find $CONFIG_DIR -name '*.yaml' | xargs -n1 sed -i 's|/var/log/journal|/run/log/journal|'
fi

On CentOS/RHEL, it actual gets into that if statement and attempts to run that sed command. That command attempts to utilize the /etc/kbs/custombenchmark/cfg directory as its working directory.
Since that directory is a ConfigMap mounted in, it is read-only and cannot be written to, so it fails with similar output to this:sed: couldn't open temporary file /etc/kbs/custombenchmark/cfg/..2022_08_16_15_04_43.1720097865/rke2-profile/seda0Al44: Read-only file system

With the suggested fix, since it is copying to a tmp directory and not using that mounted directory, it resolves the issue.
Hopefully that provides a little more clarity. Thanks again!

The workaround of copying to /tmp dir is OK.  But it should noted that copying to /tmp should be done when the custom version dir is real-only, not simply testing path name equals to  /etc/kbs/custombenchmark/cfg.  The ideal testing tool changes test cases is not very appealing.  To me, control files should not be touched by the run*.sh script.

Note: With this change, We should test the custom benchmark scan usecase.

This will be ready for test as soon as we have the chart update, which has an open PR. https://github.com/rancher/charts/pull/2149

@prachidamle Could you please provide steps to test this issue?

@vivek-infracloud https://docs.ranchermanager.rancher.io/explanations/integrations-in-rancher/cis-scans/custom-benchmark

@galal-hussein @brandond I followed the steps mentioned on the above link and see the following error message in security-scan-runner pod.
Validations steps followed:

Created a rancher server v2.7.0-rc3
Provisioned a RKE2 cluster v1.24.6+rke2r1
Installed a CIS Benchmark v3.0.0-rc7
Created a foo directory and placed all the config YAML files that are listed here.
Followed this document to run a custom scan.

Result
Scan does not complete and security-scan-runner pod shows following error.
time="2022-10-17T07:06:05Z" level=error msg="Result processing error (500): error handling result rancher-kube-bench/vivek-rke2-cluster-vivek-cis-custom-test-9571f21a-bwsvw: could not write body to file \"/tmp/sonobuoy/dff8cc34-897c-4f89-afce-4dcc2f8d5272/plugins/rancher-kube-bench/results/vivek-rke2-cluster-vivek-cis-custom-test-9571f21a-bwsvw/error.log\": unexpected EOF"
time="2022-10-17T07:06:05Z" level=info msg="received request" client_cert="[rancher-kube-bench]" method=PUT node=vivek-rke2-cluster-vivek-cis-custom-test-9571f21a-6wbv9 plugin_name=rancher-kube-bench url=/api/v1/results/by-node/vivek-rke2-cluster-vivek-cis-custom-test-9571f21a-6wbv9/rancher-kube-bench

@vivek-infracloud I was not able to reproduce this problem and the custom benchmark scan passed for me on a rke cluster having k8s 1.24 as well as on k3s.
Few things to confirm:

I hope the config.yaml file that you placed inside the custom benchmark directory consists of everything mentioned in the top level config.yaml file https://github.com/rancher/security-scan/blob/master/package/cfg/config.yaml
And also add the additional changes to this file as mentioned in https://github.com/rancher/security-scan/blob/master/package/cfg/rke2-cis-1.23-permissive/config.yaml

The final config.yaml file should also have the custom benchmark name and components mentioned inside the "target_mapping" https://github.com/rancher/security-scan/blob/master/package/cfg/config.yaml#L222

Here are 2 examples of the custom scan directory I created for rke and k3s which I would upload as a configmap
rke: https://github.com/prachidamle/security-scan/tree/rke_custon_scan/package/cfg/foorke123
k3s: https://github.com/prachidamle/security-scan/tree/k3s_custom_scan/package/cfg/fook3s123
Please can you test this ticket and check if you are seeing the error.


Monitoring stack should be added by default

This seems potentially more problematic than #99 but I still the trade-offs would be worthwhile. Again, user could opt out but the default should be that when create a cluster, a client is also created called amc (if one doesn't already exist). Again, this will impact scripts created out there and will slow down the standard cluster create but encourages adoption of AMC.

I'll have to reject this one. Problems:

I really cannot programmatically know what the user wants. For example a user could be creating 4 clusters in active xdr setup and adding them all to a single AMS, or the user could be creating just one cluster for AMS. If AMS already exists, and a user creates a new cluster, do they want it connected to this AMS or are they wanting to create a new AMS for this one? Does the user want AMS or are they testing the behaviour of an asadm command and then killing the cluster? There is simply too many unknowns to force such a creation.

Also, possibly more importantly, on GCP and AWS platforms extra information is required to create an AMS client - such as instance type and root device size among other options. On docker, one might want to expose an AMS port by mapping it to another port, for example. There are shared switches used for both AMS and Cluster creation and trying to allow adding AMS creating to cluster create would require an unreasonable number of duplicated switches with possibly --ams- prefix at the very least.

Fair enough, I thought this was likely somewhat problematic. I mostly think exporter should be on by default (#99) - I can close this one for you.


Ctrl+P Opens a file in a same tab.

VSCode Version: 1.4
OS Version: Windows 7

Steps to Reproduce:

Ctrl+P Opens a file in a same tab.
It should open in a different tab.

Is your current tab set to stay open? (It probably isn't if you just opened a file and haven't made any changes.)
Try pressing Ctrl+K, Enter (or Ctrl+Shift+P and search for 'keep') to keep that editor open. Then, try to Ctrl+P and open another file--it should appear in a new tab.

"workbench.editor.enablePreviewFromQuickOpen": false


SOLR-16459: Remove 'invoke' /admin/cores command

https://issues.apache.org/jira/browse/SOLR-16459
Description
This internal API command was added in support of a feature (Rule based Replica placement) that has since been deprecated and removed.  The API command itself was missed, but can be safely removed without fear of breaking backcompat (as it was internal and undocumented).
Solution
API command and associated code have been removed.
Tests
N/A; existing tests continue to pass.
Checklist
Please review the following and check all that apply:

[x] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
[x] I have created a Jira issue and added the issue ID to my pull request title.
[x] I have given Solr maintainers access to contribute to my PR branch. (optional but recommended)
[x] I have developed this patch against the main branch.
[ ] I have run ./gradlew check.

Looks good - not sure why all the imports moved around but 🤷

There's something wrong with my IntelliJ settings, but I'm really struggling to figure it out : (

'check' passes locally. Will merge later this week if there's no additional review.


Trimming long sentences

Following the code snippet for a better understanding of the problem, I am facing.
from styleformer import Styleformer
import torch
import warnings
warnings.filterwarnings("ignore")

# style = [0=Casual to Formal, 1=Formal to Casual, 2=Active to Passive, 3=Passive to Active etc..]
sf = Styleformer(style = 0)

source_sentences = [
                   "Corruption in african countries hinders economic, political and social development. It is a major obstacle to economic growth, good governance and fundamental freedoms, such as freedom of speech or the right of citizens to hold governments accountable. In addition, corruption affects the lives of individuals, families and communities. The 10th global corruption barometer (gcb) program - in africa, shows that while many people in africa feel that corruption is on the rise in their country, many also feel confident that, as citizens, they can make a difference in the fight against corruption."
]

for paragraph in source_sentences:
    # sentences = sent_tokenize(paragraph)
    sentences = paragraph.split('. ')
    for source_sentence in sentences:
        target_sentence = sf.transfer(source_sentence)
        print("-" *100)
        print("[Casual] ", source_sentence)
        print("-" *100)
        if target_sentence is not None:
            print("[Formal] ",target_sentence)
            print()
        else:
            print("No good quality transfers available !")

Program Output

[Casual]  Corruption in african countries hinders economic, political and social development
[Formal]  In African countries, corruption affects economic, political, and social development.

[Casual]  It is a major obstacle to economic growth, good governance and fundamental freedoms, such as freedom of speech or the right of citizens to hold governments accountable
[Formal]  It's a major obstacle to economic growth, good governance, and fundamental freedoms, such as the freedom of speech or the right of citizens to

[Casual]  In addition, corruption affects the lives of individuals, families and communities
[Formal]  Additionally, corruption has a negative impact on individuals, families and communities.

[Casual]  The 10th global corruption barometer (gcb) program - in africa, shows that while many people in africa feel that corruption is on the rise in their country, many also feel confident that, as citizens, they can make a difference in the fight against corruption.
[Formal]  The tenth Global Corruptibility Barometer (GCB) program - in Africa - shows that while many people in Africa feel that corruption

Please help to fix this for longer sentences. Thanks in advance!

This is by design, actually the model is trained ONLY on 32 lengths sentences. No plans for now to train on longer sentences.

okay, is there any hack i can use your model?

Updated the answer :)

This is by design, actually the model is trained ONLY on 32 lengths sentences. No plans for now to train on longer sentences. May be in the future, but sorry can't promise.
I am not sure if this will help, In the mean time why don't you try sentence segmentation using spacy or some custom logic and feed the model with shorter sentences ?

32 lengths words or characters @PrithivirajDamodaran


downgrade aws sdk version from zos failures during ci tests

Codecov Report

Merging #667 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master     #667   +/-   ##
=========================================
  Coverage     83.17%   83.17%
  Complexity      987      987
=========================================
  Files            67       67
  Lines          4346     4346
  Branches        534      534
=========================================
  Hits           3615     3615
  Misses          478      478
  Partials        253      253

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update eb9f7e2...3820225. Read the comment docs.

I'm afraid binary searching is the only way I can think of to find the breakage version.. I can spend 10 mins to see if I can narrow it down a bit more

If we open a ticket with AWS, having the specific version that broke it would expedite I suspect.

This was proxy shenanigans present on our CI env, where the sdk added code pulling proxy information from the env in 1.11.580. Adding a NO_PROXY config solved our problems.


NIFI-12750 ExecuteStreamCommand incorrectly decodes std error stream

NIFI-12750 ExecuteStreamCommand incorrectly decodes std error stream

Summary
NIFI-12750
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[X] Apache NiFi Jira issue created

Pull Request Tracking

[X] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-12750
[X] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-12750

Pull Request Formatting

[X] Pull Request based on current revision of the main branch
[X] Pull Request refers to a feature branch with one commit containing changes

Verification
Updated 2 unit tests to use accented characters to verify it works
Build

[X] Build completed using mvn clean install -P contrib-check

[X] JDK 21

Licensing
No new files or dependencies
Documentation
No documentation changes

+1 LGTM, thanks for the fix! Merging to support/nifi-1.x and main


Adds Error handling section

This pull request adds a new section called Error handling.
It also creates a custom Transactor class to manage the connections to a H2 database and specific Transactor instances to pre-populate different tables that are used in the exercises.
@dialelo Could you take a look please? Thanks!

:+1: Great stuff!


Python 2 compatible #3

This update fix the issue described on issue #3
Compared to PR #7 this PR is more lightweight, fast and recommended!

Thanks for the PR. Merging!


chore: release 4.7.3

:robot: I have created a release *beep* *boop*
4.7.3 (2021-07-14)
Bug Fixes

relative path repository not work (815f857)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/mili-project-manager/mili/releases/tag/v4.7.3 :sunflower:


Validation

Requirements:

returns a array<Violations>, it contains the row, cell and current value, error message

Requires #15.

Partially solved in #112, needs a cleanup of the interface introduced there.


Oauth cleanup

Overhaul mysql queries, adding old style "parameterized" queries with sprintf and mysql_real_escape_strings.
Should no longer create duplicate entries for a given userid (mostly seen with API rate limit problems).
Should no longer end up in a refresh loop (again mostly an API rate limit issue).
Added some mysql error checking.
Added error checking on user ID which should catch some API limit issues.
Move MySQL connect down to where it's first needed; avoids opening in some error cases.
Moved session variable set for access_token down to where we're sure it's valid.
Changed 'select *...' to actually specify columns needed.
Changed an include to require.
NOTE: This needs to be converted to MySQLi or PDO_MySQL.

Looks like some overlap with f5d3d171db45784aa73a0a5f01f34262df119739

there's also a bit of overlap between some of my commits and your earlier pull request. Regardless, all the pull requests are nicely broken down into discrete commits, so some cherry-picking will work just fine.

Hey y'all. Just a heads up - opened up #oapi-dev on freenode. If you're on IRC, let's chat there. I'm going through current pull requests, and I'm hesitant to take in any larger ones that need to be cherry picked. It would be preferable if they were broken up.

Ah, good ol' IRC; favorite tool of the geographically discriminatory crowd ;) .
In all seriousness, I recommend taking #29 first, and then rebasing these commits on top, but if you take these first, I'll be happy to rebase mine on top


Raw interconnection queue data

Closes #305.
So far, this is just a draft that does what we outlined in 305 - adding a get_raw_interconnection_queue method that outputs a BytesIO.
I parametrized the test_interconnection_queue test so that a failure in one ISO doesn't fail the whole thing. This helps us isolate test failures.
Speaking of which, (1) are there any useful assertions to make on these interconnection queue data beyond "not empty"? (2) NYISO is failing with:
387             if (
388                 "SGIA Tender Date" in active.columns
389                 and "SGIA Tender Date" not in completed.columns
390             ):
391                 active = active.drop(columns=["SGIA Tender Date"])
392  ->         completed.columns = active.columns
... a bunch of pandas internals stuff...
E           ValueError: Length mismatch: Expected axis has 24 elements, new values have 21 elements

@kmax12:

any insight into the NYISO failure?
any ideas for other assertions for the interconnection queues?

TODO

[x] fix NYISO failure
[ ] add more assertions to interconnection queue tests, maybe?

thanks for getting the ball rolling on this.
i only took a very quick look, but i suspect the issue has to do with NYISO changing their data format. you may just have to update the nyiso specific code until it works again

better testing for interconnection queue would be appreciated and i suspect would make them more likely to be used by others. i implemented these initially, but havent been using these scrapers on gridstatus.io, so they haven't been maintained like everything else.

There were a few column name/order changes so I added an explicit remap and NYISO appears to be working again!
In terms of better testing/assertions, I made some incremental improvements (parametrization, asserting non-empty) but don't have the domain knowledge to really make other meaningful improvements right now - that might make sense as a separate PR.

@kmax12 I made a bunch of comments but I think this is pretty much ready for review!

Thanks @jdangerx. I’ll review as I have time. Might take a week or so but will try to be faster

I fixed the double space typo and updated the tests to not fail on IESO. I'm not quite sure if you want me to merge the Proposed In-Service and Proposed In-Service Date columns or not, but I can do that and strip out the I/S and IS values if that is the right thing to do!

I fixed the double space typo and updated the tests to not fail on IESO. I'm not quite sure if you want me to merge the Proposed In-Service and Proposed In-Service Date columns or not, but I can do that and strip out the I/S and IS values if that is the right thing to do!

yes, i think they can be merged. i think the I/S value that shows up for completed projects is just saying that they are in fact "in service". this column can be null for completed project

Yeah, it's ready for merge! There was a merge conflict which I just dealt with - hopefully CI continues to pass 😅

@jdangerx It looks like there's a linting issue. Running make lint-fix then committing changes should solve that.

It looks like there is one test failure on TestNYISO.test_get_interconnection_queue_handles_new_file. That was a test I added in #329 to handle new NYISO interconnection data. I think we just need to make sure the "Interconnection Location" column is handled correctly for NYISO.

Ah, yeah, looks like you renamed Points of Interconnection in the active sheet, which propagated downstream in the old code but needs to be manually updated for the completed sheet now. I think everything should pass now 🤞 Thanks for your patience!

All the tests pass now, so I'll go ahead and merge. Thanks @jdangerx!


Check regex for null

@EpsilonKu, I do not see an error with this change. However, the behavior is still not matching what I would expect as I described in https://github.com/nvim-pack/nvim-spectre/pull/160#issuecomment-1684116434. That is just my own expectation and may not match with how you designed it. Feel free to ignore. The past two changelists have improved things.


Maintenance

VueApollo is really awesome, it helped us and our team integrate apollo into our spa and we have used it for almost 2.5 years at this point.
As of late, there has not been a lot of activity on this repo, there are many outstanding prs, some of which improve the system quite a bit.  I wanted to discuss bringing on additional maintainers, forking the repo or merging in to official vue repo in order to keep relevant fixes merged in and get more people active on the project.  In my view, it is the only way we can get vue-apollo up to the same level of contributors/community as with react-apollo.
I very much appreciate the work that has went into this project.

@Akryum So what are you thinking.  How can we help, what do you think the best approach is?

I need to think about this. You bring up good points, but people contributing to PRs already are very helpful. Maybe if some people can review them it would be awesome so that when I have time I can merge them and do a new release.

Also issue triaging could be very helpful from other members of the community.

Hello!
I have used this project on multiple projects of mine with 0 problem! Thanks a lot for this amazing project but when I suggest my team to use it the company they bring up this issue about maintenance of the project and to be honest it is the only reason preventing us to use this project in the company since it is not in stable version.  Is there anything that can we help to get this project to V 1.0.0 stable? Once again thanks for all the effort that has gone through this project.

@Akryum any additional thoughts after thinking on it?


alignment with site grade logic from extensions team

Reviewer: Mia
Asana: https://app.asana.com/0/414235014887631/458611166160477/f
CC:
Description:
Aligns the Site Rating with the extensions team and tries to make main logic section look similar so it's easier to track future changes.
Additionally, fixes some feedback raised with initial screen (which are mostly related to this work):

Privacy Grade from D to B doesn't show https://app.asana.com/0/413877547933097/312386120368398/f

Show privacy grade while loading: https://app.asana.com/0/413877547933097/312386120368396/f

Slow protection toggle: https://app.asana.com/0/413877547933097/312386120368391/f

Unknown privacy practices should be rated B max: https://app.asana.com/0/413877547933097/312386120368386/f

Minor change to improve UX of dismissing privacy protection while under consideration by Mike: https://app.asana.com/0/413877547933097/312386120368389/f

Also updated the assets with the vector PDFs.
Note: have added hooks to handle non-secure content as we currently base https purely on the site's URL, but that's too big a change for here, so will create a new Asana to integrate that.
Steps to test this PR:
Test 1:

Visit Evans Cycles and launch the Privacy Protection
Note the upgrade message
Turn off privacy protection
Note that the toggle is instant
Note the grade updates
Turn on privacy protection
Note the upgrade message

Test 2:

Visit news.ycombinator.com
Privacy Protection
Note the B grade

Test 3:

Visit a site and launch the Privacy Protection
Tap the omni bar text field
The privacy protection is dismissed and the text field takes focus

Reviewer Checklist:

[x] Ensure the PR solves the problem
[x] Review every line of code
[x] Ensure the PR does no harm by testing the changes thoroughly
[x] Get help if you're uncomfortable with any of the above!
[x] Determine if there are any quick wins that improve the implementation

PR DRI Checklist:

[ ] Get advice or leverage existing code
[ ] Agree on technical approach with reviewer (if the changes are nuanced)
[ ] Ensure that there is a testing strategy (and documented non-automated tests)
[ ] Ensure there is a documented monitoring strategy (if necessary)
[ ] Consider systems implications (Database connections, Grafana stats, CPU)

@subsymbolic
Updated with your feedback.
I've added a "mixed encryption" state, you can test it by going to https://www.falkirkrpg.org.uk/mixed.html
So use DDG to test for full https state, example.com for unencrypted state and the above for mixed.

Looks good!


⚠ Bofrost.at has degraded performance

In ecd263f, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1503 ms

Resolved: Bofrost.at performance has improved in 22ac1bf.


Thanks for providing this demo

这应该是为数不多的不用NEKit的还在被维护的NEPacketTunnel demo了，非常感谢！

很高兴能帮到你  :)
On 7 June 2018 at 18:49, Keqiu Hu<EMAIL_ADDRESS>wrote:

这应该是为数不多的不用NEKit的还在被维护的NEPacketTunnel demo了，非常感谢！
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/lxdcn/NEPacketTunnelVPNDemo/issues/18, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AAkQ8Y95bvo04tedWdfHuhBPS4mNXqcXks5t6M0RgaJpZM4Ud1Mz
.


Reconnect to MongoDB server on connection failure.

Aseta was not reconnecting until I change the reconnect settings to the following. I also enabled TCP keep-alive, to fix a bug that kept cropping up where the TCP connection dies when the database is locked for too long (like during a backup). Reconnect + TCP keep alive seems to have dealt with the problem.

This is quite old -- and doesn't work with the new unified topology which handles connections differently now anyway. Closing.


Feature Request: Default email address for Swift_Mailer

Hi,
it would be a nice feature if it would be possible to set a default email address to the Swift_Mailer instance. Because in many use cases you have the same sender email address in every email and you always have to set the same sender email address to the message instances. Better would be to set a default sender email to the mailer  once (in Symfony2 the Mailer is managed globally in the whole application, for example) and if the message does not have its own sender email the default email address is used.
What do you think?
I am using Swift-4.1.3

I 'm sorry to bump this old feature request, but a :+1: from me!

This would be so nice to have 🎉

If you need to set a default sender you can use this plugin: Swift Mailer Defaults Plugin


Improve bech32 coveralls

Issue Number

Overview

[ ] I have replaced isLeft with Left ... here and there to improve coveralls score a bit

Comments

bors r+

bors r+

bors r+


Fix int range overflow for integer division

Purpose

Fix int range overflow for integer division

Fixes #17969
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Required Balo version update
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #19346 into ballerina-1.0.x will not change coverage.
The diff coverage is n/a.

@@               Coverage Diff                @@
##           ballerina-1.0.x   #19346   +/-   ##
================================================
  Coverage            15.73%   15.73%
================================================
  Files                   47       47
  Lines                 1265     1265
  Branches               197      197
================================================
  Hits                   199      199
  Misses                1053     1053
  Partials                13       13

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 59bb987...74bc69a. Read the comment docs.


Fix ClosureForGroups.wurst

I think this should fix #456

This looks like it does not compile. I think it is better to have the fixed library in a new package, as this changes the behavior of the library.
If you use it with closures, you would expect the closure to be destroyed, but if you pass a normal object, destroying it might be a surprise.

it does not change it ? The return value of pop is never used

The name of the library suggests that this should be used with Closures. As this use case is not affected, I think it is ok to change the behavior of the package in this case.


Add "or your npub"

what happens
In the login box, current suggestion of "your nip05" can be confusing to newbies, as not everyone has a nip-05.
suggestion
nip-05 remains niche. Whereas everyone has a npub. Suggest adding "or npub" to the login input box

via confused customer
https://njump.me/nevent1qvzqqqqqqypzqt6jkx07zsy0d8hqayy7mr72cyuvtumscpw7yncdsdc2mfuh2gerqqsyv7ug7txkdwyrjwwwdpszte7kk46af248jl0e8zq36emuvz9utvchvzmeq

Agreed


Code completion filtering is sometimes messed up

This appears to be a recent regression, it is difficult to get an easy repro case for. If I copy and paste the same code into another file, it works for a while.
io here is referenced as:
import 'dart:io' as io;

Unfortunately when it isn't working the impact is pretty severe.
Is there data I can supply that will help with repro?

@danrubel I think I upgraded the version of analysis server at the same time as the version of the atom plugin, so this may be an AS regression rather than a plugin regression.

If you can get a situation where it's reproducible for you, you can look at the wire traffic. You can do that by dialing the logging up to 'finer' in the dartlang plugin setting and then opening devtools' console.
You could also try closing the file and re-opening, in order to validate that the overlay we're setting up for that particular file is not corrupted. We'll remove the overlay when the file is closed and create a new one when re-opened.


Unhandled exception in listener callback

1. After following the installation steps:

git clone https://github.com/MLDSAI/OpenAdapt.git cd puterbot python3.10 -m venv .venv source .venv/bin/activate pip install wheel pip install -r requirements.txt pip install -e . alembic upgrade head pytest

2. I was running into this error on step pip install -r requirements.txt:

Failed to build pynput ERROR: Could not build wheels for pynput, which is required to install pyproject.toml-based projects

3. The analysis for the error was:

The error message indicates that there is an issue with building the pynput package, which is required for the installation of the project.
As a workaround, you can try installing the pynput package separately before installing the other dependencies from the requirements.txt file.

4. After installing pynput [command: (.venv) taylorhorsager@Taylors-MacBook-Air OpenAdapt % pip install pynput] I proceeded to finish installing the requirements. After which, I ran a successful test.
5. Then, when moving on to run puterbot [command: (.venv) taylorhorsager@Taylors-MacBook-Air OpenAdapt % python -m puterbot.record "testing out puterbot"] I could type "Test" a few times in the terminal, but when I moved my mouse the system threw an error.

Here are the logs from the terminal on my Macbook:
(.venv) taylorhorsager@Taylors-MacBook-Air OpenAdapt % python -m puterbot.record "testing out puterbot" 2023-05-07 14:25:27.218 | INFO     | __main__:record:581 - task_description='testing out puterbot' 2023-05-07 14:25:27.251 | INFO     | __main__:create_recording:518 - recording=Recording(id=1, timestamp=1683491127.2189682, monitor_width=2560, monitor_height=1440, double_click_interval_seconds=0.5, double_click_distance_pixels=5, platform='darwin', task_description='testing out puterbot') 2023-05-07 14:25:27.260 | INFO     | __main__:read_window_events:386 - starting 2023-05-07 14:25:27.263 | INFO     | __main__:read_screen_events:360 - starting 2023-05-07 14:25:27.267 | INFO     | __main__:process_events:91 - starting Exception in thread Thread-4: Traceback (most recent call last):   File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/threading.py", line 1009, in _bootstrap_inner     self.run()   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/pynput/_util/__init__.py", line 210, in run     self._run()   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/pynput/keyboard/_darwin.py", line 254, in _run     super(Listener, self)._run()   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/pynput/_util/darwin.py", line 206, in _run     Quartz.CFRunLoopAddSource(   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/objc/_lazyimport.py", line 168, in __getattr__     value = getattr(p, name)   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/objc/_lazyimport.py", line 168, in __getattr__     value = getattr(p, name)   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/objc/_lazyimport.py", line 186, in __getattr__     value = self.__get_constant(name)   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/objc/_lazyimport.py", line 412, in __get_constant     self.__funcmap.pop(name) KeyError: 'CFRunLoopAddSource' 2023-05-07 14:25:27.307 | INFO     | __main__:read_window_events:416 - title='Terminal OpenAdapt — Python -m puterbot.record testing out puterbot — 80×24' prev_title=None geometry=(1386.0, 172.0, 585.0, 371.0) prev_geometry=None 2023-05-07 14:25:27.366 | WARNING  | __main__:read_window_events:398 - geometry=None 2023-05-07 14:25:27.368 | INFO     | __main__:read_window_events:416 - title='Terminal OpenAdapt — Python ◂ Python -m puterbot.record testing out puterbot — 80×24' prev_title='Terminal OpenAdapt — Python -m puterbot.record testing out puterbot — 80×24' geometry=(1386.0, 172.0, 585.0, 371.0) prev_geometry=(1386.0, 172.0, 585.0, 371.0) 2023-05-07 14:25:28.113 | INFO     | __mp_main__:write_events:230 - event_type='window' starting 2023-05-07 14:25:28.140 | INFO     | __mp_main__:write_events:230 - event_type='input' starting 2023-05-07 14:25:28.149 | INFO     | __mp_main__:write_events:230 - event_type='screen' starting Test Test TestUnhandled exception in listener callback Traceback (most recent call last):   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/pynput/_util/__init__.py", line 228, in inner     return f(self, *args, **kwargs)   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/pynput/_util/darwin.py", line 265, in _handler     self._handle(proxy, event_type, event, refcon)   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/pynput/mouse/_darwin.py", line 188, in _handle     self.on_move(px, py)   File "/Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages/pynput/_util/__init__.py", line 144, in inner     if f(*args) is False: TypeError: on_move() missing 1 required positional argument: 'injected' 2023-05-07 14:25:35.791 | INFO     | __main__:read_window_events:416 - title='Finder taylorhorsager' prev_title='Terminal OpenAdapt — Python ◂ Python -m puterbot.record testing out puterbot — 80×24' geometry=(1348.0, 576.0, 1184.0, 682.0) prev_geometry=(1386.0, 172.0, 585.0, 371.0) 2023-05-07 14:25:39.055 | INFO     | __main__:read_window_events:416 - title='Terminal OpenAdapt — Python ◂ Python -m puterbot.record testing out puterbot — 80×24' prev_title='Finder taylorhorsager' geometry=(1386.0, 172.0, 585.0, 371.0) prev_geometry=(1348.0, 576.0, 1184.0, 682.0) ^C2023-05-07 14:25:42.104 | INFO     | __main__:record:679 - joining... 2023-05-07 14:25:42.104 | INFO     | __mp_main__:write_events:239 - event_type='input' done 2023-05-07 14:25:42.104 | INFO     | __mp_main__:write_events:239 - event_type='window' done 2023-05-07 14:25:42.104 | INFO     | __mp_main__:write_events:239 - event_type='screen' done 2023-05-07 14:25:42.106 | INFO     | __main__:read_screen_events:367 - done 2023-05-07 14:25:42.107 | INFO     | __main__:process_events:145 - done 2023-05-07 14:25:42.213 | INFO     | __main__:record:691 - done

6. I double-checked that pynput was correctly installed:

(.venv) taylorhorsager@Taylors-MacBook-Air OpenAdapt % pip show pynput Name: pynput Version: 1.7.6 Summary: Monitor and control user input devices Home-page: https://github.com/moses-palmer/pynput Author: Moses Palmér Author-email<EMAIL_ADDRESS>License: LGPLv3 Location: /Users/taylorhorsager/OpenAdapt/.venv/lib/python3.10/site-packages Requires: pyobjc-framework-ApplicationServices, pyobjc-framework-Quartz, six Required-by:

7. Here is some analysis provided by ChatGPT to troubleshoot the issue:

It looks like there are a few issues occurring during the execution of the puterbot.record module. Specifically, there are errors related to the pynput package and the handling of mouse events.
The error message TypeError: on_move() missing 1 required positional argument: 'injected' suggests that there may be an issue with the handling of mouse move events in the code.
Review the source code of the puterbot project, specifically the record.py file and any other files related to mouse event handling. Look for the on_move function and check if it requires an additional argument called injected.
Check if there are any known issues related to the pynput package or the puterbot project on their respective GitHub repositories or forums. There may be existing solutions or workarounds for the issues you are facing.

Thank you @flyguy712 ! We use a custom version of this library. It seems that you have the standard one.  Try ‘pip install -r requirements’ and paste the full output. Also please search for other issues referencing pynput.

Please provide the full consul output from the first step

@abrichr here is the console output from 'pip install -r requirements.txt':
taylorhorsager@Taylors-MacBook-Air OpenAdapt % pip install -r requirements.txt
Ignoring pywin32: markers 'sys_platform == "win32"' don't match your environment
Collecting git+https://github.com/abrichr/pynput.git (from -r requirements.txt (line 16))
  Cloning https://github.com/abrichr/pynput.git to /private/var/folders/kx/ldt2q_ks6kn370mkg2fryvvh0000gn/T/pip-req-build-c06e0wtw
  Running command git clone --filter=blob:none --quiet https://github.com/abrichr/pynput.git /private/var/folders/kx/ldt2q_ks6kn370mkg2fryvvh0000gn/T/pip-req-build-c06e0wtw
  Resolved https://github.com/abrichr/pynput.git to commit 5d7256761b3cf6f01758c2d7d6a877d8facf79bb
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting alembic==1.8.1 (from -r requirements.txt (line 1))
  Using cached alembic-1.8.1-py3-none-any.whl (209 kB)
Collecting ascii_magic==2.3.0 (from -r requirements.txt (line 2))
  Using cached ascii_magic-2.3.0-py3-none-any.whl (733 kB)
Collecting bokeh==2.4.3 (from -r requirements.txt (line 3))
  Using cached bokeh-2.4.3-py3-none-any.whl (18.5 MB)
Collecting clipboard==0.0.4 (from -r requirements.txt (line 4))
  Using cached clipboard-0.0.4-py3-none-any.whl
Collecting deepdiff==6.2.2 (from -r requirements.txt (line 5))
  Using cached deepdiff-6.2.2-py3-none-any.whl (72 kB)
Collecting dictalchemy3==1.0.0 (from -r requirements.txt (line 6))
  Using cached dictalchemy3-1.0.0-py3-none-any.whl
Collecting fire==0.4.0 (from -r requirements.txt (line 7))
  Using cached fire-0.4.0-py2.py3-none-any.whl
Collecting ipdb==0.13.11 (from -r requirements.txt (line 8))
  Using cached ipdb-0.13.11-py3-none-any.whl (12 kB)
Collecting loguru==0.6.0 (from -r requirements.txt (line 9))
  Using cached loguru-0.6.0-py3-none-any.whl (58 kB)
Collecting matplotlib==3.6.2 (from -r requirements.txt (line 10))
  Using cached matplotlib-3.6.2-cp310-cp310-macosx_11_0_arm64.whl (7.2 MB)
Collecting mss==6.1.0 (from -r requirements.txt (line 11))
  Using cached mss-6.1.0-py3-none-any.whl (76 kB)
Collecting pandas==2.0.0 (from -r requirements.txt (line 12))
  Using cached pandas-2.0.0-cp310-cp310-macosx_11_0_arm64.whl (10.8 MB)
Collecting pygetwindow==0.0.9 (from -r requirements.txt (line 13))
  Using cached PyGetWindow-0.0.9-py3-none-any.whl
Collecting pyinstaller (from -r requirements.txt (line 14))
  Using cached pyinstaller-5.10.1-py3-none-macosx_10_13_universal2.whl (925 kB)
Collecting pytest==7.1.3 (from -r requirements.txt (line 17))
  Using cached pytest-7.1.3-py3-none-any.whl (298 kB)
Collecting rapidocr-onnxruntime==1.2.3 (from -r requirements.txt (line 18))
  Using cached rapidocr_onnxruntime-1.2.3-py3-none-any.whl (12.3 MB)
Collecting scikit-learn==1.2.2 (from -r requirements.txt (line 19))
  Using cached scikit_learn-1.2.2-cp310-cp310-macosx_12_0_arm64.whl (8.5 MB)
Collecting scipy==1.9.3 (from -r requirements.txt (line 20))
  Using cached scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl (28.5 MB)
Collecting sqlalchemy==1.4.43 (from -r requirements.txt (line 21))
  Using cached SQLAlchemy-1.4.43-cp310-cp310-macosx_10_9_universal2.whl
Collecting torch==2.0.0 (from -r requirements.txt (line 22))
  Using cached torch-2.0.0-cp310-none-macosx_11_0_arm64.whl (55.8 MB)
Collecting tqdm==4.64.0 (from -r requirements.txt (line 23))
  Using cached tqdm-4.64.0-py2.py3-none-any.whl (78 kB)
Collecting transformers==4.28.1 (from -r requirements.txt (line 24))
  Using cached transformers-4.28.1-py3-none-any.whl (7.0 MB)
Collecting Mako (from alembic==1.8.1->-r requirements.txt (line 1))
  Using cached Mako-1.2.4-py3-none-any.whl (78 kB)
Collecting colorama (from ascii_magic==2.3.0->-r requirements.txt (line 2))
  Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting Pillow (from ascii_magic==2.3.0->-r requirements.txt (line 2))
  Using cached Pillow-9.5.0-cp310-cp310-macosx_11_0_arm64.whl (3.1 MB)
Collecting Jinja2>=2.9 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting numpy>=1.11.3 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached numpy-1.24.3-cp310-cp310-macosx_11_0_arm64.whl (13.9 MB)
Collecting packaging>=16.8 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached packaging-23.1-py3-none-any.whl (48 kB)
Collecting PyYAML>=3.10 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl (173 kB)
Collecting tornado>=5.1 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached tornado-6.3.1-cp38-abi3-macosx_10_9_universal2.whl (424 kB)
Collecting typing-extensions>=3.10.0 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached typing_extensions-4.5.0-py3-none-any.whl (27 kB)
Collecting pyperclip>=1.3 (from clipboard==0.0.4->-r requirements.txt (line 4))
  Using cached pyperclip-1.8.2-py3-none-any.whl
Collecting ordered-set<4.2.0,>=4.0.2 (from deepdiff==6.2.2->-r requirements.txt (line 5))
  Using cached ordered_set-4.1.0-py3-none-any.whl (7.6 kB)
Requirement already satisfied: six in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from fire==0.4.0->-r requirements.txt (line 7)) (1.16.0)
Collecting termcolor (from fire==0.4.0->-r requirements.txt (line 7))
  Using cached termcolor-2.3.0-py3-none-any.whl (6.9 kB)
Collecting ipython>=7.31.1 (from ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached ipython-8.13.2-py3-none-any.whl (797 kB)
Collecting tomli (from ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting decorator (from ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting contourpy>=1.0.1 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached contourpy-1.0.7-cp310-cp310-macosx_11_0_arm64.whl (229 kB)
Collecting cycler>=0.10 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting fonttools>=4.22.0 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached fonttools-4.39.3-py3-none-any.whl (1.0 MB)
Collecting kiwisolver>=1.0.1 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached kiwisolver-1.4.4-cp310-cp310-macosx_11_0_arm64.whl (63 kB)
Collecting pyparsing>=2.2.1 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)
Collecting python-dateutil>=2.7 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting pytz>=2020.1 (from pandas==2.0.0->-r requirements.txt (line 12))
  Using cached pytz-2023.3-py2.py3-none-any.whl (502 kB)
Collecting tzdata>=2022.1 (from pandas==2.0.0->-r requirements.txt (line 12))
  Using cached tzdata-2023.3-py2.py3-none-any.whl (341 kB)
Collecting pyrect (from pygetwindow==0.0.9->-r requirements.txt (line 13))
  Using cached PyRect-0.2.0-py2.py3-none-any.whl
Collecting attrs>=19.2.0 (from pytest==7.1.3->-r requirements.txt (line 17))
  Using cached attrs-23.1.0-py3-none-any.whl (61 kB)
Collecting iniconfig (from pytest==7.1.3->-r requirements.txt (line 17))
  Using cached iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Collecting pluggy<2.0,>=0.12 (from pytest==7.1.3->-r requirements.txt (line 17))
  Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Collecting py>=1.8.2 (from pytest==7.1.3->-r requirements.txt (line 17))
  Using cached py-1.11.0-py2.py3-none-any.whl (98 kB)
Collecting pyclipper>=1.2.1 (from rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached pyclipper-1.3.0.post4-cp310-cp310-macosx_10_9_universal2.whl (252 kB)
Collecting onnxruntime>=1.7.0 (from rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached onnxruntime-1.14.1-cp310-cp310-macosx_11_0_arm64.whl (5.8 MB)
Collecting opencv-python>=<IP_ADDRESS> (from rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached opencv_python-<IP_ADDRESS>-cp37-abi3-macosx_11_0_arm64.whl (32.6 MB)
Collecting Shapely>=1.7.1 (from rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached shapely-2.0.1-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB)
Collecting joblib>=1.1.1 (from scikit-learn==1.2.2->-r requirements.txt (line 19))
  Using cached joblib-1.2.0-py3-none-any.whl (297 kB)
Collecting threadpoolctl>=2.0.0 (from scikit-learn==1.2.2->-r requirements.txt (line 19))
  Using cached threadpoolctl-3.1.0-py3-none-any.whl (14 kB)
Collecting filelock (from torch==2.0.0->-r requirements.txt (line 22))
  Using cached filelock-3.12.0-py3-none-any.whl (10 kB)
Collecting sympy (from torch==2.0.0->-r requirements.txt (line 22))
  Using cached sympy-1.11.1-py3-none-any.whl (6.5 MB)
Collecting networkx (from torch==2.0.0->-r requirements.txt (line 22))
  Using cached networkx-3.1-py3-none-any.whl (2.1 MB)
Collecting huggingface-hub<1.0,>=0.11.0 (from transformers==4.28.1->-r requirements.txt (line 24))
  Using cached huggingface_hub-0.14.1-py3-none-any.whl (224 kB)
Collecting regex!=2019.12.17 (from transformers==4.28.1->-r requirements.txt (line 24))
  Using cached regex-2023.5.5-cp310-cp310-macosx_11_0_arm64.whl (288 kB)
Collecting requests (from transformers==4.28.1->-r requirements.txt (line 24))
  Using cached requests-2.30.0-py3-none-any.whl (62 kB)
Collecting tokenizers!=0.11.3,<0.14,>=0.11.1 (from transformers==4.28.1->-r requirements.txt (line 24))
  Using cached tokenizers-0.13.3-cp310-cp310-macosx_12_0_arm64.whl (3.9 MB)
Requirement already satisfied: setuptools>=42.0.0 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from pyinstaller->-r requirements.txt (line 14)) (57.4.0)
Collecting altgraph (from pyinstaller->-r requirements.txt (line 14))
  Using cached altgraph-0.17.3-py2.py3-none-any.whl (21 kB)
Collecting pyinstaller-hooks-contrib>=2021.4 (from pyinstaller->-r requirements.txt (line 14))
  Using cached pyinstaller_hooks_contrib-2023.2-py2.py3-none-any.whl (261 kB)
Collecting macholib>=1.8 (from pyinstaller->-r requirements.txt (line 14))
  Using cached macholib-1.16.2-py2.py3-none-any.whl (38 kB)
Requirement already satisfied: pyobjc-framework-ApplicationServices>=8.0 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from pynput==1.7.6->-r requirements.txt (line 16)) (9.1.1)
Requirement already satisfied: pyobjc-framework-Quartz>=8.0 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from pynput==1.7.6->-r requirements.txt (line 16)) (9.1.1)
Collecting fsspec (from huggingface-hub<1.0,>=0.11.0->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached fsspec-2023.5.0-py3-none-any.whl (160 kB)
Collecting backcall (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Collecting jedi>=0.16 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached jedi-0.18.2-py2.py3-none-any.whl (1.6 MB)
Collecting matplotlib-inline (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached matplotlib_inline-0.1.6-py3-none-any.whl (9.4 kB)
Collecting pickleshare (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached prompt_toolkit-3.0.38-py3-none-any.whl (385 kB)
Collecting pygments>=2.4.0 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached Pygments-2.15.1-py3-none-any.whl (1.1 MB)
Collecting stack-data (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached stack_data-0.6.2-py3-none-any.whl (24 kB)
Collecting traitlets>=5 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached traitlets-5.9.0-py3-none-any.whl (117 kB)
Collecting pexpect>4.3 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
Collecting appnope (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached appnope-0.1.3-py2.py3-none-any.whl (4.4 kB)
Collecting MarkupSafe>=2.0 (from Jinja2>=2.9->bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl (17 kB)
Collecting coloredlogs (from onnxruntime>=1.7.0->rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached coloredlogs-15.0.1-py2.py3-none-any.whl (46 kB)
Collecting flatbuffers (from onnxruntime>=1.7.0->rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached flatbuffers-23.3.3-py2.py3-none-any.whl (26 kB)
Collecting protobuf (from onnxruntime>=1.7.0->rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached protobuf-4.22.4-cp37-abi3-macosx_10_9_universal2.whl (397 kB)
Requirement already satisfied: pyobjc-core>=9.1.1 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from pyobjc-framework-ApplicationServices>=8.0->pynput==1.7.6->-r requirements.txt (line 16)) (9.1.1)
Requirement already satisfied: pyobjc-framework-Cocoa>=9.1.1 in /Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages (from pyobjc-framework-ApplicationServices>=8.0->pynput==1.7.6->-r requirements.txt (line 16)) (9.1.1)
Collecting charset-normalizer<4,>=2 (from requests->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl (123 kB)
Collecting idna<4,>=2.5 (from requests->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Collecting urllib3<3,>=1.21.1 (from requests->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached urllib3-2.0.2-py3-none-any.whl (123 kB)
Collecting certifi>=2017.4.17 (from requests->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached certifi-2023.5.7-py3-none-any.whl (156 kB)
Collecting mpmath>=0.19 (from sympy->torch==2.0.0->-r requirements.txt (line 22))
  Using cached mpmath-1.3.0-py3-none-any.whl (536 kB)
Collecting parso<0.9.0,>=0.8.0 (from jedi>=0.16->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached parso-0.8.3-py2.py3-none-any.whl (100 kB)
Collecting ptyprocess>=0.5 (from pexpect>4.3->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Collecting wcwidth (from prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached wcwidth-0.2.6-py2.py3-none-any.whl (29 kB)
Collecting humanfriendly>=9.1 (from coloredlogs->onnxruntime>=1.7.0->rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached humanfriendly-10.0-py2.py3-none-any.whl (86 kB)
Collecting executing>=1.2.0 (from stack-data->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached executing-1.2.0-py2.py3-none-any.whl (24 kB)
Collecting asttokens>=2.1.0 (from stack-data->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached asttokens-2.2.1-py2.py3-none-any.whl (26 kB)
Collecting pure-eval (from stack-data->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached pure_eval-0.2.2-py3-none-any.whl (11 kB)
Installing collected packages: wcwidth, tokenizers, pytz, pyrect, pyperclip, pyclipper, pure-eval, ptyprocess, pickleshare, mpmath, flatbuffers, executing, backcall, appnope, altgraph, urllib3, tzdata, typing-extensions, traitlets, tqdm, tornado, tomli, threadpoolctl, termcolor, sympy, sqlalchemy, regex, PyYAML, python-dateutil, pyparsing, pyinstaller-hooks-contrib, pygments, pygetwindow, py, protobuf, prompt-toolkit, pluggy, Pillow, pexpect, parso, packaging, ordered-set, numpy, networkx, mss, MarkupSafe, macholib, loguru, kiwisolver, joblib, iniconfig, idna, humanfriendly, fsspec, fonttools, filelock, decorator, cycler, colorama, clipboard, charset-normalizer, certifi, attrs, asttokens, stack-data, Shapely, scipy, requests, pytest, pyinstaller, pandas, opencv-python, matplotlib-inline, Mako, Jinja2, jedi, fire, dictalchemy3, deepdiff, contourpy, coloredlogs, ascii_magic, torch, scikit-learn, onnxruntime, matplotlib, ipython, huggingface-hub, bokeh, alembic, transformers, rapidocr-onnxruntime, ipdb
  Attempting uninstall: loguru
    Found existing installation: loguru 0.7.0
    Uninstalling loguru-0.7.0:
      Successfully uninstalled loguru-0.7.0
Successfully installed Jinja2-3.1.2 Mako-1.2.4 MarkupSafe-2.1.2 Pillow-9.5.0 PyYAML-6.0 Shapely-2.0.1 alembic-1.8.1 altgraph-0.17.3 appnope-0.1.3 ascii_magic-2.3.0 asttokens-2.2.1 attrs-23.1.0 backcall-0.2.0 bokeh-2.4.3 certifi-2023.5.7 charset-normalizer-3.1.0 clipboard-0.0.4 colorama-0.4.6 coloredlogs-15.0.1 contourpy-1.0.7 cycler-0.11.0 decorator-5.1.1 deepdiff-6.2.2 dictalchemy3-1.0.0 executing-1.2.0 filelock-3.12.0 fire-0.4.0 flatbuffers-23.3.3 fonttools-4.39.3 fsspec-2023.5.0 huggingface-hub-0.14.1 humanfriendly-10.0 idna-3.4 iniconfig-2.0.0 ipdb-0.13.11 ipython-8.13.2 jedi-0.18.2 joblib-1.2.0 kiwisolver-1.4.4 loguru-0.6.0 macholib-1.16.2 matplotlib-3.6.2 matplotlib-inline-0.1.6 mpmath-1.3.0 mss-6.1.0 networkx-3.1 numpy-1.24.3 onnxruntime-1.14.1 opencv-python-<IP_ADDRESS> ordered-set-4.1.0 packaging-23.1 pandas-2.0.0 parso-0.8.3 pexpect-4.8.0 pickleshare-0.7.5 pluggy-1.0.0 prompt-toolkit-3.0.38 protobuf-4.22.4 ptyprocess-0.7.0 pure-eval-0.2.2 py-1.11.0 pyclipper-1.3.0.post4 pygetwindow-0.0.9 pygments-2.15.1 pyinstaller-5.10.1 pyinstaller-hooks-contrib-2023.2 pyparsing-3.0.9 pyperclip-1.8.2 pyrect-0.2.0 pytest-7.1.3 python-dateutil-2.8.2 pytz-2023.3 rapidocr-onnxruntime-1.2.3 regex-2023.5.5 requests-2.30.0 scikit-learn-1.2.2 scipy-1.9.3 sqlalchemy-1.4.43 stack-data-0.6.2 sympy-1.11.1 termcolor-2.3.0 threadpoolctl-3.1.0 tokenizers-0.13.3 tomli-2.0.1 torch-2.0.0 tornado-6.3.1 tqdm-4.64.0 traitlets-5.9.0 transformers-4.28.1 typing-extensions-4.5.0 tzdata-2023.3 urllib3-2.0.2 wcwidth-0.2.6

I noticed that the 'requirements.txt' file has some subtext that says pywin32 on windows only. Is there any way that impacts trying to load the required packages on MacOS? Also, I don't see pynput provided in this list. I did however go here to install it directly, since it was mentioned we need to use a specific variation of pynput.

Here are some additional logs that show pynput failing to install.
taylorhorsager@Taylors-MacBook-Air ~ % python3.10 -m venv .venv
taylorhorsager@Taylors-MacBook-Air ~ % source .venv/bin/activate

(.venv) taylorhorsager@Taylors-MacBook-Air ~ % pip list
Package    Version
---------- -------
pip        21.2.3
setuptools 57.4.0
WARNING: You are using pip version 21.2.3; however, version 23.1.2 is available.
You should consider upgrading via the '/Users/taylorhorsager/.venv/bin/python3.10 -m pip install --upgrade pip' command.
(.venv) taylorhorsager@Taylors-MacBook-Air ~ % /Users/taylorhorsager/.venv/bin/python3.10 -m pip install --upgrade pip
Requirement already satisfied: pip in ./.venv/lib/python3.10/site-packages (21.2.3)
Collecting pip
  Using cached pip-23.1.2-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 21.2.3
    Uninstalling pip-21.2.3:
      Successfully uninstalled pip-21.2.3
Successfully installed pip-23.1.2
(.venv) taylorhorsager@Taylors-MacBook-Air ~ % pip install wheel
Collecting wheel
  Using cached wheel-0.40.0-py3-none-any.whl (64 kB)
Installing collected packages: wheel
Successfully installed wheel-0.40.0
(.venv) taylorhorsager@Taylors-MacBook-Air ~ % pip list
Package    Version
---------- -------
pip        23.1.2
setuptools 57.4.0
wheel      0.40.0
(.venv) taylorhorsager@Taylors-MacBook-Air ~ % pip install -r requirements.txt
ERROR: Could not open requirements file: [Errno 2] No such file or directory: 'requirements.txt'
(.venv) taylorhorsager@Taylors-MacBook-Air ~ % cd OpenAdapt
(.venv) taylorhorsager@Taylors-MacBook-Air OpenAdapt % pip install -r requirements.txt
Ignoring pywin32: markers 'sys_platform == "win32"' don't match your environment
Collecting git+https://github.com/abrichr/pynput.git (from -r requirements.txt (line 16))
  Cloning https://github.com/abrichr/pynput.git to /private/var/folders/kx/ldt2q_ks6kn370mkg2fryvvh0000gn/T/pip-req-build-cuvvep0r
  Running command git clone --filter=blob:none --quiet https://github.com/abrichr/pynput.git /private/var/folders/kx/ldt2q_ks6kn370mkg2fryvvh0000gn/T/pip-req-build-cuvvep0r
  Resolved https://github.com/abrichr/pynput.git to commit 5d7256761b3cf6f01758c2d7d6a877d8facf79bb
  Preparing metadata (setup.py) ... done
Collecting alembic==1.8.1 (from -r requirements.txt (line 1))
  Using cached alembic-1.8.1-py3-none-any.whl (209 kB)
Collecting ascii_magic==2.3.0 (from -r requirements.txt (line 2))
  Using cached ascii_magic-2.3.0-py3-none-any.whl (733 kB)
Collecting bokeh==2.4.3 (from -r requirements.txt (line 3))
  Using cached bokeh-2.4.3-py3-none-any.whl (18.5 MB)
Collecting clipboard==0.0.4 (from -r requirements.txt (line 4))
  Using cached clipboard-0.0.4-py3-none-any.whl
Collecting deepdiff==6.2.2 (from -r requirements.txt (line 5))
  Using cached deepdiff-6.2.2-py3-none-any.whl (72 kB)
Collecting dictalchemy3==1.0.0 (from -r requirements.txt (line 6))
  Using cached dictalchemy3-1.0.0-py3-none-any.whl
Collecting fire==0.4.0 (from -r requirements.txt (line 7))
  Using cached fire-0.4.0-py2.py3-none-any.whl
Collecting ipdb==0.13.11 (from -r requirements.txt (line 8))
  Using cached ipdb-0.13.11-py3-none-any.whl (12 kB)
Collecting loguru==0.6.0 (from -r requirements.txt (line 9))
  Using cached loguru-0.6.0-py3-none-any.whl (58 kB)
Collecting matplotlib==3.6.2 (from -r requirements.txt (line 10))
  Using cached matplotlib-3.6.2-cp310-cp310-macosx_11_0_arm64.whl (7.2 MB)
Collecting mss==6.1.0 (from -r requirements.txt (line 11))
  Using cached mss-6.1.0-py3-none-any.whl (76 kB)
Collecting pandas==2.0.0 (from -r requirements.txt (line 12))
  Using cached pandas-2.0.0-cp310-cp310-macosx_11_0_arm64.whl (10.8 MB)
Collecting pygetwindow==0.0.9 (from -r requirements.txt (line 13))
  Using cached PyGetWindow-0.0.9-py3-none-any.whl
Collecting pyinstaller (from -r requirements.txt (line 14))
  Using cached pyinstaller-5.10.1-py3-none-macosx_10_13_universal2.whl (925 kB)
Collecting pytest==7.1.3 (from -r requirements.txt (line 17))
  Using cached pytest-7.1.3-py3-none-any.whl (298 kB)
Collecting rapidocr-onnxruntime==1.2.3 (from -r requirements.txt (line 18))
  Using cached rapidocr_onnxruntime-1.2.3-py3-none-any.whl (12.3 MB)
Collecting scikit-learn==1.2.2 (from -r requirements.txt (line 19))
  Using cached scikit_learn-1.2.2-cp310-cp310-macosx_12_0_arm64.whl (8.5 MB)
Collecting scipy==1.9.3 (from -r requirements.txt (line 20))
  Using cached scipy-1.9.3-cp310-cp310-macosx_12_0_arm64.whl (28.5 MB)
Collecting sqlalchemy==1.4.43 (from -r requirements.txt (line 21))
  Using cached SQLAlchemy-1.4.43-cp310-cp310-macosx_10_9_universal2.whl
Collecting torch==2.0.0 (from -r requirements.txt (line 22))
  Using cached torch-2.0.0-cp310-none-macosx_11_0_arm64.whl (55.8 MB)
Collecting tqdm==4.64.0 (from -r requirements.txt (line 23))
  Using cached tqdm-4.64.0-py2.py3-none-any.whl (78 kB)
Collecting transformers==4.28.1 (from -r requirements.txt (line 24))
  Using cached transformers-4.28.1-py3-none-any.whl (7.0 MB)
Collecting Mako (from alembic==1.8.1->-r requirements.txt (line 1))
  Using cached Mako-1.2.4-py3-none-any.whl (78 kB)
Collecting colorama (from ascii_magic==2.3.0->-r requirements.txt (line 2))
  Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
Collecting Pillow (from ascii_magic==2.3.0->-r requirements.txt (line 2))
  Using cached Pillow-9.5.0-cp310-cp310-macosx_11_0_arm64.whl (3.1 MB)
Collecting Jinja2>=2.9 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached Jinja2-3.1.2-py3-none-any.whl (133 kB)
Collecting numpy>=1.11.3 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached numpy-1.24.3-cp310-cp310-macosx_11_0_arm64.whl (13.9 MB)
Collecting packaging>=16.8 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached packaging-23.1-py3-none-any.whl (48 kB)
Collecting PyYAML>=3.10 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached PyYAML-6.0-cp310-cp310-macosx_11_0_arm64.whl (173 kB)
Collecting tornado>=5.1 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached tornado-6.3.1-cp38-abi3-macosx_10_9_universal2.whl (424 kB)
Collecting typing-extensions>=3.10.0 (from bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached typing_extensions-4.5.0-py3-none-any.whl (27 kB)
Collecting pyperclip>=1.3 (from clipboard==0.0.4->-r requirements.txt (line 4))
  Using cached pyperclip-1.8.2-py3-none-any.whl
Collecting ordered-set<4.2.0,>=4.0.2 (from deepdiff==6.2.2->-r requirements.txt (line 5))
  Using cached ordered_set-4.1.0-py3-none-any.whl (7.6 kB)
Collecting six (from fire==0.4.0->-r requirements.txt (line 7))
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting termcolor (from fire==0.4.0->-r requirements.txt (line 7))
  Using cached termcolor-2.3.0-py3-none-any.whl (6.9 kB)
Collecting ipython>=7.31.1 (from ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached ipython-8.13.2-py3-none-any.whl (797 kB)
Collecting tomli (from ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
Collecting decorator (from ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached decorator-5.1.1-py3-none-any.whl (9.1 kB)
Collecting contourpy>=1.0.1 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached contourpy-1.0.7-cp310-cp310-macosx_11_0_arm64.whl (229 kB)
Collecting cycler>=0.10 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting fonttools>=4.22.0 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached fonttools-4.39.3-py3-none-any.whl (1.0 MB)
Collecting kiwisolver>=1.0.1 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached kiwisolver-1.4.4-cp310-cp310-macosx_11_0_arm64.whl (63 kB)
Collecting pyparsing>=2.2.1 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)
Collecting python-dateutil>=2.7 (from matplotlib==3.6.2->-r requirements.txt (line 10))
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting pytz>=2020.1 (from pandas==2.0.0->-r requirements.txt (line 12))
  Using cached pytz-2023.3-py2.py3-none-any.whl (502 kB)
Collecting tzdata>=2022.1 (from pandas==2.0.0->-r requirements.txt (line 12))
  Using cached tzdata-2023.3-py2.py3-none-any.whl (341 kB)
Collecting pyrect (from pygetwindow==0.0.9->-r requirements.txt (line 13))
  Using cached PyRect-0.2.0-py2.py3-none-any.whl
Collecting attrs>=19.2.0 (from pytest==7.1.3->-r requirements.txt (line 17))
  Using cached attrs-23.1.0-py3-none-any.whl (61 kB)
Collecting iniconfig (from pytest==7.1.3->-r requirements.txt (line 17))
  Using cached iniconfig-2.0.0-py3-none-any.whl (5.9 kB)
Collecting pluggy<2.0,>=0.12 (from pytest==7.1.3->-r requirements.txt (line 17))
  Using cached pluggy-1.0.0-py2.py3-none-any.whl (13 kB)
Collecting py>=1.8.2 (from pytest==7.1.3->-r requirements.txt (line 17))
  Using cached py-1.11.0-py2.py3-none-any.whl (98 kB)
Collecting pyclipper>=1.2.1 (from rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached pyclipper-1.3.0.post4-cp310-cp310-macosx_10_9_universal2.whl (252 kB)
Collecting onnxruntime>=1.7.0 (from rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached onnxruntime-1.14.1-cp310-cp310-macosx_11_0_arm64.whl (5.8 MB)
Collecting opencv-python>=<IP_ADDRESS> (from rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached opencv_python-<IP_ADDRESS>-cp37-abi3-macosx_11_0_arm64.whl (32.6 MB)
Collecting Shapely>=1.7.1 (from rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached shapely-2.0.1-cp310-cp310-macosx_11_0_arm64.whl (1.2 MB)
Collecting joblib>=1.1.1 (from scikit-learn==1.2.2->-r requirements.txt (line 19))
  Using cached joblib-1.2.0-py3-none-any.whl (297 kB)
Collecting threadpoolctl>=2.0.0 (from scikit-learn==1.2.2->-r requirements.txt (line 19))
  Using cached threadpoolctl-3.1.0-py3-none-any.whl (14 kB)
Collecting filelock (from torch==2.0.0->-r requirements.txt (line 22))
  Using cached filelock-3.12.0-py3-none-any.whl (10 kB)
Collecting sympy (from torch==2.0.0->-r requirements.txt (line 22))
  Using cached sympy-1.11.1-py3-none-any.whl (6.5 MB)
Collecting networkx (from torch==2.0.0->-r requirements.txt (line 22))
  Using cached networkx-3.1-py3-none-any.whl (2.1 MB)
Collecting huggingface-hub<1.0,>=0.11.0 (from transformers==4.28.1->-r requirements.txt (line 24))
  Using cached huggingface_hub-0.14.1-py3-none-any.whl (224 kB)
Collecting regex!=2019.12.17 (from transformers==4.28.1->-r requirements.txt (line 24))
  Using cached regex-2023.5.5-cp310-cp310-macosx_11_0_arm64.whl (288 kB)
Collecting requests (from transformers==4.28.1->-r requirements.txt (line 24))
  Using cached requests-2.30.0-py3-none-any.whl (62 kB)
Collecting tokenizers!=0.11.3,<0.14,>=0.11.1 (from transformers==4.28.1->-r requirements.txt (line 24))
  Using cached tokenizers-0.13.3-cp310-cp310-macosx_12_0_arm64.whl (3.9 MB)
Requirement already satisfied: setuptools>=42.0.0 in /Users/taylorhorsager/.venv/lib/python3.10/site-packages (from pyinstaller->-r requirements.txt (line 14)) (57.4.0)
Collecting altgraph (from pyinstaller->-r requirements.txt (line 14))
  Using cached altgraph-0.17.3-py2.py3-none-any.whl (21 kB)
Collecting pyinstaller-hooks-contrib>=2021.4 (from pyinstaller->-r requirements.txt (line 14))
  Using cached pyinstaller_hooks_contrib-2023.2-py2.py3-none-any.whl (261 kB)
Collecting macholib>=1.8 (from pyinstaller->-r requirements.txt (line 14))
  Using cached macholib-1.16.2-py2.py3-none-any.whl (38 kB)
Collecting pyobjc-framework-ApplicationServices>=8.0 (from pynput==1.7.6->-r requirements.txt (line 16))
  Using cached pyobjc_framework_ApplicationServices-9.1.1-cp310-cp310-macosx_10_9_universal2.whl (32 kB)
Collecting pyobjc-framework-Quartz>=8.0 (from pynput==1.7.6->-r requirements.txt (line 16))
  Using cached pyobjc_framework_Quartz-9.1.1-cp310-cp310-macosx_10_9_universal2.whl (228 kB)
Collecting fsspec (from huggingface-hub<1.0,>=0.11.0->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached fsspec-2023.5.0-py3-none-any.whl (160 kB)
Collecting backcall (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached backcall-0.2.0-py2.py3-none-any.whl (11 kB)
Collecting jedi>=0.16 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached jedi-0.18.2-py2.py3-none-any.whl (1.6 MB)
Collecting matplotlib-inline (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached matplotlib_inline-0.1.6-py3-none-any.whl (9.4 kB)
Collecting pickleshare (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached pickleshare-0.7.5-py2.py3-none-any.whl (6.9 kB)
Collecting prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached prompt_toolkit-3.0.38-py3-none-any.whl (385 kB)
Collecting pygments>=2.4.0 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached Pygments-2.15.1-py3-none-any.whl (1.1 MB)
Collecting stack-data (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached stack_data-0.6.2-py3-none-any.whl (24 kB)
Collecting traitlets>=5 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached traitlets-5.9.0-py3-none-any.whl (117 kB)
Collecting pexpect>4.3 (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached pexpect-4.8.0-py2.py3-none-any.whl (59 kB)
Collecting appnope (from ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached appnope-0.1.3-py2.py3-none-any.whl (4.4 kB)
Collecting MarkupSafe>=2.0 (from Jinja2>=2.9->bokeh==2.4.3->-r requirements.txt (line 3))
  Using cached MarkupSafe-2.1.2-cp310-cp310-macosx_10_9_universal2.whl (17 kB)
Collecting coloredlogs (from onnxruntime>=1.7.0->rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached coloredlogs-15.0.1-py2.py3-none-any.whl (46 kB)
Collecting flatbuffers (from onnxruntime>=1.7.0->rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached flatbuffers-23.3.3-py2.py3-none-any.whl (26 kB)
Collecting protobuf (from onnxruntime>=1.7.0->rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached protobuf-4.22.4-cp37-abi3-macosx_10_9_universal2.whl (397 kB)
Collecting pyobjc-core>=9.1.1 (from pyobjc-framework-ApplicationServices>=8.0->pynput==1.7.6->-r requirements.txt (line 16))
  Using cached pyobjc_core-9.1.1-cp310-cp310-macosx_10_9_universal2.whl (735 kB)
Collecting pyobjc-framework-Cocoa>=9.1.1 (from pyobjc-framework-ApplicationServices>=8.0->pynput==1.7.6->-r requirements.txt (line 16))
  Using cached pyobjc_framework_Cocoa-9.1.1-cp310-cp310-macosx_10_9_universal2.whl (390 kB)
Collecting charset-normalizer<4,>=2 (from requests->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached charset_normalizer-3.1.0-cp310-cp310-macosx_11_0_arm64.whl (123 kB)
Collecting idna<4,>=2.5 (from requests->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Collecting urllib3<3,>=1.21.1 (from requests->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached urllib3-2.0.2-py3-none-any.whl (123 kB)
Collecting certifi>=2017.4.17 (from requests->transformers==4.28.1->-r requirements.txt (line 24))
  Using cached certifi-2023.5.7-py3-none-any.whl (156 kB)
Collecting mpmath>=0.19 (from sympy->torch==2.0.0->-r requirements.txt (line 22))
  Using cached mpmath-1.3.0-py3-none-any.whl (536 kB)
Collecting parso<0.9.0,>=0.8.0 (from jedi>=0.16->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached parso-0.8.3-py2.py3-none-any.whl (100 kB)
Collecting ptyprocess>=0.5 (from pexpect>4.3->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached ptyprocess-0.7.0-py2.py3-none-any.whl (13 kB)
Collecting wcwidth (from prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached wcwidth-0.2.6-py2.py3-none-any.whl (29 kB)
Collecting humanfriendly>=9.1 (from coloredlogs->onnxruntime>=1.7.0->rapidocr-onnxruntime==1.2.3->-r requirements.txt (line 18))
  Using cached humanfriendly-10.0-py2.py3-none-any.whl (86 kB)
Collecting executing>=1.2.0 (from stack-data->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached executing-1.2.0-py2.py3-none-any.whl (24 kB)
Collecting asttokens>=2.1.0 (from stack-data->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached asttokens-2.2.1-py2.py3-none-any.whl (26 kB)
Collecting pure-eval (from stack-data->ipython>=7.31.1->ipdb==0.13.11->-r requirements.txt (line 8))
  Using cached pure_eval-0.2.2-py3-none-any.whl (11 kB)
Building wheels for collected packages: pynput
  Building wheel for pynput (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [28 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/kx/ldt2q_ks6kn370mkg2fryvvh0000gn/T/pip-req-build-cuvvep0r/setup.py", line 87, in <module>
          setuptools.setup(
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/__init__.py", line 152, in setup
          _install_setup_requires(attrs)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/__init__.py", line 147, in _install_setup_requires
          dist.fetch_build_eggs(dist.setup_requires)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/dist.py", line 785, in fetch_build_eggs
          resolved_dists = pkg_resources.working_set.resolve(
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 766, in resolve
          dist = best[req.key] = env.best_match(
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1051, in best_match
          return self.obtain(req, installer)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1063, in obtain
          return installer(requirement)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/dist.py", line 844, in fetch_build_egg
          return fetch_build_egg(self, req)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/installer.py", line 80, in fetch_build_egg
          wheel.install_as_egg(dist_location)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/wheel.py", line 95, in install_as_egg
          self._install_as_egg(destination_eggdir, zf)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/wheel.py", line 103, in _install_as_egg
          self._convert_metadata(zf, destination_eggdir, dist_info, egg_info)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/wheel.py", line 124, in _convert_metadata
          os.mkdir(destination_eggdir)
      FileExistsError: [Errno 17] File exists: '/private/var/folders/kx/ldt2q_ks6kn370mkg2fryvvh0000gn/T/pip-req-build-cuvvep0r/.eggs/charset_normalizer-3.1.0-py3.10-macosx-10.9-universal2.egg'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for pynput
  Running setup.py clean for pynput
  error: subprocess-exited-with-error

  × python setup.py clean did not run successfully.
  │ exit code: 1
  ╰─> [28 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/kx/ldt2q_ks6kn370mkg2fryvvh0000gn/T/pip-req-build-cuvvep0r/setup.py", line 87, in <module>
          setuptools.setup(
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/__init__.py", line 152, in setup
          _install_setup_requires(attrs)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/__init__.py", line 147, in _install_setup_requires
          dist.fetch_build_eggs(dist.setup_requires)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/dist.py", line 785, in fetch_build_eggs
          resolved_dists = pkg_resources.working_set.resolve(
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 766, in resolve
          dist = best[req.key] = env.best_match(
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1051, in best_match
          return self.obtain(req, installer)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/pkg_resources/__init__.py", line 1063, in obtain
          return installer(requirement)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/dist.py", line 844, in fetch_build_egg
          return fetch_build_egg(self, req)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/installer.py", line 80, in fetch_build_egg
          wheel.install_as_egg(dist_location)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/wheel.py", line 95, in install_as_egg
          self._install_as_egg(destination_eggdir, zf)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/wheel.py", line 103, in _install_as_egg
          self._convert_metadata(zf, destination_eggdir, dist_info, egg_info)
        File "/Users/taylorhorsager/.venv/lib/python3.10/site-packages/setuptools/wheel.py", line 124, in _convert_metadata
          os.mkdir(destination_eggdir)
      FileExistsError: [Errno 17] File exists: '/private/var/folders/kx/ldt2q_ks6kn370mkg2fryvvh0000gn/T/pip-req-build-cuvvep0r/.eggs/charset_normalizer-3.1.0-py3.10-macosx-10.9-universal2.egg'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed cleaning build dir for pynput
Failed to build pynput
ERROR: Could not build wheels for pynput, which is required to install pyproject.toml-based projects
(.venv) taylorhorsager@Taylors-MacBook-Air OpenAdapt %


Configuration to change iOS bundle identifier for variant

Background
Currently we do have bundle identifier for target and we append suffix for every variant.  Need configuration to change the bundle identifier for variant. ( Completely new identifier instead of suffix )

After some discussions with @dileepZion I suggest the following approach:

Include a new optional property at variant level with same name as the target config, bundle_id. This new configuration, if provided, will completely override target's bundle ID config.

Verify if bundle_id and id_suffix are provided at same time at variant level. If that happens an error should be thrown with a meaningful message to the developer.

I don't see any backward compatibility issues with this approach. What are your thoughts on this @gderaco and @arthurpalves ?

I don't see any problem with backwards compatibility in the spec files.

Looks good @GMinucci.


Implement TrialResult.eq using pandas.DataFrame.equals

Can't use value_equality_values because pandas.DataFrame.eq broadcasts instead of returning a bool
This is much more efficient than using the repr

I believe the test failures are due to having series within the table. So blocked by https://github.com/quantumlib/Cirq/pull/1811

Automerge cancelled: The automerge label was removed.