nomad-north-apmtools 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 (49) hide show
  1. nomad_north_apmtools-0.1.0/.cruft.json +32 -0
  2. nomad_north_apmtools-0.1.0/.dockerignore +94 -0
  3. nomad_north_apmtools-0.1.0/.github/dependabot.yml +12 -0
  4. nomad_north_apmtools-0.1.0/.github/workflows/actions.yml +43 -0
  5. nomad_north_apmtools-0.1.0/.github/workflows/mkdocs-deploy.yml +34 -0
  6. nomad_north_apmtools-0.1.0/.github/workflows/publish.yml +60 -0
  7. nomad_north_apmtools-0.1.0/.github/workflows/publish_north.yml +73 -0
  8. nomad_north_apmtools-0.1.0/.gitignore +130 -0
  9. nomad_north_apmtools-0.1.0/.vscode/settings.json +21 -0
  10. nomad_north_apmtools-0.1.0/CITATION.cff +56 -0
  11. nomad_north_apmtools-0.1.0/LICENSE +202 -0
  12. nomad_north_apmtools-0.1.0/MANIFEST.in +1 -0
  13. nomad_north_apmtools-0.1.0/PKG-INFO +373 -0
  14. nomad_north_apmtools-0.1.0/README.md +139 -0
  15. nomad_north_apmtools-0.1.0/docs/assets/.gitignore +1 -0
  16. nomad_north_apmtools-0.1.0/docs/assets/favicon.png +0 -0
  17. nomad_north_apmtools-0.1.0/docs/assets/nomad-plugin-logo.png +0 -0
  18. nomad_north_apmtools-0.1.0/docs/explanation/explanation.md +4 -0
  19. nomad_north_apmtools-0.1.0/docs/how_to/contribute_to_the_documentation.md +4 -0
  20. nomad_north_apmtools-0.1.0/docs/how_to/contribute_to_this_plugin.md +5 -0
  21. nomad_north_apmtools-0.1.0/docs/how_to/install_this_plugin.md +4 -0
  22. nomad_north_apmtools-0.1.0/docs/how_to/use_this_plugin.md +10 -0
  23. nomad_north_apmtools-0.1.0/docs/index.md +48 -0
  24. nomad_north_apmtools-0.1.0/docs/reference/references.md +4 -0
  25. nomad_north_apmtools-0.1.0/docs/stylesheets/extra.css +69 -0
  26. nomad_north_apmtools-0.1.0/docs/theme/partials/header.html +86 -0
  27. nomad_north_apmtools-0.1.0/docs/tutorial/tutorial.md +4 -0
  28. nomad_north_apmtools-0.1.0/mkdocs.yml +59 -0
  29. nomad_north_apmtools-0.1.0/pyproject.toml +146 -0
  30. nomad_north_apmtools-0.1.0/setup.cfg +4 -0
  31. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/__init__.py +0 -0
  32. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/north_tools/__init__.py +35 -0
  33. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/north_tools/apmtools/Dockerfile +69 -0
  34. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/north_tools/apmtools/README.md +34 -0
  35. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/north_tools/apmtools/__init__.py +17 -0
  36. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/north_tools/apmtools/environment.yml +15 -0
  37. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/north_tools/apmtools/example/FAIRmatNewLogo.png +0 -0
  38. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/north_tools/apmtools/example/NOMADOasisLogo.png +0 -0
  39. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/north_tools/apmtools/example/README.ipynb +440 -0
  40. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools/north_tools/apmtools/jupyter.svg +90 -0
  41. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools.egg-info/PKG-INFO +373 -0
  42. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools.egg-info/SOURCES.txt +47 -0
  43. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools.egg-info/dependency_links.txt +1 -0
  44. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools.egg-info/entry_points.txt +2 -0
  45. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools.egg-info/requires.txt +12 -0
  46. nomad_north_apmtools-0.1.0/src/nomad_north_apmtools.egg-info/top_level.txt +1 -0
  47. nomad_north_apmtools-0.1.0/tests/conftest.py +0 -0
  48. nomad_north_apmtools-0.1.0/tests/data/.gitkeep +0 -0
  49. nomad_north_apmtools-0.1.0/tests/north_tools/test_north_tools.py +9 -0
@@ -0,0 +1,32 @@
1
+ {
2
+ "template": "https://github.com/FAIRmat-NFDI/cookiecutter-nomad-plugin",
3
+ "commit": "0dcee23a249225f398052817c6f2ea52c9ddb307",
4
+ "checkout": null,
5
+ "context": {
6
+ "cookiecutter": {
7
+ "full_name": "Markus Kühbach",
8
+ "email": "markus.kuehbach@physik.hu-berlin.de",
9
+ "github_username": "FAIRmat-NFDI",
10
+ "plugin_name": "nomad-north-apmtools",
11
+ "module_name": "nomad_north_apmtools",
12
+ "short_description": "NOMAD NORTH plugin for analysis of atom probe data",
13
+ "version": "0.1.0",
14
+ "license": "Apache Software License 2.0",
15
+ "include_schema_package": false,
16
+ "include_normalizer": false,
17
+ "include_parser": false,
18
+ "include_app": false,
19
+ "include_example_uploads": false,
20
+ "include_action": false,
21
+ "include_north_tools": true,
22
+ "north_tool_name": "apmtools",
23
+ "_copy_without_render": [
24
+ "*.html",
25
+ "*.png"
26
+ ],
27
+ "_template": "https://github.com/FAIRmat-NFDI/cookiecutter-nomad-plugin",
28
+ "_commit": "0dcee23a249225f398052817c6f2ea52c9ddb307"
29
+ }
30
+ },
31
+ "directory": null
32
+ }
@@ -0,0 +1,94 @@
1
+ # Git
2
+ .gitignore
3
+ .gitattributes
4
+
5
+ # Python
6
+ __pycache__
7
+ *.py[cod]
8
+ *$py.class
9
+ *.so
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+ .pytest_cache/
30
+
31
+ # Virtual Environments
32
+ .venv
33
+ venv/
34
+ ENV/
35
+ env/
36
+ .venv/
37
+
38
+ # IDE
39
+ .vscode/
40
+ .idea/
41
+ *.swp
42
+ *.swo
43
+ *~
44
+ .DS_Store
45
+ .project
46
+ .pydevproject
47
+ .settings/
48
+ *.sublime-project
49
+ *.sublime-workspace
50
+
51
+ # CI/CD
52
+ .github/
53
+ .gitlab-ci.yml
54
+ .travis.yml
55
+ .circleci/
56
+
57
+ # Testing
58
+ .coverage
59
+ .coverage.*
60
+ htmlcov/
61
+ .tox/
62
+ .hypothesis/
63
+ pytest.ini
64
+ .pytest_cache/
65
+
66
+ # Documentation
67
+ docs/_build/
68
+ site/
69
+ .mkdocs.yml
70
+ mkdocs.yml
71
+
72
+ # Docker
73
+ Dockerfile*
74
+ .dockerignore
75
+ docker/
76
+
77
+ # Node (if used)
78
+ node_modules/
79
+ npm-debug.log
80
+ package-lock.json
81
+
82
+ # Misc
83
+ *.md
84
+ LICENSE
85
+ MANIFEST.in
86
+ *.tar.gz
87
+ *.zip
88
+ .tmp/
89
+ .cache/
90
+
91
+ # IDE configuration files
92
+ .editorconfig
93
+ .env
94
+ .env.local
@@ -0,0 +1,12 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for more information:
4
+ # https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
5
+ # https://containers.dev/guide/dependabot
6
+
7
+ version: 2
8
+ updates:
9
+ - package-ecosystem: "pip"
10
+ directory: "/"
11
+ schedule:
12
+ interval: "monthly"
@@ -0,0 +1,43 @@
1
+ name: install-and-test-workflow
2
+
3
+ on: [push]
4
+
5
+ env:
6
+ UV_VERSION: 0.9
7
+ PYTHON_VERSION: 3.12
8
+ UV_SYSTEM_PYTHON: true
9
+
10
+ jobs:
11
+ install-and-test:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - name: Install uv
16
+ uses: astral-sh/setup-uv@v5
17
+ with:
18
+ version: ${{ env.UV_VERSION }}
19
+ - name: Setup Python
20
+ uses: actions/setup-python@v5
21
+ with:
22
+ python-version: ${{ env.PYTHON_VERSION }}
23
+ - name: Install dependencies
24
+ run: |
25
+ uv sync --all-extras
26
+ - name: Test with pytest
27
+ run: |
28
+ uv run --with coverage coverage run -m pytest -sv
29
+ - name: Submit to coveralls
30
+ continue-on-error: true
31
+ env:
32
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
33
+ run: |
34
+ uv run --with coveralls coveralls --service=github
35
+
36
+ ruff-linting:
37
+ runs-on: ubuntu-latest
38
+ steps:
39
+ - uses: actions/checkout@v4
40
+ - uses: astral-sh/ruff-action@v3
41
+ - run: ruff check .
42
+ # Uncomment the following line to enable format check
43
+ # - run: ruff format --check .
@@ -0,0 +1,34 @@
1
+ name: Deploy MkDocs Site
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main # Triggers deployment on push to the main branch
7
+
8
+ env:
9
+ REGISTRY: ghcr.io
10
+ UV_VERSION: 0.9
11
+ PYTHON_VERSION: 3.12
12
+ UV_SYSTEM_PYTHON: true
13
+
14
+ jobs:
15
+ deploy:
16
+ runs-on: ubuntu-latest
17
+
18
+ steps:
19
+ - name: Checkout Repository
20
+ uses: actions/checkout@v4
21
+
22
+ - name: Install uv
23
+ uses: astral-sh/setup-uv@v5
24
+ with:
25
+ version: ${{ env.UV_VERSION }}
26
+
27
+ - name: Set up Python
28
+ uses: actions/setup-python@v5
29
+ with:
30
+ python-version: ${{ env.PYTHON_VERSION }}
31
+
32
+ - name: Build and Deploy
33
+ run: |
34
+ uv run --extra dev mkdocs gh-deploy --force --remote-branch gh-pages
@@ -0,0 +1,60 @@
1
+ name: Upload Python Package
2
+
3
+ on:
4
+ release:
5
+ types: [published]
6
+
7
+ env:
8
+ PYTHON_VERSION: 3.12
9
+ IMAGE: "ghcr.io/fairmat-nfdi/nomad-north-apmtools"
10
+
11
+ jobs:
12
+ build-docker-image:
13
+ uses: ./.github/workflows/publish_north.yml
14
+ secrets: inherit
15
+
16
+ build:
17
+ name: Build Package
18
+ runs-on: ubuntu-latest
19
+ needs: build-docker-image
20
+ steps:
21
+ - uses: actions/checkout@v6
22
+ with:
23
+ fetch-depth: 0
24
+ - name: Install uv and set the Python version to ${{ env.PYTHON_VERSION }}
25
+ uses: astral-sh/setup-uv@v5
26
+ with:
27
+ python-version: ${{ env.PYTHON_VERSION }}
28
+ - name: Overwrite the image tag
29
+ run: |
30
+ IMAGE_TAG=$(grep -oP "${{ env.IMAGE }}:\K[^'\",]+" src/nomad_north_apmtools/north_tools/__init__.py)
31
+
32
+ sed -i "s|${{ env.IMAGE }}:${IMAGE_TAG}|${{ env.IMAGE }}:${GITHUB_REF_NAME}|g" \
33
+ src/nomad_north_apmtools/north_tools/__init__.py
34
+
35
+ - name: build package
36
+ run: |
37
+ SETUPTOOLS_SCM_PRETEND_VERSION=${GITHUB_REF_NAME#v} uv build
38
+ - name: Upload dist artifacts
39
+ uses: actions/upload-artifact@v4
40
+ with:
41
+ name: dist-artifacts
42
+ path: dist/
43
+
44
+ deploy:
45
+ name: Upload to PyPI
46
+ needs: build
47
+ runs-on: ubuntu-latest
48
+ environment:
49
+ name: pypi
50
+ url: https://pypi.org/p/nomad-north-apmtools
51
+ permissions:
52
+ id-token: write
53
+ steps:
54
+ - name: Download dist artifacts
55
+ uses: actions/download-artifact@v4
56
+ with:
57
+ name: dist-artifacts
58
+ path: dist/
59
+ - name: Publish package distributions to PyPI
60
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,73 @@
1
+ name: Build and publish docker images
2
+ on:
3
+ push:
4
+ branches:
5
+ - main
6
+ pull_request:
7
+ branches:
8
+ - main
9
+ workflow_call:
10
+
11
+ env:
12
+ REGISTRY: ghcr.io
13
+ IMAGE_TAG: main
14
+ NORTH_TOOL_DIR: src/nomad_north_apmtools/north_tools/apmtools
15
+
16
+ permissions:
17
+ packages: write
18
+ contents: read
19
+ attestations: write
20
+ id-token: write
21
+
22
+ jobs:
23
+ build:
24
+ name: apmtools image
25
+ runs-on: ubuntu-latest
26
+ outputs:
27
+ tags: ${{ steps.meta.outputs.tags }} # list
28
+ labels: ${{ steps.meta.outputs.labels }} # list
29
+ steps:
30
+ - uses: actions/checkout@v4
31
+ with:
32
+ ref: ${{ github.head_ref || github.ref_name }}
33
+ fetch-depth: 0
34
+ show-progress: true
35
+ submodules: true
36
+ - name: Log in to GitHub Container Registry
37
+ if: ${{ github.event_name != 'pull_request' }}
38
+ uses: docker/login-action@v3
39
+ with:
40
+ registry: ${{ env.REGISTRY }}
41
+ username: ${{ github.actor }}
42
+ password: ${{ secrets.GITHUB_TOKEN }}
43
+
44
+ - name: Set up Docker Buildx
45
+ uses: docker/setup-buildx-action@v3
46
+
47
+ # https://github.com/docker/metadata-action
48
+ - name: Extract Docker metadata
49
+ id: meta
50
+ uses: docker/metadata-action@v5
51
+ with:
52
+ images: ${{ env.REGISTRY }}/${{ github.repository }}
53
+ # set latest tag for main branch and tags
54
+ # https://github.com/docker/metadata-action?tab=readme-ov-file#image-name-and-tag-sanitization
55
+ tags: |
56
+ type=ref,event=tag
57
+ type=ref,event=pr,prefix=pr-
58
+ type=raw,value=main,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
59
+ flavor: |
60
+ latest=auto
61
+
62
+ # https://docs.docker.com/build/ci/github-actions/share-image-jobs/
63
+ # https://github.com/docker/build-push-action
64
+ - name: Build and publish apmtools image
65
+ uses: docker/build-push-action@v6
66
+ with:
67
+ context: .
68
+ file: ${{ env.NORTH_TOOL_DIR }}/Dockerfile
69
+ cache-from: type=gha
70
+ cache-to: type=gha,mode=max
71
+ push: ${{ github.event_name != 'pull_request' }}
72
+ tags: ${{ steps.meta.outputs.tags }}
73
+ labels: ${{ steps.meta.outputs.labels }}
@@ -0,0 +1,130 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ pip-wheel-metadata/
24
+ share/python-wheels/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+ MANIFEST
29
+
30
+ # PyInstaller
31
+ # Usually these files are written by a python script from a template
32
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
33
+ *.manifest
34
+ *.spec
35
+
36
+ # Installer logs
37
+ pip-log.txt
38
+ pip-delete-this-directory.txt
39
+
40
+ # Unit test / coverage reports
41
+ htmlcov/
42
+ .tox/
43
+ .nox/
44
+ .coverage
45
+ .coverage.*
46
+ .cache
47
+ nosetests.xml
48
+ coverage.xml
49
+ *.cover
50
+ *.py,cover
51
+ .hypothesis/
52
+ .pytest_cache/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ target/
76
+
77
+ # Jupyter Notebook
78
+ .ipynb_checkpoints
79
+
80
+ # IPython
81
+ profile_default/
82
+ ipython_config.py
83
+
84
+ # pyenv
85
+ .python-version
86
+
87
+ # pipenv
88
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
89
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
90
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
91
+ # install all needed dependencies.
92
+ #Pipfile.lock
93
+
94
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow
95
+ __pypackages__/
96
+
97
+ # Celery stuff
98
+ celerybeat-schedule
99
+ celerybeat.pid
100
+
101
+ # SageMath parsed files
102
+ *.sage.py
103
+
104
+ # Environments
105
+ .env
106
+ .venv
107
+ env/
108
+ venv/
109
+ ENV/
110
+ env.bak/
111
+ venv.bak/
112
+ .pyenv
113
+
114
+ # Spyder project settings
115
+ .spyderproject
116
+ .spyproject
117
+
118
+ # Rope project settings
119
+ .ropeproject
120
+
121
+ # mkdocs documentation
122
+ /site
123
+
124
+ # mypy
125
+ .mypy_cache/
126
+ .dmypy.json
127
+ dmypy.json
128
+
129
+ # Pyre type checker
130
+ .pyre/
@@ -0,0 +1,21 @@
1
+ {
2
+ "editor.rulers": [
3
+ 88
4
+ ],
5
+ "editor.renderWhitespace": "all",
6
+ "editor.tabSize": 4,
7
+ "files.trimTrailingWhitespace": true,
8
+ "[python]": {
9
+ "editor.formatOnSave": true,
10
+ "editor.codeActionsOnSave": {
11
+ "source.fixAll": "explicit",
12
+ "source.organizeImports": "explicit"
13
+ },
14
+ "editor.defaultFormatter": "charliermarsh.ruff"
15
+ },
16
+ "python.testing.pytestArgs": [
17
+ "tests"
18
+ ],
19
+ "python.testing.unittestEnabled": false,
20
+ "python.testing.pytestEnabled": true
21
+ }
@@ -0,0 +1,56 @@
1
+ cff-version: 1.2.0
2
+ title: 'nomad-north-apmtools: NOMAD NORTH plugin for analysis of atom probe data'
3
+ version: 0.1.0
4
+ message:
5
+ If you use this software, please cite it using the
6
+ metadata from this file.
7
+ type: software
8
+ authors:
9
+ - given-names: Markus
10
+ family-names: Kühbach
11
+ orcid: 'https://orcid.org/0000-0002-7117-5196'
12
+ - given-names: Ádám
13
+ family-names: Fekete
14
+ orcid: 'https://orcid.org/0000-0002-6263-897X'
15
+ - given-names: Lukas
16
+ family-names: Pielsticker
17
+ orcid: 'https://orcid.org/0000-0001-9361-8333'
18
+ - given-names: Rubel
19
+ family-names: Mozumder
20
+ orcid: 'https://orcid.org/0009-0007-5926-6646'
21
+ - given-names: Sherjeel
22
+ family-names: Shabih
23
+ orcid: 'https://orcid.org/0009-0008-6635-4465'
24
+ - given-names: Sandor
25
+ family-names: Brockhauser
26
+ orcid: 'https://orcid.org/0000-0002-9700-4803'
27
+ - given-names: Heiko B.
28
+ family-names: Weber
29
+ orcid: 'https://orcid.org/0000-0002-6403-9022'
30
+ - given-names: Christoph T.
31
+ family-names: Koch
32
+ orcid: 'https://orcid.org/0000-0002-3984-1523'
33
+ - given-names: Claudia
34
+ family-names: Draxl
35
+ orcid: 'https://orcid.org/0000-0003-3523-6657'
36
+ repository-code: https://github.com/FAIRmat-NFDI/nomad-north-apmtools
37
+ keywords:
38
+ - NeXus
39
+ - pynxtools-apm
40
+ - NOMAD
41
+ - paraprobe-toolbox
42
+ - APAV
43
+ - CompositionSpace
44
+ - APyT
45
+ - Atom probe microscopy
46
+ abstract:
47
+ nomad-north-apmtools is a nomad-north-desktop-base NORTH tool plugin for NOMAD (https://nomad-lab.eu/nomad-lab/).
48
+
49
+ The work is funded by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation) - 460197019 (FAIRmat)
50
+ (https://gepris.dfg.de/gepris/projekt/460197019?language=en).
51
+ license: Apache Software License 2.0
52
+ funding:
53
+ - name: Deutsche Forschungsgemeinschaft
54
+ award-number: 460197019
55
+ title: FAIRmat - FAIR Data Infrastructure for Condensed-Matter Physics and the Chemical Physics of Solids
56
+ award-uri: https://gepris.dfg.de/gepris/projekt/460197019?language=en