Skip to main content

Cogniflow signal processing step package (FIFO windowing and averages) implemented in C++.

Project description

cf.basic.signal StepPackage

Signal-processing steps packaged for Cogniflow (FIFO buffer and statistical averages).

Note: Dev/demo/benchmark steps (InlineSource, OpcuaPhSource, OmpReductionStep, BudgetAwareStep) have moved to cf-basic-dev. This package now contains only core signal-processing steps.

Steps

Step Description
cfbs:FifoWindowBufferStep Sliding FIFO window buffer
cfbs:AverageStep Arithmetic / geometric / harmonic mean with standard error

Files

  • steps.nq - single manifest (package metadata + ontology + implementation bindings)
  • src/cf_basic_signal/cpp/steps.cpp - C++ implementations (plugin backend)
  • examples/golden_fifo_avg.json - minimal signal pipeline (InlineSource from cf-basic-dev -> FIFO -> Average) (legacy)

Pipeline backend plugin

The package registers a C++ plugin artifact described in steps.nq:

  • C++ ops (impl="cpp"): fifo_window_buffer, average (registered via capsule register_cpp_op)
  • No Python fallbacks; the C++ extension is required for pipeline_backend usage

Plugin metadata (artifact path, list/resolve symbols, certification) is stored under the cf:PluginArtifact node in steps.nq.

Quick check

  1. Install package (editable or wheel) so the cogniflow.steps entry point exposes steps.nq.

  2. Ingest step packages via cf_ontology and verify:

import os
from cf_ontology import ingest_installed_step_packages, OntologyManager

os.environ["CF_ENABLE_STEP_PACKAGES"] = "1"
ingest_installed_step_packages()
om = OntologyManager()
assert om.get_step_info("cfbs:FifoWindowBufferStep")
assert om.get_step_info("cfbs:AverageStep")
  1. (Legacy) Run the example pipeline via your runner. Expected output:
    • golden_fifo_avg: window [4,5,6], mean 5.0, small SE.

Published distribution name:

pip install cf-basic-signal

Native build prerequisites

cf_basic_signal is built with scikit-build-core and CMake and requires the published SDK package at build time:

  • CPython 3.13
  • CMake on PATH
  • a Windows C++ toolchain compatible with that CMake installation
  • access to cf-pipeline-sdk from the package index

The package-local CMake currently generates the signature header through python -m cogniflow_pipeline_sdk.siggen and copies the built plugin artifact into the installed package's bin/ directory.

Publishing

cf_basic_signal is published with the dedicated Windows workflow:

  • Workflow: .github/workflows/cf_basic_signal_windows_publish.yml
  • Package directory: sandcastle/cf_basic_steps/cf_basic_signal
  • PyPI tag: cf-basic-signal-v<version>
  • TestPyPI tag: cf-basic-signal-v<version>-test

Local preflight:

powershell -ExecutionPolicy Bypass -File scripts/mimic_windows_python_publish_workflow.ps1 `
  -WorkflowFile .github/workflows/cf_basic_signal_windows_publish.yml `
  -PackageDir sandcastle/cf_basic_steps/cf_basic_signal `
  -PythonExe py `
  -PythonVersion 3.13

Queue a dry-run dispatch:

powershell -ExecutionPolicy Bypass -File scripts/queue_windows_python_publish_workflow.ps1 `
  -WorkflowFile .github/workflows/cf_basic_signal_windows_publish.yml `
  -PackageDir sandcastle/cf_basic_steps/cf_basic_signal `
  -PublishTarget testpypi `
  -Ref main `
  -RequireLocalPass `
  -DryRun

Watch queued runs:

gh run list --workflow cf_basic_signal_windows_publish.yml --limit 10
gh run watch --exit-status

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

cf_basic_signal-0.3.0.tar.gz (37.6 kB view details)

Uploaded Source

Built Distribution

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

cf_basic_signal-0.3.0-cp313-cp313-win_amd64.whl (23.6 kB view details)

Uploaded CPython 3.13Windows x86-64

File details

Details for the file cf_basic_signal-0.3.0.tar.gz.

File metadata

  • Download URL: cf_basic_signal-0.3.0.tar.gz
  • Upload date:
  • Size: 37.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for cf_basic_signal-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6d53cb9f3930a8ce4fc63889f180ce915a0d6c94b157d11afeb60dae8f53b71d
MD5 634ab635eeb3442340c6c572e9c19651
BLAKE2b-256 b3ec7d27eee233b2c44f31f8001c9b1d59a03197ce44f53d19d2e4c9079db885

See more details on using hashes here.

File details

Details for the file cf_basic_signal-0.3.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for cf_basic_signal-0.3.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 3a8604ccd2c4cb1554e1fd3e0b309c62ec5cdbd61962df17e9f6c372c5970186
MD5 71f37aafb7d59d5b5d6010c09c6c71aa
BLAKE2b-256 d45c10cbcce6b52aa57faa4c2551aba143f6e4c5b4c9e76eb85572e09cb31275

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