Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
4f3d359
dev: Use cases, design and context
euronion Jul 1, 2025
b099964
code: initial new package structure (#13)
finozzifa Jul 21, 2025
617dce4
Extend Technology and TechnologyCollection (#14)
finozzifa Jul 28, 2025
506f17f
config: add pytest-xdist and pytest-cov (#16)
finozzifa Jul 28, 2025
3f69fb1
Unit-ful parameter (#15)
euronion Jul 31, 2025
105578b
code: add OOP to test suites (#21)
finozzifa Jul 31, 2025
fe3cfcc
code: Switch to src layout
euronion Aug 18, 2025
0f0b43a
code: update unit test in test_source.py
finozzifa Aug 19, 2025
69c8f96
Make development dependencies optional (#34)
euronion Aug 21, 2025
6dcd24a
code: Harmonise type hints (#36)
euronion Aug 21, 2025
1a1ae6b
code: Allow parameter mul and div with scalars (#37)
euronion Aug 28, 2025
a67d379
Solve issues in test_sources.py (#40)
finozzifa Sep 9, 2025
c1e4936
Issue 24: LHV and HHV (#39)
finozzifa Sep 15, 2025
0d15d3e
skip tests that usually fail (#41)
finozzifa Sep 16, 2025
9c6aadc
Prototype documentation - v1 (#38)
finozzifa Sep 16, 2025
0527655
Add history 'master' of https://github.com/PyPSA/technology-data into…
euronion Sep 22, 2025
b8b5e3f
Merge pull request #47 from open-energy-transition/pre-prototype-2
euronion Sep 23, 2025
938bf33
doc: Remove copy-pasta mistake from pypsa-docs
euronion Sep 23, 2025
1c0d014
doc: Use uv for RTD building
euronion Sep 23, 2025
899d8fa
code: modify target branch for ci triggering (#52)
finozzifa Sep 24, 2025
6fc7dd4
Issue 42 harmonize units (#51)
finozzifa Sep 25, 2025
6816997
Turn Source.store_in_wayback into a private method (#63)
finozzifa Oct 8, 2025
3f1027a
update from_json and to_json methods for TechnologyCollection and Sou…
finozzifa Oct 10, 2025
9e21b52
code: Reorder Technology attributes (#66)
euronion Oct 20, 2025
c9b39ba
31 change currency technology collection (#69)
euronion Oct 28, 2025
b8ad714
Custom error message for CCC_YYYY (#72)
finozzifa Nov 3, 2025
9a656ef
Technology collection models (#18)
euronion Nov 5, 2025
7f9bdea
Docs readme (#75)
euronion Nov 6, 2025
06d3f5f
code: skip three more unit tests (#76)
finozzifa Nov 6, 2025
6234d83
Make output schema of `SourceCollection` and `TechnologyCollection` o…
finozzifa Nov 18, 2025
471b617
Prototest DEA (#57)
finozzifa Nov 19, 2025
5d9c3de
Update pydeflate dependency (#79)
finozzifa Dec 8, 2025
625eb2a
Documentation (#74)
finozzifa Jan 16, 2026
78bd9cb
add first version of release.yml (#84)
finozzifa Jan 19, 2026
daa20c7
Prepare Release v0.1.0
finozzifa Jan 19, 2026
2700fd6
Prepare Release v0.1.0
finozzifa Jan 19, 2026
7ca5abc
Prepare Release v0.1.0
finozzifa Jan 19, 2026
dd2e4b8
Prototest manual input USA (#68)
finozzifa Jan 30, 2026
2f4a96a
doc: add pypi link
finozzifa Feb 2, 2026
622eb16
doc: add pre-commit checks
finozzifa Feb 2, 2026
ee4fbeb
update version
finozzifa Feb 2, 2026
ff94d75
Issue 82 repeated calls change_heating_value (#87)
finozzifa Feb 4, 2026
e65f0a2
code: update CITATIONS.cff with new patch release
finozzifa Feb 6, 2026
0465cb0
Data accessor (#90)
finozzifa Feb 17, 2026
899eb52
Multi version parser (#91)
finozzifa Feb 20, 2026
bae79b9
Issue 92: configure default folder (#96)
finozzifa Jun 25, 2026
bca5acf
Update pre commit (#100)
finozzifa Jun 25, 2026
176ddb3
docs: use one consistent import style in the user guide
cdgaete Aug 24, 2026
65a6aa6
Merge pull request #110 from open-energy-transition/issue_105_docs_im…
cdgaete Aug 25, 2026
44a1992
code: update dependencies (#116)
finozzifa Aug 31, 2026
60976cf
Add AI agent instructions (#112)
euronion Aug 31, 2026
bfd0e7a
doc: update documentation on usage of sources.json (#120)
finozzifa Aug 31, 2026
5895303
Equation system to automatically calculate linked parameters (#102)
euronion Sep 1, 2026
d269834
Issue 117 data accessor load (#118)
finozzifa Sep 1, 2026
012f4ae
Issue 99 from url (#101)
finozzifa Sep 1, 2026
fb7a0a4
Issue 106: enrich the landing page and merge the small Home pages (#111)
cdgaete Sep 2, 2026
d31890c
code: move data_accessor (#128)
finozzifa Sep 4, 2026
6f0c045
[Small] import issues in the docs (#129)
finozzifa Sep 4, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 13 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"permissions": {
"allow": [
"Bash(uv sync:*)",
"Bash(uv run pytest:*)",
"Bash(uv run ruff:*)",
"Bash(uv run mypy:*)",
"Bash(uv run pre-commit:*)",
"Bash(uv run reuse:*)",
"Bash(uv run mkdocs build:*)"
]
}
}
3 changes: 3 additions & 0 deletions .claude/settings.json.license
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SPDX-FileCopyrightText: technologydata contributors

SPDX-License-Identifier: MIT
4 changes: 4 additions & 0 deletions .codespell.ignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# SPDX-FileCopyrightText: technologydata contributors
#
# SPDX-License-Identifier: MIT
CAF
26 changes: 0 additions & 26 deletions .github/ISSUE_TEMPLATE/bug_report.md

This file was deleted.

5 changes: 0 additions & 5 deletions .github/ISSUE_TEMPLATE/config.yml

This file was deleted.

15 changes: 0 additions & 15 deletions .github/ISSUE_TEMPLATE/feature_request.md

This file was deleted.

18 changes: 18 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<!--
SPDX-FileCopyrightText: technologydata contributors

SPDX-License-Identifier: MIT

-->

# Summary

<!-- What does this PR change, and why? Link related issues with "Closes #ISSUE_NUMBER". -->

## Checklist

- [ ] Tests added/updated for the change and `uv run pytest` passes
- [ ] New files carry SPDX license info (checked by REUSE)
- [ ] `uv run pre-commit run --all-files` passes (lint, format, mypy, REUSE)
- [ ] Documentation/docstrings has been updated
- [ ] (If AI-assisted) Changes were reviewed by a human before opening this PR
14 changes: 0 additions & 14 deletions .github/dependabot.yml

This file was deleted.

12 changes: 0 additions & 12 deletions .github/pull_request_template.md

This file was deleted.

20 changes: 20 additions & 0 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
changelog:
categories:
- title: Breaking Changes
labels:
- breaking change
- title: Features
labels:
- feature
- title: Bug Fixes
labels:
- bug
- title: Data
labels:
- data
- title: Documentation
labels:
- documentation
- title: Other Changes
labels:
- "*"
73 changes: 25 additions & 48 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,64 +1,41 @@
name: CI
# SPDX-FileCopyrightText: technologydata contributors
#
# SPDX-License-Identifier: MIT
name: Technologydata prototype CI

on:
push:
branches: [master]
branches: [prototype-2]
pull_request:
branches: [master]
schedule:
- cron: "0 5 * * 0"


# Cancel any in-progress runs when a new run is triggered
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
branches: [prototype-2]

jobs:
build:
name: CI
test:
runs-on: ubuntu-latest

defaults:
run:
shell: bash -l {0}

steps:
- name: Checkout code
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup micromamba
uses: mamba-org/setup-micromamba@v2

- name: Set up Python
uses: actions/setup-python@v5
with:
micromamba-version: latest
environment-file: environment.yaml
log-level: debug
init-shell: bash
cache-environment: true
cache-downloads: true
python-version: "3.13"

- name: Run unit tests
- name: Cache Python dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/uv.lock') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install package and dependencies
run: |
make unit-test
python -m pip install uv
uv lock
uv sync

- name: Test snakemake workflows
- name: Run unit tests
run: |
make test

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: technology-data
path: outputs/

- name: Check for differences in generated outputs
run: |-
git config --global --add safe.directory $GITHUB_WORKSPACE
git add outputs/
if ! git diff --cached --quiet; then
echo "Generated outputs differ from the branch. Please commit rerun `snakemake` and commit the changes to the `outputs/*.csv` files."
git diff --cached
exit 1
else
echo "No differences found in generated outputs."
fi
uv run pytest
138 changes: 138 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
# SPDX-FileCopyrightText: technologydata contributors
#
# SPDX-License-Identifier: MIT

name: Release

on:
push:
tags:
- v*.*.*

env:
PREPARATION_COMMIT: '[github-actions.ci] prepare release ${{ github.ref_name }}'

jobs:
check-preparation:
name: Check if release is prepared
runs-on: ubuntu-latest
outputs:
prepared: ${{ steps.validate.outputs.prepared }}
steps:
- uses: actions/checkout@v6

- name: Validate commit message
id: validate
run: |
# Check if last commit is the expected commit message
COMMIT_MESSAGE=$(git log -1 --pretty=%B)
echo "Expected: '${{ env.PREPARATION_COMMIT }}'"
echo "Received: '$COMMIT_MESSAGE'"

prepared="false"
if [[ "$COMMIT_MESSAGE" == "${{ env.PREPARATION_COMMIT }}" ]]; then
prepared="true"
fi
prepared="true" # HOTFIX as preparation step is not working. Force true
echo "prepared=$prepared" >> $GITHUB_OUTPUT

prepare-release:
name: Prepare release
needs: [check-preparation]
if: ${{ needs.check-preparation.outputs.prepared == 'false' }}
runs-on: ubuntu-latest
steps:
- name: Find the branch for commit/ tag
run: |
branch=$(git branch -r --contains ${{ github.sha }} | grep -v 'HEAD' | head -n 1 | sed 's|origin/||' | sed 's/^[[:space:]]*//;s/[[:space:]]*$//')
echo "Branch found: $branch"
echo "BRANCH_NAME=$branch" >> $GITHUB_ENV

- uses: actions/checkout@v6
with:
fetch-depth: 0
ref: ${{ env.BRANCH_NAME }}
token: ${{ steps.generate-token.outputs.token }}

# Start of preparation script

- uses: actions/setup-python@v6
with:
python-version: 3.12

- name: Install packages
run: |
python -m pip install uv
uv pip install --system toml
uv pip install --system setuptools_scm
uv pip install --system .

- name: Update CITATION.cff
run: |
import re
from setuptools_scm import get_version

version = get_version()

with open('CITATION.cff', 'r') as file:
cff_content = file.read()
cff_content = open('CITATION.cff', 'r').read()

updated_cff_content = re.sub(r"(?<=version: ).+(?= #)",version,cff_content,flags=re.MULTILINE)

with open('CITATION.cff', 'w') as file:
file.write(updated_cff_content)
shell: python

# End of preparation script

- name: Remove previous tag
run: |
git tag -d ${{ github.ref_name }}
git push origin --delete ${{ github.ref_name }}

- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v7
with:
branch: ${{ env.BRANCH_NAME }}
commit_message: '${{ env.PREPARATION_COMMIT }}'
tagging_message: '${{ github.ref_name }}' # add tag again
push_options: '${{ github.ref_name }}'
add_options: '-u' # Never add untracked files

build:
name: Build and verify package
needs: [check-preparation]
if: ${{ needs.check-preparation.outputs.prepared == 'true' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: hynek/build-and-inspect-python-package@v2

release:
name: Create GitHub release
needs: [build]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v6
- uses: softprops/action-gh-release@v2
with:
generate_release_notes: true

publish:
name: Publish to PyPI
needs: [build]
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/project/technologydata
permissions:
id-token: write
steps:
- uses: actions/download-artifact@v6
with:
name: Packages
path: dist
- uses: pypa/gh-action-pypi-publish@release/v1
Loading