soft7 0.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. soft7-0.1.0/.github/dependabot.yml +36 -0
  2. soft7-0.1.0/.github/workflows/cd_docs.yml +83 -0
  3. soft7-0.1.0/.github/workflows/cd_publish.yml +32 -0
  4. soft7-0.1.0/.github/workflows/ci_tests.yml +76 -0
  5. soft7-0.1.0/.gitignore +250 -0
  6. soft7-0.1.0/.pre-commit-config.yaml +63 -0
  7. soft7-0.1.0/CHANGELOG.md +57 -0
  8. soft7-0.1.0/LICENSE +21 -0
  9. soft7-0.1.0/PKG-INFO +120 -0
  10. soft7-0.1.0/README.md +73 -0
  11. soft7-0.1.0/agraph.cfg +17 -0
  12. soft7-0.1.0/docker-compose.yml +48 -0
  13. soft7-0.1.0/docs/conf.py +34 -0
  14. soft7-0.1.0/docs/examples/advanced.ipynb +138 -0
  15. soft7-0.1.0/docs/examples/basic.ipynb +983 -0
  16. soft7-0.1.0/docs/examples/datasource.ipynb +353 -0
  17. soft7-0.1.0/docs/examples/index.md +18 -0
  18. soft7-0.1.0/docs/index.md +26 -0
  19. soft7-0.1.0/graph/README.md +86 -0
  20. soft7-0.1.0/graph/__init__.py +0 -0
  21. soft7-0.1.0/graph/utils.py +185 -0
  22. soft7-0.1.0/ontology/entity_soft7.ttl +320 -0
  23. soft7-0.1.0/pyproject.toml +149 -0
  24. soft7-0.1.0/s7/__init__.py +9 -0
  25. soft7-0.1.0/s7/exceptions.py +35 -0
  26. soft7-0.1.0/s7/factories/__init__.py +8 -0
  27. soft7-0.1.0/s7/factories/datasource_factory.py +347 -0
  28. soft7-0.1.0/s7/factories/entity_factory.py +165 -0
  29. soft7-0.1.0/s7/factories/generated_classes.py +13 -0
  30. soft7-0.1.0/s7/oteapi_plugin/__init__.py +0 -0
  31. soft7-0.1.0/s7/oteapi_plugin/models.py +101 -0
  32. soft7-0.1.0/s7/oteapi_plugin/soft7_function.py +625 -0
  33. soft7-0.1.0/s7/oteapi_plugin/yaml_parser.py +115 -0
  34. soft7-0.1.0/s7/pydantic_models/__init__.py +0 -0
  35. soft7-0.1.0/s7/pydantic_models/_utils.py +268 -0
  36. soft7-0.1.0/s7/pydantic_models/datasource.py +386 -0
  37. soft7-0.1.0/s7/pydantic_models/oteapi.py +86 -0
  38. soft7-0.1.0/s7/pydantic_models/soft7_entity.py +430 -0
  39. soft7-0.1.0/s7/pydantic_models/soft7_instance.py +323 -0
  40. soft7-0.1.0/tests/conftest.py +166 -0
  41. soft7-0.1.0/tests/factories/conftest.py +21 -0
  42. soft7-0.1.0/tests/factories/test_datasource_factory.py +1288 -0
  43. soft7-0.1.0/tests/graph/test_utils.py +94 -0
  44. soft7-0.1.0/tests/oteapi_plugin/test_soft7_function.py +271 -0
  45. soft7-0.1.0/tests/pydantic_models/conftest.py +47 -0
  46. soft7-0.1.0/tests/pydantic_models/test_datasource.py +1012 -0
  47. soft7-0.1.0/tests/pydantic_models/test_soft7_entity.py +311 -0
  48. soft7-0.1.0/tests/static/onto-ns_OPTIMADEStructure.json +1 -0
  49. soft7-0.1.0/tests/static/onto-ns_OPTIMADEStructureAssembly.json +1 -0
  50. soft7-0.1.0/tests/static/onto-ns_OPTIMADEStructureAttributes.json +1 -0
  51. soft7-0.1.0/tests/static/onto-ns_OPTIMADEStructureSpecies.json +1 -0
  52. soft7-0.1.0/tests/static/optimade.materialsproject_mp-1228448.json +1 -0
  53. soft7-0.1.0/tests/static/soft_datasource_content.yaml +8 -0
  54. soft7-0.1.0/tests/static/soft_datasource_entity.yaml +24 -0
  55. soft7-0.1.0/tests/static/soft_datasource_entity_test_data.yaml +8 -0
@@ -0,0 +1,36 @@
1
+ version: 2
2
+ updates:
3
+ # GitHub Actions
4
+ - package-ecosystem: "github-actions"
5
+ directory: "/"
6
+ schedule:
7
+ interval: "daily"
8
+ reviewers:
9
+ - "CasperWA"
10
+ labels:
11
+ - "CI/CD"
12
+ - "skip-changelog"
13
+ - "priority/low"
14
+ target-branch: "main"
15
+ groups:
16
+ actions:
17
+ patterns: ["*"]
18
+
19
+ # Python
20
+ - package-ecosystem: "pip"
21
+ directory: "/"
22
+ schedule:
23
+ interval: "weekly"
24
+ day: "monday"
25
+ time: "03:52"
26
+ timezone: "Europe/Oslo"
27
+ reviewers:
28
+ - "CasperWA"
29
+ labels:
30
+ - "CI/CD"
31
+ - "skip-changelog"
32
+ - "priority/low"
33
+ target-branch: "main"
34
+ groups:
35
+ dependencies:
36
+ dependency-type: "production"
@@ -0,0 +1,83 @@
1
+ name: CI/CD - Documentation
2
+
3
+ on:
4
+ # Run for every push to the active development branch
5
+ push:
6
+ branches:
7
+ - 'main'
8
+
9
+ # Run for every new release
10
+ release:
11
+ types:
12
+ - published
13
+
14
+ # Run for every pull request (check we can build, but do not build)
15
+ pull_request:
16
+ branches:
17
+ - 'main'
18
+
19
+ # Allows you to run this workflow manually from the Actions tab
20
+ workflow_dispatch:
21
+
22
+ # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
23
+ permissions:
24
+ contents: read
25
+ pages: write # to deploy to Pages
26
+ id-token: write # to verify the deployment originates from an appropriate source
27
+
28
+ jobs:
29
+ build:
30
+ runs-on: ubuntu-latest
31
+
32
+ steps:
33
+ - name: Checkout repository
34
+ uses: actions/checkout@v4
35
+
36
+ - name: Set up Python 3.9
37
+ uses: actions/setup-python@v5
38
+ with:
39
+ python-version: '3.9'
40
+
41
+ - name: Setup Pages
42
+ id: pages
43
+ uses: actions/configure-pages@v5
44
+
45
+ - name: Install dependencies
46
+ run: |
47
+ python -m pip install -U pip
48
+ pip install -U setuptools wheel
49
+ pip install -e .[docs]
50
+
51
+ - name: Build documentation
52
+ run: |
53
+ mkdir -p docs/_static
54
+ sphinx-build docs public -W
55
+
56
+ - name: Upload artifacts
57
+ uses: actions/upload-pages-artifact@v3
58
+ with:
59
+ path: ./public
60
+
61
+ deploy:
62
+ runs-on: ubuntu-latest
63
+
64
+ if: github.event_name != 'pull_request'
65
+
66
+ needs: build
67
+
68
+ # Allow only one concurrent deployment, skipping runs queued between the run
69
+ # in-progress and latest queued.
70
+ # However, do NOT cancel in-progress runs as we want to allow these production
71
+ # deployments to complete.
72
+ concurrency:
73
+ group: "pages"
74
+ cancel-in-progress: false
75
+
76
+ environment:
77
+ name: github-pages
78
+ url: ${{ steps.deployment.outputs.page_url }}
79
+
80
+ steps:
81
+ - name: Deploy to GitHub Pages
82
+ id: deployment
83
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,32 @@
1
+ name: CD - Publish
2
+
3
+ on:
4
+ release:
5
+ types:
6
+ - published
7
+
8
+ jobs:
9
+ publish:
10
+ name: External
11
+ uses: SINTEF/ci-cd/.github/workflows/cd_release.yml@v2.7.4
12
+ if: github.repository == 'SINTEF/soft7' && startsWith(github.ref, 'refs/tags/v')
13
+ with:
14
+ # General
15
+ git_username: TEAM 4.0
16
+ git_email: Team4.0@SINTEF.no
17
+ release_branch: main
18
+
19
+ # PyPI
20
+ python_package: true
21
+ python_version_build: '3.9'
22
+ install_extras: '[dev]'
23
+ package_dirs: s7
24
+ build_libs: flit
25
+ build_cmd: flit build
26
+ publish_on_pypi: true
27
+
28
+ # Documentation
29
+ update_docs: false
30
+ secrets:
31
+ PyPI_token: ${{ secrets.PYPI_TOKEN }}
32
+ PAT: ${{ secrets.TEAM40_PAT }}
@@ -0,0 +1,76 @@
1
+ name: CI - Tests
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - 'main'
8
+
9
+ jobs:
10
+ basics:
11
+ name: External
12
+ uses: SINTEF/ci-cd/.github/workflows/ci_tests.yml@v2.7.4
13
+ with:
14
+ # General
15
+ install_extras: '[dev]'
16
+
17
+ # pre-commit
18
+ run_pre-commit: false # Uses pre-commit.ci (see config file .pre-commit-config.yaml)
19
+
20
+ # pylint & safety
21
+ python_version_pylint_safety: '3.9'
22
+ run_pylint: false
23
+ run_safety: true
24
+ # ID: 70612
25
+ # Package: Jinja2
26
+ # Has been disputed by the maintainer and multiple third parties.
27
+ # For more information see: https://github.com/advisories/GHSA-f6pv-j8mr-w6rr
28
+ safety_options: |
29
+ --ignore=70612
30
+
31
+ # Build Python package
32
+ run_build_package: true
33
+ python_version_package: '3.9'
34
+ build_libs: flit
35
+ build_cmd: flit build
36
+
37
+ # Documentation
38
+ run_build_docs: false
39
+
40
+ pytest:
41
+ name: pytest
42
+ runs-on: ubuntu-latest
43
+
44
+ strategy:
45
+ matrix:
46
+ # Supported Python versions (according to pyproject.toml)
47
+ python-version: ['3.9', '3.10', '3.11', '3.12']
48
+
49
+ steps:
50
+ - name: Checkout repository
51
+ uses: actions/checkout@v4
52
+
53
+ - name: Set up Python ${{ matrix.python-version }}
54
+ uses: actions/setup-python@v5
55
+ with:
56
+ python-version: ${{ matrix.python-version }}
57
+
58
+ - name: Install dependencies
59
+ run: |
60
+ python -m pip install -U pip
61
+ pip install -U setuptools wheel
62
+ pip install -e .[testing]
63
+
64
+ - name: Run pytest
65
+ run: pytest -v -rs --cov=s7 --cov-report=xml --cov-report=term-missing
66
+
67
+ - name: Upload code coverage report
68
+ if: github.repository == 'SINTEF/soft7'
69
+ uses: codecov/codecov-action@v4
70
+ with:
71
+ token: ${{ secrets.CODECOV_TOKEN }}
72
+ fail_ci_if_error: true
73
+ flags: pytest
74
+ env_vars: PYTHON
75
+ env:
76
+ PYTHON: ${{ matrix.python-version }}
soft7-0.1.0/.gitignore ADDED
@@ -0,0 +1,250 @@
1
+
2
+ # Created by https://www.toptal.com/developers/gitignore/api/visualstudiocode,python,emacs
3
+ # Edit at https://www.toptal.com/developers/gitignore?templates=visualstudiocode,python,emacs
4
+
5
+ ### Emacs ###
6
+ # -*- mode: gitignore; -*-
7
+ *~
8
+ \#*\#
9
+ /.emacs.desktop
10
+ /.emacs.desktop.lock
11
+ *.elc
12
+ auto-save-list
13
+ tramp
14
+ .\#*
15
+
16
+ # Org-mode
17
+ .org-id-locations
18
+ *_archive
19
+
20
+ # flymake-mode
21
+ *_flymake.*
22
+
23
+ # eshell files
24
+ /eshell/history
25
+ /eshell/lastdir
26
+
27
+ # elpa packages
28
+ /elpa/
29
+
30
+ # reftex files
31
+ *.rel
32
+
33
+ # AUCTeX auto folder
34
+ /auto/
35
+
36
+ # cask packages
37
+ .cask/
38
+ dist/
39
+
40
+ # Flycheck
41
+ flycheck_*.el
42
+
43
+ # server auth directory
44
+ /server/
45
+
46
+ # projectiles files
47
+ .projectile
48
+
49
+ # directory configuration
50
+ .dir-locals.el
51
+
52
+ # network security
53
+ /network-security.data
54
+
55
+
56
+ ### Python ###
57
+ # Byte-compiled / optimized / DLL files
58
+ __pycache__/
59
+ *.py[cod]
60
+ *$py.class
61
+
62
+ # C extensions
63
+ *.so
64
+
65
+ # Distribution / packaging
66
+ .Python
67
+ build/
68
+ develop-eggs/
69
+ downloads/
70
+ eggs/
71
+ .eggs/
72
+ lib/
73
+ lib64/
74
+ parts/
75
+ sdist/
76
+ var/
77
+ wheels/
78
+ share/python-wheels/
79
+ *.egg-info/
80
+ .installed.cfg
81
+ *.egg
82
+ MANIFEST
83
+
84
+ # PyInstaller
85
+ # Usually these files are written by a python script from a template
86
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
87
+ *.manifest
88
+ *.spec
89
+
90
+ # Installer logs
91
+ pip-log.txt
92
+ pip-delete-this-directory.txt
93
+
94
+ # Unit test / coverage reports
95
+ htmlcov/
96
+ .tox/
97
+ .nox/
98
+ .coverage
99
+ .coverage.*
100
+ .cache
101
+ nosetests.xml
102
+ coverage.xml
103
+ *.cover
104
+ *.py,cover
105
+ .hypothesis/
106
+ .pytest_cache/
107
+ cover/
108
+
109
+ # Translations
110
+ *.mo
111
+ *.pot
112
+
113
+ # Django stuff:
114
+ *.log
115
+ local_settings.py
116
+ db.sqlite3
117
+ db.sqlite3-journal
118
+
119
+ # Flask stuff:
120
+ instance/
121
+ .webassets-cache
122
+
123
+ # Scrapy stuff:
124
+ .scrapy
125
+
126
+ # Sphinx documentation
127
+ docs/_build/
128
+
129
+ # PyBuilder
130
+ .pybuilder/
131
+ target/
132
+
133
+ # Jupyter Notebook
134
+ .ipynb_checkpoints
135
+
136
+ # IPython
137
+ profile_default/
138
+ ipython_config.py
139
+
140
+ # pyenv
141
+ # For a library or package, you might want to ignore these files since the code is
142
+ # intended to run in multiple environments; otherwise, check them in:
143
+ # .python-version
144
+
145
+ # pipenv
146
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
147
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
148
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
149
+ # install all needed dependencies.
150
+ #Pipfile.lock
151
+
152
+ # poetry
153
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
154
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
155
+ # commonly ignored for libraries.
156
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
157
+ #poetry.lock
158
+
159
+ # pdm
160
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
161
+ #pdm.lock
162
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
163
+ # in version control.
164
+ # https://pdm.fming.dev/#use-with-ide
165
+ .pdm.toml
166
+
167
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
168
+ __pypackages__/
169
+
170
+ # Celery stuff
171
+ celerybeat-schedule
172
+ celerybeat.pid
173
+
174
+ # SageMath parsed files
175
+ *.sage.py
176
+
177
+ # Environments
178
+ .env
179
+ .venv
180
+ env/
181
+ venv/
182
+ ENV/
183
+ env.bak/
184
+ venv.bak/
185
+
186
+ # Spyder project settings
187
+ .spyderproject
188
+ .spyproject
189
+
190
+ # Rope project settings
191
+ .ropeproject
192
+
193
+ # mkdocs documentation
194
+ /site
195
+
196
+ # ruff
197
+ .ruff_cache/
198
+
199
+ # mypy
200
+ .mypy_cache/
201
+ .dmypy.json
202
+ dmypy.json
203
+
204
+ # Pyre type checker
205
+ .pyre/
206
+
207
+ # pytype static type analyzer
208
+ .pytype/
209
+
210
+ # Cython debug symbols
211
+ cython_debug/
212
+
213
+ # PyCharm
214
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
215
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
216
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
217
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
218
+ #.idea/
219
+
220
+ ### VisualStudioCode ###
221
+ .vscode/*
222
+ !.vscode/settings.json
223
+ !.vscode/tasks.json
224
+ !.vscode/launch.json
225
+ !.vscode/extensions.json
226
+ !.vscode/*.code-snippets
227
+
228
+ # Local History for Visual Studio Code
229
+ .history/
230
+
231
+ # Built Visual Studio Code Extensions
232
+ *.vsix
233
+
234
+ ### VisualStudioCode Patch ###
235
+ # Ignore all local history of files
236
+ .history
237
+ .ionide
238
+
239
+ # Support for Project snippet scope
240
+ .vscode/*.code-snippets
241
+
242
+ # Ignore code-workspaces
243
+ *.code-workspace
244
+
245
+ # End of https://www.toptal.com/developers/gitignore/api/visualstudiocode,python,emacs
246
+
247
+ # Documentation
248
+ jupyter_execute/
249
+ public/
250
+ site/
@@ -0,0 +1,63 @@
1
+ # pre-commit.ci
2
+ ci:
3
+ autofix_commit_msg: |
4
+ [pre-commit.ci] auto fixes from pre-commit hooks
5
+
6
+ For more information, see https://pre-commit.ci
7
+ autofix_prs: false
8
+ autoupdate_branch: 'main'
9
+ autoupdate_commit_msg: '[pre-commit.ci] pre-commit autoupdate'
10
+ autoupdate_schedule: 'weekly'
11
+ skip: []
12
+ submodules: false
13
+
14
+ # hooks
15
+ repos:
16
+ - repo: https://github.com/pre-commit/pre-commit-hooks
17
+ rev: v4.6.0
18
+ hooks:
19
+ - id: end-of-file-fixer
20
+ - id: debug-statements
21
+ - id: check-yaml
22
+ name: Check YAML
23
+ - id: check-toml
24
+ name: Check TOML
25
+ - id: trailing-whitespace
26
+ args: [--markdown-linebreak-ext=md]
27
+
28
+ - repo: https://github.com/asottile/pyupgrade
29
+ rev: v3.16.0
30
+ hooks:
31
+ - id: pyupgrade
32
+ args: ["--py39-plus", "--keep-runtime-typing"]
33
+
34
+ - repo: https://github.com/psf/black
35
+ rev: 24.4.2
36
+ hooks:
37
+ - id: black
38
+
39
+ - repo: https://github.com/astral-sh/ruff-pre-commit
40
+ rev: v0.5.1
41
+ hooks:
42
+ - id: ruff
43
+ args:
44
+ - "--fix"
45
+ - "--exit-non-zero-on-fix"
46
+ - "--show-fixes"
47
+ - "--no-unsafe-fixes"
48
+
49
+ - repo: https://github.com/PyCQA/bandit
50
+ rev: 1.7.9
51
+ hooks:
52
+ - id: bandit
53
+ args: ["-r"]
54
+ files: ^s7/.*$
55
+
56
+ - repo: https://github.com/pre-commit/mirrors-mypy
57
+ rev: v1.10.1
58
+ hooks:
59
+ - id: mypy
60
+ exclude: ^tests/.*$
61
+ additional_dependencies:
62
+ - pydantic>=2,<3
63
+ - types-PyYAML
@@ -0,0 +1,57 @@
1
+ # Changelog
2
+
3
+ ## [Unreleased](https://github.com/SINTEF/soft7/tree/HEAD)
4
+
5
+ [Full Changelog](https://github.com/SINTEF/soft7/compare/v0.1.0...HEAD)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - Write up unit tests [\#11](https://github.com/SINTEF/soft7/issues/11)
10
+
11
+ **Closed issues:**
12
+
13
+ - Disable autofixing PRs via pre-commit.ci [\#37](https://github.com/SINTEF/soft7/issues/37)
14
+ - Consider `def` functions instead of lambda [\#15](https://github.com/SINTEF/soft7/issues/15)
15
+
16
+ ## [v0.1.0](https://github.com/SINTEF/soft7/tree/v0.1.0) (2024-07-11)
17
+
18
+ [Full Changelog](https://github.com/SINTEF/soft7/compare/2ffa953762f8a6a2766ffb7946afadadbb0a687b...v0.1.0)
19
+
20
+ **Implemented enhancements:**
21
+
22
+ - Use pydantic v2 [\#12](https://github.com/SINTEF/soft7/issues/12)
23
+ - Setup development helping tools [\#9](https://github.com/SINTEF/soft7/issues/9)
24
+ - github actions for pypi publishing [\#3](https://github.com/SINTEF/soft7/issues/3)
25
+ - github actions for unittesting [\#2](https://github.com/SINTEF/soft7/issues/2)
26
+ - Add dependabot and pre-commit.ci configurations [\#23](https://github.com/SINTEF/soft7/pull/23) ([CasperWA](https://github.com/CasperWA))
27
+
28
+ **Closed issues:**
29
+
30
+ - New docs build is failing [\#34](https://github.com/SINTEF/soft7/issues/34)
31
+ - Use ruff instead of pylint [\#18](https://github.com/SINTEF/soft7/issues/18)
32
+
33
+ **Merged pull requests:**
34
+
35
+ - \[pre-commit.ci\] pre-commit autoupdate [\#39](https://github.com/SINTEF/soft7/pull/39) ([pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci))
36
+ - Consolidate `develop` [\#38](https://github.com/SINTEF/soft7/pull/38) ([CasperWA](https://github.com/CasperWA))
37
+ - Data Source factory upgrade \(`develop` edition\) [\#36](https://github.com/SINTEF/soft7/pull/36) ([CasperWA](https://github.com/CasperWA))
38
+ - Fix documentation workflow [\#35](https://github.com/SINTEF/soft7/pull/35) ([CasperWA](https://github.com/CasperWA))
39
+ - Added s7.graph module which includes functions to fetch subgraphs [\#33](https://github.com/SINTEF/soft7/pull/33) ([quaat](https://github.com/quaat))
40
+ - \[pre-commit.ci\] pre-commit autoupdate [\#32](https://github.com/SINTEF/soft7/pull/32) ([pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci))
41
+ - \[pre-commit.ci\] pre-commit autoupdate [\#30](https://github.com/SINTEF/soft7/pull/30) ([pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci))
42
+ - \[pre-commit.ci\] pre-commit autoupdate [\#29](https://github.com/SINTEF/soft7/pull/29) ([pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci))
43
+ - \[pre-commit.ci\] pre-commit autoupdate [\#28](https://github.com/SINTEF/soft7/pull/28) ([pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci))
44
+ - \[pre-commit.ci\] pre-commit autoupdate [\#26](https://github.com/SINTEF/soft7/pull/26) ([pre-commit-ci[bot]](https://github.com/apps/pre-commit-ci))
45
+ - Documentation [\#25](https://github.com/SINTEF/soft7/pull/25) ([CasperWA](https://github.com/CasperWA))
46
+ - Update pytest-cov requirement from ~=4.1 to \>=4.1,\<6.0 [\#24](https://github.com/SINTEF/soft7/pull/24) ([dependabot[bot]](https://github.com/apps/dependabot))
47
+ - Run CI tests for pushes to 'develop' [\#22](https://github.com/SINTEF/soft7/pull/22) ([CasperWA](https://github.com/CasperWA))
48
+ - Entity factory and cleanup [\#21](https://github.com/SINTEF/soft7/pull/21) ([CasperWA](https://github.com/CasperWA))
49
+ - Use ruff [\#19](https://github.com/SINTEF/soft7/pull/19) ([CasperWA](https://github.com/CasperWA))
50
+ - Update to pydantic v2 [\#16](https://github.com/SINTEF/soft7/pull/16) ([CasperWA](https://github.com/CasperWA))
51
+ - Update pre-commit hooks [\#14](https://github.com/SINTEF/soft7/pull/14) ([CasperWA](https://github.com/CasperWA))
52
+ - Publish workflow [\#13](https://github.com/SINTEF/soft7/pull/13) ([CasperWA](https://github.com/CasperWA))
53
+ - Add dev tools \(pre-commit with several hooks\) [\#10](https://github.com/SINTEF/soft7/pull/10) ([CasperWA](https://github.com/CasperWA))
54
+
55
+
56
+
57
+ \* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
soft7-0.1.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023 SINTEF
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.