pgcli 4.1.0 with Python 3.13.0: Bouncing icon in the macOS Dock
Description
Running pgcli on macOS with Python 3.13.0 runs a bouncing icon in the Dock for the entire duration of the session (until you exit pgcli). It seems the import setproctitle in main.py is causing this first.
Your environment
I am using macOS 15.1 (24B83), with Python 3.13.0 (installer from python.org) and pgcli 4.1.0
pip freeze output:
absl-py==2.1.0
adb_shell==0.4.4
aiohappyeyeballs==2.4.3
aiohttp==3.10.10
aiosignal==1.3.1
alabaster==1.0.0
altgraph==0.17.4
aniso8601==9.0.1
annotated-types==0.7.0
anyio==4.6.2.post1
appdirs==1.4.4
appnope==0.1.4
argcomplete==3.5.1
argon2-cffi==23.1.0
argon2-cffi-bindings==21.2.0
arrow==1.3.0
asciidoc==10.2.1
asgiref==3.8.1
asn1crypto==1.5.1
astroid==3.3.5
asttokens==2.4.1
async-generator==1.10
async-lru==2.0.4
async-timeout==5.0.1
attrs==24.2.0
autocommand==2.2.2
Automat==24.8.1
autopep8==2.3.1
avro-python3==1.10.2
babel==2.16.0
backcall==0.2.0
backports.csv==1.0.7
base45==0.4.4
bcrypt==4.2.0
beautifulsoup4==4.12.3
biplist==1.0.3
black==24.10.0
bleach==6.2.0
blinker==1.9.0
bottle==0.13.2
brewer2mpl==1.4.1
brotlipy==0.7.0
cached-property==2.0.1
cachetools==5.5.0
certifi==2024.8.30
cffi==1.17.1
chardet==5.2.0
charset-normalizer==3.4.0
cheroot==10.0.1
CherryPy==18.10.0
cli_helpers==2.3.1
click==8.1.7
click-default-group==1.2.4
cloudpickle==3.1.0
colorama==0.4.6
colorlog==6.9.0
comm==0.2.2
commonmark==0.9.1
configobj==5.0.9
configparser==7.1.0
confluent-kafka==2.6.0
constantly==23.10.4
contourpy==1.3.0
cryptography==43.0.3
cssselect==1.2.0
cu2qu==1.6.7.post2
curio==1.6
cycler==0.12.1
Cython==3.0.11
dask==2024.11.0
debugpy==1.8.8
decorator==5.1.1
defusedxml==0.7.1
Deprecated==1.2.14
diff_cover==9.2.0
dill==0.3.9
Distance==0.1.3
distlib==0.3.9
Django==5.1.3
docopt==0.6.2
docrepr==0.2.0
docstring-to-markdown==0.15
docutils==0.21.2
entrypoints==0.4
exceptiongroup==1.2.2
executing==2.1.0
fake-factory==9999.9.9
fastavro==1.9.7
fastjsonschema==2.20.0
feedparser==6.0.11
filelock==3.16.1
flake8==7.1.1
Flask==3.0.3
flexcache==0.3
flexparser==0.4
fonttools==4.54.1
fqdn==1.5.1
frozenlist==1.5.0
fs==2.4.16
fsspec==2024.10.0
future==1.0.0
gunicorn==23.0.0
h11==0.14.0
h2==4.1.0
hpack==4.0.0
html5lib==1.1
html5lib-modern==1.2
httpcode==0.6
httpcore==1.0.6
httpie==3.2.4
httpstat==1.3.2
httpx==0.27.2
humanize==4.11.0
hyperframe==6.0.1
hyperlink==21.0.0
idna==3.10
igraph==0.11.8
imagecodecs==2024.9.22
imageio==2.36.0
imagesize==1.4.1
immutabledict==4.2.0
importlib_metadata==8.5.0
importlib_resources==6.4.5
incremental==24.7.2
inflect==7.4.0
iniconfig==2.0.0
intersphinx_registry==0.2410.14
ipdb==0.13.13
ipykernel==6.29.5
ipyparallel==9.0.0
ipython==8.29.0
ipython-genutils==0.2.0
ipywidgets==8.1.5
iso8601==2.1.0
isodate==0.7.2
isoduration==20.11.0
isort==5.13.2
itemadapter==0.9.0
itemloaders==1.3.2
itsdangerous==2.2.0
jaraco.classes==3.4.0
jaraco.collections==5.1.0
jaraco.context==6.0.1
jaraco.functools==4.1.0
jaraco.text==4.0.0
jedi==0.19.1
Jinja2==3.1.4
jinja2-pluralize==0.3.0
jira==3.8.0
jmespath==1.0.1
joblib==1.4.2
json5==0.9.25
jsonpointer==3.0.0
jsonschema==4.23.0
jsonschema-specifications==2024.10.1
jupyter-console==6.6.3
jupyter-events==0.10.0
jupyter-lsp==2.2.5
jupyter_client==8.6.3
jupyter_core==5.7.2
jupyter_server==2.14.2
jupyter_server_terminals==0.5.3
jupyterlab==4.2.5
jupyterlab_pygments==0.3.0
jupyterlab_server==2.27.3
jupyterlab_widgets==3.0.13
kaitaistruct==0.10
keyring==25.5.0
kiwisolver==1.4.7
lazy-object-proxy==1.10.0
lazy_loader==0.4
ldap3==2.9.1
libusb1==3.1.0
litecli==1.12.3
locket==1.0.0
lxml==5.3.0
macholib==1.16.3
Markdown==3.7
markdown-it-py==3.0.0
MarkupSafe==3.0.2
matplotlib==3.9.2
matplotlib-inline==0.1.7
mccabe==0.7.0
mdurl==0.1.2
meson==1.6.0
mistune==3.0.2
mock==5.1.0
modulegraph==0.19.6
more-itertools==10.5.0
mpmath==1.3.0
multidict==6.1.0
mypy-extensions==1.0.0
mysqlclient==2.2.5
nbclassic==1.1.0
nbclient==0.10.0
nbconvert==7.16.4
nbformat==5.10.4
nest-asyncio==1.6.0
networkx==3.4.2
ninja==1.11.1.1
nltk==3.9.1
nodeenv==1.9.1
nose==1.3.7
notebook==7.2.2
notebook_shim==0.2.4
nox==2024.10.9
NSKeyedUnArchiver==1.5
numcodecs==0.13.1
numpy==2.1.3
oauthlib==3.2.2
otf2ttf==0.2
outcome==1.3.0.post0
overrides==7.7.0
oyaml==1.0
packaging==24.2
pandas==2.2.3
pandocfilters==1.5.1
parsel==1.9.1
parso==0.8.4
partd==1.4.2
passlib==1.7.4
pathspec==0.12.1
patsy==0.5.6
Paver==1.3.4
pbr==6.1.0
pdfkit==1.0.0
pdfminer.six==20240706
pdfrw==0.4
pefile==2024.8.26
pendulum==3.0.0
pep8==1.7.1
pexpect==4.9.0
pgcli==4.1.0
pgspecial==2.1.2
pickleshare==0.7.5
pillow==11.0.0
Pint==0.24.4
pipdeptree==2.23.4
platformdirs==4.3.6
pluggy==1.5.0
ply==3.11
pooch==1.8.2
portend==3.2.0
praw==7.8.1
prawcore==2.4.0
priority==2.0.0
prometheus_client==0.21.0
promise==2.3
prompt_toolkit==3.0.48
propcache==0.2.0
Protego==0.3.1
protobuf==5.28.3
pspdfutils==3.3.5
psutil==6.1.0
psycopg==3.2.3
psycopg-binary==3.2.3
psycopg-c==3.2.3
psycopg2==2.9.10
ptyprocess==0.7.0
pure_eval==0.2.3
puremagic==1.28
py==1.11.0
py2app==0.28.8
py4j==0.10.9.7
pyaes==1.6.1
pyasn1==0.6.1
pyasn1_modules==0.4.1
PyAudio==0.2.14
pycairo==1.27.0
pycodestyle==2.12.1
pycparser==2.22
pycryptodome==3.21.0
pydantic==2.9.2
pydantic_core==2.23.4
PyDispatcher==2.0.7
pydocstyle==6.3.0
pyfiglet==1.0.2
pyflakes==3.2.0
Pygments==2.18.0
PyHamcrest==2.1.0
pyinstaller==6.11.1
pyinstaller-hooks-contrib==2024.10
PyJWT==2.9.0
pylint==3.3.1
PyMySQL==1.1.1
pyOpenSSL==24.2.1
pyparsing==3.1.4
pypdf==5.1.0
pyperclip==1.9.0
pyproject-api==1.8.0
PyQt5==5.15.11
PyQt5-Qt5==5.15.15
PyQt5_sip==12.15.0
pyquery==2.0.1
pyrsistent==0.20.0
pysine==0.9.2
PySocks==1.7.1
pyspark==3.5.3
pytest==8.3.3
pytest-asyncio==0.24.0
python-dateutil==2.9.0.post0
python-docx==1.1.2
python-igraph==0.11.8
python-json-logger==2.0.7
python-jsonrpc-server==0.4.0
python-lsp-jsonrpc==1.1.2
python-lsp-server==1.12.0
pytoolconfig==1.3.1
pytz==2024.2
pytzdata==2020.1
PyWavelets==1.7.0
PyYAML==6.0.2
pyzbar==0.1.9
pyzmq==26.2.0
q==2.7
qtconsole==5.6.1
QtPy==2.4.2
queuelib==1.7.0
rdflib==7.1.1
redis==5.2.0
referencing==0.35.1
regex==2024.11.6
requests==2.32.3
requests-file==2.1.0
requests-oauthlib==2.0.0
requests-toolbelt==1.0.0
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
rich==13.9.4
rope==1.13.0
rpds-py==0.21.0
rsa==4.9
scapy==2.6.1
scikit-image==0.24.0
scikit-learn==1.5.2
scipy==1.14.1
Scrapy==2.11.2
seaborn==0.13.2
Send2Trash==1.8.3
service-identity==24.2.0
setproctitle==1.3.3
setuptools==75.3.0
sgmllib3k==1.0.0
sh==2.1.0
simplegeneric==0.8.1
simplejson==3.19.3
singledispatch==4.1.0
six==1.16.0
smartypants==2.0.1
sniffio==1.3.1
snowballstemmer==2.2.0
sortedcontainers==2.4.0
soupsieve==2.6
speedtest-cli==2.1.3
Sphinx==8.0.2
sphinx-rtd-theme==3.0.1
sphinxcontrib-applehelp==2.0.0
sphinxcontrib-devhelp==2.0.0
sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jquery==4.1
sphinxcontrib-jsmath==1.0.1
sphinxcontrib-qthelp==2.0.0
sphinxcontrib-serializinghtml==2.0.0
sqlfluff==3.2.5
sqlglot==25.29.0
sqlparse==0.5.1
stack-data==0.6.3
statcode==2.0.0
statsmodels==0.14.4
stdlib-list==0.11.0
strip-tags==0.5.1
sympy==1.13.3
tabulate==0.9.0
tblib==3.0.0
tempora==5.7.0
termcolor==2.5.0
termdown==1.18.0
terminado==0.18.1
terminaltables==3.1.10
testpath==0.6.0
texttable==1.7.0
threadpoolctl==3.5.0
tifffile==2024.9.20
time-machine==2.16.0
tinycss2==1.4.0
tld==0.13
tldextract==5.1.3
toml==0.10.2
tomli==2.0.2
tomlkit==0.13.2
toolz==1.0.0
tornado==6.4.1
towncrier==24.8.0
tox==4.23.2
tqdm==4.67.0
traitlets==5.14.3
trio==0.27.0
Twisted==24.7.0
typeguard==4.4.1
types-python-dateutil==2.9.0.20241003
typing_extensions==4.12.2
tzdata==2024.2
ujson==5.10.0
update-checker==0.18.0
uri-template==1.3.0
urllib3==2.2.3
urwid==2.6.16
virtualenv==20.27.1
w3lib==2.2.1
wcwidth==0.2.13
webcolors==24.8.0
webencodings==0.5.1
websocket-client==1.8.0
Werkzeug==3.1.3
wheel==0.45.0
widgetsnbextension==4.0.13
wrapt==1.16.0
wsproto==1.2.0
xlrd==2.0.1
yapf==0.40.2
yarl==1.17.1
ybc-config==1.2.2
ybc_exception==1.2.1
zc.lockfile==3.0.post1
zipp==3.21.0
zope.interface==7.1.1
I'm getting this too after the upgrade to Sequoia.
Looks like there are people reporting it on the Apple Dev Forums too as a generic issue with any Python process - although they aren't getting much help there https://forums.developer.apple.com/forums/thread/764130
I posted a ticket against setproctitle project here: https://github.com/dvarrazzo/py-setproctitle/issues/143#issuecomment-2481647007
which has a PR to fix it (I tested it and it works).
The fix is essentially programatically setting Info.plist flags. Unfortunately, changing Info.plist is not a possibility for python itself, due to signature checks.