Welcome to Assonant 🎶 𝄇
A beamline-agnostic event processing engine for data collection and organization
Description
A Beamline-agnostic event processing engine for data collection and organization (Assonant).
This package provides to beamline groups from the Brazilian Synchrotron Light Laboratory (LNLS) a python API to send metadata, produced during an experiment, to a data management system, responsible to mantain and organize the metadata produced at Sirius.
The Assonant package is composed by public and private modules. Private modules are used by Assonant developers to implemented features that is furtherly exposed through public modules to abstract from final user how to handle specific platforms behaviors. In other words, if you are a beamline developer, don't care about what is inside any private module. Public modules are designed for being used by beamline developers in order to allow easy usage of Assonant resources. To differ private and public modules, private modules names are preceded by a '_':
-
🔒 Private Modules 🔒
-
Assonant tools for dealing with anything related to Kafka.
-
Assonant tools for dealing with anything related to NeXus format.
-
-
🔓 Public Modules 🔓
-
A group of data classes that defines data schemas to be used all over Assonant modules in order to standardize data acquisiton, transference, manipulation and storage.
-
Assonant tools for writing data from within Assonant Data Classes into specific file format
-
Assonant tools for logging collect data.
-
Assonant tools for retrieving data from different sources.
-
Assonant tools for dealing with Assonant Data Classes transference over different types of communication method (e.g: Kafka topics).
-
Code development standards
-
When importing anything from within a module to use internally on that module use relative paths.
-
When importing anything from a module, do not use an absolute path, instead use what is being made public by the module.
-
Classes, methods and settings that will be usable from outside the module, should be exposed on __init__.py files
-
Private methods, files and modules should always have their name preceded by '_'.
Users
Assonant is currently published at the public PyPi server meaning it can be simply installed using pip. It has also been modularized to allow installing the specific dependecies for its features. that said, depending on your use case you will run different command lines:
- To install Assonant DataLogger module dependencies, run the following command line:
python -m pip install assonant[data-logger]
- To install Assonant to access the naming standards defined in it, run the following command line:
python -m pip install assonant[naming-standards]
- To install Assonant to access the path builder submodule, run the following command line:
python -m pip install assonant[path-builder]
- To install all Assonant dependecies, run the following command line:
python -m pip install assonant[full]
Developers
-
First of all, If you want to prepare a development environment, clone the repository into your local machine:
-
Secondly install assonant by executing pip install . inside the cloned repository
python -m pip install -e .[dev]
- After that install the pre-commit modules. duf
pre-commit install --install-hooks -t pre-commit -t commit-msg
Deploy
-
Firstly, remember to update the version value in this README file badge, and on the pyproject.toml file.
-
Secondly, you will need to build your package:
python -m build
- After that you need to send the new version to the Global PyPi version by executing the following command line. Exchange the <package_version> place holder by the current version that will be deployed:
twine upload --repository pypi dist/assonant-<package_version>* --verbose
Note: To deploy a new version you will need a PyPi token which only the project maintainers have. That said, if you are a project maintainer and don't have access to it, ask your leader for it.
Mantainers
- 👤 Allan Pinto
- 👤 Paulo B. Mausbach
Credits
- Apache Kafka
- Confluent's Kafka Python Client
- Dockerfile for Apache Kafka
- JSON schema for NeXus files
- NeXus Data Format
- Nexusformat (python package)
- Pydantic
License
TODO: Define a License
Metadata
Release files for assonant 3.0.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| assonant-3.0.0.tar.gz | 85.5 kB | Without provenance | Details for assonant-3.0.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| assonant-3.0.0-py3-none-any.whl | Python 3 | none | any | Details for assonant-3.0.0-py3-none-any.whl |
Total release size: 208.4 kB
Release files / assonant-3.0.0.tar.gz
| Download URL | assonant-3.0.0.tar.gz |
|---|---|
| Size | 85.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4f4fefca134edc84473ca8d5ddf44bf29e6fe1ed5807a4cff45b2bb36d7d23fb
|
|
BLAKE2b-256 checksum How to use checksums |
0273bb13dc4c08f24c9b908bcd43838aafc2f44d559a786dd344c31532bb5a4d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Release files / assonant-3.0.0-py3-none-any.whl
| Download URL | assonant-3.0.0-py3-none-any.whl |
|---|---|
| Size | 122.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
78315ec63ac1179de1e9e3acc920eb329272064cd3d624670bc5a2dc6884f46c
|
|
BLAKE2b-256 checksum How to use checksums |
06cc152eb33236735e3b93eb99f36700e41d240dcdc0c75610f04f3c46211051
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.15
|
Security for assonant 3.0.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.