Skip to content

Commit c66bd89

Browse files
committed
Add Cython compilation and update project infrastructure
- Introduce Cython compilation for performance optimization - Update SPDX headers across codebase for REUSE compliance - Simplify type annotations and modernize build system - Enhance CI/CD workflows and development tooling - Support for Python >=3.10
1 parent 60676ca commit c66bd89

20 files changed

Lines changed: 175 additions & 49 deletions

.github/CODE_OF_CONDUCT.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
<!-- SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com> -->
2-
<!-- SPDX-License-Identifier: ISC -->
1+
<!--
2+
SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
33
4+
SPDX-License-Identifier: ISC
5+
-->
46
# Code of Conduct
57

68
## Our Pledge

.github/CONTRIBUTING.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
<!-- SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com> -->
2-
<!-- SPDX-License-Identifier: ISC -->
1+
<!--
2+
SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
33
4+
SPDX-License-Identifier: ISC
5+
-->
46
# Contributing
57

68
## Development Setup

.github/ISSUE_TEMPLATES/bug_report.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
<!-- SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com> -->
2-
<!-- SPDX-License-Identifier: ISC -->
1+
<!--
2+
SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
33
4+
SPDX-License-Identifier: ISC
5+
-->
46
---
57
name: Bug Report
68
about: Report a bug

.github/ISSUE_TEMPLATES/feature_request.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
<!-- SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com> -->
2-
<!-- SPDX-License-Identifier: ISC -->
1+
<!--
2+
SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
33
4+
SPDX-License-Identifier: ISC
5+
-->
46
---
57
name: Feature Request
68
about: Suggest a new feature

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
<!-- SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com> -->
2-
<!-- SPDX-License-Identifier: ISC -->
1+
<!--
2+
SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
33
4+
SPDX-License-Identifier: ISC
5+
-->
46
## Description
57

68
Brief description of changes.

.github/SECURITY.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
<!-- SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com> -->
2-
<!-- SPDX-License-Identifier: ISC -->
1+
<!--
2+
SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
33
4+
SPDX-License-Identifier: ISC
5+
-->
46
# Security Policy
57

68
## Reporting Vulnerabilities

.github/copilot-instructions.md

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
<!-- SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com> -->
2-
<!-- SPDX-License-Identifier: ISC -->
1+
<!--
2+
SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
33
4+
SPDX-License-Identifier: ISC
5+
-->
46
# AI Coding Guidelines for apywire
57

68
## Overview
@@ -15,8 +17,8 @@ apywire is a Python library for object wiring with lazy loading. It provides dep
1517

1618
## Developer Workflows
1719
- **Full Check**: `make all` (format, lint, test coverage)
18-
- **Build & Publish**: `make build` (creates dist/), `make publish` (uploads to PyPI)
19-
- **Clean**: `make clean` (removes __pycache__, .coverage, etc.)
20+
- **Build & Publish**: `make dist` (ensures dist/), `make publish` (uploads to PyPI)
21+
- **Clean**: `make clean` (removes dist/, __pycache__, .coverage, etc.)
2022
- **Debug**: Use `pytest -xvs` for verbose test runs
2123

2224
## Conventions
@@ -29,7 +31,6 @@ apywire is a Python library for object wiring with lazy loading. It provides dep
2931
## Examples
3032
- **Lazy Access**: `wired = wire(spec); obj = wired.someName` (instantiates on first access)
3133
- **Spec Format**: `{"module.Class name": {"param": "value"}}` (YAML/JSON-compatible structure)
32-
- **Generic Usage**: Functions use `[T]` for type safety without runtime generics
3334
- **Equivalence**: `compile(spec)` generates code that behaves identically to `wire(spec)`
3435

3536
## Key Files

.github/dependabot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
2+
#
23
# SPDX-License-Identifier: ISC
3-
44
version: 2
55
updates:
66
- package-ecosystem: "pip"

.github/workflows/ci.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
2+
#
23
# SPDX-License-Identifier: ISC
34

5+
46
name: CI
57

68
on:
@@ -14,7 +16,7 @@ jobs:
1416
runs-on: ubuntu-latest
1517
strategy:
1618
matrix:
17-
python-version: ["3.12", "3.13"]
19+
python-version: ["3.10", "3.11", "3.12", "3.13"]
1820

1921
steps:
2022
- uses: actions/checkout@v5

.github/workflows/release.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# SPDX-FileCopyrightText: 2025 Alexandre Gomes Gaigalas <alganet@gmail.com>
2+
#
23
# SPDX-License-Identifier: ISC
34

5+
46
name: Release
57

68
on:
@@ -18,7 +20,7 @@ jobs:
1820
with:
1921
python-version: '3.13'
2022
- run: make pip
21-
- run: make build
23+
- run: make dist
2224
- run: make publish
2325
env:
2426
TWINE_USERNAME: __token__

0 commit comments

Comments
 (0)