dataflow-conda-plugin 0.1.7rc4__tar.gz → 0.1.7rc5__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dataflow-conda-plugin might be problematic. Click here for more details.

@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataflow-conda-plugin
3
- Version: 0.1.7rc4
3
+ Version: 0.1.7rc5
@@ -1,3 +1,3 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dataflow-conda-plugin
3
- Version: 0.1.7rc4
3
+ Version: 0.1.7rc5
@@ -1,4 +1,4 @@
1
- import subprocess, sys, pkg_resources, os, requests
1
+ import subprocess, sys, pkg_resources, os, requests, re, sys
2
2
  from conda import plugins
3
3
  from conda.base.context import context
4
4
  from dataflow.utils.logger import CustomLogger
@@ -147,6 +147,24 @@ def package_operations(command: str):
147
147
  if should_update_db:
148
148
  mark_environment_for_refresh(env_name)
149
149
 
150
+ def set_pip_constraint(command: str):
151
+ """Set PIP_CONSTRAINT environment variable based on Python version."""
152
+ if "NO_CONDA_PLUGIN_PIP_CONSTRAINT" in os.environ:
153
+ return
154
+ for arg in sys.argv:
155
+ if arg.startswith("python"):
156
+ # Match python=3.10, python=3.10.1, python=3.11, python=3.11.5, etc.
157
+ match = re.fullmatch(r"python=(3\.10(\.\d+)?|3\.11(\.\d+)?|3\.12(\.\d+)?)", arg)
158
+ if not match:
159
+ raise ValueError(f"Invalid argument: {arg}! Only Python 3.10, 3.11, and 3.12 are supported.")
160
+ version = match.group(1)
161
+ major_minor = ".".join(version.split(".")[:2])
162
+ break
163
+ else:
164
+ major_minor = "3.12"
165
+ # Set PIP_CONSTRAINT environment variable to the appropriate constraint file
166
+ os.environ["PIP_CONSTRAINT"] = f"/dataflow/tmp/pip_constraints/py{major_minor}-constraints.txt"
167
+
150
168
  @plugins.hookimpl
151
169
  def conda_post_commands():
152
170
  yield plugins.CondaPostCommand(
@@ -158,4 +176,12 @@ def conda_post_commands():
158
176
  name=f"package_operations_post_command",
159
177
  action=package_operations,
160
178
  run_for={"install", "remove", "update"},
179
+ )
180
+
181
+ @plugins.hookimpl
182
+ def conda_pre_commands():
183
+ yield plugins.CondaPreCommand(
184
+ name="set_pip_constraint",
185
+ action=set_pip_constraint,
186
+ run_for={"create"},
161
187
  )
@@ -4,13 +4,13 @@ conda_env_path=$1
4
4
 
5
5
  py_version=$(${conda_env_path}/bin/python -c "import sys; print('.'.join(map(str, sys.version_info[:2])))")
6
6
 
7
- ${conda_env_path}/bin/pip install --index-url https://pypi.org/simple dash==3.0.3 dash-renderer==1.9.1 plotly==6.0.1 typing==3.7.4.3 streamlit==1.45.1 ipython==9.2.0 ipykernel==6.29.5 ipython-sql==0.4.1 jupysql==0.10.14 psycopg2-binary==2.9.10 cryptography==44.0.3 dataflow-core==2.1.14rc2 dataflow-dbt==0.0.3
7
+ ${conda_env_path}/bin/pip install --index-url https://pypi.org/simple dash==3.0.3 dash-renderer==1.9.1 plotly==6.0.1 typing==3.7.4.3 streamlit==1.45.1 ipython==8.37.0 ipykernel==6.29.5 ipython-sql==0.4.1 jupysql==0.10.14 psycopg2-binary==2.9.10 dataflow-core==2.1.14rc3 dataflow-dbt==0.0.3
8
8
 
9
9
  # 3. Install Dataflow Airflow to a separate path in environment
10
10
  ${conda_env_path}/bin/pip install --index-url https://pypi.org/simple \
11
11
  --force-reinstall --root-user-action ignore \
12
12
  --no-warn-conflicts dataflow-airflow==2.10.7 \
13
- --constraint https://raw.githubusercontent.com/apache/airflow/constraints-2.10.5/constraints-${py_version}.txt \
13
+ --constraint /dataflow/setup/pip_constraints/airflow_constraints${py_version}.txt \
14
14
  --target ${conda_env_path}/bin/airflow-libraries/
15
15
 
16
16
  files=(
@@ -14,7 +14,7 @@ class PostInstall(install):
14
14
 
15
15
  setup(
16
16
  name="dataflow-conda-plugin",
17
- version="0.1.7rc4",
17
+ version="0.1.7rc5",
18
18
  entry_points={"conda": ["dataflow-conda-plugin = plugin.plugin"]},
19
19
  packages=find_packages(include=["plugin"]),
20
20
  package_data={'plugin': ['scripts/*.sh']},