SAMPIClyser 0.0.1__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.
- sampiclyser-0.0.1/.bumpversion.cfg +28 -0
- sampiclyser-0.0.1/.github/workflows/publish-to-test-pypi.yml +96 -0
- sampiclyser-0.0.1/.gitignore +27 -0
- sampiclyser-0.0.1/.pre-commit-config.yaml +40 -0
- sampiclyser-0.0.1/.readthedocs.yml +35 -0
- sampiclyser-0.0.1/AUTHORS.rst +4 -0
- sampiclyser-0.0.1/CHANGELOG.rst +11 -0
- sampiclyser-0.0.1/CONTRIBUTING.rst +83 -0
- sampiclyser-0.0.1/LICENSE +19 -0
- sampiclyser-0.0.1/PKG-INFO +36 -0
- sampiclyser-0.0.1/PyPIREADME.md +8 -0
- sampiclyser-0.0.1/README.rst +224 -0
- sampiclyser-0.0.1/docs/authors.rst +1 -0
- sampiclyser-0.0.1/docs/changelog.rst +1 -0
- sampiclyser-0.0.1/docs/conf.py +47 -0
- sampiclyser-0.0.1/docs/contributing.rst +1 -0
- sampiclyser-0.0.1/docs/index.rst +21 -0
- sampiclyser-0.0.1/docs/installation.rst +7 -0
- sampiclyser-0.0.1/docs/readme.rst +1 -0
- sampiclyser-0.0.1/docs/reference/index.rst +7 -0
- sampiclyser-0.0.1/docs/reference/sampiclyser.rst +15 -0
- sampiclyser-0.0.1/docs/requirements.txt +2 -0
- sampiclyser-0.0.1/docs/spelling_wordlist.txt +11 -0
- sampiclyser-0.0.1/docs/usage.rst +7 -0
- sampiclyser-0.0.1/pyproject.toml +85 -0
- sampiclyser-0.0.1/pytest.ini +24 -0
- sampiclyser-0.0.1/src/sampiclyser/__init__.py +30 -0
- sampiclyser-0.0.1/src/sampiclyser/entry_points.py +41 -0
- sampiclyser-0.0.1/tests/test_global.py +34 -0
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
[bumpversion]
|
|
2
|
+
current_version = 0.0.1
|
|
3
|
+
commit = True
|
|
4
|
+
tag = True
|
|
5
|
+
|
|
6
|
+
[bumpversion:file:src/sampiclyser/__init__.py]
|
|
7
|
+
search = __version__ = '{current_version}'
|
|
8
|
+
replace = __version__ = '{new_version}'
|
|
9
|
+
|
|
10
|
+
[bumpversion:file:pyproject.toml]
|
|
11
|
+
search = version = "{current_version}"
|
|
12
|
+
replace = version = "{new_version}"
|
|
13
|
+
|
|
14
|
+
[bumpversion:file:docs/conf.py]
|
|
15
|
+
search = version = release = '{current_version}'
|
|
16
|
+
replace = version = release = '{new_version}'
|
|
17
|
+
|
|
18
|
+
[bumpversion:file:tests/test_global.py]
|
|
19
|
+
search = version = '{current_version}'
|
|
20
|
+
replace = version = '{new_version}'
|
|
21
|
+
|
|
22
|
+
[bumpversion:file (badge):README.rst]
|
|
23
|
+
search = /v{current_version}.svg
|
|
24
|
+
replace = /v{new_version}.svg
|
|
25
|
+
|
|
26
|
+
[bumpversion:file (link):README.rst]
|
|
27
|
+
search = /v{current_version}...main
|
|
28
|
+
replace = /v{new_version}...main
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
name: Publish Python 🐍 distribution 📦 to PyPI and TestPyPI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- '**'
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
name: Build distribution 📦
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v4
|
|
15
|
+
- name: Set up Python
|
|
16
|
+
uses: actions/setup-python@v5
|
|
17
|
+
with:
|
|
18
|
+
python-version: "3.x"
|
|
19
|
+
- name: Install pypa/build
|
|
20
|
+
run: >-
|
|
21
|
+
python3 -m
|
|
22
|
+
pip install
|
|
23
|
+
build
|
|
24
|
+
--user
|
|
25
|
+
- name: Build a binary wheel and a source tarball
|
|
26
|
+
run: python3 -m build
|
|
27
|
+
- name: Store the distribution packages
|
|
28
|
+
uses: actions/upload-artifact@v4
|
|
29
|
+
with:
|
|
30
|
+
name: python-package-distributions
|
|
31
|
+
path: dist/
|
|
32
|
+
|
|
33
|
+
publish-to-pypi:
|
|
34
|
+
name: >-
|
|
35
|
+
Publish Python 🐍 distribution 📦 to PyPI
|
|
36
|
+
if: startsWith(github.ref, 'refs/tags/v') # only publish to PyPI on tag pushes
|
|
37
|
+
needs:
|
|
38
|
+
- build
|
|
39
|
+
runs-on: ubuntu-latest
|
|
40
|
+
environment:
|
|
41
|
+
name: pypi
|
|
42
|
+
url: https://pypi.org/p/<package-name> # Replace <package-name> with your PyPI project name
|
|
43
|
+
permissions:
|
|
44
|
+
id-token: write # IMPORTANT: mandatory for trusted publishing
|
|
45
|
+
|
|
46
|
+
steps:
|
|
47
|
+
- name: Download all the dists
|
|
48
|
+
uses: actions/download-artifact@v4
|
|
49
|
+
with:
|
|
50
|
+
name: python-package-distributions
|
|
51
|
+
path: dist/
|
|
52
|
+
- name: Publish distribution 📦 to PyPI
|
|
53
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
54
|
+
|
|
55
|
+
github-release:
|
|
56
|
+
name: >-
|
|
57
|
+
Sign the Python 🐍 distribution 📦 with Sigstore
|
|
58
|
+
and upload them to GitHub Release
|
|
59
|
+
needs:
|
|
60
|
+
- publish-to-pypi
|
|
61
|
+
runs-on: ubuntu-latest
|
|
62
|
+
|
|
63
|
+
permissions:
|
|
64
|
+
contents: write # IMPORTANT: mandatory for making GitHub Releases
|
|
65
|
+
id-token: write # IMPORTANT: mandatory for sigstore
|
|
66
|
+
|
|
67
|
+
steps:
|
|
68
|
+
- name: Download all the dists
|
|
69
|
+
uses: actions/download-artifact@v4
|
|
70
|
+
with:
|
|
71
|
+
name: python-package-distributions
|
|
72
|
+
path: dist/
|
|
73
|
+
- name: Sign the dists with Sigstore
|
|
74
|
+
uses: sigstore/gh-action-sigstore-python@v3.0.0
|
|
75
|
+
with:
|
|
76
|
+
inputs: >-
|
|
77
|
+
./dist/*.tar.gz
|
|
78
|
+
./dist/*.whl
|
|
79
|
+
- name: Create GitHub Release
|
|
80
|
+
env:
|
|
81
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
82
|
+
run: >-
|
|
83
|
+
gh release create
|
|
84
|
+
'${{ github.ref_name }}'
|
|
85
|
+
--repo '${{ github.repository }}'
|
|
86
|
+
--notes ""
|
|
87
|
+
- name: Upload artifact signatures to GitHub Release
|
|
88
|
+
env:
|
|
89
|
+
GITHUB_TOKEN: ${{ github.token }}
|
|
90
|
+
# Upload to GitHub Release using the `gh` CLI.
|
|
91
|
+
# `dist/` contains the built packages, and the
|
|
92
|
+
# sigstore-produced signatures and certificates.
|
|
93
|
+
run: >-
|
|
94
|
+
gh release upload
|
|
95
|
+
'${{ github.ref_name }}' dist/**
|
|
96
|
+
--repo '${{ github.repository }}'
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
venv/*
|
|
2
|
+
|
|
3
|
+
*.py[cod]
|
|
4
|
+
__pycache__
|
|
5
|
+
*.feather
|
|
6
|
+
*.parquet
|
|
7
|
+
*.root
|
|
8
|
+
|
|
9
|
+
# Packages
|
|
10
|
+
*.egg
|
|
11
|
+
*.egg-info
|
|
12
|
+
dist
|
|
13
|
+
build
|
|
14
|
+
eggs
|
|
15
|
+
.eggs
|
|
16
|
+
parts
|
|
17
|
+
bin
|
|
18
|
+
var
|
|
19
|
+
sdist
|
|
20
|
+
wheelhouse
|
|
21
|
+
develop-eggs
|
|
22
|
+
.installed.cfg
|
|
23
|
+
lib
|
|
24
|
+
lib64
|
|
25
|
+
venv*/
|
|
26
|
+
pyvenv*/
|
|
27
|
+
pip-wheel-metadata/
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# See https://pre-commit.com for more information
|
|
2
|
+
# See https://pre-commit.com/hooks.html for more hooks
|
|
3
|
+
# To install the git pre-commit hook run:
|
|
4
|
+
# pre-commit install
|
|
5
|
+
# To update the pre-commit hooks run:
|
|
6
|
+
# pre-commit install-hooks
|
|
7
|
+
exclude: '^(\.tox|ci/templates|\.bumpversion\.cfg)(/|$)'
|
|
8
|
+
repos:
|
|
9
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
10
|
+
rev: v4.5.0
|
|
11
|
+
hooks:
|
|
12
|
+
- id: trailing-whitespace
|
|
13
|
+
- id: end-of-file-fixer
|
|
14
|
+
- id: debug-statements
|
|
15
|
+
- id: check-yaml
|
|
16
|
+
- id: check-added-large-files
|
|
17
|
+
|
|
18
|
+
- repo: https://github.com/pycqa/isort
|
|
19
|
+
rev: 5.13.2
|
|
20
|
+
hooks:
|
|
21
|
+
- id: isort
|
|
22
|
+
name: isort (python)
|
|
23
|
+
|
|
24
|
+
# Using this mirror lets us use mypyc-compiled black, which is about 2x faster
|
|
25
|
+
# Alternative: https://github.com/psf/black
|
|
26
|
+
- repo: https://github.com/psf/black-pre-commit-mirror
|
|
27
|
+
rev: 24.1.1
|
|
28
|
+
hooks:
|
|
29
|
+
- id: black
|
|
30
|
+
# It is recommended to specify the latest version of Python
|
|
31
|
+
# supported by your project here, or alternatively use
|
|
32
|
+
# pre-commit's default_language_version, see
|
|
33
|
+
# https://pre-commit.com/#top_level-default_language_version
|
|
34
|
+
language_version: python3.11
|
|
35
|
+
|
|
36
|
+
- repo: https://github.com/pycqa/flake8
|
|
37
|
+
rev: 7.0.0
|
|
38
|
+
hooks:
|
|
39
|
+
- id: flake8
|
|
40
|
+
additional_dependencies: [Flake8-pyproject]
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# .readthedocs.yaml
|
|
2
|
+
# Read the Docs configuration file
|
|
3
|
+
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
|
4
|
+
|
|
5
|
+
# Required
|
|
6
|
+
version: 2
|
|
7
|
+
|
|
8
|
+
# Set the OS, Python version and other tools you might need
|
|
9
|
+
build:
|
|
10
|
+
os: ubuntu-24.04
|
|
11
|
+
tools:
|
|
12
|
+
python: "3.13"
|
|
13
|
+
# You can also specify other tool versions:
|
|
14
|
+
# nodejs: "19"
|
|
15
|
+
# rust: "1.64"
|
|
16
|
+
# golang: "1.19"
|
|
17
|
+
|
|
18
|
+
# Build documentation in the "docs/" directory with Sphinx
|
|
19
|
+
sphinx:
|
|
20
|
+
configuration: docs/conf.py
|
|
21
|
+
|
|
22
|
+
# Optionally build your docs in additional formats such as PDF and ePub
|
|
23
|
+
# formats:
|
|
24
|
+
# - pdf
|
|
25
|
+
# - epub
|
|
26
|
+
formats: all
|
|
27
|
+
|
|
28
|
+
# Optional but recommended, declare the Python requirements required
|
|
29
|
+
# to build your documentation
|
|
30
|
+
# See https://docs.readthedocs.io/en/stable/guides/reproducible-builds.html
|
|
31
|
+
python:
|
|
32
|
+
install:
|
|
33
|
+
- requirements: docs/requirements.txt
|
|
34
|
+
- method: pip
|
|
35
|
+
path: .
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
============
|
|
2
|
+
Contributing
|
|
3
|
+
============
|
|
4
|
+
|
|
5
|
+
Contributions are welcome, and they are greatly appreciated! Every
|
|
6
|
+
little bit helps, and credit will always be given.
|
|
7
|
+
|
|
8
|
+
Bug reports
|
|
9
|
+
===========
|
|
10
|
+
|
|
11
|
+
When `reporting a bug <https://github.com/cbeiraod/SAMPIClyser/issues>`_ please include:
|
|
12
|
+
|
|
13
|
+
* Your operating system name and version.
|
|
14
|
+
* Any details about your local setup that might be helpful in troubleshooting.
|
|
15
|
+
* Detailed steps to reproduce the bug.
|
|
16
|
+
|
|
17
|
+
Documentation improvements
|
|
18
|
+
==========================
|
|
19
|
+
|
|
20
|
+
SAMPIClyser could always use more documentation, whether as part of the
|
|
21
|
+
official SAMPIClyser docs, in docstrings, or even on the web in blog posts,
|
|
22
|
+
articles, and such.
|
|
23
|
+
|
|
24
|
+
Feature requests and feedback
|
|
25
|
+
=============================
|
|
26
|
+
|
|
27
|
+
The best way to send feedback is to file an issue at https://github.com/cbeiraod/SAMPIClyser/issues.
|
|
28
|
+
|
|
29
|
+
If you are proposing a feature:
|
|
30
|
+
|
|
31
|
+
* Explain in detail how it would work.
|
|
32
|
+
* Keep the scope as narrow as possible, to make it easier to implement.
|
|
33
|
+
* Remember that this is a volunteer-driven project, and that code contributions are welcome :)
|
|
34
|
+
|
|
35
|
+
Development
|
|
36
|
+
===========
|
|
37
|
+
|
|
38
|
+
To set up `SAMPIClyser` for local development:
|
|
39
|
+
|
|
40
|
+
1. Fork `SAMPIClyser" <https://github.com/cbeiraod/SAMPIClyser>`_
|
|
41
|
+
(look for the "Fork" button).
|
|
42
|
+
2. Clone your fork locally::
|
|
43
|
+
|
|
44
|
+
git clone git@github.com:YOURGITHUBNAME/SAMPIClyser.git
|
|
45
|
+
|
|
46
|
+
3. Create a branch for local development::
|
|
47
|
+
|
|
48
|
+
git checkout -b name-of-your-bugfix-or-feature
|
|
49
|
+
|
|
50
|
+
Now you can make your changes locally.
|
|
51
|
+
|
|
52
|
+
4. When you're done making changes run all the checks
|
|
53
|
+
|
|
54
|
+
5. Commit your changes and push your branch to GitHub::
|
|
55
|
+
|
|
56
|
+
git add .
|
|
57
|
+
git commit -m "Your detailed description of your changes."
|
|
58
|
+
git push origin name-of-your-bugfix-or-feature
|
|
59
|
+
|
|
60
|
+
6. Submit a pull request through the GitHub website.
|
|
61
|
+
|
|
62
|
+
Pull Request Guidelines
|
|
63
|
+
-----------------------
|
|
64
|
+
|
|
65
|
+
If you need some code review or feedback while you're developing the code just make the pull request.
|
|
66
|
+
|
|
67
|
+
For merging, you should:
|
|
68
|
+
|
|
69
|
+
1. Include passing tests [1]_.
|
|
70
|
+
2. Update documentation when there's new API, functionality etc.
|
|
71
|
+
3. Add a note to ``CHANGELOG.rst`` about the changes.
|
|
72
|
+
4. Add yourself to ``AUTHORS.rst``.
|
|
73
|
+
|
|
74
|
+
.. [1] If you don't have all the necessary python versions available locally you can rely on Travis (WIP) - it will
|
|
75
|
+
`run the tests <https://travis-ci.com/github/cbeiraod/SAMPIClyser/pull_requests>`_
|
|
76
|
+
for each change you add in the pull request.
|
|
77
|
+
|
|
78
|
+
It will be slower though ... and has not yet been set up
|
|
79
|
+
|
|
80
|
+
Tips
|
|
81
|
+
----
|
|
82
|
+
|
|
83
|
+
None at the moment
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
zlib License
|
|
2
|
+
|
|
3
|
+
(C) 2025 Cristóvão Beirão da Cruz e Silva <cbeiraod@cern.ch>
|
|
4
|
+
|
|
5
|
+
This software is provided 'as-is', without any express or implied
|
|
6
|
+
warranty. In no event will the authors be held liable for any damages
|
|
7
|
+
arising from the use of this software.
|
|
8
|
+
|
|
9
|
+
Permission is granted to anyone to use this software for any purpose,
|
|
10
|
+
including commercial applications, and to alter it and redistribute it
|
|
11
|
+
freely, subject to the following restrictions:
|
|
12
|
+
|
|
13
|
+
1. The origin of this software must not be misrepresented; you must not
|
|
14
|
+
claim that you wrote the original software. If you use this software
|
|
15
|
+
in a product, an acknowledgment in the product documentation would be
|
|
16
|
+
appreciated but is not required.
|
|
17
|
+
2. Altered source versions must be plainly marked as such, and must not be
|
|
18
|
+
misrepresented as being the original software.
|
|
19
|
+
3. This notice may not be removed or altered from any source distribution.
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: SAMPIClyser
|
|
3
|
+
Version: 0.0.1
|
|
4
|
+
Summary: Python library to help decoding and analysing data from a SAMPIC system
|
|
5
|
+
Project-URL: Homepage, https://github.com/cbeiraod/SAMPIClyser
|
|
6
|
+
Project-URL: Documentation, https://sampiclyser.readthedocs.io/
|
|
7
|
+
Project-URL: Bug Tracker, https://github.com/cbeiraod/SAMPIClyser/issues
|
|
8
|
+
Author-email: Cristóvão Beirão da Cruz e Silva <cbeiraod@cern.ch>
|
|
9
|
+
License-File: AUTHORS.rst
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Keywords: Awesome,ROOT,SAMPIC
|
|
12
|
+
Classifier: Development Status :: 3 - Alpha
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: License :: OSI Approved :: zlib/libpng License
|
|
15
|
+
Classifier: Operating System :: OS Independent
|
|
16
|
+
Classifier: Programming Language :: Python :: 3
|
|
17
|
+
Classifier: Topic :: Scientific/Engineering
|
|
18
|
+
Requires-Python: >=3.10
|
|
19
|
+
Requires-Dist: matplotlib
|
|
20
|
+
Requires-Dist: mplhep
|
|
21
|
+
Requires-Dist: natsort
|
|
22
|
+
Requires-Dist: numpy
|
|
23
|
+
Requires-Dist: pandas
|
|
24
|
+
Requires-Dist: pyarrow
|
|
25
|
+
Requires-Dist: termcolor
|
|
26
|
+
Requires-Dist: uproot
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
|
|
29
|
+
# SAMPIClyser
|
|
30
|
+
Python library to help decoding and analysing data from a SAMPIC system
|
|
31
|
+
|
|
32
|
+
You can install the SAMPIClyser libraries with: `python -m pip install SAMPIClyser`
|
|
33
|
+
|
|
34
|
+
After installation, you can run the individual tools with their dedicated commands:
|
|
35
|
+
* ``sampiclyser-version`` - To print the version of the SAMPIClyser library in use
|
|
36
|
+
* ``sampic-convert`` - To read the binary files and save them in a standard format
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
# SAMPIClyser
|
|
2
|
+
Python library to help decoding and analysing data from a SAMPIC system
|
|
3
|
+
|
|
4
|
+
You can install the SAMPIClyser libraries with: `python -m pip install SAMPIClyser`
|
|
5
|
+
|
|
6
|
+
After installation, you can run the individual tools with their dedicated commands:
|
|
7
|
+
* ``sampiclyser-version`` - To print the version of the SAMPIClyser library in use
|
|
8
|
+
* ``sampic-convert`` - To read the binary files and save them in a standard format
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"""""""""""""
|
|
2
|
+
SAMPIClyser
|
|
3
|
+
"""""""""""""
|
|
4
|
+
|
|
5
|
+
.. start-badges
|
|
6
|
+
|
|
7
|
+
|pre-commit|
|
|
8
|
+
|
|
9
|
+
|black| |flake8| |isort|
|
|
10
|
+
|
|
11
|
+
|docs|
|
|
12
|
+
|
|
13
|
+
|version| |wheel| |supported-versions| |supported-implementations|
|
|
14
|
+
|
|
15
|
+
|commits-since|
|
|
16
|
+
|
|
17
|
+
.. |black| image:: https://img.shields.io/badge/code%20style-black-000000
|
|
18
|
+
:target: https://github.com/psf/black
|
|
19
|
+
:alt: black
|
|
20
|
+
|
|
21
|
+
.. |flake8| image:: https://img.shields.io/badge/flake8-checked-blueviolet
|
|
22
|
+
:target: https://github.com/PyCQA/flake8
|
|
23
|
+
:alt: flake8
|
|
24
|
+
|
|
25
|
+
.. |isort| image:: https://img.shields.io/badge/%20imports-isort-%231674b1?style=flat&labelColor=ef8336
|
|
26
|
+
:target: https://pycqa.github.io/isort/
|
|
27
|
+
:alt: isort
|
|
28
|
+
|
|
29
|
+
.. |pre-commit| image:: https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit
|
|
30
|
+
:target: https://github.com/pre-commit/pre-commit
|
|
31
|
+
:alt: pre-commit
|
|
32
|
+
|
|
33
|
+
.. |docs| image:: https://readthedocs.org/projects/sampiclyser/badge/?version=latest
|
|
34
|
+
:target: https://sampiclyser.readthedocs.io/
|
|
35
|
+
:alt: Documentation Status
|
|
36
|
+
|
|
37
|
+
.. |version| image:: https://img.shields.io/pypi/v/SAMPIClyser.svg
|
|
38
|
+
:alt: PyPI Package latest release
|
|
39
|
+
:target: https://pypi.org/project/SAMPIClyser
|
|
40
|
+
|
|
41
|
+
.. |wheel| image:: https://img.shields.io/pypi/wheel/SAMPIClyser.svg
|
|
42
|
+
:alt: PyPI Wheel
|
|
43
|
+
:target: https://pypi.org/project/SAMPIClyser
|
|
44
|
+
|
|
45
|
+
.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/SAMPIClyser.svg
|
|
46
|
+
:alt: Supported versions
|
|
47
|
+
:target: https://pypi.org/project/SAMPIClyser
|
|
48
|
+
|
|
49
|
+
.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/SAMPIClyser.svg
|
|
50
|
+
:alt: Supported implementations
|
|
51
|
+
:target: https://pypi.org/project/SAMPIClyser
|
|
52
|
+
|
|
53
|
+
.. |commits-since| image:: https://img.shields.io/github/commits-since/cbeiraod/SAMPIClyser/v0.0.1.svg
|
|
54
|
+
:alt: Commits since latest release
|
|
55
|
+
:target: https://github.com/cbeiraod/SAMPIClyser/compare/v0.0.1...main
|
|
56
|
+
|
|
57
|
+
.. end-badges
|
|
58
|
+
|
|
59
|
+
Python library to help decoding and analysing data from a SAMPIC system
|
|
60
|
+
|
|
61
|
+
* Free software: Zlib license
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
----------
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
.. contents:: Table of Contents
|
|
68
|
+
:depth: 3
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
----------
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
====================
|
|
75
|
+
Running the software
|
|
76
|
+
====================
|
|
77
|
+
We will use a venv to isolate the SAMPIClyser python installation and dependencies from that of the system and other venvs.
|
|
78
|
+
Create the venv with: ``python -m venv venv``.
|
|
79
|
+
Venv creation only needs to be done once and occasionally when you upgrade the python version installed on the system.
|
|
80
|
+
|
|
81
|
+
Before running any commands related to the SAMPIClyser, activate the venv with: ``source venv/bin/activate``
|
|
82
|
+
|
|
83
|
+
Once you are finished, you may deactivate the venv with: ``deactivate``
|
|
84
|
+
|
|
85
|
+
---------------------------
|
|
86
|
+
Dependencies & Installation
|
|
87
|
+
---------------------------
|
|
88
|
+
There are two options, you can run the SAMPIClyser from source or from `PyPI <https://pypi.org/>`_ (Recommended).
|
|
89
|
+
|
|
90
|
+
From PyPI
|
|
91
|
+
---------
|
|
92
|
+
Make sure you activate the venv first, then simply run the command: ``python -m pip install SAMPIClyser``
|
|
93
|
+
|
|
94
|
+
From Source
|
|
95
|
+
-----------
|
|
96
|
+
Fetch the source from github, you may for instance clone the git repository to a local directory.
|
|
97
|
+
Make sure the venv is activated, then install this application with all its dependencies by running this command from the source directory: ``python -m pip install .``
|
|
98
|
+
|
|
99
|
+
----------------------
|
|
100
|
+
Developer Dependencies
|
|
101
|
+
----------------------
|
|
102
|
+
If you are working on developing the code for SAMPIClyser you will need to follow the "Running the Software" instructions for setup and then for installing use the "From Source" instructions but instead of the install command in the "Dependencies" instructions, use the following command: ``python -m pip install -e .``.
|
|
103
|
+
Then install a few other dependencies which are only used in development:
|
|
104
|
+
|
|
105
|
+
.. code:: bash
|
|
106
|
+
|
|
107
|
+
python -m pip install --upgrade pytest
|
|
108
|
+
python -m pip install --upgrade pytest-cov
|
|
109
|
+
python -m pip install --upgrade pytest-mock
|
|
110
|
+
python -m pip install --upgrade pre-commit
|
|
111
|
+
python -m pip install --upgrade bump2version
|
|
112
|
+
python -m pip install --upgrade black
|
|
113
|
+
python -m pip install --upgrade flake8-pyproject
|
|
114
|
+
python -m pip install --upgrade isort
|
|
115
|
+
python -m pip install --upgrade build
|
|
116
|
+
python -m pip install --upgrade twine
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
Then install the pre-commit hooks so that things are ran automatically before any commit is done: ``pre-commit install``.
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
------------
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
==============
|
|
126
|
+
Developer Info
|
|
127
|
+
==============
|
|
128
|
+
|
|
129
|
+
-----
|
|
130
|
+
Tools
|
|
131
|
+
-----
|
|
132
|
+
|
|
133
|
+
pytest
|
|
134
|
+
------
|
|
135
|
+
We are using pytest to run unit tests on the software.
|
|
136
|
+
See `here <https://docs.pytest.org/en/7.4.x/getting-started.html>`_ for ideas on how to get started.
|
|
137
|
+
Use the command ``pytest`` to run all the tests.
|
|
138
|
+
|
|
139
|
+
We use the pytest-cov plugin to get coverage reports from pytest.
|
|
140
|
+
Use the command ``pytest --cov --cov-report term-missing`` to run all the tests and get a coverage report.
|
|
141
|
+
Use the command ``pytest --cov --cov-report term-missing --cov-report html`` to get an html report with detailed information.
|
|
142
|
+
|
|
143
|
+
We use the pytest-mock plugin in order to use the mock class in our tests.
|
|
144
|
+
|
|
145
|
+
pre-commit
|
|
146
|
+
----------
|
|
147
|
+
**pre-commit may need to be installed in the global python environment for things to work correctly.**
|
|
148
|
+
This tool allows to setup hooks into the git workflow, in particular for the Pre-Commit Hook, allowing to run automated tests before committing code.
|
|
149
|
+
This functionality is used to automatically run black, flake8 and isort before any commit is made, thus guaranteeing a consistent style and formatting for all committed code (according to these tools).
|
|
150
|
+
If you want to run all the checks individually as if a commit were about to be made, you can use ``pre-commit run --all-files``.
|
|
151
|
+
You can find more information on pre-commit `here <https://pre-commit.com/>`_.
|
|
152
|
+
|
|
153
|
+
bump2version
|
|
154
|
+
------------
|
|
155
|
+
We are using bump2version to manage the version string of the software.
|
|
156
|
+
bump2version will automatically create a commit and a tag with the version when you use it:
|
|
157
|
+
|
|
158
|
+
- To increase the major version, use: ``bump2version major``; for example 0.1.3 to 1.0.0
|
|
159
|
+
- To increase the minor version, use: ``bump2version minor``; for example 0.1.3 to 0.2.0
|
|
160
|
+
- To increase the patch version, use: ``bump2version patch``; for example 0.1.3 to 0.1.4
|
|
161
|
+
|
|
162
|
+
black
|
|
163
|
+
-----
|
|
164
|
+
We are using black to automatically format the python code.
|
|
165
|
+
To run black standalone use: ``black .`` in the root directory.
|
|
166
|
+
You may also use ``black --check -v .`` to get a list of which changes would be made, without actually making them.
|
|
167
|
+
More information on black can be found `here <https://pypi.org/project/black/>`_.
|
|
168
|
+
|
|
169
|
+
flake8
|
|
170
|
+
------
|
|
171
|
+
We are using flake8 to check the code for style and syntax errors (i.e. a linter tool).
|
|
172
|
+
The flake8-pyproject enables flake8 to read configuration from the pyproject.toml file, and pulls flake8 as a dependency.
|
|
173
|
+
This is why flake8 is not explicitly installed.
|
|
174
|
+
To run flake8 standalone, use: ``flake8`` in the root directory.
|
|
175
|
+
More information on flake8 can be found `here <https://flake8.pycqa.org/en/latest/index.html#quickstart>`_.
|
|
176
|
+
A list of all options and configuration for the toml file can be found `here <https://flake8.pycqa.org/en/latest/user/options.html>`_.
|
|
177
|
+
|
|
178
|
+
isort
|
|
179
|
+
-----
|
|
180
|
+
We are using isort to automatically sort the include statements at the top of the python files.
|
|
181
|
+
To run isort standalone use: ``isort .`` in the root directory.
|
|
182
|
+
More information on isort can be found `here <https://pycqa.github.io/isort/>`_.
|
|
183
|
+
|
|
184
|
+
build
|
|
185
|
+
-----
|
|
186
|
+
The build tool is used to package the code for publishing on PyPI.
|
|
187
|
+
Build the release with: ``python -m build``
|
|
188
|
+
|
|
189
|
+
twine
|
|
190
|
+
-----
|
|
191
|
+
The twine tool is used to upload the package to PyPI.
|
|
192
|
+
Once the distribution files are generated with the build tool, then upload them with: ``python -m twine upload --repository testpypi dist/*``
|
|
193
|
+
|
|
194
|
+
----------------
|
|
195
|
+
Github Workflows
|
|
196
|
+
----------------
|
|
197
|
+
Currently there is a single github workflow which builds and publishes a properly tagged version of the repo onto PyPI.
|
|
198
|
+
We plan to use other github workflows as our CI tools, to be added.
|
|
199
|
+
|
|
200
|
+
publish-to-test-pypi
|
|
201
|
+
--------------------
|
|
202
|
+
This workflow publishes to PyPI a properly tagged commit of the repository.
|
|
203
|
+
Some initial setup in needed on PyPI so that things run smoothly, but once running it should continue to function without intervention needed.
|
|
204
|
+
|
|
205
|
+
-----------------
|
|
206
|
+
Restructured Text
|
|
207
|
+
-----------------
|
|
208
|
+
For information on how to use restructured text, see the cheatsheet `here <https://github.com/DevDungeon/reStructuredText-Documentation-Reference>`_ for example.
|
|
209
|
+
But there are other resources on the internet if you prefer.
|
|
210
|
+
|
|
211
|
+
----------
|
|
212
|
+
Docstrings
|
|
213
|
+
----------
|
|
214
|
+
Please use docstrings in the "NumPy/SciPy docstrings" style: `link <https://numpydoc.readthedocs.io/en/latest/format.html>`_.
|
|
215
|
+
|
|
216
|
+
--------------
|
|
217
|
+
pyproject.toml
|
|
218
|
+
--------------
|
|
219
|
+
Get classifiers from `here <https://pypi.org/classifiers/>`_.
|
|
220
|
+
|
|
221
|
+
More information on packaging can be found `here <https://packaging.python.org/en/latest/tutorials/packaging-projects/>`_.
|
|
222
|
+
|
|
223
|
+
There are entry points as explained in: https://packaging.python.org/en/latest/specifications/declaring-project-metadata/#declaring-project-metadata
|
|
224
|
+
There is an entry point to run the binary conversion tool, for example: ``sampic-convert`` tool, use the help to see the options.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.. include:: ../AUTHORS.rst
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.. include:: ../CHANGELOG.rst
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
from __future__ import unicode_literals
|
|
3
|
+
|
|
4
|
+
import os
|
|
5
|
+
|
|
6
|
+
extensions = [
|
|
7
|
+
'sphinx.ext.autodoc',
|
|
8
|
+
'sphinx.ext.autosummary',
|
|
9
|
+
'sphinx.ext.coverage',
|
|
10
|
+
'sphinx.ext.doctest',
|
|
11
|
+
'sphinx.ext.extlinks',
|
|
12
|
+
'sphinx.ext.ifconfig',
|
|
13
|
+
'sphinx.ext.napoleon',
|
|
14
|
+
'sphinx.ext.todo',
|
|
15
|
+
'sphinx.ext.viewcode',
|
|
16
|
+
]
|
|
17
|
+
source_suffix = '.rst'
|
|
18
|
+
master_doc = 'index'
|
|
19
|
+
project = 'SAMPIClyser'
|
|
20
|
+
year = '2025'
|
|
21
|
+
author = 'Cristóvão B. da Cruz e Silva'
|
|
22
|
+
copyright = '{0}, {1}'.format(year, author)
|
|
23
|
+
version = release = '0.0.1'
|
|
24
|
+
|
|
25
|
+
pygments_style = 'trac'
|
|
26
|
+
templates_path = ['.']
|
|
27
|
+
extlinks = {
|
|
28
|
+
'issue': ('https://github.com/cbeiraod/SAMPIClyser/issues/%s', '#'),
|
|
29
|
+
'pr': ('https://github.com/cbeiraod/SAMPIClyser/pull/%s', 'PR #'),
|
|
30
|
+
}
|
|
31
|
+
# on_rtd is whether we are on readthedocs.org
|
|
32
|
+
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
|
|
33
|
+
|
|
34
|
+
if not on_rtd: # only set the theme if we're building docs locally
|
|
35
|
+
html_theme = 'sphinx_rtd_theme'
|
|
36
|
+
|
|
37
|
+
html_use_smartypants = True
|
|
38
|
+
html_last_updated_fmt = '%b %d, %Y'
|
|
39
|
+
html_split_index = False
|
|
40
|
+
html_sidebars = {
|
|
41
|
+
'**': ['searchbox.html', 'globaltoc.html', 'sourcelink.html'],
|
|
42
|
+
}
|
|
43
|
+
html_short_title = '%s-%s' % (project, version)
|
|
44
|
+
|
|
45
|
+
napoleon_use_ivar = True
|
|
46
|
+
napoleon_use_rtype = False
|
|
47
|
+
napoleon_use_param = False
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.. include:: ../CONTRIBUTING.rst
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
========
|
|
2
|
+
Contents
|
|
3
|
+
========
|
|
4
|
+
|
|
5
|
+
.. toctree::
|
|
6
|
+
:maxdepth: 2
|
|
7
|
+
|
|
8
|
+
readme
|
|
9
|
+
installation
|
|
10
|
+
usage
|
|
11
|
+
reference/index
|
|
12
|
+
contributing
|
|
13
|
+
authors
|
|
14
|
+
changelog
|
|
15
|
+
|
|
16
|
+
Indices and tables
|
|
17
|
+
==================
|
|
18
|
+
|
|
19
|
+
* :ref:`genindex`
|
|
20
|
+
* :ref:`modindex`
|
|
21
|
+
* :ref:`search`
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.. include:: ../README.rst
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "SAMPIClyser"
|
|
7
|
+
version = "0.0.1"
|
|
8
|
+
authors = [
|
|
9
|
+
{ name="Cristóvão Beirão da Cruz e Silva", email="cbeiraod@cern.ch" },
|
|
10
|
+
]
|
|
11
|
+
maintainers = [
|
|
12
|
+
]
|
|
13
|
+
description = "Python library to help decoding and analysing data from a SAMPIC system"
|
|
14
|
+
readme = "PyPIREADME.md"
|
|
15
|
+
requires-python = ">=3.10"
|
|
16
|
+
classifiers = [
|
|
17
|
+
"Development Status :: 3 - Alpha",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"License :: OSI Approved :: zlib/libpng License",
|
|
20
|
+
"Operating System :: OS Independent",
|
|
21
|
+
"Environment :: Console",
|
|
22
|
+
"Topic :: Scientific/Engineering",
|
|
23
|
+
]
|
|
24
|
+
keywords = ["SAMPIC", "ROOT", "Awesome"]
|
|
25
|
+
dependencies = [
|
|
26
|
+
"natsort",
|
|
27
|
+
"numpy",
|
|
28
|
+
"pandas",
|
|
29
|
+
"termcolor",
|
|
30
|
+
"pyarrow",
|
|
31
|
+
"uproot",
|
|
32
|
+
"mplhep",
|
|
33
|
+
"matplotlib",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[project.urls]
|
|
37
|
+
"Homepage" = "https://github.com/cbeiraod/SAMPIClyser"
|
|
38
|
+
"Documentation" = "https://sampiclyser.readthedocs.io/"
|
|
39
|
+
"Bug Tracker" = "https://github.com/cbeiraod/SAMPIClyser/issues"
|
|
40
|
+
|
|
41
|
+
[project.scripts]
|
|
42
|
+
sampiclyser-version = "sampiclyser.entry_points:version"
|
|
43
|
+
|
|
44
|
+
[tool.pytest.ini_options]
|
|
45
|
+
addopts = [
|
|
46
|
+
"--import-mode=importlib"
|
|
47
|
+
]
|
|
48
|
+
|
|
49
|
+
[tool.black]
|
|
50
|
+
line-length = 140
|
|
51
|
+
target-version = ["py310", "py311", "py312"]
|
|
52
|
+
skip-string-normalization = true
|
|
53
|
+
required-version = 24
|
|
54
|
+
extend-exclude = '''
|
|
55
|
+
# A regex preceded with ^/ will apply only to files and directories
|
|
56
|
+
# in the root of the project.
|
|
57
|
+
(
|
|
58
|
+
venv
|
|
59
|
+
dist
|
|
60
|
+
build
|
|
61
|
+
.pytest_cache
|
|
62
|
+
.github
|
|
63
|
+
)
|
|
64
|
+
'''
|
|
65
|
+
|
|
66
|
+
[tool.flake8]
|
|
67
|
+
# Default: E121,E123,E126,E226,E24,E704,W503,W504
|
|
68
|
+
extend-ignore = ['E203','E501','E701']
|
|
69
|
+
extend-select = ['B950']
|
|
70
|
+
exclude = ".git, .github, venv, .mypy_cache, .pytest_cache, build, dist, __pycache__"
|
|
71
|
+
per-file-ignores = [
|
|
72
|
+
'__init__.py:F401',
|
|
73
|
+
]
|
|
74
|
+
max-line-length = 140
|
|
75
|
+
max-complexity = 18
|
|
76
|
+
count = true
|
|
77
|
+
|
|
78
|
+
[tool.isort]
|
|
79
|
+
profile = "black"
|
|
80
|
+
force_single_line = true
|
|
81
|
+
line_length = 140
|
|
82
|
+
known_first_party = ['sampiclyser']
|
|
83
|
+
default_section = 'THIRDPARTY'
|
|
84
|
+
forced_separate = 'test_sampiclyser'
|
|
85
|
+
skip = ".pytest_cache,.git,.github,venv,build,dist"
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
[pytest]
|
|
2
|
+
# If a pytest section is found in one of the possible config files
|
|
3
|
+
# (pytest.ini, tox.ini or setup.cfg), then pytest will not look for any others,
|
|
4
|
+
# so if you add a pytest config section elsewhere,
|
|
5
|
+
# you will need to delete this section.
|
|
6
|
+
norecursedirs =
|
|
7
|
+
migrations
|
|
8
|
+
|
|
9
|
+
python_files =
|
|
10
|
+
test_*.py
|
|
11
|
+
*_test.py
|
|
12
|
+
tests.py
|
|
13
|
+
addopts =
|
|
14
|
+
-ra
|
|
15
|
+
--strict-markers
|
|
16
|
+
--doctest-modules
|
|
17
|
+
--doctest-glob=\*.rst
|
|
18
|
+
--tb=short
|
|
19
|
+
testpaths =
|
|
20
|
+
tests
|
|
21
|
+
|
|
22
|
+
# Idea from: https://til.simonwillison.net/pytest/treat-warnings-as-errors
|
|
23
|
+
filterwarnings =
|
|
24
|
+
error
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#############################################################################
|
|
3
|
+
# zlib License
|
|
4
|
+
#
|
|
5
|
+
# (C) 2025 Cristóvão Beirão da Cruz e Silva <cbeiraod@cern.ch>
|
|
6
|
+
#
|
|
7
|
+
# This software is provided 'as-is', without any express or implied
|
|
8
|
+
# warranty. In no event will the authors be held liable for any damages
|
|
9
|
+
# arising from the use of this software.
|
|
10
|
+
#
|
|
11
|
+
# Permission is granted to anyone to use this software for any purpose,
|
|
12
|
+
# including commercial applications, and to alter it and redistribute it
|
|
13
|
+
# freely, subject to the following restrictions:
|
|
14
|
+
#
|
|
15
|
+
# 1. The origin of this software must not be misrepresented; you must not
|
|
16
|
+
# claim that you wrote the original software. If you use this software
|
|
17
|
+
# in a product, an acknowledgment in the product documentation would be
|
|
18
|
+
# appreciated but is not required.
|
|
19
|
+
# 2. Altered source versions must be plainly marked as such, and must not be
|
|
20
|
+
# misrepresented as being the original software.
|
|
21
|
+
# 3. This notice may not be removed or altered from any source distribution.
|
|
22
|
+
#############################################################################
|
|
23
|
+
|
|
24
|
+
from __future__ import annotations
|
|
25
|
+
|
|
26
|
+
__version__ = '0.0.1'
|
|
27
|
+
|
|
28
|
+
from .sampic_decoder import SAMPIC_Run_Decoder
|
|
29
|
+
|
|
30
|
+
__all__ = ["SAMPIC_Run_Decoder"]
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#############################################################################
|
|
3
|
+
# zlib License
|
|
4
|
+
#
|
|
5
|
+
# (C) 2025 Cristóvão Beirão da Cruz e Silva <cbeiraod@cern.ch>
|
|
6
|
+
#
|
|
7
|
+
# This software is provided 'as-is', without any express or implied
|
|
8
|
+
# warranty. In no event will the authors be held liable for any damages
|
|
9
|
+
# arising from the use of this software.
|
|
10
|
+
#
|
|
11
|
+
# Permission is granted to anyone to use this software for any purpose,
|
|
12
|
+
# including commercial applications, and to alter it and redistribute it
|
|
13
|
+
# freely, subject to the following restrictions:
|
|
14
|
+
#
|
|
15
|
+
# 1. The origin of this software must not be misrepresented; you must not
|
|
16
|
+
# claim that you wrote the original software. If you use this software
|
|
17
|
+
# in a product, an acknowledgment in the product documentation would be
|
|
18
|
+
# appreciated but is not required.
|
|
19
|
+
# 2. Altered source versions must be plainly marked as such, and must not be
|
|
20
|
+
# misrepresented as being the original software.
|
|
21
|
+
# 3. This notice may not be removed or altered from any source distribution.
|
|
22
|
+
#############################################################################
|
|
23
|
+
"""The Entry Points module
|
|
24
|
+
|
|
25
|
+
This is a utility module holds all the CLI entry points
|
|
26
|
+
|
|
27
|
+
"""
|
|
28
|
+
|
|
29
|
+
import argparse
|
|
30
|
+
|
|
31
|
+
from sampiclyser import __version__
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def version(args=None):
|
|
35
|
+
"""This is the entry function for the command line interface to print out the version"""
|
|
36
|
+
parser = argparse.ArgumentParser(description='Print the SAMPIClyser version')
|
|
37
|
+
# parser.add_argument('names', metavar='NAME', nargs=argparse.ZERO_OR_MORE,
|
|
38
|
+
# help="A name of something.")
|
|
39
|
+
args = parser.parse_args(args=args)
|
|
40
|
+
|
|
41
|
+
print(f"The SAMPIClyser version is: {__version__}")
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
#############################################################################
|
|
3
|
+
# zlib License
|
|
4
|
+
#
|
|
5
|
+
# (C) 2025 Cristóvão Beirão da Cruz e Silva <cbeiraod@cern.ch>
|
|
6
|
+
#
|
|
7
|
+
# This software is provided 'as-is', without any express or implied
|
|
8
|
+
# warranty. In no event will the authors be held liable for any damages
|
|
9
|
+
# arising from the use of this software.
|
|
10
|
+
#
|
|
11
|
+
# Permission is granted to anyone to use this software for any purpose,
|
|
12
|
+
# including commercial applications, and to alter it and redistribute it
|
|
13
|
+
# freely, subject to the following restrictions:
|
|
14
|
+
#
|
|
15
|
+
# 1. The origin of this software must not be misrepresented; you must not
|
|
16
|
+
# claim that you wrote the original software. If you use this software
|
|
17
|
+
# in a product, an acknowledgment in the product documentation would be
|
|
18
|
+
# appreciated but is not required.
|
|
19
|
+
# 2. Altered source versions must be plainly marked as such, and must not be
|
|
20
|
+
# misrepresented as being the original software.
|
|
21
|
+
# 3. This notice may not be removed or altered from any source distribution.
|
|
22
|
+
#############################################################################
|
|
23
|
+
|
|
24
|
+
import pytest
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def test_version():
|
|
28
|
+
import sampiclyser
|
|
29
|
+
|
|
30
|
+
version = '0.0.1'
|
|
31
|
+
|
|
32
|
+
pytest.param
|
|
33
|
+
|
|
34
|
+
assert version == sampiclyser.__version__
|