Skip to content

A few Python fixes #1471

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
May 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion pgml-extension/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

97 changes: 97 additions & 0 deletions pgml-extension/requirements.py312.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
accelerate==0.30.1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm guessing these are linux python 3.12 requirements. Why not replace requirements.linux.txt with this, and document 3.12 as the Python version required, to avoid sprawling too much. These frozen requirements are for deployments/dockerfiles more than development.

Copy link
Contributor Author

@levkk levkk May 17, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm guessing these are linux python 3.12 requirements.

Don't have to guess, it's in the PR description.

Why not replace requirements.linux.txt with this, and document 3.12 as the Python version required, to avoid sprawling too much.

ray doesn't run on Python 3.12 and above, which is required by vllm and pgml.transform_stream(). So we actually don't have full support for our extension in Python 3.12.

These frozen requirements are for deployments/dockerfiles more than development.

Well, we have to start somewhere. I need this to run on Python 3.12 locally since I've seen the light and now am using Arch with latest available Python version. Arch users now officially outnumber Ubuntu users, so ...there you go.

aiohttp==3.9.5
aiosignal==1.3.1
annotated-types==0.6.0
attrs==23.2.0
certifi==2024.2.2
charset-normalizer==3.3.2
colorama==0.4.6
dataclasses-json==0.6.6
datasets==2.19.1
dill==0.3.8
docstring_parser==0.16
evaluate==0.4.2
filelock==3.14.0
frozenlist==1.4.1
fsspec==2024.3.1
greenlet==3.0.3
huggingface-hub==0.23.0
idna==3.7
Jinja2==3.1.4
joblib==1.4.2
jsonpatch==1.33
jsonpointer==2.4
langchain==0.1.20
langchain-community==0.0.38
langchain-core==0.1.52
langchain-text-splitters==0.0.2
langsmith==0.1.59
lightgbm==4.3.0
lxml==5.2.2
markdown-it-py==3.0.0
MarkupSafe==2.1.5
marshmallow==3.21.2
mdurl==0.1.2
mpmath==1.3.0
multidict==6.0.5
multiprocess==0.70.16
mypy-extensions==1.0.0
networkx==3.3
numpy==1.26.4
nvidia-cublas-cu12==12.1.3.1
nvidia-cuda-cupti-cu12==12.1.105
nvidia-cuda-nvrtc-cu12==12.1.105
nvidia-cuda-runtime-cu12==12.1.105
nvidia-cudnn-cu12==8.9.2.26
nvidia-cufft-cu12==11.0.2.54
nvidia-curand-cu12==10.3.2.106
nvidia-cusolver-cu12==11.4.5.107
nvidia-cusparse-cu12==12.1.0.106
nvidia-nccl-cu12==2.20.5
nvidia-nvjitlink-cu12==12.4.127
nvidia-nvtx-cu12==12.1.105
orjson==3.10.3
packaging==23.2
pandas==2.2.2
peft==0.11.0
pillow==10.3.0
portalocker==2.8.2
psutil==5.9.8
pyarrow==16.1.0
pyarrow-hotfix==0.6
pydantic==2.7.1
pydantic_core==2.18.2
Pygments==2.18.0
python-dateutil==2.9.0.post0
pytz==2024.1
PyYAML==6.0.1
regex==2024.5.15
requests==2.31.0
rich==13.7.1
rouge==1.0.1
sacrebleu==2.4.2
safetensors==0.4.3
scikit-learn==1.4.2
scipy==1.13.0
sentence-transformers==2.7.0
setuptools==69.5.1
shtab==1.7.1
six==1.16.0
SQLAlchemy==2.0.30
sympy==1.12
tabulate==0.9.0
tenacity==8.3.0
threadpoolctl==3.5.0
tokenizers==0.19.1
torch==2.3.0
tqdm==4.66.4
transformers==4.40.2
trl==0.8.6
typing-inspect==0.9.0
typing_extensions==4.11.0
tyro==0.8.4
tzdata==2024.1
urllib3==2.2.1
xgboost==2.0.3
xxhash==3.4.1
yarl==1.9.4
3 changes: 2 additions & 1 deletion pgml-extension/src/bindings/python/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,9 @@ pub fn pip_freeze() -> Result<TableIterator<'static, (name!(package, String),)>>
pub fn validate_dependencies() -> Result<bool> {
Python::with_gil(|py| {
let sys = PyModule::import(py, "sys").unwrap();
let executable: String = sys.getattr("executable").unwrap().extract().unwrap();
let version: String = sys.getattr("version").unwrap().extract().unwrap();
info!("Python version: {version}");
info!("Python version: {version}, executable: {}", executable);
for module in ["xgboost", "lightgbm", "numpy", "sklearn"] {
match py.import(module) {
Ok(_) => (),
Expand Down
2 changes: 1 addition & 1 deletion pgml-extension/src/bindings/python/python.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ def activate_venv(venv):
__venv = venv
return True
else:
print("Virtualenv not found: %s" % venv)
print("virtualenv not found: %s" % venv, file=sys.stderr)
return False


Expand Down