Compare commits

...

6 Commits

Author SHA1 Message Date
028deaa2ce * deal with any extra quotes in xunit,xname,yunit,yname => issue #13
* rename CLI binary to lowercase version
* IMCtermite.pyx: rename boolean data flag
* insert some double quotes in sampleA.raw for testing
* version 2.0.1
2021-10-19 13:48:02 +02:00
ce4a106921 * github workflow: only trigger on pushed tag
* README.md: update python installation
2021-09-22 15:08:57 +02:00
ef5aaac254 github-workflow: flatten directory structure for download artifacts for PyPI upload 2021-09-22 13:45:15 +02:00
86eb20a33b github-workflow: fix relative directory for upload source/binary artifacts 2021-09-22 13:28:16 +02:00
ba275dd62a github-workflow: fix mixed up upload/download source vs. binary wheel artifacts 2021-09-22 13:23:42 +02:00
c2a28fc333 github-workflow: upload/download wheel artifacts for PyPi deployment 2021-09-22 13:20:46 +02:00
6 changed files with 54 additions and 10 deletions

View File

@@ -3,7 +3,8 @@ name: Build Python Wheels
on:
push:
branches: [master]
#branches: [master]
tags: ["v[0-9]+.[0-9]+.[0-9]+"]
jobs:
@@ -44,6 +45,11 @@ jobs:
working-directory: python/
# env:
# CIBW_BUILD: cp36-* cp37-* cp38-* cp39-* cp310-*
- name: Store binary wheels
uses: actions/upload-artifact@v2
with:
name: binary-wheels
path: python/wheelhouse/*.whl
build_sdist:
name: Build source distribution
@@ -61,6 +67,12 @@ jobs:
- name: Build sdist
run: python setup.py sdist
working-directory: python/
- name: Store source wheels
uses: actions/upload-artifact@v2
with:
name: source-wheels
path: python/dist/*.tar.gz
upload_pypi:
name: Upload binary wheels to PyPI
@@ -68,6 +80,17 @@ jobs:
needs: [build_wheels, build_sdist]
steps:
- name: Get source wheels
uses: actions/download-artifact@v2
with:
name: source-wheels
path: dist/
- name: Get binary wheels
uses: actions/download-artifact@v2
with:
name: binary-wheels
path: dist/
- uses: pypa/gh-action-pypi-publish@release/v1
with:
user: __token__

View File

@@ -150,8 +150,10 @@ To install the latest version simply do
python3 -m pip install IMCtermite
```
Note, that _python3_setuptools_ and _gcc version >= 10.2.0_ are required to
successfully install and use it.
which provides binary wheels for multiple architectures on _Windows_ and _Linux_
and most _Python 3.x_ distributions. However, if your platform/architecture is
not supported you can still compile the source distribution yourself, which
requires _python3_setuptools_ and _gcc version >= 10.2.0_.
## Usage

View File

@@ -455,12 +455,12 @@ namespace imc
<<"\",\"trigger-time\":\""<<std::put_time(std::localtime(&att),"%FT%T")
<<"\",\"language-code\":\""<<language_code_
<<"\",\"codepage\":\""<<codepage_
<<"\",\"yname\":\""<<yname_
<<"\",\"yunit\":\""<<yunit_
<<"\",\"yname\":\""<<prepjsonstr(yname_)
<<"\",\"yunit\":\""<<prepjsonstr(yunit_)
<<"\",\"significantbits\":\""<<signbits_
<<"\",\"addtime\":\""<<addtime_
<<"\",\"xname\":\""<<xname_
<<"\",\"xunit\":\""<<xunit_
<<"\",\"xname\":\""<<prepjsonstr(xname_)
<<"\",\"xunit\":\""<<prepjsonstr(xunit_)
<<"\",\"xstepwidth\":\""<<xstepwidth_
<<"\",\"xoffset\":\""<<xoffset_
<<"\",\"group\":{"<<"\"index\":\""<<group_index_
@@ -477,6 +477,25 @@ namespace imc
return ss.str();
}
// prepare string value for usage in JSON dump
std::string prepjsonstr(std::string value)
{
std::stringstream ss;
ss<<quoted(value);
return strip_quotes(ss.str());
}
// remove any leading or trailing double quotes
std::string strip_quotes(std::string astring)
{
// head
if ( astring.front() == '"' ) astring.erase(astring.begin()+0);
// tail
if ( astring.back() == '"' ) astring.erase(astring.end()-1);
return astring;
}
// print channel
void print(std::string filename, const char sep = ',', int width = 25, int yprec = 9)
{

View File

@@ -3,7 +3,7 @@
SHELL := /bin/bash
# name of executable and CLI tool
EXE = IMCtermite
EXE = imctermite
# directory names
SRC = src/

View File

@@ -20,8 +20,8 @@ cdef class imctermite:
self.cppimc.set_file(rawfile)
# get JSON list of channels
def get_channels(self, bool data):
chnlst = self.cppimc.get_channels(True,data)
def get_channels(self, bool include_data):
chnlst = self.cppimc.get_channels(True,include_data)
chnlstjn = [jn.loads(chn.decode(errors="ignore")) for chn in chnlst]
return chnlstjn

Binary file not shown.