Package: assonant
Welcome to Assonant 🎶 𝄇A beamline-agnostic event processing engine for data collection and organizationDescriptionA Beamline-agnostic event processing engine for data collection and organization (Assonant).This package provides to beamline groups from theBrazilian 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 atSirius.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 🔒_kafkaAssonant tools for dealing with anything related toKafka._nexusAssonant tools for dealing with anything related toNeXus format.🔓 Public Modules 🔓data_classesA 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.data_senderAssonant tools for dealing with Assonant Data Classes transference over different types
of communication method (e.g: Kafka topics).file_writerAssonant tools for writing data from within Assonant Data Classes into specific file formats.Code development standardsWhen 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__.pyfilesPrivate methods, files and modules should always have their name preceded by '_'.UsersAssonant package can be directly installed from Pypi server by simply executing the following command line:python-mpipinstallassonantDevelopersFirst 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 repositorypython-mpipinstall-e.After that install manually the requirements listed in the requirements-dev.txt file and install the pre-commit.python-mpipinstall-rrequirements-dev.txt
pre-commitinstallDeployFirstly, 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-mbuildAfter 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:twineupload--repositorypypidist/assonant-<package_version>*--verboseNote: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. MausbachCreditsApache KafkaConfluent's Kafka Python ClientDockerfile for Apache KafkaJSON schema for NeXus filesNeXus Data FormatNexusformat (python package)PydanticLicenseTODO: Define a License