summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gr-filter/python/filter/CMakeLists.txt7
-rw-r--r--gr-filter/python/filter/__init__.py6
-rw-r--r--gr-filter/python/filter/bindings/CMakeLists.txt60
-rw-r--r--gr-filter/python/filter/bindings/dc_blocker_cc_python.cc42
-rw-r--r--gr-filter/python/filter/bindings/dc_blocker_ff_python.cc42
-rw-r--r--gr-filter/python/filter/bindings/docstrings/dc_blocker_cc_pydoc_template.h30
-rw-r--r--gr-filter/python/filter/bindings/docstrings/dc_blocker_ff_pydoc_template.h30
-rw-r--r--gr-filter/python/filter/bindings/docstrings/fft_filter_ccc_pydoc_template.h39
-rw-r--r--gr-filter/python/filter/bindings/docstrings/fft_filter_ccf_pydoc_template.h39
-rw-r--r--gr-filter/python/filter/bindings/docstrings/fft_filter_fff_pydoc_template.h39
-rw-r--r--gr-filter/python/filter/bindings/docstrings/fft_filter_pydoc_template.h90
-rw-r--r--gr-filter/python/filter/bindings/docstrings/filter_delay_fc_pydoc_template.h24
-rw-r--r--gr-filter/python/filter/bindings/docstrings/filterbank_pydoc_template.h33
-rw-r--r--gr-filter/python/filter/bindings/docstrings/filterbank_vcvcf_pydoc_template.h36
-rw-r--r--gr-filter/python/filter/bindings/docstrings/fir_filter_blk_pydoc_template.h15
-rw-r--r--gr-filter/python/filter/bindings/docstrings/fir_filter_pydoc_template.h15
-rw-r--r--gr-filter/python/filter/bindings/docstrings/fir_filter_with_buffer_pydoc_template.h132
-rw-r--r--gr-filter/python/filter/bindings/docstrings/firdes_pydoc_template.h66
-rw-r--r--gr-filter/python/filter/bindings/docstrings/freq_xlating_fir_filter_pydoc_template.h15
-rw-r--r--gr-filter/python/filter/bindings/docstrings/hilbert_fc_pydoc_template.h24
-rw-r--r--gr-filter/python/filter/bindings/docstrings/iir_filter_ccc_pydoc_template.h30
-rw-r--r--gr-filter/python/filter/bindings/docstrings/iir_filter_ccd_pydoc_template.h30
-rw-r--r--gr-filter/python/filter/bindings/docstrings/iir_filter_ccf_pydoc_template.h30
-rw-r--r--gr-filter/python/filter/bindings/docstrings/iir_filter_ccz_pydoc_template.h30
-rw-r--r--gr-filter/python/filter/bindings/docstrings/iir_filter_ffd_pydoc_template.h30
-rw-r--r--gr-filter/python/filter/bindings/docstrings/iir_filter_pydoc_template.h138
-rw-r--r--gr-filter/python/filter/bindings/docstrings/interp_fir_filter_pydoc_template.h15
-rw-r--r--gr-filter/python/filter/bindings/docstrings/ival_decimator_pydoc_template.h24
-rw-r--r--gr-filter/python/filter/bindings/docstrings/mmse_fir_interpolator_cc_pydoc_template.h35
-rw-r--r--gr-filter/python/filter/bindings/docstrings/mmse_fir_interpolator_ff_pydoc_template.h35
-rw-r--r--gr-filter/python/filter/bindings/docstrings/mmse_interp_differentiator_cc_pydoc_template.h38
-rw-r--r--gr-filter/python/filter/bindings/docstrings/mmse_interp_differentiator_ff_pydoc_template.h38
-rw-r--r--gr-filter/python/filter/bindings/docstrings/mmse_interpolator_cc_pydoc_template.h41
-rw-r--r--gr-filter/python/filter/bindings/docstrings/mmse_interpolator_ff_pydoc_template.h41
-rw-r--r--gr-filter/python/filter/bindings/docstrings/mmse_resampler_cc_pydoc_template.h39
-rw-r--r--gr-filter/python/filter/bindings/docstrings/mmse_resampler_ff_pydoc_template.h39
-rw-r--r--gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_ccc_pydoc_template.h65
-rw-r--r--gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_ccf_pydoc_template.h65
-rw-r--r--gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_fff_pydoc_template.h65
-rw-r--r--gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_pydoc_template.h180
-rw-r--r--gr-filter/python/filter/bindings/docstrings/pfb_channelizer_ccf_pydoc_template.h44
-rw-r--r--gr-filter/python/filter/bindings/docstrings/pfb_decimator_ccf_pydoc_template.h39
-rw-r--r--gr-filter/python/filter/bindings/docstrings/pfb_interpolator_ccf_pydoc_template.h38
-rw-r--r--gr-filter/python/filter/bindings/docstrings/pfb_synthesizer_ccf_pydoc_template.h44
-rw-r--r--gr-filter/python/filter/bindings/docstrings/pm_remez_pydoc_template.h18
-rw-r--r--gr-filter/python/filter/bindings/docstrings/polyphase_filterbank_pydoc_template.h35
-rw-r--r--gr-filter/python/filter/bindings/docstrings/rational_resampler_base_pydoc_template.h15
-rw-r--r--gr-filter/python/filter/bindings/docstrings/single_pole_iir_filter_cc_pydoc_template.h32
-rw-r--r--gr-filter/python/filter/bindings/docstrings/single_pole_iir_filter_ff_pydoc_template.h32
-rw-r--r--gr-filter/python/filter/bindings/docstrings/single_pole_iir_pydoc_template.h15
-rw-r--r--gr-filter/python/filter/bindings/fft_filter_ccc_python.cc59
-rw-r--r--gr-filter/python/filter/bindings/fft_filter_ccf_python.cc59
-rw-r--r--gr-filter/python/filter/bindings/fft_filter_fff_python.cc59
-rw-r--r--gr-filter/python/filter/bindings/fft_filter_python.cc144
-rw-r--r--gr-filter/python/filter/bindings/filter_delay_fc_python.cc34
-rw-r--r--gr-filter/python/filter/bindings/filterbank_python.cc52
-rw-r--r--gr-filter/python/filter/bindings/filterbank_vcvcf_python.cc49
-rw-r--r--gr-filter/python/filter/bindings/fir_filter_blk_python.cc48
-rw-r--r--gr-filter/python/filter/bindings/fir_filter_python.cc20
-rw-r--r--gr-filter/python/filter/bindings/fir_filter_with_buffer_python.cc203
-rw-r--r--gr-filter/python/filter/bindings/firdes_python.cc200
-rw-r--r--gr-filter/python/filter/bindings/freq_xlating_fir_filter_python.cc62
-rw-r--r--gr-filter/python/filter/bindings/hilbert_fc_python.cc38
-rw-r--r--gr-filter/python/filter/bindings/iir_filter_ccc_python.cc45
-rw-r--r--gr-filter/python/filter/bindings/iir_filter_ccd_python.cc48
-rw-r--r--gr-filter/python/filter/bindings/iir_filter_ccf_python.cc48
-rw-r--r--gr-filter/python/filter/bindings/iir_filter_ccz_python.cc48
-rw-r--r--gr-filter/python/filter/bindings/iir_filter_ffd_python.cc48
-rw-r--r--gr-filter/python/filter/bindings/iir_filter_python.cc320
-rw-r--r--gr-filter/python/filter/bindings/interp_fir_filter_python.cc52
-rw-r--r--gr-filter/python/filter/bindings/ival_decimator_python.cc42
-rw-r--r--gr-filter/python/filter/bindings/mmse_fir_interpolator_cc_python.cc56
-rw-r--r--gr-filter/python/filter/bindings/mmse_fir_interpolator_ff_python.cc56
-rw-r--r--gr-filter/python/filter/bindings/mmse_interp_differentiator_cc_python.cc59
-rw-r--r--gr-filter/python/filter/bindings/mmse_interp_differentiator_ff_python.cc59
-rw-r--r--gr-filter/python/filter/bindings/mmse_interpolator_cc_python.cc60
-rw-r--r--gr-filter/python/filter/bindings/mmse_interpolator_ff_python.cc60
-rw-r--r--gr-filter/python/filter/bindings/mmse_resampler_cc_python.cc60
-rw-r--r--gr-filter/python/filter/bindings/mmse_resampler_ff_python.cc60
-rw-r--r--gr-filter/python/filter/bindings/pfb_arb_resampler_ccc_python.cc102
-rw-r--r--gr-filter/python/filter/bindings/pfb_arb_resampler_ccf_python.cc102
-rw-r--r--gr-filter/python/filter/bindings/pfb_arb_resampler_fff_python.cc102
-rw-r--r--gr-filter/python/filter/bindings/pfb_arb_resampler_python.cc299
-rw-r--r--gr-filter/python/filter/bindings/pfb_channelizer_ccf_python.cc66
-rw-r--r--gr-filter/python/filter/bindings/pfb_decimator_ccf_python.cc64
-rw-r--r--gr-filter/python/filter/bindings/pfb_interpolator_ccf_python.cc56
-rw-r--r--gr-filter/python/filter/bindings/pfb_synthesizer_ccf_python.cc68
-rw-r--r--gr-filter/python/filter/bindings/pm_remez_python.cc35
-rw-r--r--gr-filter/python/filter/bindings/polyphase_filterbank_python.cc60
-rw-r--r--gr-filter/python/filter/bindings/python_bindings.cc132
-rw-r--r--gr-filter/python/filter/bindings/rational_resampler_base_python.cc55
-rw-r--r--gr-filter/python/filter/bindings/single_pole_iir_filter_cc_python.cc47
-rw-r--r--gr-filter/python/filter/bindings/single_pole_iir_filter_ff_python.cc47
-rw-r--r--gr-filter/python/filter/bindings/single_pole_iir_python.cc22
-rw-r--r--gr-filter/python/filter/filterbank.py2
-rw-r--r--gr-filter/python/filter/freq_xlating_fft_filter.py2
-rw-r--r--gr-filter/python/filter/optfir.py2
-rw-r--r--gr-filter/python/filter/pfb.py2
-rw-r--r--gr-filter/python/filter/qa_fft_filter.py2
-rw-r--r--gr-filter/python/filter/qa_interp_fir_filter.py2
-rw-r--r--gr-filter/python/filter/qa_pfb_channelizer.py3
-rw-r--r--gr-filter/python/filter/qa_rational_resampler.py4
-rw-r--r--gr-filter/python/filter/rational_resampler.py2
103 files changed, 5512 insertions, 18 deletions
diff --git a/gr-filter/python/filter/CMakeLists.txt b/gr-filter/python/filter/CMakeLists.txt
index 35bbaccf78..765af55868 100644
--- a/gr-filter/python/filter/CMakeLists.txt
+++ b/gr-filter/python/filter/CMakeLists.txt
@@ -29,11 +29,6 @@ if(ENABLE_TESTING)
set(GR_TEST_LIBRARY_DIRS "")
set(GR_TEST_PYTHON_DIRS
${CMAKE_BINARY_DIR}/gnuradio-runtime/python
- ${CMAKE_BINARY_DIR}/gnuradio-runtime/swig
- ${CMAKE_BINARY_DIR}/gr-blocks/swig
- ${CMAKE_BINARY_DIR}/gr-fft/swig
- ${CMAKE_BINARY_DIR}/gr-analog/swig
- ${CMAKE_BINARY_DIR}/gr-filter/swig
)
include(GrTest)
@@ -43,3 +38,5 @@ if(ENABLE_TESTING)
GR_ADD_TEST(${py_qa_test_name} ${QA_PYTHON_EXECUTABLE} -B ${py_qa_test_file})
endforeach(py_qa_test_file)
endif(ENABLE_TESTING)
+
+add_subdirectory(bindings)
diff --git a/gr-filter/python/filter/__init__.py b/gr-filter/python/filter/__init__.py
index 76092ab927..0f61f74eaf 100644
--- a/gr-filter/python/filter/__init__.py
+++ b/gr-filter/python/filter/__init__.py
@@ -17,11 +17,11 @@ import os
from gnuradio.fft import window
try:
- from .filter_swig import *
+ from .filter_python import *
except ImportError:
dirname, filename = os.path.split(os.path.abspath(__file__))
- __path__.append(os.path.join(dirname, "..", "..", "swig"))
- from .filter_swig import *
+ __path__.append(os.path.join(dirname, "bindings"))
+ from .filter_python import *
from .filterbank import *
from .freq_xlating_fft_filter import *
diff --git a/gr-filter/python/filter/bindings/CMakeLists.txt b/gr-filter/python/filter/bindings/CMakeLists.txt
new file mode 100644
index 0000000000..e8cd25ce87
--- /dev/null
+++ b/gr-filter/python/filter/bindings/CMakeLists.txt
@@ -0,0 +1,60 @@
+########################################################################
+# Python Bindings
+########################################################################
+
+list(APPEND filter_python_files
+ dc_blocker_cc_python.cc
+ dc_blocker_ff_python.cc
+ fft_filter_python.cc
+ fft_filter_ccc_python.cc
+ fft_filter_ccf_python.cc
+ fft_filter_fff_python.cc
+ filter_delay_fc_python.cc
+ filterbank_python.cc
+ filterbank_vcvcf_python.cc
+ fir_filter_python.cc
+ fir_filter_blk_python.cc
+ fir_filter_with_buffer_python.cc
+ firdes_python.cc
+ freq_xlating_fir_filter_python.cc
+ hilbert_fc_python.cc
+ # iir_filter_python.cc
+ iir_filter_ccc_python.cc
+ iir_filter_ccd_python.cc
+ iir_filter_ccf_python.cc
+ iir_filter_ccz_python.cc
+ iir_filter_ffd_python.cc
+ # interp_differentiator_taps_python.cc
+ interp_fir_filter_python.cc
+ # interpolator_taps_python.cc
+ ival_decimator_python.cc
+ mmse_fir_interpolator_cc_python.cc
+ mmse_fir_interpolator_ff_python.cc
+ mmse_interp_differentiator_cc_python.cc
+ mmse_interp_differentiator_ff_python.cc
+ mmse_interpolator_cc_python.cc
+ mmse_interpolator_ff_python.cc
+ mmse_resampler_cc_python.cc
+ mmse_resampler_ff_python.cc
+ pfb_arb_resampler_python.cc
+ pfb_arb_resampler_ccc_python.cc
+ pfb_arb_resampler_ccf_python.cc
+ pfb_arb_resampler_fff_python.cc
+ pfb_channelizer_ccf_python.cc
+ pfb_decimator_ccf_python.cc
+ pfb_interpolator_ccf_python.cc
+ pfb_synthesizer_ccf_python.cc
+ pm_remez_python.cc
+ polyphase_filterbank_python.cc
+ rational_resampler_base_python.cc
+ single_pole_iir_python.cc
+ single_pole_iir_filter_cc_python.cc
+ single_pole_iir_filter_ff_python.cc
+ python_bindings.cc)
+
+GR_PYBIND_MAKE(filter
+ ../../..
+ gr::filter
+ "${filter_python_files}")
+
+install(TARGETS filter_python DESTINATION ${GR_PYTHON_DIR}/gnuradio/filter COMPONENT pythonapi)
diff --git a/gr-filter/python/filter/bindings/dc_blocker_cc_python.cc b/gr-filter/python/filter/bindings/dc_blocker_cc_python.cc
new file mode 100644
index 0000000000..febbe92233
--- /dev/null
+++ b/gr-filter/python/filter/bindings/dc_blocker_cc_python.cc
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/dc_blocker_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <dc_blocker_cc_pydoc.h>
+
+void bind_dc_blocker_cc(py::module& m)
+{
+ using dc_blocker_cc = gr::filter::dc_blocker_cc;
+
+
+ py::class_<dc_blocker_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<dc_blocker_cc>>(m, "dc_blocker_cc", D(dc_blocker_cc))
+
+ .def(py::init(&dc_blocker_cc::make),
+ py::arg("D"),
+ py::arg("long_form"),
+ D(dc_blocker_cc, make))
+
+
+ .def("group_delay", &dc_blocker_cc::group_delay, D(dc_blocker_cc, group_delay))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/dc_blocker_ff_python.cc b/gr-filter/python/filter/bindings/dc_blocker_ff_python.cc
new file mode 100644
index 0000000000..7861220a02
--- /dev/null
+++ b/gr-filter/python/filter/bindings/dc_blocker_ff_python.cc
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/dc_blocker_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <dc_blocker_ff_pydoc.h>
+
+void bind_dc_blocker_ff(py::module& m)
+{
+ using dc_blocker_ff = gr::filter::dc_blocker_ff;
+
+
+ py::class_<dc_blocker_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<dc_blocker_ff>>(m, "dc_blocker_ff", D(dc_blocker_ff))
+
+ .def(py::init(&dc_blocker_ff::make),
+ py::arg("D"),
+ py::arg("long_form") = true,
+ D(dc_blocker_ff, make))
+
+
+ .def("group_delay", &dc_blocker_ff::group_delay, D(dc_blocker_ff, group_delay))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/docstrings/dc_blocker_cc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/dc_blocker_cc_pydoc_template.h
new file mode 100644
index 0000000000..fe66b08ea8
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/dc_blocker_cc_pydoc_template.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_dc_blocker_cc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_dc_blocker_cc_dc_blocker_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_dc_blocker_cc_dc_blocker_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_dc_blocker_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_dc_blocker_cc_group_delay = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/dc_blocker_ff_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/dc_blocker_ff_pydoc_template.h
new file mode 100644
index 0000000000..77d399a411
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/dc_blocker_ff_pydoc_template.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_dc_blocker_ff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_dc_blocker_ff_dc_blocker_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_dc_blocker_ff_dc_blocker_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_dc_blocker_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_dc_blocker_ff_group_delay = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/fft_filter_ccc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/fft_filter_ccc_pydoc_template.h
new file mode 100644
index 0000000000..a61242354c
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/fft_filter_ccc_pydoc_template.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_fft_filter_ccc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccc_fft_filter_ccc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccc_fft_filter_ccc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccc_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccc_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccc_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccc_set_nthreads = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccc_nthreads = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/fft_filter_ccf_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/fft_filter_ccf_pydoc_template.h
new file mode 100644
index 0000000000..ba847b592c
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/fft_filter_ccf_pydoc_template.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_fft_filter_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccf_fft_filter_ccf_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccf_fft_filter_ccf_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccf_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccf_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccf_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccf_set_nthreads = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_ccf_nthreads = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/fft_filter_fff_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/fft_filter_fff_pydoc_template.h
new file mode 100644
index 0000000000..9c64350a6d
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/fft_filter_fff_pydoc_template.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_fft_filter_fff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_fff_fft_filter_fff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_fff_fft_filter_fff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_fff_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_fff_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_fff_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_fff_set_nthreads = R"doc()doc";
+
+
+static const char* __doc_gr_filter_fft_filter_fff_nthreads = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/fft_filter_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/fft_filter_pydoc_template.h
new file mode 100644
index 0000000000..31c1621251
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/fft_filter_pydoc_template.h
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_fff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_fff_fft_filter_fff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_fff_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_fff_set_nthreads = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_fff_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_fff_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_fff_nthreads = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_fff_filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccc_fft_filter_ccc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccc_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccc_set_nthreads = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccc_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccc_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccc_nthreads = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccc_filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccf_fft_filter_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccf_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccf_set_nthreads = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccf_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccf_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccf_filtersize = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccf_nthreads = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fft_filter_ccf_filter = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/filter_delay_fc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/filter_delay_fc_pydoc_template.h
new file mode 100644
index 0000000000..09837f746f
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/filter_delay_fc_pydoc_template.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_filter_delay_fc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_filter_delay_fc_filter_delay_fc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_filter_delay_fc_make = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/filterbank_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/filterbank_pydoc_template.h
new file mode 100644
index 0000000000..626217919d
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/filterbank_pydoc_template.h
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_kernel_filterbank = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_filterbank_filterbank_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_filterbank_filterbank_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_filterbank_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_filterbank_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_filterbank_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/filterbank_vcvcf_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/filterbank_vcvcf_pydoc_template.h
new file mode 100644
index 0000000000..ce0d08c6d3
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/filterbank_vcvcf_pydoc_template.h
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_filterbank_vcvcf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_filterbank_vcvcf_filterbank_vcvcf_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_filterbank_vcvcf_filterbank_vcvcf_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_filterbank_vcvcf_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_filterbank_vcvcf_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_filterbank_vcvcf_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_filterbank_vcvcf_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/fir_filter_blk_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/fir_filter_blk_pydoc_template.h
new file mode 100644
index 0000000000..a187d6f1ef
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/fir_filter_blk_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-filter/python/filter/bindings/docstrings/fir_filter_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/fir_filter_pydoc_template.h
new file mode 100644
index 0000000000..a187d6f1ef
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/fir_filter_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-filter/python/filter/bindings/docstrings/fir_filter_with_buffer_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/fir_filter_with_buffer_pydoc_template.h
new file mode 100644
index 0000000000..29f9c7a537
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/fir_filter_with_buffer_pydoc_template.h
@@ -0,0 +1,132 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_fff = R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_kernel_fir_filter_with_buffer_fff_fir_filter_with_buffer_fff_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_kernel_fir_filter_with_buffer_fff_fir_filter_with_buffer_fff_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_fff_filter_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_fff_filter_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_fff_filterN =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_fff_filterNdec =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_fff_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_fff_set_taps =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_fff_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccc = R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_kernel_fir_filter_with_buffer_ccc_fir_filter_with_buffer_ccc_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_kernel_fir_filter_with_buffer_ccc_fir_filter_with_buffer_ccc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccc_filter_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccc_filter_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccc_filterN =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccc_filterNdec =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccc_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccc_set_taps =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccc_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccf = R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_kernel_fir_filter_with_buffer_ccf_fir_filter_with_buffer_ccf_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_kernel_fir_filter_with_buffer_ccf_fir_filter_with_buffer_ccf_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccf_filter_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccf_filter_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccf_filterN =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccf_filterNdec =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccf_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccf_set_taps =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_fir_filter_with_buffer_ccf_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/firdes_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/firdes_pydoc_template.h
new file mode 100644
index 0000000000..3eccb93fcb
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/firdes_pydoc_template.h
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_firdes = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_firdes_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_firdes_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_window = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_low_pass = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_low_pass_2 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_high_pass = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_high_pass_2 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_band_pass = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_band_pass_2 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_complex_band_pass = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_complex_band_pass_2 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_band_reject = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_band_reject_2 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_hilbert = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_root_raised_cosine = R"doc()doc";
+
+
+static const char* __doc_gr_filter_firdes_gaussian = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/freq_xlating_fir_filter_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/freq_xlating_fir_filter_pydoc_template.h
new file mode 100644
index 0000000000..a187d6f1ef
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/freq_xlating_fir_filter_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-filter/python/filter/bindings/docstrings/hilbert_fc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/hilbert_fc_pydoc_template.h
new file mode 100644
index 0000000000..032d8b07fc
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/hilbert_fc_pydoc_template.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_hilbert_fc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_hilbert_fc_hilbert_fc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_hilbert_fc_make = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/iir_filter_ccc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/iir_filter_ccc_pydoc_template.h
new file mode 100644
index 0000000000..15e263c971
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/iir_filter_ccc_pydoc_template.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_iir_filter_ccc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccc_iir_filter_ccc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccc_iir_filter_ccc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccc_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccc_set_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/iir_filter_ccd_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/iir_filter_ccd_pydoc_template.h
new file mode 100644
index 0000000000..1064e76bbf
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/iir_filter_ccd_pydoc_template.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_iir_filter_ccd = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccd_iir_filter_ccd_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccd_iir_filter_ccd_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccd_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccd_set_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/iir_filter_ccf_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/iir_filter_ccf_pydoc_template.h
new file mode 100644
index 0000000000..360e2c0d00
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/iir_filter_ccf_pydoc_template.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_iir_filter_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccf_iir_filter_ccf_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccf_iir_filter_ccf_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccf_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccf_set_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/iir_filter_ccz_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/iir_filter_ccz_pydoc_template.h
new file mode 100644
index 0000000000..4c4d34217d
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/iir_filter_ccz_pydoc_template.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_iir_filter_ccz = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccz_iir_filter_ccz_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccz_iir_filter_ccz_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccz_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ccz_set_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/iir_filter_ffd_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/iir_filter_ffd_pydoc_template.h
new file mode 100644
index 0000000000..144c7349af
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/iir_filter_ffd_pydoc_template.h
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_iir_filter_ffd = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ffd_iir_filter_ffd_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ffd_iir_filter_ffd_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ffd_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_iir_filter_ffd_set_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/iir_filter_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/iir_filter_pydoc_template.h
new file mode 100644
index 0000000000..2f27c95e58
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/iir_filter_pydoc_template.h
@@ -0,0 +1,138 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>> = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>
+ _filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>
+ _filter_n = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>
+ _ntaps_ff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>
+ _ntaps_fb = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>
+ _set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>> = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>
+ _filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>
+ _filter_n = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>
+ _ntaps_ff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>
+ _ntaps_fb = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>
+ _set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>> = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>
+ _filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>
+ _filter_n = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>
+ _ntaps_ff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>
+ _ntaps_fb = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>
+ _set_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/interp_fir_filter_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/interp_fir_filter_pydoc_template.h
new file mode 100644
index 0000000000..a187d6f1ef
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/interp_fir_filter_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-filter/python/filter/bindings/docstrings/ival_decimator_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/ival_decimator_pydoc_template.h
new file mode 100644
index 0000000000..0583a3a6a2
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/ival_decimator_pydoc_template.h
@@ -0,0 +1,24 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_ival_decimator = R"doc()doc";
+
+
+static const char* __doc_gr_filter_ival_decimator_ival_decimator = R"doc()doc";
+
+
+static const char* __doc_gr_filter_ival_decimator_make = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/mmse_fir_interpolator_cc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/mmse_fir_interpolator_cc_pydoc_template.h
new file mode 100644
index 0000000000..1a332abdb3
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/mmse_fir_interpolator_cc_pydoc_template.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_cc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_cc_mmse_fir_interpolator_cc_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_cc_mmse_fir_interpolator_cc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_cc_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_cc_nsteps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_cc_interpolate = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/mmse_fir_interpolator_ff_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/mmse_fir_interpolator_ff_pydoc_template.h
new file mode 100644
index 0000000000..d8927242d8
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/mmse_fir_interpolator_ff_pydoc_template.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_ff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_ff_mmse_fir_interpolator_ff_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_ff_mmse_fir_interpolator_ff_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_ff_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_ff_nsteps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_fir_interpolator_ff_interpolate = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/mmse_interp_differentiator_cc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/mmse_interp_differentiator_cc_pydoc_template.h
new file mode 100644
index 0000000000..0f6fd8cd95
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/mmse_interp_differentiator_cc_pydoc_template.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_mmse_interp_differentiator_cc = R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_mmse_interp_differentiator_cc_mmse_interp_differentiator_cc_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_mmse_interp_differentiator_cc_mmse_interp_differentiator_cc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interp_differentiator_cc_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interp_differentiator_cc_nsteps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interp_differentiator_cc_differentiate =
+ R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/mmse_interp_differentiator_ff_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/mmse_interp_differentiator_ff_pydoc_template.h
new file mode 100644
index 0000000000..6dbf33a654
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/mmse_interp_differentiator_ff_pydoc_template.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_mmse_interp_differentiator_ff = R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_mmse_interp_differentiator_ff_mmse_interp_differentiator_ff_0 =
+ R"doc()doc";
+
+
+static const char*
+ __doc_gr_filter_mmse_interp_differentiator_ff_mmse_interp_differentiator_ff_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interp_differentiator_ff_ntaps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interp_differentiator_ff_nsteps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interp_differentiator_ff_differentiate =
+ R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/mmse_interpolator_cc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/mmse_interpolator_cc_pydoc_template.h
new file mode 100644
index 0000000000..f04cc27d85
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/mmse_interpolator_cc_pydoc_template.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_mmse_interpolator_cc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_cc_mmse_interpolator_cc_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_cc_mmse_interpolator_cc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_cc_mu = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_cc_interp_ratio = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_cc_set_mu = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_cc_set_interp_ratio = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/mmse_interpolator_ff_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/mmse_interpolator_ff_pydoc_template.h
new file mode 100644
index 0000000000..b0252d4d0b
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/mmse_interpolator_ff_pydoc_template.h
@@ -0,0 +1,41 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_mmse_interpolator_ff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_ff_mmse_interpolator_ff_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_ff_mmse_interpolator_ff_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_ff_mu = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_ff_interp_ratio = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_ff_set_mu = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_interpolator_ff_set_interp_ratio = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/mmse_resampler_cc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/mmse_resampler_cc_pydoc_template.h
new file mode 100644
index 0000000000..912f84d1c8
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/mmse_resampler_cc_pydoc_template.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_mmse_resampler_cc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_cc_mmse_resampler_cc_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_cc_mmse_resampler_cc_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_cc_mu = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_cc_resamp_ratio = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_cc_set_mu = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_cc_set_resamp_ratio = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/mmse_resampler_ff_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/mmse_resampler_ff_pydoc_template.h
new file mode 100644
index 0000000000..05c714d6ed
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/mmse_resampler_ff_pydoc_template.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_mmse_resampler_ff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_ff_mmse_resampler_ff_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_ff_mmse_resampler_ff_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_ff_mu = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_ff_resamp_ratio = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_ff_set_mu = R"doc()doc";
+
+
+static const char* __doc_gr_filter_mmse_resampler_ff_set_resamp_ratio = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_ccc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_ccc_pydoc_template.h
new file mode 100644
index 0000000000..67efda4dcd
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_ccc_pydoc_template.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_pfb_arb_resampler_ccc_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_pfb_arb_resampler_ccc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_taps_per_filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_interpolation_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_decimation_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_fractional_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_group_delay = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccc_phase_offset = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_ccf_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_ccf_pydoc_template.h
new file mode 100644
index 0000000000..9422030633
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_ccf_pydoc_template.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_pfb_arb_resampler_ccf_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_pfb_arb_resampler_ccf_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_taps_per_filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_interpolation_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_decimation_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_fractional_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_group_delay = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_ccf_phase_offset = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_fff_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_fff_pydoc_template.h
new file mode 100644
index 0000000000..19545f3e96
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_fff_pydoc_template.h
@@ -0,0 +1,65 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_pfb_arb_resampler_fff_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_pfb_arb_resampler_fff_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_taps_per_filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_interpolation_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_decimation_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_fractional_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_group_delay = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_arb_resampler_fff_phase_offset = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_pydoc_template.h
new file mode 100644
index 0000000000..79bf7366c3
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/pfb_arb_resampler_pydoc_template.h
@@ -0,0 +1,180 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_pfb_arb_resampler_ccf_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_pfb_arb_resampler_ccf_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_taps_per_filter =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_interpolation_rate =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_decimation_rate =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_fractional_rate =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_group_delay = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_phase_offset =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccf_filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_pfb_arb_resampler_ccc_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_pfb_arb_resampler_ccc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_taps_per_filter =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_interpolation_rate =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_decimation_rate =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_fractional_rate =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_group_delay = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_phase_offset =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_ccc_filter = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_pfb_arb_resampler_fff_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_pfb_arb_resampler_fff_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_set_rate = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_set_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_phase = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_taps_per_filter =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_interpolation_rate =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_decimation_rate =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_fractional_rate =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_group_delay = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_phase_offset =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_pfb_arb_resampler_fff_filter = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/pfb_channelizer_ccf_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/pfb_channelizer_ccf_pydoc_template.h
new file mode 100644
index 0000000000..9d39c1b540
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/pfb_channelizer_ccf_pydoc_template.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_pfb_channelizer_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_channelizer_ccf_pfb_channelizer_ccf_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_channelizer_ccf_pfb_channelizer_ccf_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_channelizer_ccf_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_channelizer_ccf_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_channelizer_ccf_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_channelizer_ccf_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_channelizer_ccf_set_channel_map = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_channelizer_ccf_channel_map = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/pfb_decimator_ccf_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/pfb_decimator_ccf_pydoc_template.h
new file mode 100644
index 0000000000..75043ca3e0
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/pfb_decimator_ccf_pydoc_template.h
@@ -0,0 +1,39 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_pfb_decimator_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_decimator_ccf_pfb_decimator_ccf_0 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_decimator_ccf_pfb_decimator_ccf_1 = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_decimator_ccf_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_decimator_ccf_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_decimator_ccf_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_decimator_ccf_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_decimator_ccf_set_channel = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/pfb_interpolator_ccf_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/pfb_interpolator_ccf_pydoc_template.h
new file mode 100644
index 0000000000..40c5b99132
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/pfb_interpolator_ccf_pydoc_template.h
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_pfb_interpolator_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_interpolator_ccf_pfb_interpolator_ccf_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_interpolator_ccf_pfb_interpolator_ccf_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_interpolator_ccf_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_interpolator_ccf_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_interpolator_ccf_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_interpolator_ccf_print_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/pfb_synthesizer_ccf_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/pfb_synthesizer_ccf_pydoc_template.h
new file mode 100644
index 0000000000..0834d6441e
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/pfb_synthesizer_ccf_pydoc_template.h
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_pfb_synthesizer_ccf = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_synthesizer_ccf_pfb_synthesizer_ccf_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_synthesizer_ccf_pfb_synthesizer_ccf_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_synthesizer_ccf_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_synthesizer_ccf_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_synthesizer_ccf_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_synthesizer_ccf_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_synthesizer_ccf_set_channel_map = R"doc()doc";
+
+
+static const char* __doc_gr_filter_pfb_synthesizer_ccf_channel_map = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/pm_remez_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/pm_remez_pydoc_template.h
new file mode 100644
index 0000000000..122f08d85d
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/pm_remez_pydoc_template.h
@@ -0,0 +1,18 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_pm_remez = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/polyphase_filterbank_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/polyphase_filterbank_pydoc_template.h
new file mode 100644
index 0000000000..f9a6490146
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/polyphase_filterbank_pydoc_template.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_kernel_polyphase_filterbank = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_polyphase_filterbank_polyphase_filterbank_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_polyphase_filterbank_polyphase_filterbank_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_polyphase_filterbank_set_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_polyphase_filterbank_print_taps = R"doc()doc";
+
+
+static const char* __doc_gr_filter_kernel_polyphase_filterbank_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/rational_resampler_base_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/rational_resampler_base_pydoc_template.h
new file mode 100644
index 0000000000..a187d6f1ef
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/rational_resampler_base_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-filter/python/filter/bindings/docstrings/single_pole_iir_filter_cc_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/single_pole_iir_filter_cc_pydoc_template.h
new file mode 100644
index 0000000000..b631b8e9bb
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/single_pole_iir_filter_cc_pydoc_template.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_cc = R"doc()doc";
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_cc_single_pole_iir_filter_cc_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_cc_single_pole_iir_filter_cc_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_cc_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_cc_set_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/single_pole_iir_filter_ff_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/single_pole_iir_filter_ff_pydoc_template.h
new file mode 100644
index 0000000000..908c4c8aa7
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/single_pole_iir_filter_ff_pydoc_template.h
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_ff = R"doc()doc";
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_ff_single_pole_iir_filter_ff_0 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_ff_single_pole_iir_filter_ff_1 =
+ R"doc()doc";
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_ff_make = R"doc()doc";
+
+
+static const char* __doc_gr_filter_single_pole_iir_filter_ff_set_taps = R"doc()doc";
diff --git a/gr-filter/python/filter/bindings/docstrings/single_pole_iir_pydoc_template.h b/gr-filter/python/filter/bindings/docstrings/single_pole_iir_pydoc_template.h
new file mode 100644
index 0000000000..a187d6f1ef
--- /dev/null
+++ b/gr-filter/python/filter/bindings/docstrings/single_pole_iir_pydoc_template.h
@@ -0,0 +1,15 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+#include "pydoc_macros.h"
+#define D(...) DOC(gr, filter, __VA_ARGS__)
+/*
+ This file contains placeholders for docstrings for the Python bindings.
+ Do not edit! These were automatically extracted during the binding process
+ and will be overwritten during the build process
+ */
diff --git a/gr-filter/python/filter/bindings/fft_filter_ccc_python.cc b/gr-filter/python/filter/bindings/fft_filter_ccc_python.cc
new file mode 100644
index 0000000000..ec98905c87
--- /dev/null
+++ b/gr-filter/python/filter/bindings/fft_filter_ccc_python.cc
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/fft_filter_ccc.h>
+// pydoc.h is automatically generated in the build directory
+#include <fft_filter_ccc_pydoc.h>
+
+void bind_fft_filter_ccc(py::module& m)
+{
+ using fft_filter_ccc = gr::filter::fft_filter_ccc;
+
+
+ py::class_<fft_filter_ccc,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<fft_filter_ccc>>(m, "fft_filter_ccc", D(fft_filter_ccc))
+
+ .def(py::init(&fft_filter_ccc::make),
+ py::arg("decimation"),
+ py::arg("taps"),
+ py::arg("nthreads") = 1,
+ D(fft_filter_ccc, make))
+
+
+ .def("set_taps",
+ &fft_filter_ccc::set_taps,
+ py::arg("taps"),
+ D(fft_filter_ccc, set_taps))
+
+
+ .def("taps", &fft_filter_ccc::taps, D(fft_filter_ccc, taps))
+
+
+ .def("set_nthreads",
+ &fft_filter_ccc::set_nthreads,
+ py::arg("n"),
+ D(fft_filter_ccc, set_nthreads))
+
+
+ .def("nthreads", &fft_filter_ccc::nthreads, D(fft_filter_ccc, nthreads))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/fft_filter_ccf_python.cc b/gr-filter/python/filter/bindings/fft_filter_ccf_python.cc
new file mode 100644
index 0000000000..cc54865f3e
--- /dev/null
+++ b/gr-filter/python/filter/bindings/fft_filter_ccf_python.cc
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/fft_filter_ccf.h>
+// pydoc.h is automatically generated in the build directory
+#include <fft_filter_ccf_pydoc.h>
+
+void bind_fft_filter_ccf(py::module& m)
+{
+ using fft_filter_ccf = gr::filter::fft_filter_ccf;
+
+
+ py::class_<fft_filter_ccf,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<fft_filter_ccf>>(m, "fft_filter_ccf", D(fft_filter_ccf))
+
+ .def(py::init(&fft_filter_ccf::make),
+ py::arg("decimation"),
+ py::arg("taps"),
+ py::arg("nthreads") = 1,
+ D(fft_filter_ccf, make))
+
+
+ .def("set_taps",
+ &fft_filter_ccf::set_taps,
+ py::arg("taps"),
+ D(fft_filter_ccf, set_taps))
+
+
+ .def("taps", &fft_filter_ccf::taps, D(fft_filter_ccf, taps))
+
+
+ .def("set_nthreads",
+ &fft_filter_ccf::set_nthreads,
+ py::arg("n"),
+ D(fft_filter_ccf, set_nthreads))
+
+
+ .def("nthreads", &fft_filter_ccf::nthreads, D(fft_filter_ccf, nthreads))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/fft_filter_fff_python.cc b/gr-filter/python/filter/bindings/fft_filter_fff_python.cc
new file mode 100644
index 0000000000..cc3b9f2fb5
--- /dev/null
+++ b/gr-filter/python/filter/bindings/fft_filter_fff_python.cc
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/fft_filter_fff.h>
+// pydoc.h is automatically generated in the build directory
+#include <fft_filter_fff_pydoc.h>
+
+void bind_fft_filter_fff(py::module& m)
+{
+ using fft_filter_fff = gr::filter::fft_filter_fff;
+
+
+ py::class_<fft_filter_fff,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<fft_filter_fff>>(m, "fft_filter_fff", D(fft_filter_fff))
+
+ .def(py::init(&fft_filter_fff::make),
+ py::arg("decimation"),
+ py::arg("taps"),
+ py::arg("nthreads") = 1,
+ D(fft_filter_fff, make))
+
+
+ .def("set_taps",
+ &fft_filter_fff::set_taps,
+ py::arg("taps"),
+ D(fft_filter_fff, set_taps))
+
+
+ .def("taps", &fft_filter_fff::taps, D(fft_filter_fff, taps))
+
+
+ .def("set_nthreads",
+ &fft_filter_fff::set_nthreads,
+ py::arg("n"),
+ D(fft_filter_fff, set_nthreads))
+
+
+ .def("nthreads", &fft_filter_fff::nthreads, D(fft_filter_fff, nthreads))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/fft_filter_python.cc b/gr-filter/python/filter/bindings/fft_filter_python.cc
new file mode 100644
index 0000000000..fa689b1166
--- /dev/null
+++ b/gr-filter/python/filter/bindings/fft_filter_python.cc
@@ -0,0 +1,144 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/fft_filter.h>
+// pydoc.h is automatically generated in the build directory
+#include <fft_filter_pydoc.h>
+
+void bind_fft_filter(py::module& m)
+{
+ py::module m_kernel = m.def_submodule("kernel");
+
+ using fft_filter_fff = gr::filter::kernel::fft_filter_fff;
+ using fft_filter_ccc = gr::filter::kernel::fft_filter_ccc;
+ using fft_filter_ccf = gr::filter::kernel::fft_filter_ccf;
+
+
+ py::class_<fft_filter_fff, std::shared_ptr<fft_filter_fff>>(
+ m_kernel, "fft_filter_fff", D(kernel, fft_filter_fff))
+
+ .def(py::init<int, std::vector<float, std::allocator<float>> const&, int>(),
+ py::arg("decimation"),
+ py::arg("taps"),
+ py::arg("nthreads") = 1)
+
+ .def("set_taps",
+ &fft_filter_fff::set_taps,
+ py::arg("taps"),
+ D(kernel, fft_filter_fff, set_taps))
+ .def("set_nthreads",
+ &fft_filter_fff::set_nthreads,
+ py::arg("n"),
+ D(kernel, fft_filter_fff, set_nthreads))
+
+
+ .def("taps", &fft_filter_fff::taps, D(kernel, fft_filter_fff, taps))
+
+
+ .def("ntaps", &fft_filter_fff::ntaps, D(kernel, fft_filter_fff, ntaps))
+
+
+ .def("nthreads", &fft_filter_fff::nthreads, D(kernel, fft_filter_fff, nthreads))
+
+
+ .def("filter",
+ &fft_filter_fff::filter,
+ py::arg("nitems"),
+ py::arg("input"),
+ py::arg("output"),
+ D(kernel, fft_filter_fff, filter));
+
+
+ py::class_<fft_filter_ccc, std::shared_ptr<fft_filter_ccc>>(
+ m_kernel, "fft_filter_ccc", D(kernel, fft_filter_ccc))
+
+ .def(py::init<int,
+ std::vector<std::complex<float>,
+ std::allocator<std::complex<float>>> const&,
+ int>(),
+ py::arg("decimation"),
+ py::arg("taps"),
+ py::arg("nthreads") = 1,
+ D(kernel, fft_filter_ccc, fft_filter_ccc))
+
+ .def("set_taps",
+ &fft_filter_ccc::set_taps,
+ py::arg("taps"),
+ D(kernel, fft_filter_ccc, set_taps))
+ .def("set_nthreads",
+ &fft_filter_ccc::set_nthreads,
+ py::arg("n"),
+ D(kernel, fft_filter_ccc, set_nthreads))
+
+
+ .def("taps", &fft_filter_ccc::taps, D(kernel, fft_filter_ccc, taps))
+
+
+ .def("ntaps", &fft_filter_ccc::ntaps, D(kernel, fft_filter_ccc, ntaps))
+
+
+ .def("nthreads", &fft_filter_ccc::nthreads, D(kernel, fft_filter_ccc, nthreads))
+
+
+ .def("filter",
+ &fft_filter_ccc::filter,
+ py::arg("nitems"),
+ py::arg("input"),
+ py::arg("output"),
+ D(kernel, fft_filter_ccc, filter));
+
+
+ py::class_<fft_filter_ccf, std::shared_ptr<fft_filter_ccf>>(
+ m_kernel, "fft_filter_ccf", D(kernel, fft_filter_ccf))
+
+ .def(py::init<int, std::vector<float, std::allocator<float>> const&, int>(),
+ py::arg("decimation"),
+ py::arg("taps"),
+ py::arg("nthreads") = 1,
+ D(kernel, fft_filter_ccf, fft_filter_ccf))
+
+ .def("set_taps",
+ &fft_filter_ccf::set_taps,
+ py::arg("taps"),
+ D(kernel, fft_filter_ccf, set_taps))
+ .def("set_nthreads",
+ &fft_filter_ccf::set_nthreads,
+ py::arg("n"),
+ D(kernel, fft_filter_ccf, set_nthreads))
+
+
+ .def("taps", &fft_filter_ccf::taps, D(kernel, fft_filter_ccf, taps))
+
+
+ .def("ntaps", &fft_filter_ccf::ntaps, D(kernel, fft_filter_ccf, ntaps))
+
+
+ .def("filtersize",
+ &fft_filter_ccf::filtersize,
+ D(kernel, fft_filter_ccf, filtersize))
+
+
+ .def("nthreads", &fft_filter_ccf::nthreads, D(kernel, fft_filter_ccf, nthreads))
+
+
+ .def("filter",
+ &fft_filter_ccf::filter,
+ py::arg("nitems"),
+ py::arg("input"),
+ py::arg("output"),
+ D(kernel, fft_filter_ccf, filter));
+}
diff --git a/gr-filter/python/filter/bindings/filter_delay_fc_python.cc b/gr-filter/python/filter/bindings/filter_delay_fc_python.cc
new file mode 100644
index 0000000000..5c9393fdf0
--- /dev/null
+++ b/gr-filter/python/filter/bindings/filter_delay_fc_python.cc
@@ -0,0 +1,34 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/filter_delay_fc.h>
+// pydoc.h is automatically generated in the build directory
+#include <filter_delay_fc_pydoc.h>
+
+void bind_filter_delay_fc(py::module& m)
+{
+ using filter_delay_fc = gr::filter::filter_delay_fc;
+
+
+ py::class_<filter_delay_fc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<filter_delay_fc>>(m, "filter_delay_fc", D(filter_delay_fc))
+
+ .def(py::init(&filter_delay_fc::make), py::arg("taps"), D(filter_delay_fc, make));
+}
diff --git a/gr-filter/python/filter/bindings/filterbank_python.cc b/gr-filter/python/filter/bindings/filterbank_python.cc
new file mode 100644
index 0000000000..5965768993
--- /dev/null
+++ b/gr-filter/python/filter/bindings/filterbank_python.cc
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/filterbank.h>
+// pydoc.h is automatically generated in the build directory
+#include <filterbank_pydoc.h>
+
+void bind_filterbank(py::module& m)
+{
+ py::module m_kernel = m.def_submodule("kernel");
+ using filterbank = gr::filter::kernel::filterbank;
+
+
+ py::class_<filterbank, std::shared_ptr<filterbank>>(
+ m_kernel, "filterbank", D(kernel, filterbank))
+
+ .def(py::init<std::vector<
+ std::vector<float, std::allocator<float>>,
+ std::allocator<std::vector<float, std::allocator<float>>>> const&>(),
+ py::arg("taps"),
+ D(kernel, filterbank, filterbank, 0))
+ .def(py::init<gr::filter::kernel::filterbank const&>(),
+ py::arg("arg0"),
+ D(kernel, filterbank, filterbank, 1))
+
+ .def("set_taps",
+ &filterbank::set_taps,
+ py::arg("taps"),
+ D(kernel, filterbank, set_taps))
+
+
+ .def("print_taps", &filterbank::print_taps, D(kernel, filterbank, print_taps))
+
+
+ .def("taps", &filterbank::taps, D(kernel, filterbank, taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/filterbank_vcvcf_python.cc b/gr-filter/python/filter/bindings/filterbank_vcvcf_python.cc
new file mode 100644
index 0000000000..92f233c569
--- /dev/null
+++ b/gr-filter/python/filter/bindings/filterbank_vcvcf_python.cc
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/filterbank_vcvcf.h>
+// pydoc.h is automatically generated in the build directory
+#include <filterbank_vcvcf_pydoc.h>
+
+void bind_filterbank_vcvcf(py::module& m)
+{
+ using filterbank_vcvcf = gr::filter::filterbank_vcvcf;
+
+
+ py::class_<filterbank_vcvcf,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<filterbank_vcvcf>>(
+ m, "filterbank_vcvcf", D(filterbank_vcvcf))
+
+ .def(
+ py::init(&filterbank_vcvcf::make), py::arg("taps"), D(filterbank_vcvcf, make))
+
+
+ .def("set_taps",
+ &filterbank_vcvcf::set_taps,
+ py::arg("taps"),
+ D(filterbank_vcvcf, set_taps))
+
+
+ .def("print_taps", &filterbank_vcvcf::print_taps, D(filterbank_vcvcf, print_taps))
+
+
+ .def("taps", &filterbank_vcvcf::taps, D(filterbank_vcvcf, taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/fir_filter_blk_python.cc b/gr-filter/python/filter/bindings/fir_filter_blk_python.cc
new file mode 100644
index 0000000000..cf6f1a2ad1
--- /dev/null
+++ b/gr-filter/python/filter/bindings/fir_filter_blk_python.cc
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/fir_filter_blk.h>
+
+template <class IN_T, class OUT_T, class TAP_T>
+void bind_fir_filter_blk_template(py::module& m, const char* classname)
+{
+ using fir_filter_blk = gr::filter::fir_filter_blk<IN_T, OUT_T, TAP_T>;
+
+ py::class_<fir_filter_blk,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<fir_filter_blk>>(m, classname)
+ .def(py::init(&gr::filter::fir_filter_blk<IN_T, OUT_T, TAP_T>::make),
+ py::arg("decimation"),
+ py::arg("taps"))
+
+ .def("set_taps", &fir_filter_blk::set_taps, py::arg("taps"))
+ .def("taps", &fir_filter_blk::taps);
+}
+
+void bind_fir_filter_blk(py::module& m)
+{
+ bind_fir_filter_blk_template<gr_complex, gr_complex, gr_complex>(m, "fir_filter_ccc");
+ bind_fir_filter_blk_template<gr_complex, gr_complex, float>(m, "fir_filter_ccf");
+ bind_fir_filter_blk_template<float, gr_complex, gr_complex>(m, "fir_filter_fcc");
+ bind_fir_filter_blk_template<float, float, float>(m, "fir_filter_fff");
+ bind_fir_filter_blk_template<float, std::int16_t, float>(m, "fir_filter_fsf");
+ bind_fir_filter_blk_template<std::int16_t, gr_complex, gr_complex>(m,
+ "fir_filter_scc");
+}
diff --git a/gr-filter/python/filter/bindings/fir_filter_python.cc b/gr-filter/python/filter/bindings/fir_filter_python.cc
new file mode 100644
index 0000000000..d725831f98
--- /dev/null
+++ b/gr-filter/python/filter/bindings/fir_filter_python.cc
@@ -0,0 +1,20 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/fir_filter.h>
+
+void bind_fir_filter(py::module& m) {}
diff --git a/gr-filter/python/filter/bindings/fir_filter_with_buffer_python.cc b/gr-filter/python/filter/bindings/fir_filter_with_buffer_python.cc
new file mode 100644
index 0000000000..7ad05ca143
--- /dev/null
+++ b/gr-filter/python/filter/bindings/fir_filter_with_buffer_python.cc
@@ -0,0 +1,203 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/fir_filter_with_buffer.h>
+// pydoc.h is automatically generated in the build directory
+#include <fir_filter_with_buffer_pydoc.h>
+
+void bind_fir_filter_with_buffer(py::module& m)
+{
+ py::module m_kernel = m.def_submodule("kernel");
+
+ using fir_filter_with_buffer_fff = gr::filter::kernel::fir_filter_with_buffer_fff;
+ using fir_filter_with_buffer_ccc = gr::filter::kernel::fir_filter_with_buffer_ccc;
+ using fir_filter_with_buffer_ccf = gr::filter::kernel::fir_filter_with_buffer_ccf;
+
+
+ py::class_<fir_filter_with_buffer_fff, std::shared_ptr<fir_filter_with_buffer_fff>>(
+ m_kernel, "fir_filter_with_buffer_fff", D(kernel, fir_filter_with_buffer_fff))
+
+ .def(py::init<std::vector<float, std::allocator<float>> const&>(),
+ py::arg("taps"),
+ D(kernel, fir_filter_with_buffer_fff, fir_filter_with_buffer_fff, 0))
+ .def(py::init<gr::filter::kernel::fir_filter_with_buffer_fff const&>(),
+ py::arg("arg0"),
+ D(kernel, fir_filter_with_buffer_fff, fir_filter_with_buffer_fff, 1))
+
+
+ .def("filter",
+ (float (fir_filter_with_buffer_fff::*)(float)) &
+ fir_filter_with_buffer_fff::filter,
+ py::arg("input"),
+ D(kernel, fir_filter_with_buffer_fff, filter, 0))
+
+
+ .def("filter",
+ (float (fir_filter_with_buffer_fff::*)(float const*, long unsigned int)) &
+ fir_filter_with_buffer_fff::filter,
+ py::arg("input"),
+ py::arg("dec"),
+ D(kernel, fir_filter_with_buffer_fff, filter, 1))
+ .def("filterN",
+ &fir_filter_with_buffer_fff::filterN,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ D(kernel, fir_filter_with_buffer_fff, filterN))
+ .def("filterNdec",
+ &fir_filter_with_buffer_fff::filterNdec,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ py::arg("decimate"),
+ D(kernel, fir_filter_with_buffer_fff, filterNdec))
+
+
+ .def("ntaps",
+ &fir_filter_with_buffer_fff::ntaps,
+ D(kernel, fir_filter_with_buffer_fff, ntaps))
+
+
+ .def("set_taps",
+ &fir_filter_with_buffer_fff::set_taps,
+ py::arg("taps"),
+ D(kernel, fir_filter_with_buffer_fff, set_taps))
+
+
+ .def("taps",
+ &fir_filter_with_buffer_fff::taps,
+ D(kernel, fir_filter_with_buffer_fff, taps))
+
+ ;
+
+
+ py::class_<fir_filter_with_buffer_ccc, std::shared_ptr<fir_filter_with_buffer_ccc>>(
+ m_kernel, "fir_filter_with_buffer_ccc", D(kernel, fir_filter_with_buffer_ccc))
+
+ .def(py::init<std::vector<std::complex<float>,
+ std::allocator<std::complex<float>>> const&>(),
+ py::arg("taps"),
+ D(kernel, fir_filter_with_buffer_ccc, fir_filter_with_buffer_ccc, 0))
+ .def(py::init<gr::filter::kernel::fir_filter_with_buffer_ccc const&>(),
+ py::arg("arg0"),
+ D(kernel, fir_filter_with_buffer_ccc, fir_filter_with_buffer_ccc, 1))
+
+
+ .def("filter",
+ (gr_complex(fir_filter_with_buffer_ccc::*)(gr_complex)) &
+ fir_filter_with_buffer_ccc::filter,
+ py::arg("input"),
+ D(kernel, fir_filter_with_buffer_ccc, filter, 0))
+
+
+ .def("filter",
+ (gr_complex(fir_filter_with_buffer_ccc::*)(gr_complex const*,
+ long unsigned int)) &
+ fir_filter_with_buffer_ccc::filter,
+ py::arg("input"),
+ py::arg("dec"),
+ D(kernel, fir_filter_with_buffer_ccc, filter, 1))
+ .def("filterN",
+ &fir_filter_with_buffer_ccc::filterN,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ D(kernel, fir_filter_with_buffer_ccc, filterN))
+ .def("filterNdec",
+ &fir_filter_with_buffer_ccc::filterNdec,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ py::arg("decimate"),
+ D(kernel, fir_filter_with_buffer_ccc, filterNdec))
+
+
+ .def("ntaps",
+ &fir_filter_with_buffer_ccc::ntaps,
+ D(kernel, fir_filter_with_buffer_ccc, ntaps))
+
+
+ .def("set_taps",
+ &fir_filter_with_buffer_ccc::set_taps,
+ py::arg("taps"),
+ D(kernel, fir_filter_with_buffer_ccc, set_taps))
+
+
+ .def("taps",
+ &fir_filter_with_buffer_ccc::taps,
+ D(kernel, fir_filter_with_buffer_ccc, taps))
+
+ ;
+
+
+ py::class_<fir_filter_with_buffer_ccf, std::shared_ptr<fir_filter_with_buffer_ccf>>(
+ m_kernel, "fir_filter_with_buffer_ccf", D(kernel, fir_filter_with_buffer_ccf))
+
+ .def(py::init<std::vector<float, std::allocator<float>> const&>(),
+ py::arg("taps"),
+ D(kernel, fir_filter_with_buffer_ccf, fir_filter_with_buffer_ccf, 0))
+ .def(py::init<gr::filter::kernel::fir_filter_with_buffer_ccf const&>(),
+ py::arg("arg0"),
+ D(kernel, fir_filter_with_buffer_ccf, fir_filter_with_buffer_ccf, 1))
+
+
+ .def("filter",
+ (gr_complex(fir_filter_with_buffer_ccf::*)(gr_complex)) &
+ fir_filter_with_buffer_ccf::filter,
+ py::arg("input"),
+ D(kernel, fir_filter_with_buffer_ccf, filter, 0))
+
+
+ .def("filter",
+ (gr_complex(fir_filter_with_buffer_ccf::*)(gr_complex const*,
+ long unsigned int)) &
+ fir_filter_with_buffer_ccf::filter,
+ py::arg("input"),
+ py::arg("dec"),
+ D(kernel, fir_filter_with_buffer_ccf, filter, 1))
+ .def("filterN",
+ &fir_filter_with_buffer_ccf::filterN,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ D(kernel, fir_filter_with_buffer_ccf, filterN))
+ .def("filterNdec",
+ &fir_filter_with_buffer_ccf::filterNdec,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ py::arg("decimate"),
+ D(kernel, fir_filter_with_buffer_ccf, filterNdec))
+
+
+ .def("ntaps",
+ &fir_filter_with_buffer_ccf::ntaps,
+ D(kernel, fir_filter_with_buffer_ccf, ntaps))
+
+
+ .def("set_taps",
+ &fir_filter_with_buffer_ccf::set_taps,
+ py::arg("taps"),
+ D(kernel, fir_filter_with_buffer_ccf, set_taps))
+
+
+ .def("taps",
+ &fir_filter_with_buffer_ccf::taps,
+ D(kernel, fir_filter_with_buffer_ccf, taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/firdes_python.cc b/gr-filter/python/filter/bindings/firdes_python.cc
new file mode 100644
index 0000000000..c5c8a2cb29
--- /dev/null
+++ b/gr-filter/python/filter/bindings/firdes_python.cc
@@ -0,0 +1,200 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/firdes.h>
+// pydoc.h is automatically generated in the build directory
+#include <firdes_pydoc.h>
+
+void bind_firdes(py::module& m)
+{
+ using firdes = gr::filter::firdes;
+
+ py::class_<firdes, std::shared_ptr<firdes>> firdes_class(m, "firdes", D(firdes));
+
+ py::enum_<gr::filter::firdes::win_type>(firdes_class, "win_type")
+ .value("WIN_NONE", gr::filter::firdes::WIN_NONE) // -1
+ .value("WIN_HAMMING", gr::filter::firdes::WIN_HAMMING) // 0
+ .value("WIN_HANN", gr::filter::firdes::WIN_HANN) // 1
+ .value("WIN_BLACKMAN", gr::filter::firdes::WIN_BLACKMAN) // 2
+ .value("WIN_RECTANGULAR", gr::filter::firdes::WIN_RECTANGULAR) // 3
+ .value("WIN_KAISER", gr::filter::firdes::WIN_KAISER) // 4
+ .value("WIN_BLACKMAN_hARRIS", gr::filter::firdes::WIN_BLACKMAN_hARRIS) // 5
+ .value("WIN_BLACKMAN_HARRIS", gr::filter::firdes::WIN_BLACKMAN_HARRIS) // 5
+ .value("WIN_BARTLETT", gr::filter::firdes::WIN_BARTLETT) // 6
+ .value("WIN_FLATTOP", gr::filter::firdes::WIN_FLATTOP) // 7
+ .export_values();
+
+
+ firdes_class
+ .def_static("window",
+ &firdes::window,
+ py::arg("type"),
+ py::arg("ntaps"),
+ py::arg("beta"),
+ D(firdes, window))
+
+
+ .def_static("low_pass",
+ &firdes::low_pass,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, low_pass))
+
+
+ .def_static("low_pass_2",
+ &firdes::low_pass_2,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("attenuation_dB"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, low_pass_2))
+
+
+ .def_static("high_pass",
+ &firdes::high_pass,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, high_pass))
+
+
+ .def_static("high_pass_2",
+ &firdes::high_pass_2,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("attenuation_dB"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, high_pass_2))
+
+
+ .def_static("band_pass",
+ &firdes::band_pass,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("low_cutoff_freq"),
+ py::arg("high_cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, band_pass))
+
+
+ .def_static("band_pass_2",
+ &firdes::band_pass_2,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("low_cutoff_freq"),
+ py::arg("high_cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("attenuation_dB"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, band_pass_2))
+
+
+ .def_static("complex_band_pass",
+ &firdes::complex_band_pass,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("low_cutoff_freq"),
+ py::arg("high_cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, complex_band_pass))
+
+
+ .def_static("complex_band_pass_2",
+ &firdes::complex_band_pass_2,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("low_cutoff_freq"),
+ py::arg("high_cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("attenuation_dB"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, complex_band_pass_2))
+
+
+ .def_static("band_reject",
+ &firdes::band_reject,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("low_cutoff_freq"),
+ py::arg("high_cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, band_reject))
+
+
+ .def_static("band_reject_2",
+ &firdes::band_reject_2,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("low_cutoff_freq"),
+ py::arg("high_cutoff_freq"),
+ py::arg("transition_width"),
+ py::arg("attenuation_dB"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, band_reject_2))
+
+
+ .def_static("hilbert",
+ &firdes::hilbert,
+ py::arg("ntaps") = 19,
+ py::arg("windowtype") =
+ ::gr::filter::firdes::win_type::WIN_RECTANGULAR,
+ py::arg("beta") = 6.7599999999999998,
+ D(firdes, hilbert))
+
+
+ .def_static("root_raised_cosine",
+ &firdes::root_raised_cosine,
+ py::arg("gain"),
+ py::arg("sampling_freq"),
+ py::arg("symbol_rate"),
+ py::arg("alpha"),
+ py::arg("ntaps"),
+ D(firdes, root_raised_cosine))
+
+
+ .def_static("gaussian",
+ &firdes::gaussian,
+ py::arg("gain"),
+ py::arg("spb"),
+ py::arg("bt"),
+ py::arg("ntaps"),
+ D(firdes, gaussian))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/freq_xlating_fir_filter_python.cc b/gr-filter/python/filter/bindings/freq_xlating_fir_filter_python.cc
new file mode 100644
index 0000000000..085b4c1485
--- /dev/null
+++ b/gr-filter/python/filter/bindings/freq_xlating_fir_filter_python.cc
@@ -0,0 +1,62 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/freq_xlating_fir_filter.h>
+
+template <class IN_T, class OUT_T, class TAP_T>
+void bind_freq_xlating_fir_filter_template(py::module& m, const char* classname)
+{
+ using freq_xlating_fir_filter =
+ gr::filter::freq_xlating_fir_filter<IN_T, OUT_T, TAP_T>;
+
+ py::class_<freq_xlating_fir_filter,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<freq_xlating_fir_filter>>(m, classname)
+ .def(py::init(&gr::filter::freq_xlating_fir_filter<IN_T, OUT_T, TAP_T>::make),
+ py::arg("decimation"),
+ py::arg("taps"),
+ py::arg("center_freq"),
+ py::arg("sampling_freq"))
+
+ .def("set_center_freq",
+ &freq_xlating_fir_filter::set_center_freq,
+ py::arg("center_freq"))
+ .def("center_freq", &freq_xlating_fir_filter::center_freq)
+
+ .def("set_taps", &freq_xlating_fir_filter::set_taps, py::arg("taps"))
+ .def("taps", &freq_xlating_fir_filter::taps);
+}
+
+
+void bind_freq_xlating_fir_filter(py::module& m)
+{
+ bind_freq_xlating_fir_filter_template<gr_complex, gr_complex, gr_complex>(
+ m, "freq_xlating_fir_filter_ccc");
+ bind_freq_xlating_fir_filter_template<gr_complex, gr_complex, float>(
+ m, "freq_xlating_fir_filter_ccf");
+ bind_freq_xlating_fir_filter_template<float, gr_complex, gr_complex>(
+ m, "freq_xlating_fir_filter_fcc");
+ bind_freq_xlating_fir_filter_template<float, gr_complex, float>(
+ m, "freq_xlating_fir_filter_fcf");
+ bind_freq_xlating_fir_filter_template<std::int16_t, gr_complex, float>(
+ m, "freq_xlating_fir_filter_scf");
+ bind_freq_xlating_fir_filter_template<std::int16_t, gr_complex, gr_complex>(
+ m, "freq_xlating_fir_filter_scc");
+}
diff --git a/gr-filter/python/filter/bindings/hilbert_fc_python.cc b/gr-filter/python/filter/bindings/hilbert_fc_python.cc
new file mode 100644
index 0000000000..dd58443a44
--- /dev/null
+++ b/gr-filter/python/filter/bindings/hilbert_fc_python.cc
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/hilbert_fc.h>
+// pydoc.h is automatically generated in the build directory
+#include <hilbert_fc_pydoc.h>
+
+void bind_hilbert_fc(py::module& m)
+{
+ using hilbert_fc = gr::filter::hilbert_fc;
+
+
+ py::class_<hilbert_fc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<hilbert_fc>>(m, "hilbert_fc", D(hilbert_fc))
+
+ .def(py::init(&hilbert_fc::make),
+ py::arg("ntaps"),
+ py::arg("window") = ::gr::filter::firdes::win_type::WIN_HAMMING,
+ py::arg("beta") = 6.7599999999999998,
+ D(hilbert_fc, make));
+}
diff --git a/gr-filter/python/filter/bindings/iir_filter_ccc_python.cc b/gr-filter/python/filter/bindings/iir_filter_ccc_python.cc
new file mode 100644
index 0000000000..28a51baae0
--- /dev/null
+++ b/gr-filter/python/filter/bindings/iir_filter_ccc_python.cc
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/iir_filter_ccc.h>
+// pydoc.h is automatically generated in the build directory
+#include <iir_filter_ccc_pydoc.h>
+
+void bind_iir_filter_ccc(py::module& m)
+{
+ using iir_filter_ccc = gr::filter::iir_filter_ccc;
+
+
+ py::class_<iir_filter_ccc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<iir_filter_ccc>>(m, "iir_filter_ccc", D(iir_filter_ccc))
+
+ .def(py::init(&iir_filter_ccc::make),
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ py::arg("oldstyle") = true,
+ D(iir_filter_ccc, make))
+
+
+ .def("set_taps",
+ &iir_filter_ccc::set_taps,
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ D(iir_filter_ccc, set_taps));
+}
diff --git a/gr-filter/python/filter/bindings/iir_filter_ccd_python.cc b/gr-filter/python/filter/bindings/iir_filter_ccd_python.cc
new file mode 100644
index 0000000000..271cbab7d5
--- /dev/null
+++ b/gr-filter/python/filter/bindings/iir_filter_ccd_python.cc
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/iir_filter_ccd.h>
+// pydoc.h is automatically generated in the build directory
+#include <iir_filter_ccd_pydoc.h>
+
+void bind_iir_filter_ccd(py::module& m)
+{
+
+ using iir_filter_ccd = ::gr::filter::iir_filter_ccd;
+
+
+ py::class_<iir_filter_ccd,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<iir_filter_ccd>>(m, "iir_filter_ccd", D(iir_filter_ccd))
+
+ .def(py::init(&iir_filter_ccd::make),
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ py::arg("oldstyle") = true,
+ D(iir_filter_ccd, make))
+
+
+ .def("set_taps",
+ &iir_filter_ccd::set_taps,
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ D(iir_filter_ccd, set_taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/iir_filter_ccf_python.cc b/gr-filter/python/filter/bindings/iir_filter_ccf_python.cc
new file mode 100644
index 0000000000..c661c562e7
--- /dev/null
+++ b/gr-filter/python/filter/bindings/iir_filter_ccf_python.cc
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/iir_filter_ccf.h>
+// pydoc.h is automatically generated in the build directory
+#include <iir_filter_ccf_pydoc.h>
+
+void bind_iir_filter_ccf(py::module& m)
+{
+
+ using iir_filter_ccf = ::gr::filter::iir_filter_ccf;
+
+
+ py::class_<iir_filter_ccf,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<iir_filter_ccf>>(m, "iir_filter_ccf", D(iir_filter_ccf))
+
+ .def(py::init(&iir_filter_ccf::make),
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ py::arg("oldstyle") = true,
+ D(iir_filter_ccf, make))
+
+
+ .def("set_taps",
+ &iir_filter_ccf::set_taps,
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ D(iir_filter_ccf, set_taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/iir_filter_ccz_python.cc b/gr-filter/python/filter/bindings/iir_filter_ccz_python.cc
new file mode 100644
index 0000000000..e406d224e3
--- /dev/null
+++ b/gr-filter/python/filter/bindings/iir_filter_ccz_python.cc
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/iir_filter_ccz.h>
+// pydoc.h is automatically generated in the build directory
+#include <iir_filter_ccz_pydoc.h>
+
+void bind_iir_filter_ccz(py::module& m)
+{
+
+ using iir_filter_ccz = ::gr::filter::iir_filter_ccz;
+
+
+ py::class_<iir_filter_ccz,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<iir_filter_ccz>>(m, "iir_filter_ccz", D(iir_filter_ccz))
+
+ .def(py::init(&iir_filter_ccz::make),
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ py::arg("oldstyle") = true,
+ D(iir_filter_ccz, make))
+
+
+ .def("set_taps",
+ &iir_filter_ccz::set_taps,
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ D(iir_filter_ccz, set_taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/iir_filter_ffd_python.cc b/gr-filter/python/filter/bindings/iir_filter_ffd_python.cc
new file mode 100644
index 0000000000..17db87b5ff
--- /dev/null
+++ b/gr-filter/python/filter/bindings/iir_filter_ffd_python.cc
@@ -0,0 +1,48 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/iir_filter_ffd.h>
+// pydoc.h is automatically generated in the build directory
+#include <iir_filter_ffd_pydoc.h>
+
+void bind_iir_filter_ffd(py::module& m)
+{
+
+ using iir_filter_ffd = ::gr::filter::iir_filter_ffd;
+
+
+ py::class_<iir_filter_ffd,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<iir_filter_ffd>>(m, "iir_filter_ffd", D(iir_filter_ffd))
+
+ .def(py::init(&iir_filter_ffd::make),
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ py::arg("oldstyle") = true,
+ D(iir_filter_ffd, make))
+
+
+ .def("set_taps",
+ &iir_filter_ffd::set_taps,
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ D(iir_filter_ffd, set_taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/iir_filter_python.cc b/gr-filter/python/filter/bindings/iir_filter_python.cc
new file mode 100644
index 0000000000..33de6ebf04
--- /dev/null
+++ b/gr-filter/python/filter/bindings/iir_filter_python.cc
@@ -0,0 +1,320 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/iir_filter.h>
+// pydoc.h is automatically generated in the build directory
+#include <iir_filter_pydoc.h>
+
+void bind_iir_filter(py::module& m)
+{
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+
+ using iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>> = ::gr::filter::kernel::
+ iir_filter<std::complex<float>, std::complex<float>, float, std::complex<float>>;
+ using iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>> =
+ ::gr::filter::kernel::iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>;
+ using iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>> =
+ ::gr::filter::kernel::iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>;
+
+
+ py::class_<
+ iir_filter<std::complex<float>, std::complex<float>, float, std::complex<float>>,
+ std::shared_ptr<iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>>>(
+ m_kernel,
+ "iir_filter<std::complex<float>, std::complex<float>, float, std::complex<float> "
+ ">",
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>))
+
+
+ .def("filter",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>::filter,
+ py::arg("input"),
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>,
+ filter))
+
+
+ .def("filter_n",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>::filter_n,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>,
+ filter_n))
+
+
+ .def("ntaps_ff",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>::ntaps_ff,
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>,
+ ntaps_ff))
+
+
+ .def("ntaps_fb",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>::ntaps_fb,
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>,
+ ntaps_fb))
+
+
+ .def("set_taps",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>::set_taps,
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ float,
+ std::complex<float>>,
+ set_taps))
+
+ ;
+
+
+ py::class_<iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>,
+ std::shared_ptr<iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>>>(
+ m_kernel,
+ "iir_filter<std::complex<float>, std::complex<float>, double, "
+ "std::complex<double> >",
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>))
+
+
+ .def("filter",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>::filter,
+ py::arg("input"),
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>,
+ filter))
+
+
+ .def("filter_n",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>::filter_n,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>,
+ filter_n))
+
+
+ .def("ntaps_ff",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>::ntaps_ff,
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>,
+ ntaps_ff))
+
+
+ .def("ntaps_fb",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>::ntaps_fb,
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>,
+ ntaps_fb))
+
+
+ .def("set_taps",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>::set_taps,
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ double,
+ std::complex<double>>,
+ set_taps))
+
+ ;
+
+
+ py::class_<iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>,
+ std::shared_ptr<iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>>>(
+ m_kernel,
+ "iir_filter<std::complex<float>, std::complex<float>, std::complex<double>, "
+ "std::complex<double> >",
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>))
+
+
+ .def("filter",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>::filter,
+ py::arg("input"),
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>,
+ filter))
+
+
+ .def("filter_n",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>::filter_n,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n"),
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>,
+ filter_n))
+
+
+ .def("ntaps_ff",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>::ntaps_ff,
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>,
+ ntaps_ff))
+
+
+ .def("ntaps_fb",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>::ntaps_fb,
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>,
+ ntaps_fb))
+
+
+ .def("set_taps",
+ &iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>::set_taps,
+ py::arg("fftaps"),
+ py::arg("fbtaps"),
+ D(kernel,
+ iir_filter<std::complex<float>,
+ std::complex<float>,
+ std::complex<double>,
+ std::complex<double>>,
+ set_taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/interp_fir_filter_python.cc b/gr-filter/python/filter/bindings/interp_fir_filter_python.cc
new file mode 100644
index 0000000000..fe1581e62a
--- /dev/null
+++ b/gr-filter/python/filter/bindings/interp_fir_filter_python.cc
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/interp_fir_filter.h>
+
+template <class IN_T, class OUT_T, class TAP_T>
+void bind_interp_fir_filter_template(py::module& m, const char* classname)
+{
+ using interp_fir_filter = gr::filter::interp_fir_filter<IN_T, OUT_T, TAP_T>;
+
+ py::class_<interp_fir_filter,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<interp_fir_filter>>(m, classname)
+ .def(py::init(&gr::filter::interp_fir_filter<IN_T, OUT_T, TAP_T>::make),
+ py::arg("interpolation"),
+ py::arg("taps"))
+
+ .def("set_taps", &interp_fir_filter::set_taps, py::arg("taps"))
+ .def("taps", &interp_fir_filter::taps);
+}
+
+void bind_interp_fir_filter(py::module& m)
+{
+ bind_interp_fir_filter_template<gr_complex, gr_complex, gr_complex>(
+ m, "interp_fir_filter_ccc");
+ bind_interp_fir_filter_template<gr_complex, gr_complex, float>(
+ m, "interp_fir_filter_ccf");
+ bind_interp_fir_filter_template<float, gr_complex, gr_complex>(
+ m, "interp_fir_filter_fcc");
+ bind_interp_fir_filter_template<float, float, float>(m, "interp_fir_filter_fff");
+ bind_interp_fir_filter_template<float, std::int16_t, float>(m,
+ "interp_fir_filter_fsf");
+ bind_interp_fir_filter_template<std::int16_t, gr_complex, gr_complex>(
+ m, "interp_fir_filter_scc");
+}
diff --git a/gr-filter/python/filter/bindings/ival_decimator_python.cc b/gr-filter/python/filter/bindings/ival_decimator_python.cc
new file mode 100644
index 0000000000..d28f9bb546
--- /dev/null
+++ b/gr-filter/python/filter/bindings/ival_decimator_python.cc
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/ival_decimator.h>
+// pydoc.h is automatically generated in the build directory
+#include <ival_decimator_pydoc.h>
+
+void bind_ival_decimator(py::module& m)
+{
+
+ using ival_decimator = ::gr::filter::ival_decimator;
+
+
+ py::class_<ival_decimator,
+ gr::sync_decimator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<ival_decimator>>(m, "ival_decimator", D(ival_decimator))
+
+ .def(py::init(&ival_decimator::make),
+ py::arg("decimation"),
+ py::arg("data_size"),
+ D(ival_decimator, make))
+
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/mmse_fir_interpolator_cc_python.cc b/gr-filter/python/filter/bindings/mmse_fir_interpolator_cc_python.cc
new file mode 100644
index 0000000000..ca7bf65e4b
--- /dev/null
+++ b/gr-filter/python/filter/bindings/mmse_fir_interpolator_cc_python.cc
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/mmse_fir_interpolator_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <mmse_fir_interpolator_cc_pydoc.h>
+
+void bind_mmse_fir_interpolator_cc(py::module& m)
+{
+
+ using mmse_fir_interpolator_cc = ::gr::filter::mmse_fir_interpolator_cc;
+
+
+ py::class_<mmse_fir_interpolator_cc, std::shared_ptr<mmse_fir_interpolator_cc>>(
+ m, "mmse_fir_interpolator_cc", D(mmse_fir_interpolator_cc))
+
+ .def(py::init<>(), D(mmse_fir_interpolator_cc, mmse_fir_interpolator_cc, 0))
+ .def(py::init<gr::filter::mmse_fir_interpolator_cc const&>(),
+ py::arg("arg0"),
+ D(mmse_fir_interpolator_cc, mmse_fir_interpolator_cc, 1))
+
+
+ .def(
+ "ntaps", &mmse_fir_interpolator_cc::ntaps, D(mmse_fir_interpolator_cc, ntaps))
+
+
+ .def("nsteps",
+ &mmse_fir_interpolator_cc::nsteps,
+ D(mmse_fir_interpolator_cc, nsteps))
+
+
+ .def("interpolate",
+ &mmse_fir_interpolator_cc::interpolate,
+ py::arg("input"),
+ py::arg("mu"),
+ D(mmse_fir_interpolator_cc, interpolate))
+
+ ;
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+}
diff --git a/gr-filter/python/filter/bindings/mmse_fir_interpolator_ff_python.cc b/gr-filter/python/filter/bindings/mmse_fir_interpolator_ff_python.cc
new file mode 100644
index 0000000000..c0622ffb4e
--- /dev/null
+++ b/gr-filter/python/filter/bindings/mmse_fir_interpolator_ff_python.cc
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/mmse_fir_interpolator_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <mmse_fir_interpolator_ff_pydoc.h>
+
+void bind_mmse_fir_interpolator_ff(py::module& m)
+{
+
+ using mmse_fir_interpolator_ff = ::gr::filter::mmse_fir_interpolator_ff;
+
+
+ py::class_<mmse_fir_interpolator_ff, std::shared_ptr<mmse_fir_interpolator_ff>>(
+ m, "mmse_fir_interpolator_ff", D(mmse_fir_interpolator_ff))
+
+ .def(py::init<>(), D(mmse_fir_interpolator_ff, mmse_fir_interpolator_ff, 0))
+ .def(py::init<gr::filter::mmse_fir_interpolator_ff const&>(),
+ py::arg("arg0"),
+ D(mmse_fir_interpolator_ff, mmse_fir_interpolator_ff, 1))
+
+
+ .def(
+ "ntaps", &mmse_fir_interpolator_ff::ntaps, D(mmse_fir_interpolator_ff, ntaps))
+
+
+ .def("nsteps",
+ &mmse_fir_interpolator_ff::nsteps,
+ D(mmse_fir_interpolator_ff, nsteps))
+
+
+ .def("interpolate",
+ &mmse_fir_interpolator_ff::interpolate,
+ py::arg("input"),
+ py::arg("mu"),
+ D(mmse_fir_interpolator_ff, interpolate))
+
+ ;
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+}
diff --git a/gr-filter/python/filter/bindings/mmse_interp_differentiator_cc_python.cc b/gr-filter/python/filter/bindings/mmse_interp_differentiator_cc_python.cc
new file mode 100644
index 0000000000..73314f0f1f
--- /dev/null
+++ b/gr-filter/python/filter/bindings/mmse_interp_differentiator_cc_python.cc
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/mmse_interp_differentiator_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <mmse_interp_differentiator_cc_pydoc.h>
+
+void bind_mmse_interp_differentiator_cc(py::module& m)
+{
+
+ using mmse_interp_differentiator_cc = ::gr::filter::mmse_interp_differentiator_cc;
+
+
+ py::class_<mmse_interp_differentiator_cc,
+ std::shared_ptr<mmse_interp_differentiator_cc>>(
+ m, "mmse_interp_differentiator_cc", D(mmse_interp_differentiator_cc))
+
+ .def(py::init<>(),
+ D(mmse_interp_differentiator_cc, mmse_interp_differentiator_cc, 0))
+ .def(py::init<gr::filter::mmse_interp_differentiator_cc const&>(),
+ py::arg("arg0"),
+ D(mmse_interp_differentiator_cc, mmse_interp_differentiator_cc, 1))
+
+
+ .def("ntaps",
+ &mmse_interp_differentiator_cc::ntaps,
+ D(mmse_interp_differentiator_cc, ntaps))
+
+
+ .def("nsteps",
+ &mmse_interp_differentiator_cc::nsteps,
+ D(mmse_interp_differentiator_cc, nsteps))
+
+
+ .def("differentiate",
+ &mmse_interp_differentiator_cc::differentiate,
+ py::arg("input"),
+ py::arg("mu"),
+ D(mmse_interp_differentiator_cc, differentiate))
+
+ ;
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+}
diff --git a/gr-filter/python/filter/bindings/mmse_interp_differentiator_ff_python.cc b/gr-filter/python/filter/bindings/mmse_interp_differentiator_ff_python.cc
new file mode 100644
index 0000000000..2da6b0875e
--- /dev/null
+++ b/gr-filter/python/filter/bindings/mmse_interp_differentiator_ff_python.cc
@@ -0,0 +1,59 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/mmse_interp_differentiator_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <mmse_interp_differentiator_ff_pydoc.h>
+
+void bind_mmse_interp_differentiator_ff(py::module& m)
+{
+
+ using mmse_interp_differentiator_ff = ::gr::filter::mmse_interp_differentiator_ff;
+
+
+ py::class_<mmse_interp_differentiator_ff,
+ std::shared_ptr<mmse_interp_differentiator_ff>>(
+ m, "mmse_interp_differentiator_ff", D(mmse_interp_differentiator_ff))
+
+ .def(py::init<>(),
+ D(mmse_interp_differentiator_ff, mmse_interp_differentiator_ff, 0))
+ .def(py::init<gr::filter::mmse_interp_differentiator_ff const&>(),
+ py::arg("arg0"),
+ D(mmse_interp_differentiator_ff, mmse_interp_differentiator_ff, 1))
+
+
+ .def("ntaps",
+ &mmse_interp_differentiator_ff::ntaps,
+ D(mmse_interp_differentiator_ff, ntaps))
+
+
+ .def("nsteps",
+ &mmse_interp_differentiator_ff::nsteps,
+ D(mmse_interp_differentiator_ff, nsteps))
+
+
+ .def("differentiate",
+ &mmse_interp_differentiator_ff::differentiate,
+ py::arg("input"),
+ py::arg("mu"),
+ D(mmse_interp_differentiator_ff, differentiate))
+
+ ;
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+}
diff --git a/gr-filter/python/filter/bindings/mmse_interpolator_cc_python.cc b/gr-filter/python/filter/bindings/mmse_interpolator_cc_python.cc
new file mode 100644
index 0000000000..9f2ecc4c05
--- /dev/null
+++ b/gr-filter/python/filter/bindings/mmse_interpolator_cc_python.cc
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/mmse_interpolator_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <mmse_interpolator_cc_pydoc.h>
+
+void bind_mmse_interpolator_cc(py::module& m)
+{
+
+ using mmse_interpolator_cc = ::gr::filter::mmse_interpolator_cc;
+
+
+ py::class_<mmse_interpolator_cc,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<mmse_interpolator_cc>>(
+ m, "mmse_interpolator_cc", D(mmse_interpolator_cc))
+
+ .def(py::init(&mmse_interpolator_cc::make),
+ py::arg("phase_shift"),
+ py::arg("interp_ratio"),
+ D(mmse_interpolator_cc, make))
+
+
+ .def("mu", &mmse_interpolator_cc::mu, D(mmse_interpolator_cc, mu))
+
+
+ .def("interp_ratio",
+ &mmse_interpolator_cc::interp_ratio,
+ D(mmse_interpolator_cc, interp_ratio))
+
+
+ .def("set_mu",
+ &mmse_interpolator_cc::set_mu,
+ py::arg("mu"),
+ D(mmse_interpolator_cc, set_mu))
+
+
+ .def("set_interp_ratio",
+ &mmse_interpolator_cc::set_interp_ratio,
+ py::arg("interp_ratio"),
+ D(mmse_interpolator_cc, set_interp_ratio))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/mmse_interpolator_ff_python.cc b/gr-filter/python/filter/bindings/mmse_interpolator_ff_python.cc
new file mode 100644
index 0000000000..621ab3c4f1
--- /dev/null
+++ b/gr-filter/python/filter/bindings/mmse_interpolator_ff_python.cc
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/mmse_interpolator_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <mmse_interpolator_ff_pydoc.h>
+
+void bind_mmse_interpolator_ff(py::module& m)
+{
+
+ using mmse_interpolator_ff = ::gr::filter::mmse_interpolator_ff;
+
+
+ py::class_<mmse_interpolator_ff,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<mmse_interpolator_ff>>(
+ m, "mmse_interpolator_ff", D(mmse_interpolator_ff))
+
+ .def(py::init(&mmse_interpolator_ff::make),
+ py::arg("phase_shift"),
+ py::arg("interp_ratio"),
+ D(mmse_interpolator_ff, make))
+
+
+ .def("mu", &mmse_interpolator_ff::mu, D(mmse_interpolator_ff, mu))
+
+
+ .def("interp_ratio",
+ &mmse_interpolator_ff::interp_ratio,
+ D(mmse_interpolator_ff, interp_ratio))
+
+
+ .def("set_mu",
+ &mmse_interpolator_ff::set_mu,
+ py::arg("mu"),
+ D(mmse_interpolator_ff, set_mu))
+
+
+ .def("set_interp_ratio",
+ &mmse_interpolator_ff::set_interp_ratio,
+ py::arg("interp_ratio"),
+ D(mmse_interpolator_ff, set_interp_ratio))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/mmse_resampler_cc_python.cc b/gr-filter/python/filter/bindings/mmse_resampler_cc_python.cc
new file mode 100644
index 0000000000..3127b7a0b3
--- /dev/null
+++ b/gr-filter/python/filter/bindings/mmse_resampler_cc_python.cc
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/mmse_resampler_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <mmse_resampler_cc_pydoc.h>
+
+void bind_mmse_resampler_cc(py::module& m)
+{
+
+ using mmse_resampler_cc = ::gr::filter::mmse_resampler_cc;
+
+
+ py::class_<mmse_resampler_cc,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<mmse_resampler_cc>>(
+ m, "mmse_resampler_cc", D(mmse_resampler_cc))
+
+ .def(py::init(&mmse_resampler_cc::make),
+ py::arg("phase_shift"),
+ py::arg("resamp_ratio"),
+ D(mmse_resampler_cc, make))
+
+
+ .def("mu", &mmse_resampler_cc::mu, D(mmse_resampler_cc, mu))
+
+
+ .def("resamp_ratio",
+ &mmse_resampler_cc::resamp_ratio,
+ D(mmse_resampler_cc, resamp_ratio))
+
+
+ .def("set_mu",
+ &mmse_resampler_cc::set_mu,
+ py::arg("mu"),
+ D(mmse_resampler_cc, set_mu))
+
+
+ .def("set_resamp_ratio",
+ &mmse_resampler_cc::set_resamp_ratio,
+ py::arg("resamp_ratio"),
+ D(mmse_resampler_cc, set_resamp_ratio))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/mmse_resampler_ff_python.cc b/gr-filter/python/filter/bindings/mmse_resampler_ff_python.cc
new file mode 100644
index 0000000000..bb5fea042b
--- /dev/null
+++ b/gr-filter/python/filter/bindings/mmse_resampler_ff_python.cc
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/mmse_resampler_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <mmse_resampler_ff_pydoc.h>
+
+void bind_mmse_resampler_ff(py::module& m)
+{
+
+ using mmse_resampler_ff = ::gr::filter::mmse_resampler_ff;
+
+
+ py::class_<mmse_resampler_ff,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<mmse_resampler_ff>>(
+ m, "mmse_resampler_ff", D(mmse_resampler_ff))
+
+ .def(py::init(&mmse_resampler_ff::make),
+ py::arg("phase_shift"),
+ py::arg("resamp_ratio"),
+ D(mmse_resampler_ff, make))
+
+
+ .def("mu", &mmse_resampler_ff::mu, D(mmse_resampler_ff, mu))
+
+
+ .def("resamp_ratio",
+ &mmse_resampler_ff::resamp_ratio,
+ D(mmse_resampler_ff, resamp_ratio))
+
+
+ .def("set_mu",
+ &mmse_resampler_ff::set_mu,
+ py::arg("mu"),
+ D(mmse_resampler_ff, set_mu))
+
+
+ .def("set_resamp_ratio",
+ &mmse_resampler_ff::set_resamp_ratio,
+ py::arg("resamp_ratio"),
+ D(mmse_resampler_ff, set_resamp_ratio))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/pfb_arb_resampler_ccc_python.cc b/gr-filter/python/filter/bindings/pfb_arb_resampler_ccc_python.cc
new file mode 100644
index 0000000000..f673067306
--- /dev/null
+++ b/gr-filter/python/filter/bindings/pfb_arb_resampler_ccc_python.cc
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/pfb_arb_resampler_ccc.h>
+// pydoc.h is automatically generated in the build directory
+#include <pfb_arb_resampler_ccc_pydoc.h>
+
+void bind_pfb_arb_resampler_ccc(py::module& m)
+{
+
+ using pfb_arb_resampler_ccc = ::gr::filter::pfb_arb_resampler_ccc;
+
+
+ py::class_<pfb_arb_resampler_ccc,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pfb_arb_resampler_ccc>>(
+ m, "pfb_arb_resampler_ccc", D(pfb_arb_resampler_ccc))
+
+ .def(py::init(&pfb_arb_resampler_ccc::make),
+ py::arg("rate"),
+ py::arg("taps"),
+ py::arg("filter_size") = 32,
+ D(pfb_arb_resampler_ccc, make))
+
+
+ .def("set_taps",
+ &pfb_arb_resampler_ccc::set_taps,
+ py::arg("taps"),
+ D(pfb_arb_resampler_ccc, set_taps))
+
+
+ .def("taps", &pfb_arb_resampler_ccc::taps, D(pfb_arb_resampler_ccc, taps))
+
+
+ .def("print_taps",
+ &pfb_arb_resampler_ccc::print_taps,
+ D(pfb_arb_resampler_ccc, print_taps))
+
+
+ .def("set_rate",
+ &pfb_arb_resampler_ccc::set_rate,
+ py::arg("rate"),
+ D(pfb_arb_resampler_ccc, set_rate))
+
+
+ .def("set_phase",
+ &pfb_arb_resampler_ccc::set_phase,
+ py::arg("ph"),
+ D(pfb_arb_resampler_ccc, set_phase))
+
+
+ .def("phase", &pfb_arb_resampler_ccc::phase, D(pfb_arb_resampler_ccc, phase))
+
+
+ .def("taps_per_filter",
+ &pfb_arb_resampler_ccc::taps_per_filter,
+ D(pfb_arb_resampler_ccc, taps_per_filter))
+
+
+ .def("interpolation_rate",
+ &pfb_arb_resampler_ccc::interpolation_rate,
+ D(pfb_arb_resampler_ccc, interpolation_rate))
+
+
+ .def("decimation_rate",
+ &pfb_arb_resampler_ccc::decimation_rate,
+ D(pfb_arb_resampler_ccc, decimation_rate))
+
+
+ .def("fractional_rate",
+ &pfb_arb_resampler_ccc::fractional_rate,
+ D(pfb_arb_resampler_ccc, fractional_rate))
+
+
+ .def("group_delay",
+ &pfb_arb_resampler_ccc::group_delay,
+ D(pfb_arb_resampler_ccc, group_delay))
+
+
+ .def("phase_offset",
+ &pfb_arb_resampler_ccc::phase_offset,
+ py::arg("freq"),
+ py::arg("fs"),
+ D(pfb_arb_resampler_ccc, phase_offset))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/pfb_arb_resampler_ccf_python.cc b/gr-filter/python/filter/bindings/pfb_arb_resampler_ccf_python.cc
new file mode 100644
index 0000000000..edcbe26a96
--- /dev/null
+++ b/gr-filter/python/filter/bindings/pfb_arb_resampler_ccf_python.cc
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/pfb_arb_resampler_ccf.h>
+// pydoc.h is automatically generated in the build directory
+#include <pfb_arb_resampler_ccf_pydoc.h>
+
+void bind_pfb_arb_resampler_ccf(py::module& m)
+{
+
+ using pfb_arb_resampler_ccf = ::gr::filter::pfb_arb_resampler_ccf;
+
+
+ py::class_<pfb_arb_resampler_ccf,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pfb_arb_resampler_ccf>>(
+ m, "pfb_arb_resampler_ccf", D(pfb_arb_resampler_ccf))
+
+ .def(py::init(&pfb_arb_resampler_ccf::make),
+ py::arg("rate"),
+ py::arg("taps"),
+ py::arg("filter_size") = 32,
+ D(pfb_arb_resampler_ccf, make))
+
+
+ .def("set_taps",
+ &pfb_arb_resampler_ccf::set_taps,
+ py::arg("taps"),
+ D(pfb_arb_resampler_ccf, set_taps))
+
+
+ .def("taps", &pfb_arb_resampler_ccf::taps, D(pfb_arb_resampler_ccf, taps))
+
+
+ .def("print_taps",
+ &pfb_arb_resampler_ccf::print_taps,
+ D(pfb_arb_resampler_ccf, print_taps))
+
+
+ .def("set_rate",
+ &pfb_arb_resampler_ccf::set_rate,
+ py::arg("rate"),
+ D(pfb_arb_resampler_ccf, set_rate))
+
+
+ .def("set_phase",
+ &pfb_arb_resampler_ccf::set_phase,
+ py::arg("ph"),
+ D(pfb_arb_resampler_ccf, set_phase))
+
+
+ .def("phase", &pfb_arb_resampler_ccf::phase, D(pfb_arb_resampler_ccf, phase))
+
+
+ .def("taps_per_filter",
+ &pfb_arb_resampler_ccf::taps_per_filter,
+ D(pfb_arb_resampler_ccf, taps_per_filter))
+
+
+ .def("interpolation_rate",
+ &pfb_arb_resampler_ccf::interpolation_rate,
+ D(pfb_arb_resampler_ccf, interpolation_rate))
+
+
+ .def("decimation_rate",
+ &pfb_arb_resampler_ccf::decimation_rate,
+ D(pfb_arb_resampler_ccf, decimation_rate))
+
+
+ .def("fractional_rate",
+ &pfb_arb_resampler_ccf::fractional_rate,
+ D(pfb_arb_resampler_ccf, fractional_rate))
+
+
+ .def("group_delay",
+ &pfb_arb_resampler_ccf::group_delay,
+ D(pfb_arb_resampler_ccf, group_delay))
+
+
+ .def("phase_offset",
+ &pfb_arb_resampler_ccf::phase_offset,
+ py::arg("freq"),
+ py::arg("fs"),
+ D(pfb_arb_resampler_ccf, phase_offset))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/pfb_arb_resampler_fff_python.cc b/gr-filter/python/filter/bindings/pfb_arb_resampler_fff_python.cc
new file mode 100644
index 0000000000..ed47b61725
--- /dev/null
+++ b/gr-filter/python/filter/bindings/pfb_arb_resampler_fff_python.cc
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/pfb_arb_resampler_fff.h>
+// pydoc.h is automatically generated in the build directory
+#include <pfb_arb_resampler_fff_pydoc.h>
+
+void bind_pfb_arb_resampler_fff(py::module& m)
+{
+
+ using pfb_arb_resampler_fff = ::gr::filter::pfb_arb_resampler_fff;
+
+
+ py::class_<pfb_arb_resampler_fff,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pfb_arb_resampler_fff>>(
+ m, "pfb_arb_resampler_fff", D(pfb_arb_resampler_fff))
+
+ .def(py::init(&pfb_arb_resampler_fff::make),
+ py::arg("rate"),
+ py::arg("taps"),
+ py::arg("filter_size") = 32,
+ D(pfb_arb_resampler_fff, make))
+
+
+ .def("set_taps",
+ &pfb_arb_resampler_fff::set_taps,
+ py::arg("taps"),
+ D(pfb_arb_resampler_fff, set_taps))
+
+
+ .def("taps", &pfb_arb_resampler_fff::taps, D(pfb_arb_resampler_fff, taps))
+
+
+ .def("print_taps",
+ &pfb_arb_resampler_fff::print_taps,
+ D(pfb_arb_resampler_fff, print_taps))
+
+
+ .def("set_rate",
+ &pfb_arb_resampler_fff::set_rate,
+ py::arg("rate"),
+ D(pfb_arb_resampler_fff, set_rate))
+
+
+ .def("set_phase",
+ &pfb_arb_resampler_fff::set_phase,
+ py::arg("ph"),
+ D(pfb_arb_resampler_fff, set_phase))
+
+
+ .def("phase", &pfb_arb_resampler_fff::phase, D(pfb_arb_resampler_fff, phase))
+
+
+ .def("taps_per_filter",
+ &pfb_arb_resampler_fff::taps_per_filter,
+ D(pfb_arb_resampler_fff, taps_per_filter))
+
+
+ .def("interpolation_rate",
+ &pfb_arb_resampler_fff::interpolation_rate,
+ D(pfb_arb_resampler_fff, interpolation_rate))
+
+
+ .def("decimation_rate",
+ &pfb_arb_resampler_fff::decimation_rate,
+ D(pfb_arb_resampler_fff, decimation_rate))
+
+
+ .def("fractional_rate",
+ &pfb_arb_resampler_fff::fractional_rate,
+ D(pfb_arb_resampler_fff, fractional_rate))
+
+
+ .def("group_delay",
+ &pfb_arb_resampler_fff::group_delay,
+ D(pfb_arb_resampler_fff, group_delay))
+
+
+ .def("phase_offset",
+ &pfb_arb_resampler_fff::phase_offset,
+ py::arg("freq"),
+ py::arg("fs"),
+ D(pfb_arb_resampler_fff, phase_offset))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/pfb_arb_resampler_python.cc b/gr-filter/python/filter/bindings/pfb_arb_resampler_python.cc
new file mode 100644
index 0000000000..cb205d9b62
--- /dev/null
+++ b/gr-filter/python/filter/bindings/pfb_arb_resampler_python.cc
@@ -0,0 +1,299 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/pfb_arb_resampler.h>
+// pydoc.h is automatically generated in the build directory
+#include <pfb_arb_resampler_pydoc.h>
+
+void bind_pfb_arb_resampler(py::module& m)
+{
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+
+ using pfb_arb_resampler_ccf = ::gr::filter::kernel::pfb_arb_resampler_ccf;
+ using pfb_arb_resampler_ccc = ::gr::filter::kernel::pfb_arb_resampler_ccc;
+ using pfb_arb_resampler_fff = ::gr::filter::kernel::pfb_arb_resampler_fff;
+
+
+ py::class_<pfb_arb_resampler_ccf, std::shared_ptr<pfb_arb_resampler_ccf>>(
+ m_kernel, "pfb_arb_resampler_ccf", D(kernel, pfb_arb_resampler_ccf))
+
+ .def(py::init<float,
+ std::vector<float, std::allocator<float>> const&,
+ unsigned int>(),
+ py::arg("rate"),
+ py::arg("taps"),
+ py::arg("filter_size"),
+ D(kernel, pfb_arb_resampler_ccf, pfb_arb_resampler_ccf, 0))
+ .def(py::init<gr::filter::kernel::pfb_arb_resampler_ccf const&>(),
+ py::arg("arg0"),
+ D(kernel, pfb_arb_resampler_ccf, pfb_arb_resampler_ccf, 1))
+
+
+ .def("set_taps",
+ &pfb_arb_resampler_ccf::set_taps,
+ py::arg("taps"),
+ D(kernel, pfb_arb_resampler_ccf, set_taps))
+
+
+ .def("taps", &pfb_arb_resampler_ccf::taps, D(kernel, pfb_arb_resampler_ccf, taps))
+
+
+ .def("print_taps",
+ &pfb_arb_resampler_ccf::print_taps,
+ D(kernel, pfb_arb_resampler_ccf, print_taps))
+
+
+ .def("set_rate",
+ &pfb_arb_resampler_ccf::set_rate,
+ py::arg("rate"),
+ D(kernel, pfb_arb_resampler_ccf, set_rate))
+
+
+ .def("set_phase",
+ &pfb_arb_resampler_ccf::set_phase,
+ py::arg("ph"),
+ D(kernel, pfb_arb_resampler_ccf, set_phase))
+
+
+ .def("phase",
+ &pfb_arb_resampler_ccf::phase,
+ D(kernel, pfb_arb_resampler_ccf, phase))
+
+
+ .def("taps_per_filter",
+ &pfb_arb_resampler_ccf::taps_per_filter,
+ D(kernel, pfb_arb_resampler_ccf, taps_per_filter))
+
+
+ .def("interpolation_rate",
+ &pfb_arb_resampler_ccf::interpolation_rate,
+ D(kernel, pfb_arb_resampler_ccf, interpolation_rate))
+
+
+ .def("decimation_rate",
+ &pfb_arb_resampler_ccf::decimation_rate,
+ D(kernel, pfb_arb_resampler_ccf, decimation_rate))
+
+
+ .def("fractional_rate",
+ &pfb_arb_resampler_ccf::fractional_rate,
+ D(kernel, pfb_arb_resampler_ccf, fractional_rate))
+
+
+ .def("group_delay",
+ &pfb_arb_resampler_ccf::group_delay,
+ D(kernel, pfb_arb_resampler_ccf, group_delay))
+
+
+ .def("phase_offset",
+ &pfb_arb_resampler_ccf::phase_offset,
+ py::arg("freq"),
+ py::arg("fs"),
+ D(kernel, pfb_arb_resampler_ccf, phase_offset))
+
+
+ .def("filter",
+ &pfb_arb_resampler_ccf::filter,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n_to_read"),
+ py::arg("n_read"),
+ D(kernel, pfb_arb_resampler_ccf, filter))
+
+ ;
+
+
+ py::class_<pfb_arb_resampler_ccc, std::shared_ptr<pfb_arb_resampler_ccc>>(
+ m_kernel, "pfb_arb_resampler_ccc", D(kernel, pfb_arb_resampler_ccc))
+
+ .def(py::init<float,
+ std::vector<std::complex<float>,
+ std::allocator<std::complex<float>>> const&,
+ unsigned int>(),
+ py::arg("rate"),
+ py::arg("taps"),
+ py::arg("filter_size"),
+ D(kernel, pfb_arb_resampler_ccc, pfb_arb_resampler_ccc, 0))
+ .def(py::init<gr::filter::kernel::pfb_arb_resampler_ccc const&>(),
+ py::arg("arg0"),
+ D(kernel, pfb_arb_resampler_ccc, pfb_arb_resampler_ccc, 1))
+
+
+ .def("set_taps",
+ &pfb_arb_resampler_ccc::set_taps,
+ py::arg("taps"),
+ D(kernel, pfb_arb_resampler_ccc, set_taps))
+
+
+ .def("taps", &pfb_arb_resampler_ccc::taps, D(kernel, pfb_arb_resampler_ccc, taps))
+
+
+ .def("print_taps",
+ &pfb_arb_resampler_ccc::print_taps,
+ D(kernel, pfb_arb_resampler_ccc, print_taps))
+
+
+ .def("set_rate",
+ &pfb_arb_resampler_ccc::set_rate,
+ py::arg("rate"),
+ D(kernel, pfb_arb_resampler_ccc, set_rate))
+
+
+ .def("set_phase",
+ &pfb_arb_resampler_ccc::set_phase,
+ py::arg("ph"),
+ D(kernel, pfb_arb_resampler_ccc, set_phase))
+
+
+ .def("phase",
+ &pfb_arb_resampler_ccc::phase,
+ D(kernel, pfb_arb_resampler_ccc, phase))
+
+
+ .def("taps_per_filter",
+ &pfb_arb_resampler_ccc::taps_per_filter,
+ D(kernel, pfb_arb_resampler_ccc, taps_per_filter))
+
+
+ .def("interpolation_rate",
+ &pfb_arb_resampler_ccc::interpolation_rate,
+ D(kernel, pfb_arb_resampler_ccc, interpolation_rate))
+
+
+ .def("decimation_rate",
+ &pfb_arb_resampler_ccc::decimation_rate,
+ D(kernel, pfb_arb_resampler_ccc, decimation_rate))
+
+
+ .def("fractional_rate",
+ &pfb_arb_resampler_ccc::fractional_rate,
+ D(kernel, pfb_arb_resampler_ccc, fractional_rate))
+
+
+ .def("group_delay",
+ &pfb_arb_resampler_ccc::group_delay,
+ D(kernel, pfb_arb_resampler_ccc, group_delay))
+
+
+ .def("phase_offset",
+ &pfb_arb_resampler_ccc::phase_offset,
+ py::arg("freq"),
+ py::arg("fs"),
+ D(kernel, pfb_arb_resampler_ccc, phase_offset))
+
+
+ .def("filter",
+ &pfb_arb_resampler_ccc::filter,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n_to_read"),
+ py::arg("n_read"),
+ D(kernel, pfb_arb_resampler_ccc, filter))
+
+ ;
+
+
+ py::class_<pfb_arb_resampler_fff, std::shared_ptr<pfb_arb_resampler_fff>>(
+ m_kernel, "pfb_arb_resampler_fff", D(kernel, pfb_arb_resampler_fff))
+
+ .def(py::init<float,
+ std::vector<float, std::allocator<float>> const&,
+ unsigned int>(),
+ py::arg("rate"),
+ py::arg("taps"),
+ py::arg("filter_size"),
+ D(kernel, pfb_arb_resampler_fff, pfb_arb_resampler_fff, 0))
+ .def(py::init<gr::filter::kernel::pfb_arb_resampler_fff const&>(),
+ py::arg("arg0"),
+ D(kernel, pfb_arb_resampler_fff, pfb_arb_resampler_fff, 1))
+
+
+ .def("set_taps",
+ &pfb_arb_resampler_fff::set_taps,
+ py::arg("taps"),
+ D(kernel, pfb_arb_resampler_fff, set_taps))
+
+
+ .def("taps", &pfb_arb_resampler_fff::taps, D(kernel, pfb_arb_resampler_fff, taps))
+
+
+ .def("print_taps",
+ &pfb_arb_resampler_fff::print_taps,
+ D(kernel, pfb_arb_resampler_fff, print_taps))
+
+
+ .def("set_rate",
+ &pfb_arb_resampler_fff::set_rate,
+ py::arg("rate"),
+ D(kernel, pfb_arb_resampler_fff, set_rate))
+
+
+ .def("set_phase",
+ &pfb_arb_resampler_fff::set_phase,
+ py::arg("ph"),
+ D(kernel, pfb_arb_resampler_fff, set_phase))
+
+
+ .def("phase",
+ &pfb_arb_resampler_fff::phase,
+ D(kernel, pfb_arb_resampler_fff, phase))
+
+
+ .def("taps_per_filter",
+ &pfb_arb_resampler_fff::taps_per_filter,
+ D(kernel, pfb_arb_resampler_fff, taps_per_filter))
+
+
+ .def("interpolation_rate",
+ &pfb_arb_resampler_fff::interpolation_rate,
+ D(kernel, pfb_arb_resampler_fff, interpolation_rate))
+
+
+ .def("decimation_rate",
+ &pfb_arb_resampler_fff::decimation_rate,
+ D(kernel, pfb_arb_resampler_fff, decimation_rate))
+
+
+ .def("fractional_rate",
+ &pfb_arb_resampler_fff::fractional_rate,
+ D(kernel, pfb_arb_resampler_fff, fractional_rate))
+
+
+ .def("group_delay",
+ &pfb_arb_resampler_fff::group_delay,
+ D(kernel, pfb_arb_resampler_fff, group_delay))
+
+
+ .def("phase_offset",
+ &pfb_arb_resampler_fff::phase_offset,
+ py::arg("freq"),
+ py::arg("fs"),
+ D(kernel, pfb_arb_resampler_fff, phase_offset))
+
+
+ .def("filter",
+ &pfb_arb_resampler_fff::filter,
+ py::arg("output"),
+ py::arg("input"),
+ py::arg("n_to_read"),
+ py::arg("n_read"),
+ D(kernel, pfb_arb_resampler_fff, filter))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/pfb_channelizer_ccf_python.cc b/gr-filter/python/filter/bindings/pfb_channelizer_ccf_python.cc
new file mode 100644
index 0000000000..541b82c562
--- /dev/null
+++ b/gr-filter/python/filter/bindings/pfb_channelizer_ccf_python.cc
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/pfb_channelizer_ccf.h>
+// pydoc.h is automatically generated in the build directory
+#include <pfb_channelizer_ccf_pydoc.h>
+
+void bind_pfb_channelizer_ccf(py::module& m)
+{
+
+ using pfb_channelizer_ccf = ::gr::filter::pfb_channelizer_ccf;
+
+
+ py::class_<pfb_channelizer_ccf,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pfb_channelizer_ccf>>(
+ m, "pfb_channelizer_ccf", D(pfb_channelizer_ccf))
+
+ .def(py::init(&pfb_channelizer_ccf::make),
+ py::arg("numchans"),
+ py::arg("taps"),
+ py::arg("oversample_rate"),
+ D(pfb_channelizer_ccf, make))
+
+
+ .def("set_taps",
+ &pfb_channelizer_ccf::set_taps,
+ py::arg("taps"),
+ D(pfb_channelizer_ccf, set_taps))
+
+
+ .def("print_taps",
+ &pfb_channelizer_ccf::print_taps,
+ D(pfb_channelizer_ccf, print_taps))
+
+
+ .def("taps", &pfb_channelizer_ccf::taps, D(pfb_channelizer_ccf, taps))
+
+
+ .def("set_channel_map",
+ &pfb_channelizer_ccf::set_channel_map,
+ py::arg("map"),
+ D(pfb_channelizer_ccf, set_channel_map))
+
+
+ .def("channel_map",
+ &pfb_channelizer_ccf::channel_map,
+ D(pfb_channelizer_ccf, channel_map))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/pfb_decimator_ccf_python.cc b/gr-filter/python/filter/bindings/pfb_decimator_ccf_python.cc
new file mode 100644
index 0000000000..7c8801322f
--- /dev/null
+++ b/gr-filter/python/filter/bindings/pfb_decimator_ccf_python.cc
@@ -0,0 +1,64 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/pfb_decimator_ccf.h>
+// pydoc.h is automatically generated in the build directory
+#include <pfb_decimator_ccf_pydoc.h>
+
+void bind_pfb_decimator_ccf(py::module& m)
+{
+
+ using pfb_decimator_ccf = ::gr::filter::pfb_decimator_ccf;
+
+
+ py::class_<pfb_decimator_ccf,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pfb_decimator_ccf>>(
+ m, "pfb_decimator_ccf", D(pfb_decimator_ccf))
+
+ .def(py::init(&pfb_decimator_ccf::make),
+ py::arg("decim"),
+ py::arg("taps"),
+ py::arg("channel"),
+ py::arg("use_fft_rotator") = true,
+ py::arg("use_fft_filters") = true,
+ D(pfb_decimator_ccf, make))
+
+
+ .def("set_taps",
+ &pfb_decimator_ccf::set_taps,
+ py::arg("taps"),
+ D(pfb_decimator_ccf, set_taps))
+
+
+ .def("taps", &pfb_decimator_ccf::taps, D(pfb_decimator_ccf, taps))
+
+
+ .def("print_taps",
+ &pfb_decimator_ccf::print_taps,
+ D(pfb_decimator_ccf, print_taps))
+
+
+ .def("set_channel",
+ &pfb_decimator_ccf::set_channel,
+ py::arg("channel"),
+ D(pfb_decimator_ccf, set_channel))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/pfb_interpolator_ccf_python.cc b/gr-filter/python/filter/bindings/pfb_interpolator_ccf_python.cc
new file mode 100644
index 0000000000..be290a6797
--- /dev/null
+++ b/gr-filter/python/filter/bindings/pfb_interpolator_ccf_python.cc
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/pfb_interpolator_ccf.h>
+// pydoc.h is automatically generated in the build directory
+#include <pfb_interpolator_ccf_pydoc.h>
+
+void bind_pfb_interpolator_ccf(py::module& m)
+{
+
+ using pfb_interpolator_ccf = ::gr::filter::pfb_interpolator_ccf;
+
+
+ py::class_<pfb_interpolator_ccf,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pfb_interpolator_ccf>>(
+ m, "pfb_interpolator_ccf", D(pfb_interpolator_ccf))
+
+ .def(py::init(&pfb_interpolator_ccf::make),
+ py::arg("interp"),
+ py::arg("taps"),
+ D(pfb_interpolator_ccf, make))
+
+
+ .def("set_taps",
+ &pfb_interpolator_ccf::set_taps,
+ py::arg("taps"),
+ D(pfb_interpolator_ccf, set_taps))
+
+
+ .def("taps", &pfb_interpolator_ccf::taps, D(pfb_interpolator_ccf, taps))
+
+
+ .def("print_taps",
+ &pfb_interpolator_ccf::print_taps,
+ D(pfb_interpolator_ccf, print_taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/pfb_synthesizer_ccf_python.cc b/gr-filter/python/filter/bindings/pfb_synthesizer_ccf_python.cc
new file mode 100644
index 0000000000..4c5795cde6
--- /dev/null
+++ b/gr-filter/python/filter/bindings/pfb_synthesizer_ccf_python.cc
@@ -0,0 +1,68 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/pfb_synthesizer_ccf.h>
+// pydoc.h is automatically generated in the build directory
+#include <pfb_synthesizer_ccf_pydoc.h>
+
+void bind_pfb_synthesizer_ccf(py::module& m)
+{
+
+ using pfb_synthesizer_ccf = ::gr::filter::pfb_synthesizer_ccf;
+
+
+ py::class_<pfb_synthesizer_ccf,
+ gr::sync_interpolator,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<pfb_synthesizer_ccf>>(
+ m, "pfb_synthesizer_ccf", D(pfb_synthesizer_ccf))
+
+ .def(py::init(&pfb_synthesizer_ccf::make),
+ py::arg("numchans"),
+ py::arg("taps"),
+ py::arg("twox") = false,
+ D(pfb_synthesizer_ccf, make))
+
+
+ .def("set_taps",
+ &pfb_synthesizer_ccf::set_taps,
+ py::arg("taps"),
+ D(pfb_synthesizer_ccf, set_taps))
+
+
+ .def("print_taps",
+ &pfb_synthesizer_ccf::print_taps,
+ D(pfb_synthesizer_ccf, print_taps))
+
+
+ .def("taps", &pfb_synthesizer_ccf::taps, D(pfb_synthesizer_ccf, taps))
+
+
+ .def("set_channel_map",
+ &pfb_synthesizer_ccf::set_channel_map,
+ py::arg("map"),
+ D(pfb_synthesizer_ccf, set_channel_map))
+
+
+ .def("channel_map",
+ &pfb_synthesizer_ccf::channel_map,
+ D(pfb_synthesizer_ccf, channel_map))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/pm_remez_python.cc b/gr-filter/python/filter/bindings/pm_remez_python.cc
new file mode 100644
index 0000000000..c7ae59c5e6
--- /dev/null
+++ b/gr-filter/python/filter/bindings/pm_remez_python.cc
@@ -0,0 +1,35 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/pm_remez.h>
+// pydoc.h is automatically generated in the build directory
+#include <pm_remez_pydoc.h>
+
+void bind_pm_remez(py::module& m)
+{
+
+
+ m.def("pm_remez",
+ &::gr::filter::pm_remez,
+ py::arg("order"),
+ py::arg("bands"),
+ py::arg("ampl"),
+ py::arg("error_weight"),
+ py::arg("filter_type") = "bandpass",
+ py::arg("grid_density") = 16,
+ D(pm_remez));
+}
diff --git a/gr-filter/python/filter/bindings/polyphase_filterbank_python.cc b/gr-filter/python/filter/bindings/polyphase_filterbank_python.cc
new file mode 100644
index 0000000000..74616dffeb
--- /dev/null
+++ b/gr-filter/python/filter/bindings/polyphase_filterbank_python.cc
@@ -0,0 +1,60 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/polyphase_filterbank.h>
+// pydoc.h is automatically generated in the build directory
+#include <polyphase_filterbank_pydoc.h>
+
+void bind_polyphase_filterbank(py::module& m)
+{
+
+
+ py::module m_kernel = m.def_submodule("kernel");
+
+ using polyphase_filterbank = ::gr::filter::kernel::polyphase_filterbank;
+
+
+ py::class_<polyphase_filterbank, std::shared_ptr<polyphase_filterbank>>(
+ m_kernel, "polyphase_filterbank", D(kernel, polyphase_filterbank))
+
+ .def(py::init<unsigned int,
+ std::vector<float, std::allocator<float>> const&,
+ bool>(),
+ py::arg("nfilts"),
+ py::arg("taps"),
+ py::arg("fft_forward") = false,
+ D(kernel, polyphase_filterbank, polyphase_filterbank, 0))
+ .def(py::init<gr::filter::kernel::polyphase_filterbank const&>(),
+ py::arg("arg0"),
+ D(kernel, polyphase_filterbank, polyphase_filterbank, 1))
+
+
+ .def("set_taps",
+ &polyphase_filterbank::set_taps,
+ py::arg("taps"),
+ D(kernel, polyphase_filterbank, set_taps))
+
+
+ .def("print_taps",
+ &polyphase_filterbank::print_taps,
+ D(kernel, polyphase_filterbank, print_taps))
+
+
+ .def("taps", &polyphase_filterbank::taps, D(kernel, polyphase_filterbank, taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/python_bindings.cc b/gr-filter/python/filter/bindings/python_bindings.cc
new file mode 100644
index 0000000000..e7daa19c30
--- /dev/null
+++ b/gr-filter/python/filter/bindings/python_bindings.cc
@@ -0,0 +1,132 @@
+
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+#include <pybind11/pybind11.h>
+
+#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
+#include <numpy/arrayobject.h>
+
+namespace py = pybind11;
+
+void bind_dc_blocker_cc(py::module&);
+void bind_dc_blocker_ff(py::module&);
+void bind_fft_filter(py::module&);
+void bind_fft_filter_ccc(py::module&);
+void bind_fft_filter_ccf(py::module&);
+void bind_fft_filter_fff(py::module&);
+void bind_filter_delay_fc(py::module&);
+void bind_filterbank(py::module&);
+void bind_filterbank_vcvcf(py::module&);
+void bind_fir_filter(py::module&);
+void bind_fir_filter_blk(py::module&);
+void bind_fir_filter_with_buffer(py::module&);
+void bind_firdes(py::module&);
+void bind_freq_xlating_fir_filter(py::module&);
+void bind_hilbert_fc(py::module&);
+// void bind_iir_filter(py::module&);
+void bind_iir_filter_ccc(py::module&);
+void bind_iir_filter_ccd(py::module&);
+void bind_iir_filter_ccf(py::module&);
+void bind_iir_filter_ccz(py::module&);
+void bind_iir_filter_ffd(py::module&);
+// void bind_interp_differentiator_taps(py::module&);
+void bind_interp_fir_filter(py::module&);
+// void bind_interpolator_taps(py::module&);
+void bind_ival_decimator(py::module&);
+void bind_mmse_fir_interpolator_cc(py::module&);
+void bind_mmse_fir_interpolator_ff(py::module&);
+void bind_mmse_interp_differentiator_cc(py::module&);
+void bind_mmse_interp_differentiator_ff(py::module&);
+void bind_mmse_interpolator_cc(py::module&);
+void bind_mmse_interpolator_ff(py::module&);
+void bind_mmse_resampler_cc(py::module&);
+void bind_mmse_resampler_ff(py::module&);
+void bind_pfb_arb_resampler(py::module&);
+void bind_pfb_arb_resampler_ccc(py::module&);
+void bind_pfb_arb_resampler_ccf(py::module&);
+void bind_pfb_arb_resampler_fff(py::module&);
+void bind_pfb_channelizer_ccf(py::module&);
+void bind_pfb_decimator_ccf(py::module&);
+void bind_pfb_interpolator_ccf(py::module&);
+void bind_pfb_synthesizer_ccf(py::module&);
+void bind_pm_remez(py::module&);
+void bind_polyphase_filterbank(py::module&);
+void bind_rational_resampler_base(py::module&);
+void bind_single_pole_iir(py::module&);
+void bind_single_pole_iir_filter_cc(py::module&);
+void bind_single_pole_iir_filter_ff(py::module&);
+
+// We need this hack because import_array() returns NULL
+// for newer Python versions.
+// This function is also necessary because it ensures access to the C API
+// and removes a warning.
+void* init_numpy()
+{
+ import_array();
+ return NULL;
+}
+
+PYBIND11_MODULE(filter_python, m)
+{
+ // Initialize the numpy C API
+ // (otherwise we will see segmentation faults)
+ init_numpy();
+
+ // Allow access to base block methods
+ py::module::import("gnuradio.gr");
+
+ bind_dc_blocker_cc(m);
+ bind_dc_blocker_ff(m);
+ bind_fft_filter(m);
+ bind_fft_filter_ccc(m);
+ bind_fft_filter_ccf(m);
+ bind_fft_filter_fff(m);
+ bind_filter_delay_fc(m);
+ bind_filterbank(m);
+ bind_filterbank_vcvcf(m);
+ bind_fir_filter(m);
+ bind_fir_filter_blk(m);
+ bind_fir_filter_with_buffer(m);
+ bind_firdes(m);
+ bind_freq_xlating_fir_filter(m);
+ bind_hilbert_fc(m);
+ // bind_iir_filter(m);
+ bind_iir_filter_ccc(m);
+ bind_iir_filter_ccd(m);
+ bind_iir_filter_ccf(m);
+ bind_iir_filter_ccz(m);
+ bind_iir_filter_ffd(m);
+ // bind_interp_differentiator_taps(m);
+ bind_interp_fir_filter(m);
+ // bind_interpolator_taps(m);
+ bind_ival_decimator(m);
+ bind_mmse_fir_interpolator_cc(m);
+ bind_mmse_fir_interpolator_ff(m);
+ bind_mmse_interp_differentiator_cc(m);
+ bind_mmse_interp_differentiator_ff(m);
+ bind_mmse_interpolator_cc(m);
+ bind_mmse_interpolator_ff(m);
+ bind_mmse_resampler_cc(m);
+ bind_mmse_resampler_ff(m);
+ bind_pfb_arb_resampler(m);
+ bind_pfb_arb_resampler_ccc(m);
+ bind_pfb_arb_resampler_ccf(m);
+ bind_pfb_arb_resampler_fff(m);
+ bind_pfb_channelizer_ccf(m);
+ bind_pfb_decimator_ccf(m);
+ bind_pfb_interpolator_ccf(m);
+ bind_pfb_synthesizer_ccf(m);
+ bind_pm_remez(m);
+ bind_polyphase_filterbank(m);
+ bind_rational_resampler_base(m);
+ bind_single_pole_iir(m);
+ bind_single_pole_iir_filter_cc(m);
+ bind_single_pole_iir_filter_ff(m);
+}
diff --git a/gr-filter/python/filter/bindings/rational_resampler_base_python.cc b/gr-filter/python/filter/bindings/rational_resampler_base_python.cc
new file mode 100644
index 0000000000..41e69280af
--- /dev/null
+++ b/gr-filter/python/filter/bindings/rational_resampler_base_python.cc
@@ -0,0 +1,55 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/rational_resampler_base.h>
+
+template <class IN_T, class OUT_T, class TAP_T>
+void bind_rational_resampler_base_template(py::module& m, const char* classname)
+{
+ using rational_resampler_base =
+ gr::filter::rational_resampler_base<IN_T, OUT_T, TAP_T>;
+
+ py::class_<rational_resampler_base,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<rational_resampler_base>>(m, classname)
+ .def(py::init(&gr::filter::rational_resampler_base<IN_T, OUT_T, TAP_T>::make),
+ py::arg("interpolation"),
+ py::arg("decimation"),
+ py::arg("taps"))
+
+ .def("set_taps", &rational_resampler_base::set_taps, py::arg("taps"))
+ .def("taps", &rational_resampler_base::taps)
+ .def("interpolation", &rational_resampler_base::interpolation)
+ .def("decimation", &rational_resampler_base::decimation);
+}
+
+void bind_rational_resampler_base(py::module& m)
+{
+ bind_rational_resampler_base_template<gr_complex, gr_complex, gr_complex>(
+ m, "rational_resampler_base_ccc");
+ bind_rational_resampler_base_template<gr_complex, gr_complex, float>(
+ m, "rational_resampler_base_ccf");
+ bind_rational_resampler_base_template<float, gr_complex, gr_complex>(
+ m, "rational_resampler_base_fcc");
+ bind_rational_resampler_base_template<float, float, float>(
+ m, "rational_resampler_base_fff");
+ bind_rational_resampler_base_template<float, std::int16_t, float>(
+ m, "rational_resampler_base_fsf");
+ bind_rational_resampler_base_template<std::int16_t, gr_complex, gr_complex>(
+ m, "rational_resampler_base_scc");
+}
diff --git a/gr-filter/python/filter/bindings/single_pole_iir_filter_cc_python.cc b/gr-filter/python/filter/bindings/single_pole_iir_filter_cc_python.cc
new file mode 100644
index 0000000000..6adf43b1bc
--- /dev/null
+++ b/gr-filter/python/filter/bindings/single_pole_iir_filter_cc_python.cc
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/single_pole_iir_filter_cc.h>
+// pydoc.h is automatically generated in the build directory
+#include <single_pole_iir_filter_cc_pydoc.h>
+
+void bind_single_pole_iir_filter_cc(py::module& m)
+{
+
+ using single_pole_iir_filter_cc = ::gr::filter::single_pole_iir_filter_cc;
+
+
+ py::class_<single_pole_iir_filter_cc,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<single_pole_iir_filter_cc>>(
+ m, "single_pole_iir_filter_cc", D(single_pole_iir_filter_cc))
+
+ .def(py::init(&single_pole_iir_filter_cc::make),
+ py::arg("alpha"),
+ py::arg("vlen") = 1,
+ D(single_pole_iir_filter_cc, make))
+
+
+ .def("set_taps",
+ &single_pole_iir_filter_cc::set_taps,
+ py::arg("alpha"),
+ D(single_pole_iir_filter_cc, set_taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/single_pole_iir_filter_ff_python.cc b/gr-filter/python/filter/bindings/single_pole_iir_filter_ff_python.cc
new file mode 100644
index 0000000000..59ef7e0996
--- /dev/null
+++ b/gr-filter/python/filter/bindings/single_pole_iir_filter_ff_python.cc
@@ -0,0 +1,47 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/single_pole_iir_filter_ff.h>
+// pydoc.h is automatically generated in the build directory
+#include <single_pole_iir_filter_ff_pydoc.h>
+
+void bind_single_pole_iir_filter_ff(py::module& m)
+{
+
+ using single_pole_iir_filter_ff = ::gr::filter::single_pole_iir_filter_ff;
+
+
+ py::class_<single_pole_iir_filter_ff,
+ gr::sync_block,
+ gr::block,
+ gr::basic_block,
+ std::shared_ptr<single_pole_iir_filter_ff>>(
+ m, "single_pole_iir_filter_ff", D(single_pole_iir_filter_ff))
+
+ .def(py::init(&single_pole_iir_filter_ff::make),
+ py::arg("alpha"),
+ py::arg("vlen") = 1,
+ D(single_pole_iir_filter_ff, make))
+
+
+ .def("set_taps",
+ &single_pole_iir_filter_ff::set_taps,
+ py::arg("alpha"),
+ D(single_pole_iir_filter_ff, set_taps))
+
+ ;
+}
diff --git a/gr-filter/python/filter/bindings/single_pole_iir_python.cc b/gr-filter/python/filter/bindings/single_pole_iir_python.cc
new file mode 100644
index 0000000000..fce8a2b7ee
--- /dev/null
+++ b/gr-filter/python/filter/bindings/single_pole_iir_python.cc
@@ -0,0 +1,22 @@
+/*
+ * Copyright 2020 Free Software Foundation, Inc.
+ *
+ * This file is part of GNU Radio
+ *
+ * SPDX-License-Identifier: GPL-3.0-or-later
+ *
+ */
+
+/* This file is automatically generated using bindtool */
+
+#include <pybind11/complex.h>
+#include <pybind11/pybind11.h>
+#include <pybind11/stl.h>
+
+namespace py = pybind11;
+
+#include <gnuradio/filter/single_pole_iir.h>
+// pydoc.h is automatically generated in the build directory
+#include <single_pole_iir_pydoc.h>
+
+void bind_single_pole_iir(py::module& m) {}
diff --git a/gr-filter/python/filter/filterbank.py b/gr-filter/python/filter/filterbank.py
index edc53a9493..388bdaf308 100644
--- a/gr-filter/python/filter/filterbank.py
+++ b/gr-filter/python/filter/filterbank.py
@@ -13,7 +13,7 @@ from __future__ import unicode_literals
from gnuradio import gr
from gnuradio import fft
from gnuradio import blocks
-from .filter_swig import fft_filter_ccc
+from .filter_python import fft_filter_ccc
def _generate_synthesis_taps(mpoints):
return [] # FIXME
diff --git a/gr-filter/python/filter/freq_xlating_fft_filter.py b/gr-filter/python/filter/freq_xlating_fft_filter.py
index b7b8acfca4..66ae0d9392 100644
--- a/gr-filter/python/filter/freq_xlating_fft_filter.py
+++ b/gr-filter/python/filter/freq_xlating_fft_filter.py
@@ -14,7 +14,7 @@ import cmath
from gnuradio import gr
from gnuradio.blocks import rotator_cc
-from .filter_swig import fft_filter_ccc
+from .filter_python import fft_filter_ccc
__all__ = [ 'freq_xlating_fft_filter_ccc' ]
diff --git a/gr-filter/python/filter/optfir.py b/gr-filter/python/filter/optfir.py
index b402788559..c0f81b6e9a 100644
--- a/gr-filter/python/filter/optfir.py
+++ b/gr-filter/python/filter/optfir.py
@@ -21,7 +21,7 @@ from __future__ import unicode_literals
import math, cmath
-from . import filter_swig as filter
+from . import filter_python as filter
# ----------------------------------------------------------------
diff --git a/gr-filter/python/filter/pfb.py b/gr-filter/python/filter/pfb.py
index c26b7d5b0b..2e9b52791d 100644
--- a/gr-filter/python/filter/pfb.py
+++ b/gr-filter/python/filter/pfb.py
@@ -17,7 +17,7 @@ import math
from gnuradio import gr, fft, blocks
from . import optfir
-from . import filter_swig as filter
+from . import filter_python as filter
class channelizer_ccf(gr.hier_block2):
diff --git a/gr-filter/python/filter/qa_fft_filter.py b/gr-filter/python/filter/qa_fft_filter.py
index 05760f4f25..6792872dcb 100644
--- a/gr-filter/python/filter/qa_fft_filter.py
+++ b/gr-filter/python/filter/qa_fft_filter.py
@@ -474,7 +474,7 @@ class test_fft_filter(gr_unittest.TestCase):
random.seed(0)
for i in range(25):
ntaps = int(random.uniform(2, 100))
- taps = make_random_float_tuple(ntaps)
+ taps = list(make_random_float_tuple(ntaps))
op = filter.fft_filter_fff(1, taps)
result_data = op.taps()
diff --git a/gr-filter/python/filter/qa_interp_fir_filter.py b/gr-filter/python/filter/qa_interp_fir_filter.py
index 5ebf56f679..e11d2afd74 100644
--- a/gr-filter/python/filter/qa_interp_fir_filter.py
+++ b/gr-filter/python/filter/qa_interp_fir_filter.py
@@ -32,7 +32,7 @@ class test_interp_fir_filter(gr_unittest.TestCase):
700,7011,70110,
1100,11013,110130,
1300,13017,130170)
- expected_result = tuple([float(x) for x in xr])
+ expected_result = [float(x) for x in xr]
src = blocks.vector_source_f(src_data)
op = filter.interp_fir_filter_fff(interpolation, taps)
diff --git a/gr-filter/python/filter/qa_pfb_channelizer.py b/gr-filter/python/filter/qa_pfb_channelizer.py
index c6a06c3860..e30b67cd5a 100644
--- a/gr-filter/python/filter/qa_pfb_channelizer.py
+++ b/gr-filter/python/filter/qa_pfb_channelizer.py
@@ -61,7 +61,8 @@ class test_pfb_channelizer(gr_unittest.TestCase):
def test_0003(self):
"""Test roundig error handling for oversample rate, (bad)."""
- self.assertRaises(TypeError,
+ # pybind11 raises ValueError instead of TypeError
+ self.assertRaises(ValueError,
filter.pfb.channelizer_ccf,
36, taps=self.taps, oversample_rate=10.1334)
diff --git a/gr-filter/python/filter/qa_rational_resampler.py b/gr-filter/python/filter/qa_rational_resampler.py
index 455f81912c..f6605b854a 100644
--- a/gr-filter/python/filter/qa_rational_resampler.py
+++ b/gr-filter/python/filter/qa_rational_resampler.py
@@ -73,7 +73,7 @@ class test_rational_resampler (gr_unittest.TestCase):
taps = (-4, 5)
src_data = (234, -4, 23, -56, 45, 98, -23, -7)
xr = (1186, -112, 339, -460, -167, 582)
- expected_result = tuple([float(x) for x in xr])
+ expected_result = [float(x) for x in xr]
tb = gr.top_block()
src = blocks.vector_source_f(src_data)
@@ -96,7 +96,7 @@ class test_rational_resampler (gr_unittest.TestCase):
1100,11013,110130,
1300,13017,130170,
1700.0,17000.0,170000.0, 0.0)
- expected_result = tuple([float(x) for x in xr])
+ expected_result = [float(x) for x in xr]
tb = gr.top_block()
src = blocks.vector_source_f(src_data)
diff --git a/gr-filter/python/filter/rational_resampler.py b/gr-filter/python/filter/rational_resampler.py
index 17b811cc10..042e63a9a2 100644
--- a/gr-filter/python/filter/rational_resampler.py
+++ b/gr-filter/python/filter/rational_resampler.py
@@ -12,7 +12,7 @@ from __future__ import division
from __future__ import unicode_literals
from gnuradio import gr, gru
-from . import filter_swig as filter
+from . import filter_python as filter
_plot = None