pipu-cli 0.1.dev4__py3-none-any.whl → 0.1.dev5__py3-none-any.whl

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.
pipu_cli/__init__.py CHANGED
@@ -1,7 +1,7 @@
1
1
  import logging
2
2
  from .config import LOG_LEVEL
3
3
 
4
- __version__ = '0.1.dev4'
4
+ __version__ = '0.1.dev5'
5
5
 
6
6
 
7
7
  # Configure logging
pipu_cli/internals.py CHANGED
@@ -787,10 +787,10 @@ def update_packages_preserving_editable(
787
787
 
788
788
  if not is_editable:
789
789
  # Regular package update
790
- if latest_version:
791
- install_cmd = [sys.executable, "-m", "pip", "install", f"{package_name}=={latest_version}"]
792
- else:
793
- install_cmd = [sys.executable, "-m", "pip", "install", "--upgrade", package_name]
790
+ # Use --upgrade instead of pinning to specific versions to allow pip's
791
+ # dependency resolver to handle interdependent packages correctly
792
+ # (e.g., pydantic and pydantic-core, boto3 and botocore)
793
+ install_cmd = [sys.executable, "-m", "pip", "install", "--upgrade", package_name]
794
794
 
795
795
  returncode, stdout, stderr = run_with_cancel(install_cmd, timeout=timeout)
796
796
 
@@ -1020,20 +1020,12 @@ class PackageUpdateScreen(ModalScreen[None]):
1020
1020
  constraint_file.close()
1021
1021
  self.app.call_from_thread(self._log_message, f"[dim]Using filtered constraints (excluding {len(packages_being_updated)} package(s) being updated)[/dim]")
1022
1022
 
1023
- # Build list of package specs to update, respecting constraints
1024
- package_specs = []
1023
+ # Build list of package names to update
1024
+ # Use --upgrade instead of pinning versions to avoid dependency conflicts
1025
+ # when updating interdependent packages (e.g., pydantic and pydantic-core)
1025
1026
  package_names = []
1026
1027
  for pkg in self.selected_packages:
1027
1028
  package_names.append(pkg["name"])
1028
- # Check if package has a constraint that should be applied instead of latest version
1029
- constraint = pkg.get('constraint')
1030
- if constraint:
1031
- # Apply the constraint instead of pinning to latest version
1032
- spec = f"{pkg['name']}{constraint}"
1033
- else:
1034
- # No constraint, use latest version
1035
- spec = f"{pkg['name']}=={pkg['latest_version']}"
1036
- package_specs.append(spec)
1037
1029
 
1038
1030
  self.app.call_from_thread(self._update_status, f"Updating {total_packages} packages...")
1039
1031
  self.app.call_from_thread(self._log_message, f"{'='*70}")
@@ -1042,8 +1034,10 @@ class PackageUpdateScreen(ModalScreen[None]):
1042
1034
  self.app.call_from_thread(self._log_message, f" ... and {len(package_names) - 5} more")
1043
1035
  self.app.call_from_thread(self._log_message, f"{'='*70}\n")
1044
1036
 
1045
- # Prepare pip command to install all packages at once with proper version specs
1046
- pip_cmd = [sys.executable, "-m", "pip", "install"] + package_specs
1037
+ # Prepare pip command to install all packages with --upgrade
1038
+ # This allows pip's dependency resolver to find compatible versions
1039
+ # for interdependent packages (e.g., pydantic requires specific pydantic-core)
1040
+ pip_cmd = [sys.executable, "-m", "pip", "install", "--upgrade"] + package_names
1047
1041
 
1048
1042
  # Set up environment with constraint file if available
1049
1043
  env = os.environ.copy()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pipu-cli
3
- Version: 0.1.dev4
3
+ Version: 0.1.dev5
4
4
  Summary: A cute Python package updater
5
5
  Author-email: Scott Arne Johnson <scott.arne.johnson@gmail.com>
6
6
  License-Expression: MIT
@@ -1,19 +1,19 @@
1
- pipu_cli/__init__.py,sha256=ftE6SwRQUnMZwrCU25nvb-X0ASkV_TPiqhURZfbbaPU,1190
1
+ pipu_cli/__init__.py,sha256=c6A1uB6wkExOK4rptn9LBAd6FaSBplB1jxURCwoNFWY,1190
2
2
  pipu_cli/cli.py,sha256=aCN2Fz1bWhXs8MC7kqy5GdzJggNtTdumW4PQkxKOBpg,39993
3
3
  pipu_cli/common.py,sha256=g5krfXFsvVJpOf87Vw4DGi5WIduDgMlRuONKXqO328M,78
4
4
  pipu_cli/config.py,sha256=xsfNU4ORAujla_FGfsMKpxy7QTpd_bJhRF_u4IPKLW0,3635
5
- pipu_cli/internals.py,sha256=u8J2df2rirOSgpeX3yp3ZHRLWyiqm7cMgo6TRFE8shU,35032
5
+ pipu_cli/internals.py,sha256=m_aF-yrOT5UJt54vv6X2gEukgokFXkz0m9SAKRofir0,35101
6
6
  pipu_cli/package_constraints.py,sha256=6LSFlC93HNIFym7dYkfYn0fsOic6QDe1ADyghK94Pk8,93052
7
7
  pipu_cli/thread_safe.py,sha256=zdQyCoMVJW73MC-d1pL_4ZO-K4AwkI0JeVyQsd8x7nY,7545
8
8
  pipu_cli/utils.py,sha256=ijSHKVuKbjmRbj2RwD9S1606PeY4oDiutzhutpX25wM,5842
9
9
  pipu_cli/ui/__init__.py,sha256=nCb_3G_vZXy5_Or9z9r-3XhYV1ppUR1r7nMZ9_6Srwg,1432
10
10
  pipu_cli/ui/apps.py,sha256=ltH24sg-3nqVpoomgCwhVYuAwq3hBUwYRH60JXtV2Yg,59771
11
11
  pipu_cli/ui/constants.py,sha256=HBPf4KYWHiT18c7ciQ0HeI7gZE3VIFOT0uobLU8YxQA,445
12
- pipu_cli/ui/modal_dialogs.py,sha256=_Q6BIJBX9l6CpqDILH3WqPfKYMqRlDnMLNUelIhZdUM,48248
12
+ pipu_cli/ui/modal_dialogs.py,sha256=-Trh60n2mev6Pr-aIvetJHnXqqoJaVDmA3c8xH_xePM,47974
13
13
  pipu_cli/ui/table_widgets.py,sha256=PC0CqqrK3KgMbTCYRPG01lxkEtRBz9xr9PN8EzoObz8,14322
14
- pipu_cli-0.1.dev4.dist-info/licenses/LICENSE,sha256=q6TxVbSI0WMB9ulF2V0FWQfeA5om3d-T9X7QwuhdiYE,1075
15
- pipu_cli-0.1.dev4.dist-info/METADATA,sha256=jSrp9kzQLwM6zr60AwSeiiZ6eqpBD1TK0IsoWLwQPSs,13200
16
- pipu_cli-0.1.dev4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
17
- pipu_cli-0.1.dev4.dist-info/entry_points.txt,sha256=VSv6od00zOPblnFPflNLaci4jBtQIgLYJjL1BKxLz_o,42
18
- pipu_cli-0.1.dev4.dist-info/top_level.txt,sha256=z3Yce93-jGQjGRpsGZUZvbS8osh3OyS7MVpzG0uBE5M,9
19
- pipu_cli-0.1.dev4.dist-info/RECORD,,
14
+ pipu_cli-0.1.dev5.dist-info/licenses/LICENSE,sha256=q6TxVbSI0WMB9ulF2V0FWQfeA5om3d-T9X7QwuhdiYE,1075
15
+ pipu_cli-0.1.dev5.dist-info/METADATA,sha256=uV-3D56gMhQSSe8aK0V1t7gUPSSihd0pHWsjObLC6pA,13200
16
+ pipu_cli-0.1.dev5.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
17
+ pipu_cli-0.1.dev5.dist-info/entry_points.txt,sha256=VSv6od00zOPblnFPflNLaci4jBtQIgLYJjL1BKxLz_o,42
18
+ pipu_cli-0.1.dev5.dist-info/top_level.txt,sha256=z3Yce93-jGQjGRpsGZUZvbS8osh3OyS7MVpzG0uBE5M,9
19
+ pipu_cli-0.1.dev5.dist-info/RECORD,,