Skip to content

Commit 9bb96a7

Browse files
committed
initial working version
0 parents  commit 9bb96a7

File tree

15 files changed

+1262
-0
lines changed

15 files changed

+1262
-0
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
name: 버그 수정
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
**버그에 대해 설명해 주세요 :)**
10+
11+
[..] 할 때 [..] 에러가 나며 트레이닝이 멈춥니다.
12+
(GIF, 동영상 등 드래그해서 첨부할 수도 있습니다.)
13+
14+
**To Reproduce**
15+
16+
버그 만드는 법:
17+
18+
1. Go to '...'
19+
2. Click on '....'
20+
3. Scroll down to '....'
21+
4. See error
22+
23+
**Expected behavior**
24+
25+
원래대로라면 [...] 해야 합니다.
26+
27+
**로그 파일을 붙여넣어 주세요 :)**
28+
29+
<details>
30+
<code>
31+
32+
여기에 붙여넣어 주세요
33+
34+
</code>
35+
</details>
36+
37+
**사용하고 계시는 프로그램의 버전을 입력해 주세요 :)**
38+
39+
```
40+
여기에 적어주세요
41+
```
42+
43+
**기타 내용을 적어주세요 :)**
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
name: 기능 추가 요청
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: enhancement
6+
assignees: ''
7+
8+
---
9+
10+
**겪고 계신 문제를 설명해 주세요 :)**
11+
[...] 할때 항상 [...] 문제가 있습니다.
12+
13+
**원하시는 솔루션을 설명해 주세요 :)**
14+
15+
**다른 대안을 고려해 보셨다면 설명해 주세요 :)**
16+
17+
**사용하고 계시는 프로그램의 버전을 적어주세요 :)**
18+
19+
**기타 내용을 적어주세요 :)**
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
name: Build and release to PyPI
2+
on:
3+
workflow_dispatch:
4+
inputs:
5+
apbs-release-tag:
6+
description: APBS version to build
7+
required: true
8+
default: 3.4.1
9+
version-tag:
10+
description: Python package version to release to PyPI (without 'v')
11+
required: true
12+
default: 3.4.1.post1
13+
dry-run:
14+
description: Dry run
15+
type: boolean
16+
default: false
17+
exclude-types:
18+
description: Commit types to exclude from the changelog
19+
required: false
20+
default: build,docs,style,other
21+
22+
jobs:
23+
build-all-platforms:
24+
runs-on: ubuntu-24.04
25+
steps:
26+
- uses: actions/checkout@v4
27+
- name: Install dependencies
28+
run: |
29+
pip install uv --break-system-packages
30+
uv tool install build
31+
uv tool install wheel
32+
uv tool install huggingface_hub
33+
huggingface-cli download --repo-type dataset --local-dir data Deargen/py-apbs-binary
34+
- name: Build python wheels
35+
run: |
36+
bash build_python.sh ${{ inputs.apbs-release-tag }} ${{ inputs.version-tag }}
37+
- name: Upload wheels
38+
uses: actions/upload-artifact@v4
39+
with:
40+
name: wheels
41+
path: dist/*.whl
42+
43+
test-ubuntu:
44+
runs-on: ${{ matrix.os }}
45+
strategy:
46+
matrix:
47+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
48+
os: [ubuntu-20.04, ubuntu-22.04, ubuntu-24.04]
49+
# python-version: ['3.8']
50+
# os: [ubuntu-20.04]
51+
needs: [build-all-platforms]
52+
steps:
53+
- uses: actions/checkout@v4
54+
- uses: actions/download-artifact@v4
55+
with:
56+
path: dist
57+
name: wheels
58+
- uses: actions/setup-python@v5
59+
with:
60+
python-version: ${{ matrix.python-version }}
61+
- name: Test wheel
62+
run: |
63+
pip install uv --break-system-packages
64+
uv venv
65+
source .venv/bin/activate
66+
uv pip install -r requirements_test.txt
67+
uv pip install dist/*-manylinux*_x86_64.whl
68+
pytest
69+
70+
test-macos:
71+
runs-on: ${{ matrix.os }}
72+
strategy:
73+
matrix:
74+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
75+
os: [macos-12, macos-13, macos-14, macos-15]
76+
# os: [macos-14, macos-15]
77+
needs: [build-all-platforms]
78+
steps:
79+
- uses: actions/checkout@v4
80+
- uses: actions/download-artifact@v4
81+
with:
82+
path: dist
83+
name: wheels
84+
- uses: actions/setup-python@v5
85+
with:
86+
python-version: ${{ matrix.python-version }}
87+
- name: Test wheel
88+
run: |
89+
pip install uv --break-system-packages
90+
uv venv --python python3
91+
source .venv/bin/activate
92+
uv pip install -r requirements_test.txt
93+
if [[ ${{ matrix.os }} == 'macos-12' ]] || [[ ${{ matrix.os }} == 'macos-13' ]]; then
94+
uv pip install dist/*-macosx_*_x86_64.whl
95+
else
96+
uv pip install dist/*-macosx_*_arm64.whl
97+
fi
98+
pytest
99+
100+
# test-windows:
101+
# runs-on: ${{ matrix.os }}
102+
# strategy:
103+
# matrix:
104+
# python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
105+
# os: [windows-2019, windows-2022]
106+
# needs: [build-all-platforms]
107+
# steps:
108+
# - uses: actions/checkout@v4
109+
# - uses: actions/download-artifact@v4
110+
# with:
111+
# path: dist
112+
# name: wheels
113+
# - uses: actions/setup-python@v5
114+
# with:
115+
# python-version: ${{ matrix.python-version }}
116+
# - name: Test wheel
117+
# shell: pwsh
118+
# run: |
119+
# pip install uv --break-system-packages
120+
# uv venv
121+
# .venv\Scripts\activate
122+
# uv pip install -r requirements_test.txt
123+
# uv pip install (get-item dist/*-win_amd64.whl)
124+
# pytest
125+
126+
commit-changelog-and-release-github:
127+
needs: [test-ubuntu, test-macos]
128+
uses: deargen/workflows/.github/workflows/commit-changelog-and-release.yml@master
129+
with:
130+
version-tag: ${{ github.event.inputs.version-tag }}
131+
dry-run: ${{ github.event.inputs.dry-run == 'true' }}
132+
changelog-path: docs/CHANGELOG.md
133+
exclude-types: ${{ github.event.inputs.exclude-types }}
134+
135+
release:
136+
name: Release
137+
if: ${{ github.event.inputs.dry-run == 'false' }}
138+
runs-on: ubuntu-24.04
139+
needs: [commit-changelog-and-release-github]
140+
steps:
141+
- uses: actions/download-artifact@v4
142+
with:
143+
path: dist
144+
name: wheels
145+
- name: Build and upload to PyPI
146+
run: |
147+
pip install uv --break-system-packages
148+
uv tool install twine
149+
twine upload dist/* -u __token__ -p ${{ secrets.PYPI_API_TOKEN }} --non-interactive

.gitignore

Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
/data/
2+
3+
# some files created when calling apbs?
4+
io.mc
5+
.DS_Store
6+
7+
# Created by https://www.toptal.com/developers/gitignore/api/python
8+
# Edit at https://www.toptal.com/developers/gitignore?templates=python
9+
10+
### Python ###
11+
# Byte-compiled / optimized / DLL files
12+
__pycache__/
13+
*.py[cod]
14+
*$py.class
15+
16+
# C extensions
17+
*.so
18+
19+
# Distribution / packaging
20+
.Python
21+
build/
22+
develop-eggs/
23+
dist/
24+
downloads/
25+
eggs/
26+
.eggs/
27+
lib/
28+
lib64/
29+
parts/
30+
sdist/
31+
var/
32+
wheels/
33+
share/python-wheels/
34+
*.egg-info/
35+
.installed.cfg
36+
*.egg
37+
MANIFEST
38+
39+
# PyInstaller
40+
# Usually these files are written by a python script from a template
41+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
42+
*.manifest
43+
*.spec
44+
45+
# Installer logs
46+
pip-log.txt
47+
pip-delete-this-directory.txt
48+
49+
# Unit test / coverage reports
50+
htmlcov/
51+
.tox/
52+
.nox/
53+
.coverage
54+
.coverage.*
55+
.cache
56+
nosetests.xml
57+
coverage.xml
58+
*.cover
59+
*.py,cover
60+
.hypothesis/
61+
.pytest_cache/
62+
cover/
63+
64+
# Translations
65+
*.mo
66+
*.pot
67+
68+
# Django stuff:
69+
*.log
70+
local_settings.py
71+
db.sqlite3
72+
db.sqlite3-journal
73+
74+
# Flask stuff:
75+
instance/
76+
.webassets-cache
77+
78+
# Scrapy stuff:
79+
.scrapy
80+
81+
# Sphinx documentation
82+
docs/_build/
83+
84+
# PyBuilder
85+
.pybuilder/
86+
target/
87+
88+
# Jupyter Notebook
89+
.ipynb_checkpoints
90+
91+
# IPython
92+
profile_default/
93+
ipython_config.py
94+
95+
# pyenv
96+
# For a library or package, you might want to ignore these files since the code is
97+
# intended to run in multiple environments; otherwise, check them in:
98+
# .python-version
99+
100+
# pipenv
101+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
102+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
103+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
104+
# install all needed dependencies.
105+
#Pipfile.lock
106+
107+
# poetry
108+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
109+
# This is especially recommended for binary packages to ensure reproducibility, and is more
110+
# commonly ignored for libraries.
111+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
112+
#poetry.lock
113+
114+
# pdm
115+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
116+
#pdm.lock
117+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
118+
# in version control.
119+
# https://pdm.fming.dev/#use-with-ide
120+
.pdm.toml
121+
122+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
123+
__pypackages__/
124+
125+
# Celery stuff
126+
celerybeat-schedule
127+
celerybeat.pid
128+
129+
# SageMath parsed files
130+
*.sage.py
131+
132+
# Environments
133+
.env
134+
.venv
135+
env/
136+
venv/
137+
ENV/
138+
env.bak/
139+
venv.bak/
140+
141+
# Spyder project settings
142+
.spyderproject
143+
.spyproject
144+
145+
# Rope project settings
146+
.ropeproject
147+
148+
# mkdocs documentation
149+
/site
150+
151+
# mypy
152+
.mypy_cache/
153+
.dmypy.json
154+
dmypy.json
155+
156+
# Pyre type checker
157+
.pyre/
158+
159+
# pytype static type analyzer
160+
.pytype/
161+
162+
# Cython debug symbols
163+
cython_debug/
164+
165+
# PyCharm
166+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
167+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
168+
# and can be added to the global gitignore or merged into this file. For a more nuclear
169+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
170+
#.idea/
171+
172+
### Python Patch ###
173+
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
174+
poetry.toml
175+
176+
# ruff
177+
.ruff_cache/
178+
179+
# LSP config files
180+
pyrightconfig.json
181+
182+
# End of https://www.toptal.com/developers/gitignore/api/python
183+

0 commit comments

Comments
 (0)