python-package-folder 1.4.0__tar.gz → 1.4.1__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.
Files changed (41) hide show
  1. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/PKG-INFO +1 -1
  2. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/manager.py +17 -0
  3. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/publisher.py +14 -0
  4. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/.copier-answers.yml +0 -0
  5. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/.cursor/rules/general.mdc +0 -0
  6. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/.cursor/rules/python.mdc +0 -0
  7. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/.github/workflows/ci.yml +0 -0
  8. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/.github/workflows/publish.yml +0 -0
  9. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/.gitignore +0 -0
  10. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/.vscode/settings.json +0 -0
  11. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/LICENSE +0 -0
  12. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/Makefile +0 -0
  13. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/README.md +0 -0
  14. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/coverage.svg +0 -0
  15. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/development.md +0 -0
  16. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/installation.md +0 -0
  17. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/publishing.md +0 -0
  18. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/pyproject.toml +0 -0
  19. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/__init__.py +0 -0
  20. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/__main__.py +0 -0
  21. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/analyzer.py +0 -0
  22. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/finder.py +0 -0
  23. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/py.typed +0 -0
  24. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/python_package_folder.py +0 -0
  25. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/subfolder_build.py +0 -0
  26. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/types.py +0 -0
  27. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/utils.py +0 -0
  28. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/src/python_package_folder/version.py +0 -0
  29. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/folder_structure/some_globals.py +0 -0
  30. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/folder_structure/subfolder_to_build/README.md +0 -0
  31. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/folder_structure/subfolder_to_build/some_function.py +0 -0
  32. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/folder_structure/utility_folder/_SS/some_superseded_file.py +0 -0
  33. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/folder_structure/utility_folder/some_utility.py +0 -0
  34. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/test_build_with_external_deps.py +0 -0
  35. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/test_linting.py +0 -0
  36. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/test_publisher.py +0 -0
  37. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/test_subfolder_build.py +0 -0
  38. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/test_utils.py +0 -0
  39. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/test_version_manager.py +0 -0
  40. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/tests/tests.py +0 -0
  41. {python_package_folder-1.4.0 → python_package_folder-1.4.1}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: python-package-folder
3
- Version: 1.4.0
3
+ Version: 1.4.1
4
4
  Summary: Python package to automatically package and build a folder, fetching all relevant dependencies.
5
5
  Project-URL: Repository, https://github.com/alelom/python-package-folder
6
6
  Author-email: Alessio Lombardi <work@alelom.com>
@@ -700,6 +700,11 @@ class BuildManager:
700
700
  publish_package_name = self.subfolder_config.package_name
701
701
  elif package_name:
702
702
  publish_package_name = package_name
703
+ else:
704
+ # Last resort: derive from src_dir name
705
+ publish_package_name = (
706
+ self.src_dir.name.replace("_", "-").replace(" ", "-").lower().strip("-")
707
+ )
703
708
  else:
704
709
  # For regular builds, get package name from pyproject.toml
705
710
  try:
@@ -718,6 +723,18 @@ class BuildManager:
718
723
  if "project" in data and "name" in data["project"]:
719
724
  publish_package_name = data["project"]["name"]
720
725
 
726
+ # Ensure we have package name and version for filtering
727
+ if is_subfolder_build and not publish_package_name:
728
+ raise ValueError(
729
+ "Could not determine package name for subfolder build. "
730
+ "Please specify --package-name explicitly."
731
+ )
732
+ if is_subfolder_build and not publish_version:
733
+ raise ValueError(
734
+ "Version is required for subfolder builds. "
735
+ "Please specify --version explicitly."
736
+ )
737
+
721
738
  publisher = Publisher(
722
739
  repository=repository,
723
740
  dist_dir=self.project_root / "dist",
@@ -219,7 +219,21 @@ class Publisher:
219
219
 
220
220
  if matches:
221
221
  dist_files.append(f)
222
+
223
+ # Debug output to help diagnose filtering issues
224
+ if dist_files:
225
+ print(f"Filtering: package='{self.package_name}', version='{self.version}'")
226
+ print(f"Matched {len(dist_files)} files:")
227
+ for f in dist_files:
228
+ print(f" - {f.name}")
222
229
  else:
230
+ # If no package name or version provided, warn and upload all files
231
+ if not self.package_name or not self.version:
232
+ print(
233
+ f"Warning: No package name or version specified for filtering. "
234
+ f"Uploading all {len(all_dist_files)} files in dist/ directory.",
235
+ file=sys.stderr,
236
+ )
223
237
  dist_files = all_dist_files
224
238
 
225
239
  if not dist_files: