From 820edad261e8f671524f7117e22a4c7c9f6bb432 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 15:23:38 +0200 Subject: [PATCH 01/20] Added CI integration + tests.test_structure --- .github/workflows/python-package.yml | 44 ++++++++++++++++++++++++++ requirements-dev.txt | 2 ++ tests/test_bintablefile.py | 46 ++++++++++++++++++++++++++++ 3 files changed, 92 insertions(+) create mode 100644 .github/workflows/python-package.yml diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml new file mode 100644 index 0000000..0c6dbc1 --- /dev/null +++ b/.github/workflows/python-package.yml @@ -0,0 +1,44 @@ +# This workflow will install Python dependencies, run tests and lint with a variety of Python versions +# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python + +name: Python package + +on: + push: # run on all branches + branches: [ '**' ] + #[ $default-branch ] + pull_request: + branches: [ '**' ] + #[ $default-branch ] + +jobs: + build: + + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + python-version: ["3.9", "3.10", "3.11","3.12"] + + steps: + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest + if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi + python setup.py build_ext --inplace + + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + python -m unittest discover -s tests \ No newline at end of file diff --git a/requirements-dev.txt b/requirements-dev.txt index 28a2b71..6cc1cee 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -1,3 +1,5 @@ +-r requirements.txt + cython wheel twine diff --git a/tests/test_bintablefile.py b/tests/test_bintablefile.py index c5d4a50..fed742f 100644 --- a/tests/test_bintablefile.py +++ b/tests/test_bintablefile.py @@ -30,6 +30,52 @@ def setUp(self) -> None: def tearDown(self) -> None: self._tmp_dirpath.cleanup() + def test_structure(self): + import ctypes + + def create_structure(fields): + """ + Dynamically creates a ctypes.Structure subclass with given fields. + + :param fields: A list of tuples where each tuple contains the field name and ctype data type + :return: A new ctypes.Structure subclass with the specified fields + """ + + class DynamicStructure(ctypes.Structure): + _fields_ = fields + + return DynamicStructure + + def create_structure_array(struct_cls, n): + """ + Creates an array of ctypes.Structure of type struct_cls with n elements. + + :param struct_cls: The ctypes.Structure subclass + :param n: The number of elements in the array + :return: An instance of the ctypes.Array filled with structures of type struct_cls + """ + return (struct_cls * n)() + + # Example usage: + + # Define the list of field names and their ctypes types + fields = [ + ('id', ctypes.c_int), + ('value', ctypes.c_float), + ('name', ctypes.c_char * 20) # Example of a 20-char string + ] + + # Dynamically create the structure and array of structures + DynamicStruct = create_structure(fields) + StructArray = create_structure_array(DynamicStruct, 5) # Create an array of 5 elements + + # Example of how to use the array + StructArray[0].id = 1 + StructArray[0].value = 3.14 + StructArray[0].name = b"Example" + + print(StructArray[0].id, StructArray[0].value, StructArray[0].name) + def test_nominal_read_write_from_the_sameobject(self): record_format = (int, bool, float, Decimal) record_file = BinTableFile(self.fpath, record_format=record_format, From 62732a5ab5cfd8ffdf0a9256a118e7932eccc1b4 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 15:36:10 +0200 Subject: [PATCH 02/20] Fix setup.py to account for recursive import in requirements-dev.txt --- README.md | 8 +++++++- setup.py | 2 ++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5615844..09c9ee3 100644 --- a/README.md +++ b/README.md @@ -21,4 +21,10 @@ pip install bintablefile The library can be found on [PyPi](https://pypi.org/project/bintablefile/): https://pypi.org/project/bintablefile/ -**Note**: We release directly v2.0 as v1.0 was used just internally and was not released to PyPI. The major improvement of V2 is a full-featured header, that allows to store metadata about the table, as well as store the number of records for ReadOnly compression formats like `idzip`. \ No newline at end of file +**Note**: We release directly v2.0 as v1.0 was used just internally and was not released to PyPI. The major improvement of V2 is a full-featured header, that allows to store metadata about the table, as well as store the number of records for ReadOnly compression formats like `idzip`. + + +### Local development build +```bash +pip install -e ".[dev]" +``` \ No newline at end of file diff --git a/setup.py b/setup.py index 21bfee1..89dd00a 100644 --- a/setup.py +++ b/setup.py @@ -33,6 +33,8 @@ def finalize_options(self): with open("requirements-dev.txt") as fp: dev_requires = fp.read().strip().split("\n") + # ignore the lines that starts with '#' or '-r ' + dev_requires = [line for line in dev_requires if line and not line.startswith(("#", "-r"))] setup( ext_modules=exts, From b1796ca0d7bb2530661530d27e2dfb60f6247d3d Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 15:39:00 +0200 Subject: [PATCH 03/20] Added more OSes to python-package.yml + test if runs on default-branch --- .github/workflows/python-package.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 0c6dbc1..02ef891 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -5,16 +5,16 @@ name: Python package on: push: # run on all branches - branches: [ '**' ] +# branches: [ '**' ] #[ $default-branch ] pull_request: - branches: [ '**' ] + branches: [ $default-branch ] #[ $default-branch ] jobs: build: - runs-on: ubuntu-latest + runs-on: [ubuntu-latest, windows-latest, macos-latest] strategy: fail-fast: false matrix: From b88f1b98ac3ebce5b539a1ec1babff5d05823d6b Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 15:44:28 +0200 Subject: [PATCH 04/20] Replaced py 3.9 with 3.13 +add branch on PR --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 02ef891..309ba64 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -8,7 +8,7 @@ on: # branches: [ '**' ] #[ $default-branch ] pull_request: - branches: [ $default-branch ] + branches: [ '**' ] #[ $default-branch ] jobs: @@ -18,7 +18,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11","3.12"] + python-version: ["3.10", "3.11","3.12", "3.13"] steps: - uses: actions/checkout@v4 From 667e9179983e087cc4a58be7fcbad14cac5f2279 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 15:49:16 +0200 Subject: [PATCH 05/20] Added container --- .github/workflows/python-package.yml | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 309ba64..e5c9a67 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -5,7 +5,7 @@ name: Python package on: push: # run on all branches -# branches: [ '**' ] + branches: [ '**' ] #[ $default-branch ] pull_request: branches: [ '**' ] @@ -13,7 +13,6 @@ on: jobs: build: - runs-on: [ubuntu-latest, windows-latest, macos-latest] strategy: fail-fast: false @@ -41,4 +40,24 @@ jobs: flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | - python -m unittest discover -s tests \ No newline at end of file + python -m unittest discover -s tests + + build-container: + runs-on: ubuntu-latest + container: + image: python:3.12-bullseye + steps: + - uses: actions/checkout@v4 + - name: Install dependencies in container + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest + if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi + python setup.py build_ext --inplace + - name: Lint with flake8 in container + run: | + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest in container + run: | + python -m unittest discover -s tests \ No newline at end of file From 6c5e4ca31a37e7e218fb62d1fe52dfab8bbfc4b4 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 15:53:20 +0200 Subject: [PATCH 06/20] Reverted runs-on --- .github/workflows/python-package.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index e5c9a67..8cc509b 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -4,16 +4,16 @@ name: Python package on: - push: # run on all branches - branches: [ '**' ] - #[ $default-branch ] +# push: # run on all branches +# branches: [ '**' ] +# #[ $default-branch ] pull_request: branches: [ '**' ] #[ $default-branch ] jobs: build: - runs-on: [ubuntu-latest, windows-latest, macos-latest] + runs-on: ubuntu-latest strategy: fail-fast: false matrix: @@ -52,12 +52,12 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install flake8 pytest - if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi - python setup.py build_ext --inplace +# if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi + pip install -e ".[dev]" - name: Lint with flake8 in container run: | flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test with pytest in container + - name: Run unittests in container run: | python -m unittest discover -s tests \ No newline at end of file From 6a26849cbf468238754049eee50745e1bd73bd11 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 15:55:08 +0200 Subject: [PATCH 07/20] Reverted runs-on [remove comment] --- .github/workflows/python-package.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 8cc509b..60b8f02 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -52,7 +52,6 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install flake8 pytest -# if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi pip install -e ".[dev]" - name: Lint with flake8 in container run: | From 84cee1dd2031b5634cd025c0250fbaac6294a6b3 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 15:58:30 +0200 Subject: [PATCH 08/20] Workaround for https://github.com/piskvorky/gensim/issues/3225 error --- setup.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index 89dd00a..d47dcc0 100644 --- a/setup.py +++ b/setup.py @@ -13,7 +13,10 @@ class build(build_orig): def finalize_options(self): super().finalize_options() - __builtins__.__NUMPY_SETUP__ = False + try: + __builtins__.__NUMPY_SETUP__ = False + except AttributeError: + print("Numpy is not installed, skipping numpy include dir") import numpy for extension in self.distribution.ext_modules: extension.include_dirs.append(numpy.get_include()) @@ -33,7 +36,7 @@ def finalize_options(self): with open("requirements-dev.txt") as fp: dev_requires = fp.read().strip().split("\n") - # ignore the lines that starts with '#' or '-r ' + # ignore the lines that starts with '#' or '-r ' dev_requires = [line for line in dev_requires if line and not line.startswith(("#", "-r"))] setup( From 97e4abdb21059c23ceeca3b01bea3be2312dde3c Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:02:48 +0200 Subject: [PATCH 09/20] Fix runs-on --- .github/workflows/python-package.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 60b8f02..e80349e 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -13,7 +13,7 @@ on: jobs: build: - runs-on: ubuntu-latest + runs-on: [ubuntu-latest, windows-latest, macos-latest] strategy: fail-fast: false matrix: @@ -29,9 +29,7 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install flake8 pytest - if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi - python setup.py build_ext --inplace - + pip install -e ".[dev]" - name: Lint with flake8 run: | # stop the build if there are Python syntax errors or undefined names From c4f5d725965ea398fc446b856a1203a6d6c7c4e5 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:12:01 +0200 Subject: [PATCH 10/20] Fix runs-on using matrix.os --- .github/workflows/python-package.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index e80349e..30f1c19 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -13,10 +13,11 @@ on: jobs: build: - runs-on: [ubuntu-latest, windows-latest, macos-latest] + runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: + os: [ubuntu-latest, windows-latest, macos-latest] python-version: ["3.10", "3.11","3.12", "3.13"] steps: From eba4e9fa397593dba1922c77d84e9b7d6a8f085d Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:15:24 +0200 Subject: [PATCH 11/20] Add ubuntu-latest-arm64 --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 30f1c19..5ee88c4 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest, macos-latest, ubuntu-latest-arm64] python-version: ["3.10", "3.11","3.12", "3.13"] steps: From 6b54ab924ce9555ee8fa12829cfdf779642cd2cf Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:19:24 +0200 Subject: [PATCH 12/20] Add ubuntu-24.04-arm --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 5ee88c4..1c81b49 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -17,7 +17,7 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest, ubuntu-latest-arm64] + os: [ubuntu-latest, windows-latest, macos-latest, ubuntu-24.04-arm] python-version: ["3.10", "3.11","3.12", "3.13"] steps: From db69fbdbe5278b8521fc7883e2c9579cb5058549 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:31:13 +0200 Subject: [PATCH 13/20] Renamed the package --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 1c81b49..28a5564 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -1,7 +1,7 @@ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python -name: Python package +name: bintablefile-package-build on: # push: # run on all branches From 585641c6518e3da834c6973d760e29cbb1b47383 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:31:42 +0200 Subject: [PATCH 14/20] Renamed the package --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 28a5564..131fa52 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -8,7 +8,7 @@ on: # branches: [ '**' ] # #[ $default-branch ] pull_request: - branches: [ '**' ] + branches: [ $default-branch ] #[ $default-branch ] jobs: From 24ae35e28690b53dca9623db1605cbd34d0497ef Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:32:17 +0200 Subject: [PATCH 15/20] Renamed the package --- .github/workflows/python-package.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 131fa52..28a5564 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -8,7 +8,7 @@ on: # branches: [ '**' ] # #[ $default-branch ] pull_request: - branches: [ $default-branch ] + branches: [ '**' ] #[ $default-branch ] jobs: From 1a5fd455642206c57bf50c7d58087805d4d9e9fe Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:35:29 +0200 Subject: [PATCH 16/20] Renamed the package --- .github/workflows/python-package.yml | 50 +++++++++++++--------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 28a5564..6a3b048 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -4,42 +4,40 @@ name: bintablefile-package-build on: -# push: # run on all branches -# branches: [ '**' ] -# #[ $default-branch ] + push: + branches: [ $default-branch ] pull_request: branches: [ '**' ] - #[ $default-branch ] jobs: build: runs-on: ${{ matrix.os }} strategy: - fail-fast: false + fail-fast: true matrix: - os: [ubuntu-latest, windows-latest, macos-latest, ubuntu-24.04-arm] - python-version: ["3.10", "3.11","3.12", "3.13"] + os: [ ubuntu-latest, windows-latest, macos-latest, ubuntu-24.04-arm ] + python-version: [ "3.10", "3.11","3.12", "3.13" ] steps: - - uses: actions/checkout@v4 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v3 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies - run: | - python -m pip install --upgrade pip - python -m pip install flake8 pytest - pip install -e ".[dev]" - - name: Lint with flake8 - run: | - # stop the build if there are Python syntax errors or undefined names - flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics - # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide - flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - - name: Test with pytest - run: | - python -m unittest discover -s tests + - uses: actions/checkout@v4 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v3 + with: + python-version: ${{ matrix.python-version }} + - name: Install dependencies + run: | + python -m pip install --upgrade pip + python -m pip install flake8 pytest + pip install -e ".[dev]" + - name: Lint with flake8 + run: | + # stop the build if there are Python syntax errors or undefined names + flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics + # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide + flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics + - name: Test with pytest + run: | + python -m unittest discover -s tests build-container: runs-on: ubuntu-latest From b8829fc1202fb46d97357b15174ca851af05435d Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:41:58 +0200 Subject: [PATCH 17/20] Renamed the package --- .github/workflows/python-package.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 6a3b048..9ea3c32 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -6,8 +6,13 @@ name: bintablefile-package-build on: push: branches: [ $default-branch ] + paths-ignore: + - '**/*.md' pull_request: branches: [ '**' ] + paths-ignore: + - '**/*.md' + jobs: build: From d120a53fc66fa8a5ae57bc0d1db9cf5b31a12239 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:45:59 +0200 Subject: [PATCH 18/20] Added Build status badge to README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 09c9ee3..79c1a74 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Binary Table File format +[![Build Status](https://github.com/eSAMTrade/bintablefile/actions/workflows/python-package.yml/badge.svg?branch=main)](https://github.com/eSAMTrade/bintablefile/actions/workflows/python-package.yml) ## Binary Table File - efficient binary file format to store and retrieve tabular data From 94b1112eb7980317e23191e93c998262eb06f6a4 Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:49:08 +0200 Subject: [PATCH 19/20] Added Build status badge to README.md --- .github/workflows/python-package.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 9ea3c32..24308ce 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -7,11 +7,11 @@ on: push: branches: [ $default-branch ] paths-ignore: - - '**/*.md' + - '**.md' pull_request: branches: [ '**' ] paths-ignore: - - '**/*.md' + - '**.md' jobs: From 9a6378568eff8b0498c79a1d9e7406ecd5f8207e Mon Sep 17 00:00:00 2001 From: ASU Date: Sun, 9 Mar 2025 16:50:18 +0200 Subject: [PATCH 20/20] test ignore the **.md files on build run --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 79c1a74..8b23e55 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ # Binary Table File format [![Build Status](https://github.com/eSAMTrade/bintablefile/actions/workflows/python-package.yml/badge.svg?branch=main)](https://github.com/eSAMTrade/bintablefile/actions/workflows/python-package.yml) + ## Binary Table File - efficient binary file format to store and retrieve tabular data This library is written in Cython for speed efficiency.