pyglaze 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 (38) hide show
  1. pyglaze-0.1.0/LICENSE +28 -0
  2. pyglaze-0.1.0/MANIFEST.in +1 -0
  3. pyglaze-0.1.0/PKG-INFO +82 -0
  4. pyglaze-0.1.0/README.md +36 -0
  5. pyglaze-0.1.0/pyproject.toml +99 -0
  6. pyglaze-0.1.0/setup.cfg +4 -0
  7. pyglaze-0.1.0/src/pyglaze/__init__.py +1 -0
  8. pyglaze-0.1.0/src/pyglaze/datamodels/__init__.py +4 -0
  9. pyglaze-0.1.0/src/pyglaze/datamodels/pulse.py +551 -0
  10. pyglaze-0.1.0/src/pyglaze/datamodels/waveform.py +165 -0
  11. pyglaze-0.1.0/src/pyglaze/device/__init__.py +15 -0
  12. pyglaze-0.1.0/src/pyglaze/device/_delayunit_data/carmen-nonuniform-2023-10-20.pickle +0 -0
  13. pyglaze-0.1.0/src/pyglaze/device/_delayunit_data/g1-linearized-2023-04-04.pickle +0 -0
  14. pyglaze-0.1.0/src/pyglaze/device/_delayunit_data/g2-linearized-2023-04-04.pickle +0 -0
  15. pyglaze-0.1.0/src/pyglaze/device/_delayunit_data/g2-nonuniform-2023-04-04.pickle +0 -0
  16. pyglaze-0.1.0/src/pyglaze/device/_delayunit_data/mock_delay.pickle +0 -0
  17. pyglaze-0.1.0/src/pyglaze/device/ampcom.py +447 -0
  18. pyglaze-0.1.0/src/pyglaze/device/configuration.py +266 -0
  19. pyglaze-0.1.0/src/pyglaze/device/delayunit.py +151 -0
  20. pyglaze-0.1.0/src/pyglaze/device/identifiers.py +41 -0
  21. pyglaze-0.1.0/src/pyglaze/devtools/__init__.py +3 -0
  22. pyglaze-0.1.0/src/pyglaze/devtools/mock_device.py +367 -0
  23. pyglaze-0.1.0/src/pyglaze/devtools/thz_pulse.py +35 -0
  24. pyglaze-0.1.0/src/pyglaze/helpers/__init__.py +0 -0
  25. pyglaze-0.1.0/src/pyglaze/helpers/types.py +20 -0
  26. pyglaze-0.1.0/src/pyglaze/helpers/utilities.py +80 -0
  27. pyglaze-0.1.0/src/pyglaze/interpolation/__init__.py +3 -0
  28. pyglaze-0.1.0/src/pyglaze/interpolation/interpolation.py +24 -0
  29. pyglaze-0.1.0/src/pyglaze/py.typed +0 -0
  30. pyglaze-0.1.0/src/pyglaze/scanning/__init__.py +4 -0
  31. pyglaze-0.1.0/src/pyglaze/scanning/_asyncscanner.py +146 -0
  32. pyglaze-0.1.0/src/pyglaze/scanning/client.py +59 -0
  33. pyglaze-0.1.0/src/pyglaze/scanning/scanner.py +256 -0
  34. pyglaze-0.1.0/src/pyglaze.egg-info/PKG-INFO +82 -0
  35. pyglaze-0.1.0/src/pyglaze.egg-info/SOURCES.txt +36 -0
  36. pyglaze-0.1.0/src/pyglaze.egg-info/dependency_links.txt +1 -0
  37. pyglaze-0.1.0/src/pyglaze.egg-info/requires.txt +5 -0
  38. pyglaze-0.1.0/src/pyglaze.egg-info/top_level.txt +1 -0
pyglaze-0.1.0/LICENSE ADDED
@@ -0,0 +1,28 @@
1
+ BSD 3-Clause License
2
+
3
+ Copyright (c) 2024, Glaze Technologies
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ 3. Neither the name of the copyright holder nor the names of its
16
+ contributors may be used to endorse or promote products derived from
17
+ this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1 @@
1
+ include src/pyglaze/device/_delayunit_data/*
pyglaze-0.1.0/PKG-INFO ADDED
@@ -0,0 +1,82 @@
1
+ Metadata-Version: 2.1
2
+ Name: pyglaze
3
+ Version: 0.1.0
4
+ Summary: Pyglaze is a library used to operate the devices of Glaze Technologies
5
+ Author: GLAZE Technologies ApS
6
+ License: BSD 3-Clause License
7
+
8
+ Copyright (c) 2024, Glaze Technologies
9
+
10
+ Redistribution and use in source and binary forms, with or without
11
+ modification, are permitted provided that the following conditions are met:
12
+
13
+ 1. Redistributions of source code must retain the above copyright notice, this
14
+ list of conditions and the following disclaimer.
15
+
16
+ 2. Redistributions in binary form must reproduce the above copyright notice,
17
+ this list of conditions and the following disclaimer in the documentation
18
+ and/or other materials provided with the distribution.
19
+
20
+ 3. Neither the name of the copyright holder nor the names of its
21
+ contributors may be used to endorse or promote products derived from
22
+ this software without specific prior written permission.
23
+
24
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34
+ Project-URL: Homepage, https://www.glazetech.dk/
35
+ Project-URL: Documentation, https://glazetech.github.io/pyglaze/latest
36
+ Project-URL: Repository, https://github.com/GlazeTech/pyglaze
37
+ Project-URL: Issues, https://github.com/GlazeTech/pyglaze/issues
38
+ Requires-Python: <3.13,>=3.9
39
+ Description-Content-Type: text/markdown
40
+ License-File: LICENSE
41
+ Requires-Dist: numpy<2.0.0,>=1.26.4
42
+ Requires-Dist: pyserial>=3.5
43
+ Requires-Dist: scipy>=1.7.3
44
+ Requires-Dist: bitstring>=4.1.2
45
+ Requires-Dist: typing_extensions>=4.12.2
46
+
47
+ # Pyglaze
48
+ Pyglaze is a python library used to operate the devices of [Glaze Technologies](https://www.glazetech.dk/).
49
+
50
+ Documentation can be found [here](https://glazetech.github.io/pyglaze/latest/).
51
+
52
+ # Installation
53
+
54
+ To install the latest version of the package, simply run
55
+
56
+ ```
57
+ pip install pyglaze
58
+ ```
59
+
60
+ # Usage
61
+ See [our documentation](https://glazetech.github.io/pyglaze/latest/) for usage.
62
+
63
+ # Developers
64
+
65
+ To install the API with development tools in editable mode, first clone the repository from our [public GitHub repository](https://github.com/GlazeTech/pyglaze). Then, from the root of the project, run
66
+
67
+ ```
68
+ python -m pip install --upgrade pip
69
+ pip install -e . --config-settings editable_mode=strict
70
+ pip install -r requirements-dev.txt
71
+ ```
72
+
73
+ ## Documentation - local build
74
+ To build and serve the documentation locally
75
+
76
+ 1. Checkout the repository (or a specific version)
77
+ 2. Install `mkdocs`
78
+ 3. Run `mkdocs serve` while standing in the project root.
79
+
80
+
81
+ # Bug reporting or feature requests
82
+ Please create an issue [here](https://github.com/GlazeTech/pyglaze/issues) and we will look at it ASAP!
@@ -0,0 +1,36 @@
1
+ # Pyglaze
2
+ Pyglaze is a python library used to operate the devices of [Glaze Technologies](https://www.glazetech.dk/).
3
+
4
+ Documentation can be found [here](https://glazetech.github.io/pyglaze/latest/).
5
+
6
+ # Installation
7
+
8
+ To install the latest version of the package, simply run
9
+
10
+ ```
11
+ pip install pyglaze
12
+ ```
13
+
14
+ # Usage
15
+ See [our documentation](https://glazetech.github.io/pyglaze/latest/) for usage.
16
+
17
+ # Developers
18
+
19
+ To install the API with development tools in editable mode, first clone the repository from our [public GitHub repository](https://github.com/GlazeTech/pyglaze). Then, from the root of the project, run
20
+
21
+ ```
22
+ python -m pip install --upgrade pip
23
+ pip install -e . --config-settings editable_mode=strict
24
+ pip install -r requirements-dev.txt
25
+ ```
26
+
27
+ ## Documentation - local build
28
+ To build and serve the documentation locally
29
+
30
+ 1. Checkout the repository (or a specific version)
31
+ 2. Install `mkdocs`
32
+ 3. Run `mkdocs serve` while standing in the project root.
33
+
34
+
35
+ # Bug reporting or feature requests
36
+ Please create an issue [here](https://github.com/GlazeTech/pyglaze/issues) and we will look at it ASAP!
@@ -0,0 +1,99 @@
1
+ [project]
2
+ name = "pyglaze"
3
+ version = "0.1.0"
4
+ description = "Pyglaze is a library used to operate the devices of Glaze Technologies"
5
+ readme = "README.md"
6
+ license = { file = "LICENSE" }
7
+ authors = [
8
+ {name = "GLAZE Technologies ApS"},
9
+ ]
10
+ requires-python = ">=3.9,<3.13"
11
+
12
+ dependencies = [
13
+ "numpy>=1.26.4,<2.0.0",
14
+ "pyserial>=3.5",
15
+ "scipy>=1.7.3",
16
+ "bitstring>=4.1.2",
17
+ "typing_extensions>=4.12.2"
18
+ ]
19
+
20
+ [project.urls]
21
+ Homepage = "https://www.glazetech.dk/"
22
+ Documentation = "https://glazetech.github.io/pyglaze/latest"
23
+ Repository = "https://github.com/GlazeTech/pyglaze"
24
+ Issues = "https://github.com/GlazeTech/pyglaze/issues"
25
+
26
+ [build-system]
27
+ requires = ["setuptools"]
28
+ build-backend = "setuptools.build_meta"
29
+
30
+ [tool.setuptools]
31
+ include-package-data = true
32
+
33
+ [tool.pytest.ini_options]
34
+ addopts = [
35
+ "--cov=pyglaze",
36
+ "--import-mode=importlib",
37
+ ]
38
+
39
+ [tool.coverage.report]
40
+ exclude_also = [
41
+ "if TYPE_CHECKING:", # type checking is turned off at runtime
42
+ "@(abc\\.)?abstractmethod", # abstract methods aren't executed
43
+ ]
44
+
45
+ [tool.ruff]
46
+ target-version = "py39"
47
+ lint.select = ["ALL"]
48
+ lint.ignore = [
49
+ "D100", # allow undocumented public modules
50
+ "D104", # allow undocumented public package
51
+ "D106", # allow undocumented public nested class
52
+ "D107", # allow undocumented public __init__
53
+ "D203", # allow 0 black lines before class docstring
54
+ "D213", # allow multiline docstring to start on first line
55
+ "COM812", # allow missing trailing comma in type annotation
56
+ "E501", # don't enforce line length
57
+ "N802", # allow uppercase in function names
58
+ "N803", # allow uppercase in function args
59
+ "N806", # allow uppercase in variable names
60
+ "S301", # allow unpickling
61
+ "ISC001", # disable as advised by "ruff format"
62
+ ]
63
+
64
+ [tool.ruff.lint.pydocstyle]
65
+ convention = "google"
66
+
67
+ [tool.ruff.lint.per-file-ignores]
68
+ "tests/*" = [
69
+ "D", # allow missing docs
70
+ "PLR2004", # allow magic numbers
71
+ "S101", # allow asserts
72
+ "SLF001", # allow accessing private methods
73
+ "T201", # allow prints in tests
74
+ ]
75
+
76
+ [tool.bumpver]
77
+ current_version = "0.1.0"
78
+ version_pattern = "MAJOR.MINOR.PATCH[-TAG]"
79
+ commit_message = "BUMP VERSION {old_version} -> {new_version}"
80
+ tag_message = "v{new_version}"
81
+ tag_scope = "default"
82
+ pre_commit_hook = ""
83
+ post_commit_hook = ""
84
+ commit = true
85
+ tag = true
86
+ push = true
87
+
88
+ [tool.bumpver.file_patterns]
89
+ "pyproject.toml" = [
90
+ 'current_version = "{version}"',
91
+ 'version = "{version}"',
92
+ ]
93
+ "src/pyglaze/__init__.py" = [
94
+ '__version__ = "{version}"',
95
+ ]
96
+ "docs/index.md" = [
97
+ '**Documentation Version**: {version}'
98
+ ]
99
+
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1 @@
1
+ __version__ = "4.2.0"
@@ -0,0 +1,4 @@
1
+ from .pulse import Pulse
2
+ from .waveform import UnprocessedWaveform
3
+
4
+ __all__ = ["Pulse", "UnprocessedWaveform"]