Skip to content

Commit 9bc42b5

Browse files
authored
Release/0.9.0
See CHANGELOG for changes.
2 parents bad1eb9 + 6cf0331 commit 9bc42b5

File tree

12 files changed

+68
-25
lines changed

12 files changed

+68
-25
lines changed

.github/workflows/push-pr_workflow.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ jobs:
7575

7676
strategy:
7777
matrix:
78-
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11']
78+
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
7979

8080
steps:
8181
- uses: actions/checkout@v2

CHANGELOG.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ All notable changes to Merlin Spellbook will be documented in this file.
44
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
55
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
66

7+
## [0.9.0]
8+
9+
### Added
10+
- Added support for python 3.12 and python 3.13
11+
12+
### Changed
13+
- Dropped support for python 3.7 and older
14+
- Updated Makefile to use newer check-style targets
15+
716
## [0.8.1]
817

918
### Fixed

Makefile

Lines changed: 45 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,19 @@
11

22
VER?=1.0.0
33
VSTRING=[0-9]\+\.[0-9]\+\.[0-9]\+
4+
PYTHON?=python3
5+
PY_TARGET_VER?=py311 # At the time this is added (2/19/25) black only supports up to py311
46

57
PROJ=spellbook
68
TEST=tests
79

10+
# check setup.cfg exists
11+
ifeq (,$(wildcard setup.cfg))
12+
MAX_LINE_LENGTH=127
13+
else
14+
MAX_LINE_LENGTH=$(shell grep 'max-line-length' setup.cfg | cut -d ' ' -f3)
15+
endif
16+
817
unit-tests:
918
python3 -m pytest $(TEST)/
1019

@@ -35,15 +44,39 @@ clean:
3544
-rm -rf build
3645

3746
fix-style:
38-
python3 -m isort --line-length 88 $(PROJ)
39-
python3 -m isort --line-length 88 $(TEST)
40-
python3 -m isort --line-length 88 *.py
41-
python3 -m black --line-length 88 --target-version py36 $(PROJ)
42-
python3 -m black --line-length 88 --target-version py36 $(TEST)
43-
python3 -m black --line-length 88 --target-version py36 *.py
44-
45-
check-style:
46-
python3 -m black --check --line-length 88 --target-version py36 $(PROJ)
47-
python3 -m black --check --line-length 88 --target-version py36 $(TEST)
48-
python3 -m pylint $(PROJ) --rcfile=setup.cfg --exit-zero
49-
python3 -m pylint *.py --rcfile=setup.cfg --exit-zero
47+
python3 -m isort --line-length $(MAX_LINE_LENGTH) $(PROJ)
48+
python3 -m isort --line-length $(MAX_LINE_LENGTH) $(TEST)
49+
python3 -m isort --line-length $(MAX_LINE_LENGTH) *.py
50+
python3 -m black --line-length $(MAX_LINE_LENGTH) --target-version $(PY_TARGET_VER) $(PROJ)
51+
python3 -m black --line-length $(MAX_LINE_LENGTH) --target-version $(PY_TARGET_VER) $(TEST)
52+
python3 -m black --line-length $(MAX_LINE_LENGTH) --target-version $(PY_TARGET_VER) *.py
53+
54+
55+
check-flake8:
56+
echo "Flake8 linting for invalid source (bad syntax, undefined variables)..."; \
57+
$(PYTHON) -m flake8 --count --select=E9,F63,F7,F82 --show-source --statistics; \
58+
echo "Flake8 linting failure for CI..."; \
59+
$(PYTHON) -m flake8 . --count --max-complexity=15 --statistics --max-line-length=127; \
60+
61+
62+
check-black:
63+
$(PYTHON) -m black --check --line-length $(MAX_LINE_LENGTH) --target-version $(PY_TARGET_VER) $(PROJ); \
64+
$(PYTHON) -m black --check --line-length $(MAX_LINE_LENGTH) --target-version $(PY_TARGET_VER) $(TEST); \
65+
$(PYTHON) -m black --check --line-length $(MAX_LINE_LENGTH) --target-version $(PY_TARGET_VER) *.py; \
66+
67+
68+
check-isort:
69+
$(PYTHON) -m isort --check --line-length $(MAX_LINE_LENGTH) $(PROJ); \
70+
$(PYTHON) -m isort --check --line-length $(MAX_LINE_LENGTH) $(TEST); \
71+
$(PYTHON) -m isort --check --line-length $(MAX_LINE_LENGTH) *.py; \
72+
73+
74+
check-pylint:
75+
echo "PyLinting spellbook source..."; \
76+
$(PYTHON) -m pylint $(PROJ) --rcfile=setup.cfg --disable=logging-fstring-interpolation; \
77+
$(PYTHON) -m pylint *.py --rcfile=setup.cfg --exit-zero
78+
echo "PyLinting spellbook tests..."; \
79+
$(PYTHON) -m pylint $(TEST) --rcfile=setup.cfg; \
80+
81+
82+
check-style: check-flake8 check-black check-isort check-pylint

requirements/dev.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Development dependencies.
22
pylint
3-
black==22.8.0
3+
black
44
dep-license
55
flake8
66
isort

requirements/release.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ importlib_resources; python_version < '3.7'
22
coloredlogs
33
click
44
numpy
5-
pyDOE2
5+
pyDOE3
66
scipy
77
scikit-learn

setup.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
# LLNL-CODE-797170
88
# All rights reserved.
9-
# This file is part of Merlin-Spellbook, Version: 0.8.1.
9+
# This file is part of Merlin-Spellbook, Version: 0.9.0.
1010
#
1111
# For details, see https://github.com/LLNL/merlin-spellbook.
1212
#
@@ -98,11 +98,12 @@ def extras_require():
9898
long_description=readme(),
9999
long_description_content_type="text/markdown",
100100
classifiers=[
101-
"Programming Language :: Python :: 3.7",
102101
"Programming Language :: Python :: 3.8",
103102
"Programming Language :: Python :: 3.9",
104103
"Programming Language :: Python :: 3.10",
105104
"Programming Language :: Python :: 3.11",
105+
"Programming Language :: Python :: 3.12",
106+
"Programming Language :: Python :: 3.13",
106107
],
107108
keywords="machine learning workflow utilities",
108109
url="https://github.com/LLNL/merlin-spellbook",

spellbook/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
__version__ = "0.8.1"
1+
__version__ = "0.9.0"
22

33
VERSION = __version__

spellbook/data_formatting/conduit/python/conduit_bundler.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
# LLNL-CODE-<PENDING>
88
# All rights reserved.
9-
# This file is part of merlin-spellbook, Version: 0.8.1.
9+
# This file is part of merlin-spellbook, Version: 0.9.0.
1010
#
1111
# For details, see https://github.com/LLNL/merlin-spellbook.
1212
#

spellbook/data_formatting/conduit/python/translator.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,9 @@ def run(_input, output, schema):
8686
if data_loader.has_path(sample_path):
8787
data_loader.read(filtered_node[path], sample_path)
8888
else:
89-
filtered_node[
90-
sample_path
91-
] = np.nan # if a value is missing, that could be a problem
89+
filtered_node[sample_path] = (
90+
np.nan
91+
) # if a value is missing, that could be a problem
9292
make_data_array_dict(all_dict, filtered_node)
9393

9494
for dat in all_dict.keys():

spellbook/log_formatter.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
# LLNL-CODE-797170
88
# All rights reserved.
9-
# This file is part of Merlin Spellbook, Version: 0.8.1.
9+
# This file is part of Merlin Spellbook, Version: 0.9.0.
1010
#
1111
# For details, see https://github.com/LLNL/merlin.
1212
#

spellbook/sampling/make_samples.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import ast
22

33
import numpy as np
4-
import pyDOE2 as doe
4+
import pyDOE3 as doe
55
from scipy.stats.distributions import norm
66

77
from spellbook.commands import CliCommand

tests/command_line_tests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@
4646

4747
def run_single_test(name, test, test_label="", buffer_length=50):
4848
dot_length = buffer_length - len(name) - len(str(test_label))
49-
print(f"TEST {test_label}: {name}{'.'*dot_length}", end="")
49+
print(f"TEST {test_label}: {name}{'.' * dot_length}", end="")
5050
command = test[0]
5151
conditions = test[1]
5252
if not isinstance(conditions, list):

0 commit comments

Comments
 (0)