Skip to content

Commit 8180008

Browse files
committed
Release metadata updates for 2025-07-29
1 parent 5037c5e commit 8180008

File tree

6 files changed

+198
-45
lines changed

6 files changed

+198
-45
lines changed

.zenodo.json

Lines changed: 10 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,19 @@
11
{
22
"title": "Python",
3-
"description": "Equator Education with Python",
4-
"license": "Q-CDA-1.0",
5-
"language": "eng",
6-
"upload_type": "software",
7-
"access_right": "open",
8-
"version": "2025-07-22-5-g34fa22dd",
9-
"publication_date": "2025-07-27",
103
"creators": [
114
{
125
"name": "Porter, Matthew A.",
136
"affiliation": "Qompass AI",
14-
"orcid": "0000-0002-0302-4812",
15-
"type": "Author"
7+
"orcid": "0000-0002-0302-4812"
168
}
179
],
18-
"keywords": ["AI","Education","Healthcare","Post-Quantum Cryptography","Quantum","opensource","software"],
19-
"related_identifiers": [
20-
{ "identifier": "https://github.com/qompassai/Python", "relation": "isSupplementTo", "resource_type": "software" },
21-
{ "identifier": "https://github.com/qompassai/Python/releases/tag/v2025-07-27", "relation": "isIdenticalTo", "resource_type": "software" },
22-
{ "identifier": "https://orcid.org/0000-0002-0302-4812", "relation": "isAuthorOf", "resource_type": "person" },
23-
{ "identifier": "https://github.com/qompassai/Python/actions", "relation": "isCompiledBy", "resource_type": "workflow" },
24-
{ "identifier": "https://loop.frontiersin.org/people/2230223", "relation": "isAuthorOf", "resource_type": "person" },
25-
{ "identifier": "https://www.webofscience.com/wos/author/HNQ-0292-2023", "relation": "isIdenticalTo", "resource_type": "person" },
26-
{ "identifier": "https://www.scopus.com/authid/detail.uri?authorId=57385910700", "relation": "isIdenticalTo", "resource_type": "person" }
27-
],
28-
"communities": [ { "identifier": "qompassai" } ],
29-
"contributors": [
30-
{ "name": "Porter, Matthew A.", "orcid": "https://orcid.org/0000-0002-0302-4812", "type": "Author" },
31-
{ "name": "Qompass AI", "type": "Sponsor" }
32-
]
10+
"description": "Equator Education with Python",
11+
"license": {
12+
"id": "other",
13+
"title": "Qompass AI Commercial Distribution License & AGPL 3.0",
14+
"url": "https://github.com/qompassai/license"},
15+
"upload_type": "software",
16+
"version": "2025-07-29",
17+
"publication_date": "2025-07-29",
18+
"access_right": "open"
3319
}

CITATION.cff

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,13 @@
11
cff-version: 1.2.0
22
title: "Python"
3-
message: "If you use this software, please cite it as below."
43
authors:
54
- family-names: "Porter"
65
given-names: "Matthew A."
76
orcid: "https://orcid.org/0000-0002-0302-4812"
87
affiliation: "Qompass AI"
9-
version: "v2025-07-27"
10-
date-released: "2025-07-27"
8+
version: "2025-07-29"
9+
date-released: "2025-07-29"
1110
repository-code: "https://github.com/qompassai/Python"
12-
license: "Q-CDA-1.0"
13-
keywords:
14-
- AI
15-
- Education
16-
- Healthcare
17-
- Post-Quantum Cryptography
18-
- Quantum
19-
- opensource
20-
- software
21-
abstract: "Equator Education with Python"
11+
license: "Qompass AI Commercial Distribution License & AGPL 3.0"
12+
message: "If you use this software, please cite it as below."
13+
abstract: 'Equator Education with Python'

citation.bib

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ @software{Python
44
year = {2025},
55
license = {Qompass AI Commercial Distribution License & AGPL 3.0},
66
publisher = {Zenodo},
7-
version = {2025-07-22},
7+
version = {2025-07-29},
88
url = {https://github.com/qompassai/Python}
99
}

pip/pip.conf

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1-
# ~/.config/pip/pip.conf
2-
# AI/ML Workloads Configuration with NVIDIA, Google, and Conda Integration
3-
1+
# /qompassai/python/.config/pip/pip.conf
2+
# Qompass AI PIP Config Template
3+
# Copyright (C) 2025 Qompass AI, All rights reserved
4+
####################################################
45
[global]
56
break-system-packages = false
67
cache-dir = ~/.cache/pip
@@ -13,7 +14,7 @@ index-url = https://pypi.org/simple/
1314
log = ~/.cache/pip/pip.log
1415
no-build-isolation = false
1516
only-binary = :all:
16-
prefer-binary = true
17+
prefer-binary = false
1718
progress-bar = on
1819
require-hashes = false
1920
retries = 5
@@ -43,6 +44,5 @@ all = true
4344
find-links = https://download.pytorch.org/whl/torch_stable.html
4445
https://storage.googleapis.com/jax-releases/jax_cuda_releases.html
4546
upgrade-strategy = eager
46-
4747
[list]
4848
format = freeze

scripts/quickstart.sh

Lines changed: 175 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,175 @@
1+
#!/bin/sh
2+
# /qompassai/python/scripts/quickstart.sh
3+
# Qompass AI Python Quick Start + pyenv/ruff/uv + config
4+
# Copyright (C) 2025 Qompass AI, All rights reserved
5+
#########################################################
6+
set -eu
7+
IFS='
8+
'
9+
XDG_CONFIG_HOME="${XDG_CONFIG_HOME:-$HOME/.config}"
10+
LOCAL_PREFIX="$HOME/.local"
11+
BIN_DIR="$LOCAL_PREFIX/bin"
12+
LIB_DIR="$LOCAL_PREFIX/lib"
13+
SHARE_DIR="$LOCAL_PREFIX/share"
14+
SRC_DIR="$HOME/.local/src/python"
15+
PYENV_ROOT="$HOME/.pyenv"
16+
mkdir -p "$BIN_DIR" "$LIB_DIR" "$SHARE_DIR" "$SRC_DIR" "$XDG_CONFIG_HOME/python"
17+
case ":$PATH:" in
18+
*":$BIN_DIR:"*) ;;
19+
*) export PATH="$BIN_DIR:$PATH" ;;
20+
esac
21+
NEEDED_TOOLS="git curl tar make gcc clang bzip2 xz unzip openssl zlib gdbm readline sqlite3 libffi tk tcl build-essential libbz2-dev libssl-dev libreadline-dev libsqlite3-dev zlib1g-dev libffi-dev"
22+
MISSING=""
23+
for tool in $NEEDED_TOOLS; do
24+
if ! command -v "$tool" >/dev/null 2>&1; then
25+
if [ -x "/usr/bin/$tool" ]; then
26+
ln -sf "/usr/bin/$tool" "$BIN_DIR/$tool"
27+
echo " → Added symlink for $tool in $BIN_DIR (not originally in PATH)"
28+
else
29+
MISSING="$MISSING $tool"
30+
fi
31+
fi
32+
done
33+
if [ -n "$MISSING" ]; then
34+
echo "⚠ Warning: These tools/libraries are missing (not found or not symlinkable):$MISSING"
35+
echo "Please install them with your package manager (e.g. pacman, apt, dnf) to continue."
36+
exit 1
37+
fi
38+
PY_VERS="3.13.5"
39+
PY_MAJ="3.13"
40+
printf '╭────────────────────────────────────────────╮\n'
41+
printf '│ Qompass AI · Python Quick‑Start │\n'
42+
printf '╰────────────────────────────────────────────╯\n'
43+
printf ' © 2025 Qompass AI. All rights reserved \n\n'
44+
echo "Which Python do you want to build?"
45+
echo " 1) Classic CPython (${PY_VERS})"
46+
echo " 2) Free-threaded (GIL-free, experimental, --enable-free-threaded-interpreter)"
47+
echo " q) Quit"
48+
printf "Choose [1]: "
49+
read -r ans
50+
[ -z "$ans" ] && ans=1
51+
[ "$ans" = "q" ] && exit 0
52+
FREE_THREADED="no"
53+
if [ "$ans" = "2" ]; then
54+
FREE_THREADED="yes"
55+
fi
56+
cd "$SRC_DIR"
57+
if [ ! -d "cpython" ]; then
58+
echo "→ Cloning Python source (cpython)..."
59+
git clone --branch "v$PY_VERS" https://github.com/python/cpython.git
60+
fi
61+
cd cpython
62+
git fetch origin
63+
git checkout "v$PY_VERS"
64+
git clean -fdx
65+
echo "→ Configuring Python build..."
66+
CONFIG_FLAGS="--prefix=$LOCAL_PREFIX --enable-optimizations --with-lto"
67+
if [ "$FREE_THREADED" = "yes" ]; then
68+
CONFIG_FLAGS="$CONFIG_FLAGS --enable-free-threaded-interpreter"
69+
fi
70+
./configure "$CONFIG_FLAGS"
71+
echo "→ Building Python (this may take several minutes, enabling PGO/LTO optimization)..."
72+
make -j"$(nproc)"
73+
echo "→ Installing Python (no sudo needed)..."
74+
make install
75+
case ":$PATH:" in
76+
*":$BIN_DIR:"*) ;;
77+
*) export PATH="$BIN_DIR:$PATH" ;;
78+
esac
79+
add_path_to_shell_rc() {
80+
rcfile=$1
81+
line="export PATH=\"$BIN_DIR:\$PATH\""
82+
if [ -f "$rcfile" ]; then
83+
if ! grep -Fxq "$line" "$rcfile"; then
84+
printf '\n# Added by Qompass AI Python quickstart script\n%s\n' "$line" >>"$rcfile"
85+
echo " → Added PATH export to $rcfile"
86+
fi
87+
fi
88+
}
89+
add_path_to_shell_rc "$HOME/.bashrc"
90+
add_path_to_shell_rc "$HOME/.zshrc"
91+
add_path_to_shell_rc "$HOME/.profile"
92+
PIP_PATH="$BIN_DIR/pip$PY_MAJ"
93+
PYTHON_PATH="$BIN_DIR/python$PY_MAJ"
94+
echo "→ Upgrading pip and installing core wheels..."
95+
"$PYTHON_PATH" -m ensurepip --upgrade
96+
"$PYTHON_PATH" -m pip install --upgrade pip wheel setuptools
97+
echo
98+
printf "Do you want to install \033[1mpyenv\033[0m for managing multiple Pythons? [Y/n]: "
99+
read -r ans
100+
[ -z "$ans" ] && ans="Y"
101+
if [ "$ans" = "Y" ] || [ "$ans" = "y" ]; then
102+
if [ ! -d "$PYENV_ROOT" ]; then
103+
curl -fsSL https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
104+
# Add pyenv to shell
105+
for rc in "$HOME/.bashrc" "$HOME/.zshrc" "$HOME/.profile"; do
106+
if [ -f "$rc" ]; then
107+
if ! grep -q "pyenv init" "$rc"; then
108+
printf '\n# Pyenv config\nexport PYENV_ROOT="%s"\nexport PATH="$PYENV_ROOT/bin:$PATH"\neval "$(pyenv init --path)"\n' "$PYENV_ROOT" >>"$rc"
109+
echo " → Added pyenv setup to $rc"
110+
fi
111+
fi
112+
done
113+
else
114+
echo "→ pyenv already present."
115+
fi
116+
fi
117+
echo
118+
printf "Do you want to install \033[1mruff\033[0m (fast Python linter)? [Y/n]: "
119+
read -r ans
120+
[ -z "$ans" ] && ans="Y"
121+
if [ "$ans" = "Y" ] || [ "$ans" = "y" ]; then
122+
"$PIP_PATH" install --user ruff
123+
echo "→ ruff installed via pip"
124+
fi
125+
echo
126+
printf "Do you want to install \033[1muv\033[0m (pip replacement and package manager)? [Y/n]: "
127+
read -r ans
128+
[ -z "$ans" ] && ans="Y"
129+
if [ "$ans" = "Y" ] || [ "$ans" = "y" ]; then
130+
if command -v pipx >/dev/null 2>&1; then
131+
pipx install uv || "$PIP_PATH" install --user uv
132+
else
133+
"$PIP_PATH" install --user uv
134+
fi
135+
echo "→ uv installed"
136+
fi
137+
create_xdg_config() {
138+
tool="$1"
139+
default_content="$2"
140+
confdir="$XDG_CONFIG_HOME/$tool"
141+
confpath="$confdir/config.toml"
142+
mkdir -p "$confdir"
143+
if [ -f "$confpath" ]; then
144+
echo "$tool config already exists at $confpath"
145+
return
146+
fi
147+
printf "Do you want to write an example config for $tool to %s? [Y/n]: " "$confpath"
148+
read -r ans
149+
[ -z "$ans" ] && ans="Y"
150+
if [ "$ans" = "Y" ] || [ "$ans" = "y" ]; then
151+
echo "→ Creating example $tool config at $confpath"
152+
printf "%s\n" "$default_content" >"$confpath"
153+
fi
154+
}
155+
RUFF_CFG='[lint]\nselect = ["E", "F", "W"] # Example: style, errors, warnings'
156+
UV_CFG='[uv]\npypi_mirror = "https://pypi.org/simple"\ncache_dir = "~/.cache/uv"\n'
157+
PYTHON_CFG='[startup]\n# Put any sitecustomize or startup hooks here\n'
158+
create_xdg_config "ruff" "$RUFF_CFG"
159+
create_xdg_config "uv" "$UV_CFG"
160+
create_xdg_config "python" "$PYTHON_CFG"
161+
echo
162+
echo "✅ Python $PY_VERS has been built and installed in $BIN_DIR"
163+
if [ "$FREE_THREADED" = "yes" ]; then
164+
echo " (Free-threaded interpreter enabled!)"
165+
fi
166+
echo "→ Test it with: $PYTHON_PATH --version"
167+
echo "→ Your pip is: $PIP_PATH"
168+
echo "→ pyenv (if installed) is in \$HOME/.pyenv; add to your PATH if desired."
169+
echo "→ ruff and uv are installed in ~/.local/bin (and can be configured in $XDG_CONFIG_HOME/)"
170+
echo "→ All binaries/libs/configs are under ~/.local/, ~/.pyenv/, ~/.config/"
171+
echo "→ Add '$BIN_DIR' to your shell \$PATH if not already present."
172+
echo "→ For custom packages, use: $PIP_PATH install --user ..."
173+
echo "→ To uninstall, just rm -rf $LOCAL_PREFIX/{bin/lib/share} $SRC_DIR/cpython ~/.pyenv ~/.cache/ruff ~/.cache/uv $XDG_CONFIG_HOME/ruff $XDG_CONFIG_HOME/uv"
174+
echo "─ Ready, Set, Python! ─"
175+
exit 0

scripts/setup.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ mkdir -p "$HOME/.cache/torch"
1616
mkdir -p "$HOME/.config/ipython"
1717
mkdir -p "$HOME/.config/jupyter"
1818
mkdir -p "$HOME/.config/matplotlib"
19-
mkdir -p "$HOME/.config" # For pythonrc.py
19+
mkdir -p "$HOME/.config"
2020
mkdir -p "$HOME/.local/share/poetry"
2121
mkdir -p "$HOME/.virtualenvs"
2222
PYTHON_VERSION=$(python3 -c 'import sys; print(f"{sys.version_info.major}.{sys.version_info.minor}")')
2323
mkdir -p "$HOME/.local/lib/python${PYTHON_VERSION}/site-packages"
2424
chmod 755 "$HOME/.cache" "$HOME/.config" "$HOME/.local" "$HOME/.virtualenvs" 2>/dev/null || true
2525
chmod -R 755 "$HOME/.cache"/* "$HOME/.config"/* "$HOME/.local"/* 2>/dev/null || true
2626
if [[ ! -f "$HOME/.config/pythonrc.py" ]]; then
27-
cat > "$HOME/.config/pythonrc.py" << 'EOF'
27+
cat >"$HOME/.config/pythonrc.py" <<'EOF'
2828
# Python startup configuration
2929
import sys
3030
import os

0 commit comments

Comments
 (0)