Skip to content

Commit 1120c1c

Browse files
committed
feat: Initial project scaffolding and configuration
- Add pyproject.toml with project metadata and dependencies (black, isort, loguru, pydantic, pylint, pytest, etc.) - Add uv.lock and .python-version for Python 3.13 environment management - Add .pylintrc for Google style and Pylint-Pydantic integration - Add VS Code settings for Python analysis - Add GitHub Actions workflows for uv cache and linting - Add src/ package with core config and logging modules (Loguru setup) - Add main.py entry point using settings and logger - Add tests/ with pytest for main function - Add __init__.py files for package structure
1 parent 21ce010 commit 1120c1c

14 files changed

Lines changed: 1037 additions & 0 deletions

File tree

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
name: Build uv cache
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- 'uv.lock'
9+
- 'pyproject.toml'
10+
workflow_dispatch:
11+
12+
jobs:
13+
build-cache:
14+
runs-on: ubuntu-latest
15+
env:
16+
UV_VERSION: '0.9.27'
17+
PYTHON_VERSION: '3.13'
18+
19+
steps:
20+
- name: Checkout repository
21+
uses: actions/checkout@v4
22+
23+
- name: Install uv
24+
uses: astral-sh/setup-uv@v6
25+
with:
26+
version: ${{ env.UV_VERSION }}
27+
python-version: ${{ env.PYTHON_VERSION }}
28+
enable-cache: false
29+
30+
- name: Install dependencies and populate cache
31+
run: |
32+
echo "Building global UV cache..."
33+
uv sync --group dev
34+
echo "Cache populated successfully"
35+
36+
- name: Save uv caches
37+
uses: actions/cache/save@v4
38+
with:
39+
path: |
40+
~/.cache/uv
41+
~/.local/share/uv
42+
.venv
43+
key: uv-main-${{ env.UV_VERSION }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}

.github/workflows/uv-build.yaml

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: UV Build - Pylint Lint
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- '*'
7+
8+
jobs:
9+
pylint-lint:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: read
13+
env:
14+
UV_VERSION: '0.8.4'
15+
PYTHON_VERSION: '3.13'
16+
17+
steps:
18+
- name: Checkout repository
19+
uses: actions/checkout@v4
20+
21+
- name: Restore global uv cache
22+
id: cache-restore
23+
uses: actions/cache/restore@v4
24+
with:
25+
path: |
26+
~/.cache/uv
27+
~/.local/share/uv
28+
.venv
29+
key: uv-main-${{ env.UV_VERSION }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}
30+
restore-keys: |
31+
uv-main-
32+
33+
- name: Install uv
34+
uses: astral-sh/setup-uv@v6
35+
with:
36+
version: ${{ env.UV_VERSION }}
37+
python-version: ${{ env.PYTHON_VERSION }}
38+
enable-cache: false
39+
40+
- name: Install dependencies
41+
run: uv sync --group dev
42+
43+
- name: Run pylint
44+
run: uv run -- pylint src
45+
46+
- name: Save uv caches
47+
if: steps.cache-restore.outputs.cache-hit != 'true'
48+
uses: actions/cache/save@v4
49+
with:
50+
path: |
51+
~/.cache/uv
52+
~/.local/share/uv
53+
.venv
54+
key: uv-main-${{ env.UV_VERSION }}-${{ env.PYTHON_VERSION }}-${{ hashFiles('pyproject.toml', 'uv.lock') }}

0 commit comments

Comments
 (0)