Skip to main content

(Meta)Data standardization package for Sirius, the 4th generation brazillian synchrotron light source

Project description

Welcome to Assonant 🎶 𝄇

A beamline-agnostic event processing engine for data collection and organization

Version Maintenance Supported Python versions


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 🔒

  • 🔓 Public Modules 🔓

    • data_classes

      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.

    • data_sender

      Assonant tools for dealing with Assonant Data Classes transference over different types of communication method (e.g: Kafka topics).

    • file_writer

      Assonant tools for writing data from within Assonant Data Classes into specific file formats.

Code development standards

  1. When importing anything from within a module to use internally on that module use relative paths.

  2. When importing anything from a module, do not use an absolute path, instead use what is being made public by the module.

  3. Classes, methods and settings that will be usable from outside the module, should be exposed on __init__.py files

  4. Private methods, files and modules should always have their name preceded by '_'.

Users

Assonant package can be directly installed from Pypi server by simply executing the following command line:

python -m pip install assonant

Developers

  1. First of all, If you want to prepare a development environment, clone the repository into your local machine:

  2. Secondly install assonant by executing pip install . inside the cloned repository

python -m pip install -e .
  1. After that install manually the requirements listed in the requirements-dev.txt file and install the pre-commit.
python -m pip install -r requirements-dev.txt
pre-commit install --install-hooks -t pre-commit -t commit-msg

Deploy

  1. Firstly, remember to update the version value in this README file badge, and on the pyproject.toml file.

  2. Secondly, you will need to build your package:

python -m build
  1. 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


License

TODO: Define a License


Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

assonant-1.2.0.tar.gz (22.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

assonant-1.2.0-py3-none-any.whl (34.3 kB view details)

Uploaded Python 3

File details

Details for the file assonant-1.2.0.tar.gz.

File metadata

  • Download URL: assonant-1.2.0.tar.gz
  • Upload date:
  • Size: 22.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.14

File hashes

Hashes for assonant-1.2.0.tar.gz
Algorithm Hash digest
SHA256 a113b5d667f10bf140526b702d5a55fbf042eace6dea36140c2516ece962be51
MD5 bbc39e215e04b7b22f33805cb15857cd
BLAKE2b-256 a3a297b9d70631acaa276db53a8ffefb83d358dd99953922ebafb201ae927402

See more details on using hashes here.

File details

Details for the file assonant-1.2.0-py3-none-any.whl.

File metadata

  • Download URL: assonant-1.2.0-py3-none-any.whl
  • Upload date:
  • Size: 34.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.10.14

File hashes

Hashes for assonant-1.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 684c225a3f75d96886615c35705c103b7da7c0fc191b1b22d4019a2c5742cbb5
MD5 57362a18bdac4a8406629808b4a496ec
BLAKE2b-256 61447afa475d3846fd0063d6e499f5676dc5e11a5e8c95718c3c806319767486

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page