hklpy2 0.0.4__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.
@@ -0,0 +1,11 @@
1
+ # Set update schedule for GitHub Actions
2
+ # https://docs.github.com/en/code-security/dependabot/working-with-dependabot/keeping-your-actions-up-to-date-with-dependabot
3
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
4
+
5
+ version: 2
6
+ updates:
7
+ - package-ecosystem: "github-actions"
8
+ directory: "/"
9
+ schedule:
10
+ # Check for updates to GitHub Actions every week
11
+ interval: "weekly"
@@ -0,0 +1,120 @@
1
+ name: Unit Tests
2
+
3
+ on:
4
+ # Triggers the workflow on push or pull request events but only for the main branch
5
+ push:
6
+ branches:
7
+ - main
8
+ pull_request:
9
+ branches:
10
+ - main
11
+ workflow_dispatch: # allow manual triggering
12
+
13
+ defaults:
14
+ run:
15
+ shell: bash -l {0}
16
+
17
+ jobs:
18
+
19
+ # lint:
20
+ # name: Code style
21
+ # runs-on: ubuntu-latest
22
+
23
+ # steps:
24
+ # - uses: actions/checkout@v4
25
+
26
+ # - uses: actions/setup-python@v2
27
+
28
+ # - name: Install Dependencies
29
+ # run: |
30
+ # python -m pip install --upgrade pip
31
+ # pip install flake8
32
+
33
+ # - name: Run flake8
34
+ # run: |
35
+ # flake8
36
+
37
+ test-matrix:
38
+ name: Python ${{ matrix.python-version }}
39
+ # needs: lint
40
+ runs-on: ubuntu-latest
41
+ strategy:
42
+ matrix:
43
+ python-version:
44
+ - "3.10" # not 3.10 which truncates to 3.1
45
+ - "3.11"
46
+ - "3.12"
47
+ max-parallel: 5
48
+
49
+ steps:
50
+ - uses: actions/checkout@v4
51
+
52
+ - name: Create Python ${{ matrix.python-version }} environment
53
+ uses: mamba-org/provision-with-micromamba@main
54
+ # use main branch to enable choice of channel-priority
55
+ with:
56
+ cache-env: true
57
+ cache-env-key: env-key-${{ matrix.python-version }}
58
+ channel-priority: flexible
59
+ environment-file: environment.yml
60
+ environment-name: anaconda-test-env-py-${{ matrix.python-version }}
61
+ extra-specs: |
62
+ pytest
63
+ python=${{ matrix.python-version }}
64
+ pyyaml
65
+ ruamel_yaml
66
+ yaml
67
+ setuptools-scm
68
+
69
+ - name: Install code coverage requirements by pip
70
+ run: |
71
+ # https://github.com/pradyunsg/furo/discussions/308#discussioncomment-3064061
72
+ pip install coverage coveralls
73
+
74
+ - name: Diagnostic
75
+ run: |
76
+ micromamba info
77
+ micromamba list
78
+ conda config --show-sources
79
+ conda config --show
80
+ micromamba env list
81
+ printenv | sort
82
+
83
+ - name: Run tests with pytest & coverage
84
+ shell: bash -l {0}
85
+ run: |
86
+ coverage run --concurrency=thread --parallel-mode -m pytest -vvv .
87
+ coverage combine
88
+ coverage report --precision 3
89
+
90
+ - name: Upload to coveralls
91
+ # https://github.com/TheKevJames/coveralls-python
92
+ shell: bash -l {0}
93
+ run: |
94
+ micromamba list cover
95
+ which coveralls
96
+ coveralls debug
97
+ coveralls --service=github
98
+ env:
99
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
100
+ COVERALLS_FLAG_NAME: ${{ matrix.test-name }}
101
+ COVERALLS_PARALLEL: true
102
+
103
+ # https://coveralls-python.readthedocs.io/en/latest/usage/configuration.html#github-actions-support
104
+ coveralls:
105
+ name: Report unit test coverage to coveralls
106
+ needs: test-matrix
107
+ runs-on: ubuntu-latest
108
+ container: python:3-slim
109
+
110
+ steps:
111
+ - name: Gather coverage and report to Coveralls
112
+ run: |
113
+ echo "Finally!"
114
+ pip3 install --upgrade coveralls
115
+ # debug mode: output prepared json and reported files list to stdout
116
+ # https://coveralls-python.readthedocs.io/en/latest/troubleshooting.html
117
+ coveralls debug
118
+ coveralls --service=github --finish
119
+ env:
120
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,65 @@
1
+ name: Publish Sphinx Docs to GitHub Pages
2
+
3
+ on:
4
+ # Build the docs on pushes to main branch, PRs to main branch, and new tags.
5
+ # Publish only on demand.
6
+ push:
7
+ branches:
8
+ - main
9
+ tags:
10
+ - '*' # all tags
11
+ pull_request:
12
+ branches:
13
+ - main
14
+ workflow_dispatch: # allow manual triggering
15
+ inputs:
16
+ deploy:
17
+ description: 'Deploy documentation'
18
+ type: boolean
19
+ required: true
20
+ default: false
21
+
22
+ defaults:
23
+ run:
24
+ shell: bash -l {0}
25
+
26
+ jobs:
27
+
28
+ docs:
29
+ name: Publish documentation
30
+ runs-on: ubuntu-latest
31
+
32
+ steps:
33
+
34
+ - name: Deploy Information
35
+ if: ${{ github.event.inputs.deploy }}
36
+ run: |
37
+ echo "The docs will be published from this workflow run."
38
+
39
+ - name: Set time zone
40
+ run: echo "TZ=America/Chicago" >> "$GITHUB_ENV"
41
+
42
+ - name: Sphinx build
43
+ id: deployment
44
+ uses: sphinx-notes/pages@v3
45
+ with:
46
+ documentation_path: ./docs/source
47
+ publish: false
48
+ requirements_path: ./docs/requirements.txt
49
+
50
+ - name: Diagnostic
51
+ run: ls -lAFgh ${{ steps.deployment.outputs.artifact }}
52
+
53
+ - name: Upload Docs ZIP file as artifact
54
+ uses: actions/upload-artifact@v4
55
+ with:
56
+ name: hklpy2-docs
57
+ path: ${{ steps.deployment.outputs.artifact }}
58
+
59
+ - name: Deploy (to gh-pages branch) only on demand
60
+ uses: peaceiris/actions-gh-pages@v4
61
+ if: ${{ github.event.inputs.deploy }}
62
+ with:
63
+ github_token: ${{ secrets.GITHUB_TOKEN }}
64
+ publish_branch: gh-pages
65
+ publish_dir: ${{ steps.deployment.outputs.artifact }}
@@ -0,0 +1,48 @@
1
+ name: Publish Python 🐍 distributions 📦 to PyPI and TestPyPI
2
+
3
+ on: push
4
+
5
+ permissions:
6
+ id-token: write
7
+
8
+ jobs:
9
+
10
+ build-pypi:
11
+ name: Build and publish Python 🐍 distributions 📦 to PyPI and TestPyPI
12
+ runs-on: ubuntu-latest
13
+
14
+ steps:
15
+ - uses: actions/checkout@master
16
+ - name: Set up Python
17
+ uses: actions/setup-python@v5
18
+ # with:
19
+ # python-version: 3.9
20
+
21
+ - name: Install pypa/build
22
+ run: >-
23
+ python -m
24
+ pip install
25
+ build
26
+ twine
27
+ --user
28
+
29
+ - name: Build a binary wheel and a source tarball
30
+ run: >-
31
+ python -m
32
+ build
33
+ --sdist
34
+ --wheel
35
+ --outdir dist/
36
+ .
37
+
38
+ - name: Check package metadata
39
+ run: >-
40
+ twine check dist/*
41
+
42
+ - name: Publish 📦 to PyPI
43
+ if: startsWith(github.ref, 'refs/tags')
44
+ uses: pypa/gh-action-pypi-publish@release/v1
45
+ with:
46
+ user: __token__
47
+ # password: ${{ secrets.PYPI_API_TOKEN }}
48
+ verbose: true
@@ -0,0 +1,87 @@
1
+ # custom for our GitHub Actions workflow
2
+ conda_env.yml
3
+ pip_req.txt
4
+
5
+ # Byte-compiled / optimized / DLL files
6
+ __pycache__/
7
+ *.py[cod]
8
+
9
+ # C extensions
10
+ *.so
11
+
12
+ # Distribution / packaging
13
+ .Python
14
+ env/
15
+ build/
16
+ develop-eggs/
17
+ dist/
18
+ downloads/
19
+ eggs/
20
+ lib/
21
+ lib64/
22
+ parts/
23
+ sdist/
24
+ var/
25
+ *.egg-info/
26
+ .installed.cfg
27
+ *.egg
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .coverage
43
+ .cache
44
+ nosetests.xml
45
+ coverage.xml
46
+
47
+ # Translations
48
+ *.mo
49
+ *.pot
50
+
51
+ # Django stuff:
52
+ *.log
53
+
54
+ # Sphinx documentation
55
+ docs/_build/
56
+
57
+ # PyBuilder
58
+ target/
59
+
60
+ # Origional File
61
+ *.pyc
62
+ *.swp
63
+ *.bak
64
+
65
+ # PyCharm
66
+ .idea/
67
+ .ropeproject
68
+
69
+ # notebook checkpoints
70
+ .ipynb_checkpoints
71
+
72
+ # generated docs
73
+ docs/source/generated
74
+
75
+ # Microsoft VS Code editor
76
+ .vscode/
77
+ .history/
78
+ docs/source/_build/
79
+
80
+ # PyTest cache
81
+ .pytest_cache/
82
+
83
+ # Bluesky session logger
84
+ .logs/
85
+
86
+ # local developer files
87
+ dev_*
hklpy2-0.0.4/LICENSE ADDED
@@ -0,0 +1,48 @@
1
+ Copyright (c) 2023-2024, UChicago Argonne, LLC
2
+
3
+ All Rights Reserved
4
+
5
+ hklpy2
6
+
7
+ BCDA, Advanced Photon Source, Argonne National Laboratory
8
+
9
+
10
+ OPEN SOURCE LICENSE
11
+
12
+ Redistribution and use in source and binary forms, with or without
13
+ modification, are permitted provided that the following conditions are met:
14
+
15
+ 1. Redistributions of source code must retain the above copyright notice,
16
+ this list of conditions and the following disclaimer. Software changes,
17
+ modifications, or derivative works, should be noted with comments and
18
+ the author and organization's name.
19
+
20
+ 2. Redistributions in binary form must reproduce the above copyright notice,
21
+ this list of conditions and the following disclaimer in the documentation
22
+ and/or other materials provided with the distribution.
23
+
24
+ 3. Neither the names of UChicago Argonne, LLC or the Department of Energy
25
+ nor the names of its contributors may be used to endorse or promote
26
+ products derived from this software without specific prior written
27
+ permission.
28
+
29
+ 4. The software and the end-user documentation included with the
30
+ redistribution, if any, must include the following acknowledgment:
31
+
32
+ "This product includes software produced by UChicago Argonne, LLC
33
+ under Contract No. DE-AC02-06CH11357 with the Department of Energy."
34
+
35
+ ****************************************************************************
36
+
37
+ DISCLAIMER
38
+
39
+ THE SOFTWARE IS SUPPLIED "AS IS" WITHOUT WARRANTY OF ANY KIND.
40
+
41
+ Neither the United States GOVERNMENT, nor the United States Department
42
+ of Energy, NOR uchicago argonne, LLC, nor any of their employees, makes
43
+ any warranty, express or implied, or assumes any legal liability or
44
+ responsibility for the accuracy, completeness, or usefulness of any
45
+ information, data, apparatus, product, or process disclosed, or
46
+ represents that its use would not infringe privately owned rights.
47
+
48
+ ****************************************************************************
@@ -0,0 +1,2 @@
1
+ include LICENSE
2
+ include README.md
hklpy2-0.0.4/PKG-INFO ADDED
@@ -0,0 +1,103 @@
1
+ Metadata-Version: 2.1
2
+ Name: hklpy2
3
+ Version: 0.0.4
4
+ Summary: 2nd generation diffractometer controls for the Bluesky Framework.
5
+ Author-email: Pete Jemian <prjemian+hklpy2@gmail.com>
6
+ Maintainer-email: Pete Jemian <prjemian+hklpy2@gmail.com>
7
+ License: Copyright (c) 2023-2024, UChicago Argonne, LLC
8
+
9
+ All Rights Reserved
10
+
11
+ hklpy2
12
+
13
+ BCDA, Advanced Photon Source, Argonne National Laboratory
14
+
15
+
16
+ OPEN SOURCE LICENSE
17
+
18
+ Redistribution and use in source and binary forms, with or without
19
+ modification, are permitted provided that the following conditions are met:
20
+
21
+ 1. Redistributions of source code must retain the above copyright notice,
22
+ this list of conditions and the following disclaimer. Software changes,
23
+ modifications, or derivative works, should be noted with comments and
24
+ the author and organization's name.
25
+
26
+ 2. Redistributions in binary form must reproduce the above copyright notice,
27
+ this list of conditions and the following disclaimer in the documentation
28
+ and/or other materials provided with the distribution.
29
+
30
+ 3. Neither the names of UChicago Argonne, LLC or the Department of Energy
31
+ nor the names of its contributors may be used to endorse or promote
32
+ products derived from this software without specific prior written
33
+ permission.
34
+
35
+ 4. The software and the end-user documentation included with the
36
+ redistribution, if any, must include the following acknowledgment:
37
+
38
+ "This product includes software produced by UChicago Argonne, LLC
39
+ under Contract No. DE-AC02-06CH11357 with the Department of Energy."
40
+
41
+ ****************************************************************************
42
+
43
+ DISCLAIMER
44
+
45
+ THE SOFTWARE IS SUPPLIED "AS IS" WITHOUT WARRANTY OF ANY KIND.
46
+
47
+ Neither the United States GOVERNMENT, nor the United States Department
48
+ of Energy, NOR uchicago argonne, LLC, nor any of their employees, makes
49
+ any warranty, express or implied, or assumes any legal liability or
50
+ responsibility for the accuracy, completeness, or usefulness of any
51
+ information, data, apparatus, product, or process disclosed, or
52
+ represents that its use would not infringe privately owned rights.
53
+
54
+ ****************************************************************************
55
+
56
+ Project-URL: Homepage, https://prjemian.github.io/hklpy2
57
+ Project-URL: Bug Tracker, https://github.com/prjemian/hklpy2/issues
58
+ Keywords: bluesky,diffraction,diffractometer
59
+ Classifier: Development Status :: 1 - Planning
60
+ Classifier: Environment :: Console
61
+ Classifier: Intended Audience :: Science/Research
62
+ Classifier: License :: Freely Distributable
63
+ Classifier: License :: Public Domain
64
+ Classifier: Operating System :: OS Independent
65
+ Classifier: Programming Language :: Python :: 3.12
66
+ Classifier: Programming Language :: Python :: 3.11
67
+ Classifier: Programming Language :: Python :: 3.10
68
+ Classifier: Programming Language :: Python :: 3
69
+ Classifier: Programming Language :: Python
70
+ Classifier: Topic :: Scientific/Engineering :: Astronomy
71
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
72
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
73
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
74
+ Classifier: Topic :: Scientific/Engineering :: Physics
75
+ Classifier: Topic :: Scientific/Engineering :: Visualization
76
+ Classifier: Topic :: Scientific/Engineering
77
+ Requires-Python: >=3.10
78
+ Description-Content-Type: text/markdown
79
+ License-File: LICENSE
80
+ Requires-Dist: numpy
81
+ Requires-Dist: ophyd
82
+ Requires-Dist: pint
83
+ Provides-Extra: libhkl
84
+ Requires-Dist: pygobject; extra == "libhkl"
85
+ Provides-Extra: tests
86
+ Requires-Dist: packaging; extra == "tests"
87
+ Provides-Extra: all
88
+ Requires-Dist: hklpy2[libhkl,tests]; extra == "all"
89
+
90
+ # hklpy2
91
+
92
+ NOTE: this project at initial development
93
+
94
+ | Name | Downloads | Version | Platforms | PyPI |
95
+ | --- | --- | --- | --- | --- |
96
+ | [![Conda Package](https://img.shields.io/badge/package-hklpy2-green.svg)](https://anaconda.org/conda-forge/hklpy2) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/hklpy2.svg)](https://anaconda.org/conda-forge/hklpy2) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/hklpy2.svg)](https://anaconda.org/conda-forge/hklpy2) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/hklpy2.svg)](https://anaconda.org/conda-forge/hklpy2) | [![PyPi](https://img.shields.io/pypi/v/hklpy2.svg)](https://pypi.python.org/pypi/hklpy2) |
97
+
98
+ Controls for using diffractometers within the [Bluesky
99
+ Framework](https://blueskyproject.io).
100
+
101
+ ## References
102
+
103
+ - hklpy2 documentation: <https://prjemian.github.io/hklpy2>
hklpy2-0.0.4/README.md ADDED
@@ -0,0 +1,14 @@
1
+ # hklpy2
2
+
3
+ NOTE: this project at initial development
4
+
5
+ | Name | Downloads | Version | Platforms | PyPI |
6
+ | --- | --- | --- | --- | --- |
7
+ | [![Conda Package](https://img.shields.io/badge/package-hklpy2-green.svg)](https://anaconda.org/conda-forge/hklpy2) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/hklpy2.svg)](https://anaconda.org/conda-forge/hklpy2) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/hklpy2.svg)](https://anaconda.org/conda-forge/hklpy2) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/hklpy2.svg)](https://anaconda.org/conda-forge/hklpy2) | [![PyPi](https://img.shields.io/pypi/v/hklpy2.svg)](https://pypi.python.org/pypi/hklpy2) |
8
+
9
+ Controls for using diffractometers within the [Bluesky
10
+ Framework](https://blueskyproject.io).
11
+
12
+ ## References
13
+
14
+ - hklpy2 documentation: <https://prjemian.github.io/hklpy2>
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
@@ -0,0 +1,35 @@
1
+ @ECHO OFF
2
+
3
+ pushd %~dp0
4
+
5
+ REM Command file for Sphinx documentation
6
+
7
+ if "%SPHINXBUILD%" == "" (
8
+ set SPHINXBUILD=sphinx-build
9
+ )
10
+ set SOURCEDIR=source
11
+ set BUILDDIR=build
12
+
13
+ %SPHINXBUILD% >NUL 2>NUL
14
+ if errorlevel 9009 (
15
+ echo.
16
+ echo.The 'sphinx-build' command was not found. Make sure you have Sphinx
17
+ echo.installed, then set the SPHINXBUILD environment variable to point
18
+ echo.to the full path of the 'sphinx-build' executable. Alternatively you
19
+ echo.may add the Sphinx directory to PATH.
20
+ echo.
21
+ echo.If you don't have Sphinx installed, grab it from
22
+ echo.https://www.sphinx-doc.org/
23
+ exit /b 1
24
+ )
25
+
26
+ if "%1" == "" goto help
27
+
28
+ %SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
29
+ goto end
30
+
31
+ :help
32
+ %SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O%
33
+
34
+ :end
35
+ popd
@@ -0,0 +1,5 @@
1
+ nbsphinx
2
+ pydata-sphinx-theme
3
+ sphinx
4
+ sphinx-design
5
+ sphinx-tabs
@@ -0,0 +1,89 @@
1
+ # Configuration file for the Sphinx documentation builder.
2
+ #
3
+ # For the full list of built-in configuration values, see the documentation:
4
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html
5
+
6
+ # flake8: noqa
7
+
8
+ import pathlib
9
+ import sys
10
+
11
+ docs_source = pathlib.Path(__file__).parent
12
+ sys.path.insert(0, str(docs_source.parent.parent))
13
+
14
+ # imports here for sphinx to build the documents without many WARNINGS.
15
+ import hklpy2
16
+
17
+ # -- Project information -----------------------------------------------------
18
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information
19
+
20
+ project = "hklpy2"
21
+ copyright = "2023-2024, Argonne National Laboratory"
22
+ # author = 'Bluesky team'
23
+ release = hklpy2.__version__
24
+ version = ".".join(release.split(".")[:2])
25
+ short_version = version
26
+ if "+g" in version and ".d2" in version:
27
+ # Extra date (1.0.5.dev146+gbb34ee0.d20231102) makes the title too long.
28
+ short_version = short_version.rsplit(".d2", 1)[0]
29
+ today_fmt = "%Y-%m-%d %H:%M"
30
+
31
+ # -- General configuration ---------------------------------------------------
32
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
33
+
34
+ extensions = [
35
+ "sphinx.ext.autodoc",
36
+ "sphinx.ext.autosummary",
37
+ "sphinx.ext.coverage",
38
+ "sphinx.ext.inheritance_diagram",
39
+ "sphinx.ext.intersphinx",
40
+ "sphinx.ext.mathjax",
41
+ "sphinx.ext.napoleon",
42
+ "sphinx.ext.viewcode",
43
+ "sphinx_design",
44
+ "nbsphinx",
45
+ ]
46
+ extensions.append("sphinx_tabs.tabs") # this must be last
47
+
48
+ templates_path = ["_templates"]
49
+ exclude_patterns = ["**.ipynb_checkpoints"]
50
+
51
+ # -- Options for HTML output -------------------------------------------------
52
+ # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output
53
+
54
+ html_theme = "pydata_sphinx_theme"
55
+ html_title = f"{project} {version}"
56
+ html_static_path = ["_static"]
57
+
58
+
59
+ # -- Options for autodoc ---------------------------------------------------
60
+
61
+ autodoc_exclude_members = ",".join(
62
+ """
63
+ __weakref__
64
+ _component_kinds
65
+ _device_tuple
66
+ _required_for_connection
67
+ _sig_attrs
68
+ _sub_devices
69
+ calc_class
70
+ component_names
71
+ """.split()
72
+ )
73
+ autodoc_default_options = {
74
+ # 'members': 'var1, var2',
75
+ # 'member-order': 'bysource',
76
+ "private-members": True,
77
+ # "special-members": "__init__",
78
+ # 'undoc-members': True,
79
+ "exclude-members": autodoc_exclude_members,
80
+ }
81
+ autodoc_mock_imports = [
82
+ "pint",
83
+ ]
84
+
85
+ # Example configuration for intersphinx: refer to the Python standard library.
86
+ intersphinx_mapping = {"python": ("https://docs.python.org/3", None)}
87
+ inheritance_graph_attrs = {"rankdir": "LR"}
88
+ inheritance_node_attrs = {"fontsize": 24}
89
+ autosummary_generate = True
@@ -0,0 +1,45 @@
1
+ ======
2
+ hklpy2
3
+ ======
4
+
5
+ .. include:: /substitutions.txt
6
+
7
+ .. index:: !hklpy
8
+
9
+ |hklpy2| - the 2nd generation Python package for practical use of diffractometers with the
10
+ `Bluesky Framework <https://blueskyproject.io>`_.
11
+
12
+ .. caution:: Development in progress.
13
+
14
+ .. toctree::
15
+ :glob:
16
+ :hidden:
17
+
18
+ license
19
+
20
+ .. hide, for now
21
+ .. icons: https://fonts.google.com/icons
22
+
23
+ .. grid:: 2
24
+
25
+ .. grid-item-card:: :material-outlined:`summarize;3em` User Guide
26
+ .. grid-item-card:: :material-regular:`install_desktop;3em` Installation
27
+ .. grid-item-card:: :material-regular:`subscriptions;3em` API
28
+ .. grid-item-card:: :material-regular:`history;3em` History of changes
29
+
30
+ .. _about:
31
+
32
+ About
33
+ -----
34
+
35
+ :home: https://prjemian.github.io/hklpy2
36
+ :source: https://github.com/prjemian/hklpy2
37
+ :license: :ref:`license`
38
+ :full version: |release|
39
+ :published: |today|
40
+ :index: :ref:`genindex`
41
+ :module: :ref:`modindex`
42
+ :1st gen: |hklpy|
43
+
44
+ "This product includes software produced by UChicago Argonne, LLC
45
+ under Contract No. DE-AC02-06CH11357 with the Department of Energy."
@@ -0,0 +1,7 @@
1
+ .. _license:
2
+
3
+ License
4
+ =======
5
+
6
+ .. literalinclude:: ../../LICENSE
7
+ :language: text
@@ -0,0 +1,11 @@
1
+ ..
2
+ This file is in restructured text format.
3
+ It defines canonical representations of various terms.
4
+
5
+ .. include:: /substitutions.txt
6
+
7
+
8
+ .. |hklpy| replace:: https://blueskyproject.io/hklpy
9
+ .. |hklpy2| replace:: **hklpy2**
10
+ .. |libhkl| replace:: **libhkl**
11
+ .. |spec| replace:: **SPEC**
@@ -0,0 +1,22 @@
1
+ # environment.yml
2
+
3
+ # User's minimal environment for hklpy2
4
+
5
+ # conda env create -f environment.yml
6
+ # micromamba create -n hklpy2 -f environment.yml
7
+
8
+ name: hklpy2
9
+
10
+ channels:
11
+ - conda-forge # must come before defaults (for gsl version)
12
+ - defaults
13
+
14
+ dependencies:
15
+ - python >=3.10,<3.13
16
+ - hkl
17
+ - numpy
18
+ - ophyd
19
+ - packaging
20
+ - pint
21
+ - pip
22
+ - pygobject
@@ -0,0 +1,25 @@
1
+ """
2
+ Package-level initialization.
3
+ """
4
+
5
+ __settings_orgName__ = "prjemian"
6
+ __package_name__ = "hklpy2"
7
+
8
+ try:
9
+ from setuptools_scm import get_version
10
+
11
+ __version__ = get_version(root="..", relative_to=__file__)
12
+ del get_version
13
+ except (LookupError, ModuleNotFoundError):
14
+ from importlib.metadata import version
15
+
16
+ __version__ = version(__package_name__)
17
+ del version
18
+
19
+ # -----------------------------------------------------------------------------
20
+ # :copyright: (c) 2023-2024, UChicago Argonne, LLC
21
+ #
22
+ # Distributed under the terms of the Argonne National Laboratory Open Source License.
23
+ #
24
+ # The full license is in the file LICENSE.txt, distributed with this software.
25
+ # -----------------------------------------------------------------------------
@@ -0,0 +1,19 @@
1
+ # TODO: add plugin support for selecting the backend solver
2
+
3
+ """
4
+ - https://github.com/bluesky/hklpy/issues/14
5
+ - https://github.com/bluesky/hklpy/issues/161
6
+ - https://github.com/bluesky/hklpy/issues/162
7
+ - https://github.com/bluesky/hklpy/issues/163
8
+ - https://github.com/bluesky/hklpy/issues/165
9
+ - https://github.com/bluesky/hklpy/issues/244
10
+ - https://xrayutilities.sourceforge.io/
11
+ - https://cohere.readthedocs.io
12
+ - https://github.com/AdvancedPhotonSource/cohere-scripts/tree/main/scripts/beamlines/aps_34idc
13
+ - https://xrayutilities.sourceforge.io/_modules/xrayutilities/experiment.html#QConversion
14
+ - https://github.com/DiamondLightSource/diffcalc
15
+ - SPEC server mode
16
+ - https://github.com/prjemian/pyub
17
+ """
18
+
19
+ from .hkl_backend import libhkl as solver # noqa
@@ -0,0 +1,14 @@
1
+ """
2
+ Backend: Hkl
3
+
4
+ :home: https://people.debian.org/~picca/hkl/hkl.html
5
+ :source: https://repo.or.cz/hkl.git
6
+ """
7
+
8
+ import gi
9
+
10
+ gi.require_version("Hkl", "5.0")
11
+
12
+ from gi.repository import Hkl as libhkl # noqa: E402
13
+
14
+ __version__ = libhkl.VERSION
File without changes
@@ -0,0 +1,6 @@
1
+ from .. import hkl_backend as backend
2
+
3
+
4
+ def test_simple():
5
+ assert "libhkl" in dir(backend)
6
+ assert isinstance(backend.libhkl.VERSION, str)
File without changes
@@ -0,0 +1,5 @@
1
+ from ..backends import solver
2
+
3
+
4
+ def test_backends():
5
+ assert solver is not None
@@ -0,0 +1,103 @@
1
+ Metadata-Version: 2.1
2
+ Name: hklpy2
3
+ Version: 0.0.4
4
+ Summary: 2nd generation diffractometer controls for the Bluesky Framework.
5
+ Author-email: Pete Jemian <prjemian+hklpy2@gmail.com>
6
+ Maintainer-email: Pete Jemian <prjemian+hklpy2@gmail.com>
7
+ License: Copyright (c) 2023-2024, UChicago Argonne, LLC
8
+
9
+ All Rights Reserved
10
+
11
+ hklpy2
12
+
13
+ BCDA, Advanced Photon Source, Argonne National Laboratory
14
+
15
+
16
+ OPEN SOURCE LICENSE
17
+
18
+ Redistribution and use in source and binary forms, with or without
19
+ modification, are permitted provided that the following conditions are met:
20
+
21
+ 1. Redistributions of source code must retain the above copyright notice,
22
+ this list of conditions and the following disclaimer. Software changes,
23
+ modifications, or derivative works, should be noted with comments and
24
+ the author and organization's name.
25
+
26
+ 2. Redistributions in binary form must reproduce the above copyright notice,
27
+ this list of conditions and the following disclaimer in the documentation
28
+ and/or other materials provided with the distribution.
29
+
30
+ 3. Neither the names of UChicago Argonne, LLC or the Department of Energy
31
+ nor the names of its contributors may be used to endorse or promote
32
+ products derived from this software without specific prior written
33
+ permission.
34
+
35
+ 4. The software and the end-user documentation included with the
36
+ redistribution, if any, must include the following acknowledgment:
37
+
38
+ "This product includes software produced by UChicago Argonne, LLC
39
+ under Contract No. DE-AC02-06CH11357 with the Department of Energy."
40
+
41
+ ****************************************************************************
42
+
43
+ DISCLAIMER
44
+
45
+ THE SOFTWARE IS SUPPLIED "AS IS" WITHOUT WARRANTY OF ANY KIND.
46
+
47
+ Neither the United States GOVERNMENT, nor the United States Department
48
+ of Energy, NOR uchicago argonne, LLC, nor any of their employees, makes
49
+ any warranty, express or implied, or assumes any legal liability or
50
+ responsibility for the accuracy, completeness, or usefulness of any
51
+ information, data, apparatus, product, or process disclosed, or
52
+ represents that its use would not infringe privately owned rights.
53
+
54
+ ****************************************************************************
55
+
56
+ Project-URL: Homepage, https://prjemian.github.io/hklpy2
57
+ Project-URL: Bug Tracker, https://github.com/prjemian/hklpy2/issues
58
+ Keywords: bluesky,diffraction,diffractometer
59
+ Classifier: Development Status :: 1 - Planning
60
+ Classifier: Environment :: Console
61
+ Classifier: Intended Audience :: Science/Research
62
+ Classifier: License :: Freely Distributable
63
+ Classifier: License :: Public Domain
64
+ Classifier: Operating System :: OS Independent
65
+ Classifier: Programming Language :: Python :: 3.12
66
+ Classifier: Programming Language :: Python :: 3.11
67
+ Classifier: Programming Language :: Python :: 3.10
68
+ Classifier: Programming Language :: Python :: 3
69
+ Classifier: Programming Language :: Python
70
+ Classifier: Topic :: Scientific/Engineering :: Astronomy
71
+ Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
72
+ Classifier: Topic :: Scientific/Engineering :: Chemistry
73
+ Classifier: Topic :: Scientific/Engineering :: Mathematics
74
+ Classifier: Topic :: Scientific/Engineering :: Physics
75
+ Classifier: Topic :: Scientific/Engineering :: Visualization
76
+ Classifier: Topic :: Scientific/Engineering
77
+ Requires-Python: >=3.10
78
+ Description-Content-Type: text/markdown
79
+ License-File: LICENSE
80
+ Requires-Dist: numpy
81
+ Requires-Dist: ophyd
82
+ Requires-Dist: pint
83
+ Provides-Extra: libhkl
84
+ Requires-Dist: pygobject; extra == "libhkl"
85
+ Provides-Extra: tests
86
+ Requires-Dist: packaging; extra == "tests"
87
+ Provides-Extra: all
88
+ Requires-Dist: hklpy2[libhkl,tests]; extra == "all"
89
+
90
+ # hklpy2
91
+
92
+ NOTE: this project at initial development
93
+
94
+ | Name | Downloads | Version | Platforms | PyPI |
95
+ | --- | --- | --- | --- | --- |
96
+ | [![Conda Package](https://img.shields.io/badge/package-hklpy2-green.svg)](https://anaconda.org/conda-forge/hklpy2) | [![Conda Downloads](https://img.shields.io/conda/dn/conda-forge/hklpy2.svg)](https://anaconda.org/conda-forge/hklpy2) | [![Conda Version](https://img.shields.io/conda/vn/conda-forge/hklpy2.svg)](https://anaconda.org/conda-forge/hklpy2) | [![Conda Platforms](https://img.shields.io/conda/pn/conda-forge/hklpy2.svg)](https://anaconda.org/conda-forge/hklpy2) | [![PyPi](https://img.shields.io/pypi/v/hklpy2.svg)](https://pypi.python.org/pypi/hklpy2) |
97
+
98
+ Controls for using diffractometers within the [Bluesky
99
+ Framework](https://blueskyproject.io).
100
+
101
+ ## References
102
+
103
+ - hklpy2 documentation: <https://prjemian.github.io/hklpy2>
@@ -0,0 +1,29 @@
1
+ .gitignore
2
+ LICENSE
3
+ MANIFEST.in
4
+ README.md
5
+ environment.yml
6
+ pyproject.toml
7
+ .github/dependabot.yml
8
+ .github/workflows/code.yml
9
+ .github/workflows/docs.yml
10
+ .github/workflows/pypi.yml
11
+ docs/Makefile
12
+ docs/make.bat
13
+ docs/requirements.txt
14
+ docs/source/conf.py
15
+ docs/source/index.rst
16
+ docs/source/license.rst
17
+ docs/source/substitutions.txt
18
+ hklpy2/__init__.py
19
+ hklpy2.egg-info/PKG-INFO
20
+ hklpy2.egg-info/SOURCES.txt
21
+ hklpy2.egg-info/dependency_links.txt
22
+ hklpy2.egg-info/requires.txt
23
+ hklpy2.egg-info/top_level.txt
24
+ hklpy2/backends/__init__.py
25
+ hklpy2/backends/hkl_backend.py
26
+ hklpy2/backends/tests/__init__.py
27
+ hklpy2/backends/tests/test_hkl_backend.py
28
+ hklpy2/tests/__init__.py
29
+ hklpy2/tests/test_solver.py
@@ -0,0 +1,12 @@
1
+ numpy
2
+ ophyd
3
+ pint
4
+
5
+ [all]
6
+ hklpy2[libhkl,tests]
7
+
8
+ [libhkl]
9
+ pygobject
10
+
11
+ [tests]
12
+ packaging
@@ -0,0 +1 @@
1
+ hklpy2
@@ -0,0 +1,101 @@
1
+ [build-system]
2
+ requires = [
3
+ "setuptools_scm[toml]>=8",
4
+ "setuptools>=64.0",
5
+ ]
6
+ build-backend = "setuptools.build_meta"
7
+
8
+ [project]
9
+ name = "hklpy2"
10
+ description = "2nd generation diffractometer controls for the Bluesky Framework."
11
+ authors = [
12
+ { name="Pete Jemian", email="prjemian+hklpy2@gmail.com" },
13
+ ]
14
+ maintainers = [
15
+ { name="Pete Jemian", email="prjemian+hklpy2@gmail.com" },
16
+ ]
17
+ dynamic = ["version"]
18
+ readme = "README.md"
19
+ requires-python = ">=3.10"
20
+ keywords = ["bluesky", "diffraction", "diffractometer"]
21
+ # https://packaging.python.org/en/latest/specifications/declaring-project-metadata/?highlight=license
22
+ license = {file = "LICENSE"}
23
+ # https://pypi.org/classifiers/
24
+ classifiers = [
25
+ "Development Status :: 1 - Planning",
26
+ "Environment :: Console",
27
+ "Intended Audience :: Science/Research",
28
+ "License :: Freely Distributable",
29
+ "License :: Public Domain",
30
+ "Operating System :: OS Independent",
31
+ "Programming Language :: Python :: 3.12",
32
+ "Programming Language :: Python :: 3.11",
33
+ "Programming Language :: Python :: 3.10",
34
+ "Programming Language :: Python :: 3",
35
+ "Programming Language :: Python",
36
+ "Topic :: Scientific/Engineering :: Astronomy",
37
+ "Topic :: Scientific/Engineering :: Bio-Informatics",
38
+ "Topic :: Scientific/Engineering :: Chemistry",
39
+ "Topic :: Scientific/Engineering :: Mathematics",
40
+ "Topic :: Scientific/Engineering :: Physics",
41
+ "Topic :: Scientific/Engineering :: Visualization",
42
+ "Topic :: Scientific/Engineering",
43
+ ]
44
+
45
+ dependencies = [
46
+ "numpy",
47
+ "ophyd",
48
+ "pint",
49
+ ]
50
+
51
+ [project.optional-dependencies]
52
+ libhkl = [
53
+ "pygobject",
54
+ ]
55
+ tests = [
56
+ "packaging",
57
+ ]
58
+ all = ["hklpy2[libhkl,tests]"]
59
+
60
+ [project.urls]
61
+ "Homepage" = "https://prjemian.github.io/hklpy2"
62
+ "Bug Tracker" = "https://github.com/prjemian/hklpy2/issues"
63
+
64
+ [tool.black]
65
+ line-length = 115 # matches the value of 'max-line-length' in .flake8
66
+ target-version = ['py312']
67
+ include = '\.pyi?$'
68
+ exclude = '''
69
+
70
+ (
71
+ /(
72
+ \.eggs # exclude a few common directories in the
73
+ | \.git # root of the project
74
+ | \.mypy_cache
75
+ | \.tox
76
+ | \.venv
77
+ | _build
78
+ | examples/archive
79
+ | build
80
+ | dist
81
+ )/
82
+ | hkl/_version.py
83
+ )
84
+ '''
85
+
86
+ [tool.flake8]
87
+ max-line-length = 115
88
+ extend-ignore = ["E501"]
89
+
90
+ [tool.isort]
91
+ profile = "black"
92
+ force_single_line = "True"
93
+ line_length = 115
94
+ multi_line_output = "NOQA"
95
+ src_paths = ["hkl"]
96
+
97
+ [tool.pytest.ini_options]
98
+ addopts = [
99
+ "--import-mode=importlib",
100
+ ]
101
+ [tool.setuptools_scm]
hklpy2-0.0.4/setup.cfg ADDED
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+