python-package-folder 0.1.0__tar.gz → 1.1.0__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 (43) hide show
  1. python_package_folder-1.1.0/.github/workflows/ci.yml +126 -0
  2. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/.vscode/settings.json +1 -0
  3. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/PKG-INFO +349 -98
  4. python_package_folder-1.1.0/README.md +775 -0
  5. python_package_folder-1.1.0/coverage.svg +20 -0
  6. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/pyproject.toml +2 -0
  7. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/src/python_package_folder/__init__.py +5 -0
  8. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/src/python_package_folder/finder.py +41 -11
  9. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/src/python_package_folder/manager.py +141 -12
  10. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/src/python_package_folder/publisher.py +63 -6
  11. python_package_folder-1.1.0/src/python_package_folder/python_package_folder.py +237 -0
  12. python_package_folder-1.1.0/src/python_package_folder/subfolder_build.py +466 -0
  13. python_package_folder-1.1.0/src/python_package_folder/utils.py +107 -0
  14. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/src/python_package_folder/version.py +1 -2
  15. python_package_folder-1.1.0/tests/folder_structure/subfolder_to_build/README.md +3 -0
  16. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/tests/test_build_with_external_deps.py +2 -2
  17. python_package_folder-1.1.0/tests/test_publisher.py +203 -0
  18. python_package_folder-1.1.0/tests/test_subfolder_build.py +360 -0
  19. python_package_folder-1.1.0/tests/test_utils.py +159 -0
  20. python_package_folder-1.1.0/tests/test_version_manager.py +148 -0
  21. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/tests/tests.py +2 -2
  22. python_package_folder-1.1.0/uv.lock +840 -0
  23. python_package_folder-0.1.0/.github/workflows/ci.yml +0 -63
  24. python_package_folder-0.1.0/README.md +0 -524
  25. python_package_folder-0.1.0/src/python_package_folder/python_package_folder.py +0 -151
  26. python_package_folder-0.1.0/uv.lock +0 -231
  27. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/.copier-answers.yml +0 -0
  28. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/.cursor/rules/general.mdc +0 -0
  29. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/.cursor/rules/python.mdc +0 -0
  30. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/.github/workflows/publish.yml +0 -0
  31. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/.gitignore +0 -0
  32. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/LICENSE +0 -0
  33. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/Makefile +0 -0
  34. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/development.md +0 -0
  35. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/installation.md +0 -0
  36. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/publishing.md +0 -0
  37. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/src/python_package_folder/__main__.py +0 -0
  38. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/src/python_package_folder/analyzer.py +0 -0
  39. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/src/python_package_folder/py.typed +0 -0
  40. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/src/python_package_folder/types.py +0 -0
  41. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/tests/folder_structure/some_globals.py +0 -0
  42. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/tests/folder_structure/subfolder_to_build/some_function.py +0 -0
  43. {python_package_folder-0.1.0 → python_package_folder-1.1.0}/tests/folder_structure/utility_folder/some_utility.py +0 -0
@@ -0,0 +1,126 @@
1
+ # This workflow will install Python dependencies, run tests and lint with a single version of Python
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
3
+
4
+ name: CI
5
+
6
+ on:
7
+ push:
8
+ # Use ["main", "master"] for CI only on the default branch.
9
+ # Use ["**"] for CI on all branches.
10
+ branches: ["main", "master"]
11
+ pull_request:
12
+ branches: ["main", "master"]
13
+
14
+ permissions:
15
+ contents: write
16
+
17
+ jobs:
18
+ build:
19
+ strategy:
20
+ matrix:
21
+ # Update this as needed:
22
+ # Common platforms: ["ubuntu-latest", "macos-latest", "windows-latest"]
23
+ os: ["ubuntu-latest"]
24
+ python-version: ["3.11", "3.12", "3.13"]
25
+
26
+ # Linux only by default. Use ${{ matrix.os }} for other OSes.
27
+ runs-on: ${{ matrix.os }}
28
+
29
+ steps:
30
+ # Generally following uv docs:
31
+ # https://docs.astral.sh/uv/guides/integration/github/
32
+
33
+ - name: Checkout (official GitHub action)
34
+ uses: actions/checkout@v4
35
+ with:
36
+ # Important for versioning plugins:
37
+ fetch-depth: 0
38
+
39
+ - name: Install uv (official Astral action)
40
+ uses: astral-sh/setup-uv@v5
41
+ with:
42
+ # Update this as needed:
43
+ version: "0.9.5"
44
+ enable-cache: true
45
+ python-version: ${{ matrix.python-version }}
46
+
47
+ - name: Set up Python (using uv)
48
+ run: uv python install
49
+
50
+ # Alternately can use the official Python action:
51
+ # - name: Set up Python (using actions/setup-python)
52
+ # uses: actions/setup-python@v5
53
+ # with:
54
+ # python-version: ${{ matrix.python-version }}
55
+
56
+ - name: Install all dependencies
57
+ run: uv sync --all-extras
58
+
59
+ - name: Run linting
60
+ run: uv run ruff check .
61
+
62
+ - name: Run type checking
63
+ run: uv run basedpyright src/ || true
64
+
65
+ - name: Run tests with coverage
66
+ run: uv run pytest --cov=src/python_package_folder --cov-report=xml --cov-report=term tests/
67
+
68
+ - name: Generate coverage badge
69
+ if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
70
+ run: |
71
+ python -c "
72
+ import xml.etree.ElementTree as ET
73
+ import re
74
+
75
+ # Parse coverage.xml
76
+ tree = ET.parse('coverage.xml')
77
+ root = tree.getroot()
78
+
79
+ # Get coverage percentage
80
+ line_rate = float(root.get('line-rate', 0))
81
+ coverage_percent = int(line_rate * 100)
82
+
83
+ # Determine color based on coverage
84
+ if coverage_percent >= 80:
85
+ color = '44cc11'
86
+ elif coverage_percent >= 60:
87
+ color = 'dfb317'
88
+ elif coverage_percent >= 40:
89
+ color = 'fe7d37'
90
+ else:
91
+ color = 'e05d44'
92
+
93
+ # Generate SVG badge
94
+ svg = f'''<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"99\" height=\"20\">
95
+ <linearGradient id=\"b\" x2=\"0\" y2=\"100%\">
96
+ <stop offset=\"0\" stop-color=\"#bbb\" stop-opacity=\".1\"/>
97
+ <stop offset=\"1\" stop-opacity=\".1\"/>
98
+ </linearGradient>
99
+ <mask id=\"a\">
100
+ <rect width=\"99\" height=\"20\" rx=\"3\" fill=\"#fff\"/>
101
+ </mask>
102
+ <g mask=\"url(#a)\">
103
+ <path fill=\"#555\" d=\"M0 0h63v20H0z\"/>
104
+ <path fill=\"#{color}\" d=\"M63 0h36v20H63z\"/>
105
+ <path fill=\"url(#b)\" d=\"M0 0h99v20H0z\"/>
106
+ </g>
107
+ <g fill=\"#fff\" text-anchor=\"middle\" font-family=\"DejaVu Sans,Verdana,Geneva,sans-serif\" font-size=\"11\">
108
+ <text x=\"31.5\" y=\"15\" fill=\"#010101\" fill-opacity=\".3\">coverage</text>
109
+ <text x=\"31.5\" y=\"14\">coverage</text>
110
+ <text x=\"81\" y=\"15\" fill=\"#010101\" fill-opacity=\".3\">{coverage_percent}%</text>
111
+ <text x=\"81\" y=\"14\">{coverage_percent}%</text>
112
+ </g>
113
+ </svg>'''
114
+
115
+ with open('coverage.svg', 'w') as f:
116
+ f.write(svg)
117
+ "
118
+
119
+ - name: Commit coverage badge
120
+ if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
121
+ run: |
122
+ git config --local user.email "action@github.com"
123
+ git config --local user.name "GitHub Action"
124
+ git add coverage.svg || true
125
+ git diff --staged --quiet || git commit -m "Update coverage badge [skip ci]"
126
+ git push || true
@@ -1,4 +1,5 @@
1
1
  {
2
+ "markdown.extension.toc.levels": "1..2",
2
3
  "python.testing.pytestArgs": [
3
4
  "tests"
4
5
  ],