semvec/pypi-packages huggingface dataset:
commonutilslib 0.1.4
A library with some common utility methods for python like tempdir and Pushd
License: MIT
Keywords: commonutilslib pushd tempdir recursive_dictionary hash_calculation

==============
commonutilslib
==============

A library with some common utility methods for python like tempdir and Pushd


* Documentation: https://common-utils.readthedocs.io/en/latest/usage.html


Development Workflow
====================

The workflow supports the following steps

 * lint
 * test
 * build
 * document
 * upload
 * graph

These actions are supported out of the box by the corresponding scripts under _CI/scripts directory with sane defaults based on best practices.
Sourcing setup_aliases.ps1 for windows powershell or setup_aliases.sh in bash on Mac or Linux will provide with handy aliases for the shell of all those commands prepended with an underscore.

The bootstrap script creates a .venv directory inside the project directory hosting the virtual environment. It uses pipenv for that.
It is called by all other scripts before they do anything. So one could simple start by calling _lint and that would set up everything before it tried to actually lint the project

Once the code is ready to be delivered the _tag script should be called accepting one of three arguments, patch, minor, major following the semantic versioning scheme.
So for the initial delivery one would call

    $ _tag --minor

which would bump the version of the project to 0.1.0 tag it in git and do a push and also ask for the change and automagically update HISTORY.rst with the version and the change provided.


So the full workflow after git is initialized is:

 * repeat as necessary (of course it could be test - code - lint :) )

   * code
   * lint
   * test
 * commit and push
 * develop more through the code-lint-test cycle
 * tag (with the appropriate argument)
 * build
 * upload (if you want to host your package in pypi)
 * document (of course this could be run at any point)


Important Information
=====================

This template is based on pipenv. In order to be compatible with requirements.txt so the actual created package can be used by any part of the existing python ecosystem some hacks were needed.
So when building a package out of this **do not** simple call

    $ python setup.py sdist bdist_egg

**as this will produce an unusable artifact with files missing.**
Instead use the provided build and upload scripts that create all the necessary files in the artifact.



Project Features
================

* Please refer to USAGE.rst




History
-------

0.0.1 (26-02-2019)
---------------------

* First code creation


0.1.0 (26-02-2019)
------------------

* First official release


0.1.1 (18-10-2019)
------------------

* Update template and bumped dependencies.


0.1.2 (18-10-2019)
------------------

* Bumped dependencies


0.1.3 (26-04-2021)
------------------

* Bumped dependencies.


0.1.4 (08-06-2021)
------------------

* Bumped dependencies.
dr-files 0.1.5
Read and convert Mechbase files (.dr) to known file formats
License: MIT
Requires Python: >=3.6,<4.0

# DR Files

Read and convert MECHBASE files (.dr) to known file formats

## MECHBASE

[MECHBASE](https://arpedon.com/products/mechbase/)® is a complete preventive solution that was developed by [Arpedon, P.C.](https://arpedon.com/), in order to help you store and trend your equipment status.

## MECHBASE files format

MECHBASE files have the following structure:

* 2 bytes - the size of the header in bytes, in little-endian short integer format
* next N bytes - the header, in [this protobuf format](pb/headers_pb2.proto)
* remaining bytes - the values of the signals, with each value represented in 2 bytes, like below (signal has 3 channels in this example):
    * next 2 bytes - first value of the first channel, in little-endian short integer format
    * next 2 bytes - first value of the second channel, in little-endian short integer format
    * next 2 bytes - first value of the third channel, in little-endian short integer format
    * next 2 bytes - second value of the first channel, in little-endian short integer format
    * next 2 bytes - second value of the second channel, in little-endian short integer format
    * next 2 bytes - second value of the third channel, in little-endian short integer format
    * ...

### Converting values to actual measured values

* divide the value by the maximum short value (32767)
* multiply the value with the channel reference value
* add the channel offset to the value
* multiply the value with 1000 and divide by the channel sensitivity value
* if channel db_reference exists and is positive
    * multiply the log10 of the absolute value divided by the db_reference with 20 - `20 * log10(abs(value) / db_reference)`
    * add the channel pregain to the value

Reference code can be found in the `value_converter` function.